In this tutorial, we demonstrate how to create a parametric blockchain with Deku-P, using the Deku TypeScript-SDK. To do so, we are going to create a state machine using Typescript, execute it within Deku blockchain, and interact with it!
Prerequisites
Running Deku
- Install Nix by following the official guide. Additionally, you must enable the flakes feature:
echo 'experimental-features = nix-command flakes' >> /etc/nix/nix.conf
Nix automatically installs all the dependencies and devtools needed for development, including Tilt, Docker, etc.
Note: Nix is the tool used by marigold to create reproductible environment, other distribution models will be available for the release
-
Install direnv and don’t forget to “hook direnv to your shell”
-
You can clone the github directory and use the branch doc/deku-pTutorial, on your terminal type:
$ git clone https://github.com/marigold-dev/deku.git
$ cd deku
$ git switch arthur/doc/deku-pTutorial
$ direnv allow
$ dune build
You can follow our readme on how to compile Deku.
Init empty typescript application
- We will use Typescript as a main language for our blockchain application. Create the folder for your new project within the examples folder, in the terminal it looks like:
$ cd examples
$ mkdir myApp
$ cd myApp
$ npm init
npm init will initialize your project it will create a package.json file
- Run npm install typescript,.
As a good practice, we will add some compiler settings, within package.json specify to use the tsconfig.json containing all the configurations for your typescript project (created at next step).
"scripts": {
"build": "tsc --p tsconfig.json",
"test": "echo \"Error: no test specified\" && exit 1"
},
Create a new file tsconfig.json at the same level of your previously created package.json
$ touch tsconfig.json
You can copy the content of our tsconfig.json
Install deku-sdk manually by running:
$ npm install "file:../.../sdks/typescript-sdk"
# ../../ because we are in deku/examples/myApp
If you want to learn more about this tutorial, please read our blogpost on Marigold website 30 min to create your first Blockchain app with Typescript & Deku