I recently had an opportunity to try Algorand’s BetaNet. Similar to the TestNet, the BetaNet is a place for developers to experiment. Unlike the TestNet where nodes run stable code, the BetaNet runs with features not yet on the live network.
For good instructions from the The Algorand team see official BetaNet docs and get help when needed at the BetaNet forum.
My notes (this post) may help, if you’re setting up a short-lived node for local development or testing.
BetaNet Build
Ensure the Algorand tools are built for compatibility with BetaNet.
If building source, use the rel/beta
branch. Use algod -v
to
check:
$ algod -v
4295032836
1.1.4.beta [rel/beta] (commit #e8ef805d)
go-algorand is licensed with AGPLv3.0
source code available at https://github.com/algorand/go-algorand
BetaNet Configuration
I built the tools from souce, so my paths to the betanet config files
differ from the instructions on
algorand.org. In my case, code is
in $HOME/gopath/algorand/src/
.
I made a directory $HOME/betanet.data/
to store configuration.
Here’s how I first set it up:
cp $HOME/gopath/algorand/src/github.com/algorand/go-algorand/installer/genesis/betanet/genesis.json $HOME/betanet.data/
cp $HOME/gopath/algorand/src/github.com/algorand/go-algorand/installer/config.json.example $HOME/betanet.data/config.json
Important:
Specifically for BetaNet, manually edit config.json
, changing
“<network>.algorand.network” to “<network>.algodev.network”.
Data Directory
As our node syncs with the network, it’s going to save a lot of data to disk. Algorand is fast, so our writes must be fast to stay in sync. Also, we want to avoid a lot of churn on the disk of our development environment. Both of these concerns can be addressed by storing data on a RAM disk rather than physical disk.
Examples in the official docs put data in $HOME/node/data
, so let’s
do the same.
First, setup a RAM disk:
sudo mount -t tmpfs -o size=2g tmpfs ~/node/data/
(Two gig is a pretty arbitrary choice. It appears that algod
will
consume about as much space as you allow it.)
Next put the config files into the RAM disk:
cp $HOME/betanet.data/* $HOME/node/data/
That’s it. $HOME/node/data
is set up.
Start Algorand Node
From here we follow the official instructions.
cd $HOME/node
goal node start -d data
It can take a little while to sync. Hopefully the RAM disk makes this faster than it would be otherwise.
I used watch
with goal node status
to keep an eye on it.
watch -d goal node status -d data
Dont’ be fooled by Has Synced Since Startup: false
. Apparently, it
never shows
true
.
Stop Algorand Node, Cleanup
To shutdown cleanly, stop algod
:
goal node stop -d data`
Save data to more permanent disk, before unmounting RAM disk:
rsync -rv data/* $HOME/betanet.data
sudo umount data
Share this post
Twitter
Facebook
Reddit
LinkedIn
StumbleUpon
Email