The Remme team is proud to launch our REMChain testnet. As we previously announced, given the obstacles we faced with the previous blockchain, we decided to migrate chains right in the middle of the project. Having settled up upon the EOSIO codebase, the team has been building and testing the code intensely and would now like to present it to the community to test and take into account their feedback before the launch of the much-awaited mainnet.
Please pay attention that this is not the final version of the testnet. There will be a couple more versions rolled out for the community review before launching the mainnet.
The latest testnet version will allow users to test token transfer, stake/unstake resources, vote for a Block Producer, and perform a token swap. The sections below detail how to get set up with REMChain testnet.
Get familiar with EOSIO codebase
To get a general architecture overview and understanding of how the basic blockchain components interact, please refer to the developer documentation.
Getting started with testnet token faucet bot
The faucet bot helps you with getting set up and creating an account with some tokens in it. With the help of this bot you will get the following data about your testnet account:
- Account name
- Public and private keys to be able to create transactions
Interaction via a light client
This is the option for those users who do not plan to run their own Block Producer (BP) node. Transaction via a light client assumes that you have an external node that you trust (In our example this is testchain.remme.io).
One of the client apps that can play the role of a light client for the Protocol network is the combination of Scatter and block explorer by Remme.
Scatter (the desktop app) – is an app that manages your keys and helps you to sign transactions securely. To get started, follow the instructions below:
- Follow the link to download and install the Scatter app.
- Once you are done with a password and basic setup, go to the Network Settings page within the Administrative section of the menu.
- Select EOSIO type of blockchain and click Add Custom Network button.
- Pick a name for the network, e.g. REMTestChain.
- Set the hostname to testchain.remme.io
- Click the globe to automatically fill in the chain ID or specify it manually: 93ece941df27a5787a405383a66a7c26d04e80182adf504365710331ac0625a7 (means testchain).
- Go to the second tab System Token.
- Activate the custom system token switch.
- Set the Contract field to rem.token.
- Set the Symbol to REM and leave Decimals at 4.
- Click Save new network button.
- REMTestChain should appear on the supported network list, which means that Scatter is ready to work with it.
To add your existing account (created with the bot) to Scatter:
- Go to the Wallet section and click Import key.
- Click the Text button.
- Insert the Private key.
- Once you imported the key, Scatter will automatically fetch your account that is associated with the key.
To start interacting with the network, please follow the link. Our block explorer will connect to Scatter once you select to unlock the wallet or perform something that requires the signature of an account.
Feel free to play with Token Transfer, Staking/Unstaking resources or vote for a Block Producer (in case you were registered as a BP).
As read-only full node
$ brew tap Remmeauth/remprotocol &&
brew install remprotocol
$ wget https://github.com/Remmeauth/remprotocol/releases/download/0.1.0/remprotocol_0.1.0-ubuntu-18.04_amd64.deb && sudo apt install ./remprotocol_0.1.0-ubuntu-18.04_amd64.deb
$ wget https://github.com/Remmeauth/remprotocol/releases/download/0.1.0/remprotocol_0.1.0.el7.x86_64.rpm && sudo yum install ./remprotocol_0.1.0.el7.x86_64.rpm
Boot node and wallet
Get the genesis.json file that contains information about the testchain:
$ wget https://testchain.remme.io/genesis.json
Create config and data directories.
$ mkdir data && mkdir config && touch config/config.ini
In your configuration file (config/config.ini), add these options:
plugin = eosio::chain_api_plugin
plugin = eosio::net_api_plugin
http-server-address = 0.0.0.0:8888
p2p-listen-endpoint = 0.0.0.0:9876
p2p-peer-address = 184.108.40.206:9877
verbose-http-errors = true
These config options should get you into the basic operation mode with your node API available at port 8888. P2p-peer-address points to the other nodes where to fetch the new blocks from (you may specify multiple entries, 220.127.116.11 is the address of a node hosted by Remme).
Run the node
The first run of the node:
$ remnode --config-dir ./config/ --data-dir ./data/ --delete-all-blocks --genesis-json genesis.json
It should start syncing the blocks now. Wait until it downloads past blocks and starts to receive current blocks. Press ctrl+с to stop it.
For the subsecuent runs of the node use:
$ remnode --config-dir ./config/ --data-dir ./data/ >> remnode.log 2>&1 &
The command above will run the node in the background and will save its output to the remnode.log file. If you want to stop the node that runs in the background, run this:
$ killall remnode
At this point, you must be ready to start and connect your node to the network. If your node is connected and synced, this command should return you the information about the chain:
$ remcli get info
Please check the “head_block_time” parameter, it shows the time your node is currently at. If it shows you a date from the past, it means that your node is not yet synced with the network. Before interacting with the network, please wait until this command starts to display the current UTC time, otherwise your transactions may fail.
remcli (analog of cleos in EOSIO terms) is a command-line tool that has a rich variety of functions. It has nearly everything that you may need to interact with the blockchain. You may start getting familiar with it by running remcli --help.
Run the wallet daemon
$ remvault &
Create default wallet
$ remcli wallet create --file walletpass
$ remcli wallet unlock < walletpass
Import your account keys (when asked, enter the private key generated by the faucet bot)
$ remcli wallet import
As a Block Producer
To become a BP you need to register your account via a system smart contract by calling the action regproducer, vote for someone or yourself, set up your node as a full node (described above) and prepare it for block production (so it starts to produce blocks in case you make it to the top21). Before running these commands, please make sure your node is in sync with the network.
$ remcli system regproducer YOURACCOUNTNAME YOURPUBLICKEY https://yourdomain.com
$ remcli system voteproducer prods YOURACCOUNTNAME YOURACCOUNTNAME
In your node config file, add these options:
plugin = eosio::producer_plugin
plugin = eosio::producer_api_plugin
producer-name = YOURACCOUNTNAME
signature-provider = YOURPUBLICKEY=KEY:YOURPRIVATEKEY
Once you run remnode, these config options should get you into BP operation mode with your node. Once your BP account gets into the top21 list, your node will automatically start producing blocks.
Please pay attention that on the contrary to EOS network, Block Producers on REMChain are required to validate the token swaps between the chains and have to run an additional bot (along the remnode) that monitors external blockchains (e.g. Ethereum). The installation steps of the swap-bot are described here.
Block explorer / network monitoring
All the transactions that occur on the blockchain and the information about all the accounts on testnet are visible at the portal.
This portal also lets you perform:
- Token transfers
- Stake/unstake resources
- Vote for producers
- Token Swap between the testnets of ETH and REM
Once everything is diligently tested during the testnet with improvements and tweaks made over multiple testnet iterations, we will move towards launching the mainnet. At this point, we’re eager to collect feedback from the community and improve Remme Protocol. Please contribute by sharing insights you’ve got to our Telegram group or pull requests on GitHub.