Build and run the Hello World dapp
In this topic, you'll build and deploy the Hello World
dapp with the
Chromia Command-line Interface (Chromia CLI). Read
more about the features of the Chromia CLI in the Chromia CLI command reference
section.
Prerequisite
- Install Visual Studio Code; see VS Code Installation Guide.
- Install PostgreSQL database; see Set up PostgreSQL database.
- Install Java Development Kit (open JDK) and have at least Java 17; see see JDK Installation Guide.
- Install Chromia CLI; see Install and configure Chromia CLI.
Run dapp in Chromia CLI
Once you install the Chromia CLI, it's time to create a project.
- Create the project folder in a path of your choice and use the
chr create-rell-dapp
command.
mkdir My_Rell_Project
cd My_Rell_Project
chr create-rell-dapp
The chr create-rell-dapp
command creates a new Rell structured project with the
necessary files. A main.rell
file, which includes the Hello World
query and test files in the src/test/
folder.
You also have a standard configuration for your project in the chromia.yml
file. For more information, see the
project config file.
My_Project
|--chromia.yml
|--_src
|--main.rell
|--_test
|--arithmetic_test.rell
|--data_test.rell
The next step is to start a node and run your app locally. You can do it in a couple of different ways, but the most straightforward method we recommend is the Chromia CLI.
-
Use the
chr node start
command to start a node. Make sure it's available in the same working directory where you have thechromia.yml
file.chr node start
The
chr node start
command starts a node with your applications running on it. All the blockchains listed in theblockchains
key in thechromia.yml
file get started.
blockchains:
hello: <----- This is the blockchain that starts
module: main <----- This is the entry point of the chain
If you are running the node on a different URL than the default http://localhost:7740
, you can use the --api-url
to
specify it.
Now the node should be up, where the Rell backend is running with a local blockchain. Locate the Blockchain RID in the output of the node. You need it to interact with your dapp. The Blockchain RID is the hex value following the Blockchain RID: tag. For example, see the following image.
The last step is to query your dapp and test that the backend works correctly.
- Write the following in a new terminal with your project folder as the working directory. Remember to replace the
<BlockchainRID>
with your Blockchain RID from the node output.
chr query --blockchain-rid <BlockchainRID> hello_world
Your terminal should show you the following message.
"Hello World!"
Great job. The Rell backend is up and running and works as it should. You have now run a Hello World
dapp in the
Chromia CLI.
Run dapp in VS Code
The extension enables language features for Rell, including syntax highlighting and compilation warnings. It contributes the commands Rell: New Template Project and Rell: Invalidate index caches, which are available in the Command Palette. Once you install the extension, it's time to create a project.
- Open the Command Palette by going to the menu View - Command Palette. Type Rell: New Template Project and run the command.
The command Rell: New Template Project creates a new Rell structured project with the necessary files. A main.rell
file, which includes the Hello World
query and test files in the src/test/
folder. You also have a standard
configuration for your project in the chromia.yml
file. For more information, see the
project config file.
My_Project
|--chromia.yml
|--_src
|--main.rell
|--_test
|--arithmetic_test.rell
|--data_test.rell
Make sure to set the same password and username as your database instance if you didn't choose the default one from Set up PostgreSQL database. You can change this under the database attributes in the project config file.
The next step is to start a node and run your app locally. You can do this in a couple of different ways, but the most straightforward method we recommend is the Chromia CLI.
- Use the
chr node start
command to start a node. Make sure it's available in the same working directory where you have thechromia.yml
file.
This command starts a node that contains your app. For more information, see Deploy your dapp to testnet or node command.
Locate the Blockchain RID in the terminal output. You need it to interact with your dapp. The Blockchain RID is the hex value following the Blockchain RID: tag. For example, see the following image.
The last step is to query your dapp and test that the backend is working correctly.
- Write the following command in a new terminal with your project folder as the working directory. Remember to replace
the
<BlockchainRID>
with your Blockchain RID from the node output.
curl -X GET 'localhost:7740/query/<BlockchainRID>?type=hello_world'
The CURL
command requires the blockchain on localhost
and port 7740
, which are the standard settings. It also
calls the Hello World
query in the main.rell
file. Your terminal should show you the following message.
"Hello World!"
Writing CURL
commands to query your backend is a safe approach, but for future queries, you might want use the
query command in the Chromia CLI.
Great job. The Rell backend is up and running and works as it should. You have now run a Hello World
dapp in VS Code.
For your next steps with Rell, feel free to follow the courses on the Chromia learning platform.