Hardfork 20 Testnet Details

in #hardfork206 years ago (edited)

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

Sort:  

Got a testnet node built and synced.

Good to hear it... let us know if you think of anything from HF20 that may be good for @steempeak interface

Thanks for participating @pfunk

Got testnet node up and running.. We are excited about testing this coming week :)

let's do this!

Testnet node up and synced. Will there be an opportunity for witnesses to produce and encounter a hardfork on the testnet? It looks like only init witnesses producing for now.

Yes - we will coordinate about this more in the coming week. Also, we will likely reset and set a new test fork date at least a few times. The first is Monday 1pm EST.

Congratulations @steemitdev! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:
SteemitBoard and the Veterans on Steemit - The First Community Badge.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

This post is featured on my daily news show (in Chinese :D) today.


Hi @steemitdev! We are @steem-ua, a new Steem dApp, computing UserAuthority for all accounts on Steem. Starting from the witnesses, UA propagates from user to user based on its followers until equilibrium is reached. We are currently in test mode upvoting quality contributions with a high UA value (UA_author + UA_post)!

This is excellent news. Not only are you guys providing us with the necessary info to log onto the testnet, you're doing it in a single post. This is the kind of update I've been looking for.

I'm looking forward to building steemd for this testnet! Hardfork 20, here we come!