Hardfork 20 Testnet Details

Testnet Live.jpg

Today we launched Steemit’s Testnet which will enable developers to try out HF 20. This post is oriented toward Steem developers and witnesses who are already familiar with the topic. If you’re curious as to why we’ve launched a public Testnet you can read about it in our general announcement

Steemworks, and the entire Steemit Team has been working crazy-fun hours to improve HF20 code and make rapid iteration with our public Testnet possible. If you’re curious about much of the code that makes this possible, checkout our tinman repo.

Testnet Plan & Overview

Over the next few weeks we will test the switch-over from HF19 behavior to HF20 behavior multiple times on the testnet (1st test is 2018-08-27:1:00 using branch 20180824-testnet). During the first week we expect reboots and hardforks on the Testnet to be fairly frequent as we discover issues and create fixes. We hope you’ll help by connecting a node or app, and reporting what you find. Your participation and hacking are exactly what we’re looking for!!

After that, the Testnet will settle into a more regular restart and switch-over schedule. We’ll be announcing broad, policy type changes to how the testnet operates here in @steemitdev. If you’d like to know exactly when reboots and switch-overs are coming, email da@steemit.com for info or join the Steemit Devs Discord (link on developers.steem.io ) and check the testnet channel there.

The Testnet is going to have a smaller amount of STEEM than Mainnet. On reboot it will also contain only balances, not content. When the initial witness node(s) come online, our content pitchforking tool will begin sending Mainnet content from the current head block on. Older content will not be retained (this obviously includes operations done on previous boots of the Testnet).

Some important info

When the testnet restarts, it takes about 2 hours to pull in the accounts and finish booting. During that time, it will be inaccessible.

The Testnet will have a different symbol and chain id. At some point in this process a new chain id may be created for each reboot. This will make sure nodes with old versions are not trying to connect.

Instructions on how to connect follow.

Building and Connecting a Node

First, let's build steemd specifically for testnet. Recommended specs:

  • Ubuntu Server 16.04 LTS
  • 100GB HDD
  • 16GB RAM (mostly needed for steemd build)
sudo apt-get update && sudo apt-get dist-upgrade
sudo reboot

sudo apt-get install autoconf automake autotools-dev bsdmainutils build-essential cmake doxygen \
   git libboost-all-dev libreadline-dev libssl-dev libtool ncurses-dev pbzip2 pkg-config \
   python3-dev python3-jinja2 python3-pip libbz2-dev libsnappy-dev\
   wget curl screen pv virtualenv nano xz-utils
mkdir -p src
cd src
git clone https://github.com/steemit/steem
cd steem
git checkout <20180824-testnet OR develop OR a more current branch>
git submodule update --init --recursive
mkdir -p build
cd build
cmake \
   -DCMAKE_BUILD_TYPE=Release \
   -DBUILD_STEEM_TESTNET=ON \
   -DENABLE_SMT_SUPPORT=ON \
   -DLOW_MEMORY_NODE=ON \
   -DCHAINBASE_CHECK_LOCKING=ON \
   -DCLEAR_VOTES=ON \
   -DSKIP_BY_TX_ID=ON \
   -DSTEEM_LINT_LEVEL=OFF \
   ..
make -j$(nproc) install
cd
mkdir -p testnet-data
nano config.ini

config.ini

log-console-appender = {"appender":"stderr","stream":"std_error"}
log-file-appender = {"appender":"p2p","file":"logs/p2p/p2p.log"}
log-logger = {"name":"default","level":"info","appender":"stderr"}
log-logger = {"name":"p2p","level":"warn","appender":"p2p"}

backtrace = yes
plugin = chain p2p webserver witness database_api network_broadcast_api block_api 

shared-file-dir = "blockchain"
shared-file-size = 12G
p2p-endpoint = 0.0.0.0:2001
webserver-http-endpoint = 0.0.0.0:8751
webserver-ws-endpoint = 0.0.0.0:8752

# testnet.steemitdev.com
p2p-seed-node = testnet.steemitdev.com:2001

… and back on the command prompt:

steemd --data-dir=. 
--chain-id=46d82ab7d8db682eb1959aed0ada039a6d49afa1602491f93dde9cac3e8e6c32

Now let it sync, and you'll have a shiny new testnet seed node to play with.

Connecting an App

Here’s the information you need if you want to connect an application to the testnet (for example, condenser)

  • ChainID: 46d82ab7d8db682eb1959aed0ada039a6d49afa1602491f93dde9cac3e8e6c32
  • Address prefix: TST
  • API node: https://testnet.steemitdev.com

Note: In the near future, we expect the chain id to update with every code change. The address prefix may also evolve. Stay tuned to @steemitdev and check the Steem developer portal for updates.


If you’ve read this far, you’re one of the chosen. Steem relies on you to be awesome. Connect, play. Find bugs. Report bugs. Give us a reason for sleepless nights and better blockchains.

Coffee makers at the ready.

The Steemworks Team

H2
H3
H4
3 columns
2 columns
1 column
20 Comments
Ecency