RSK starter box
RSK Truffle Starter Box
This box comes with everything you need to start using Truffle on RSK Blockchain. It includes network configurations for Mainnet, Testnet and the SimpleStorage contract as an example to deploy.
RSK is an open source platform for Ethereum compatible smart contracts based on the Bitcoin network.
Requirements
Node.js and NPM are needed, though both are usually installed at once.
Go to Node.js if you need to install it.
- Truffle
Install Truffle globally
npm install -g truffle
Installation
- Create a new folder.
For example, create the folder rsk-starter
.
Navigate to the folder in the terminal.
mkdir rsk-starter
cd rsk-starter
- Run the unbox command. This will install all necessary dependencies.
truffle unbox rsksmart/rsk-starter-box
Development console
Truffle has an interactive console that also spawns a development blockchain. This is very useful for compiling, deploying and testing locally.
- Run the development console.
truffle develop
- Take a look at the smart contract
SimpleStorage.sol
. You can check it out in foldercontracts
.
This smart contract has:
- A variable
storedData
to store a number - A function
get()
to return the number stored at variablestoredData
- A function
set()
to change the number stored at variablestoredData
- Compile and migrate the smart contract. Note inside the development console we don't preface commands with truffle.
compile
migrate
- Running contract tests.
Our box also comes with the file TestSimpleStorage.js
for testing the smart contract. You can check it out in the test
folder.
test
NOTE: This box is the starting point for the RSK tutorial Using rsk-starter-box.
Using RSK networks
Truffle makes developing on RSK easier because we can configure custom networks for RSK. The networks are already configured in the truffle-config.js
file.
Setup an account & get RBTC
- Get an address using these instructions.
- For the RSK Testnet, get tRBTC from our faucet.
- For the RSK Mainnet, get RBTC from an exchange.
Setup the gas price
Gas is the internal pricing for running a transaction or contract. When you send tokens, interact with a contract, send RBTC, or do anything else on the blockchain, you must pay for that computation. That payment is calculated as gas. In RSK, this is paid in RBTC. The minimumGasPrice is written in the block header by miners and establishes the minimum gas price that a transaction should have in order to be included in that block.
To get the minimumGasPrice do the following steps:
-
Run this query using cURL:
Mainnet
curl https://public-node.rsk.co/ \ -X POST -H "Content-Type: application/json" \ --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}'
Testnet
curl https://public-node.testnet.rsk.co/ \ -X POST -H "Content-Type: application/json" \ --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false],"id":1}'
-
Find in the result the field minimumGasPrice
For more information about the Gas and minimumGasPrice please go here.
Connect to RSK
-
Copy your mnemonic to
truffle-config.js
// truffle-config.json const HDWalletProvider = require('@truffle/hdwallet-provider'); //Put your mnemonic here, be careful not to deploy your mnemonic into production! const mnemonic = 'A_MNEMONIC';
Please be aware that we are using
HDWalletProvider
with RSK Networks derivations path:- RSK Mainnet dpath:
m/44’/137’/0’/0
- RSK Testnet dpath:
m/44’/37310’/0’/0
For more information check RSKIP57.
- RSK Mainnet dpath:
-
Check the gas price of the network, and update
truffle-config.js
if necessary. -
Run the truffle console for any RSK network.
# Console for Mainnet truffle console --network mainnet # Console forn Testnet truffle console --network testnet
-
Compile and migrate the smart contracts. Note that inside the development console, we don't preface commands with truffle.
compile migrate
-
Another option is to run the below commands directly in the terminal, out of the truffle console.
truffle compile truffle migrate
Next steps
- Go to tutorial
Go to the tutorial Using rsk-starter-box to learn how to interact with SimpleStorage.sol
. Also, we covered all the steps with more details, explanations, and images.
- Find more documentation
Check out the RSK developers portal.
- Do you have questions?
Ask in the Rootstock community Discord.