æpps Update: Our Networks and How to Use Them

Introducing the three æternity networks that you can use for testing and development.

Introduction: Three Networks

æternity currently runs three networks. Each network serves a different purpose, and can be placed on a scale of stability versus bleeding edge features.

sdk-testnet and sdk-edgenet

The SDK team currently runs two networks: sdk-testnet and sdk-edgenet. sdk-testnet is the latest stable release, and sdk-edgenet is the next.

At the time of writing, Testnet is at epoch version 0.24 and Edgenet is at version 0.25 of Epoch.

sdk-testnet Audience

The intended audience for this network is people using released versions of our SDKs (GitHub releases or npm/yarn default install).

Most software developers should use sdk-testnet. Our contracts deployment tool, available at contracts.aepps.com, is connected to this network.

sdk-edgenet Audience

The intended audience for this network are people who are developing the SDKs, and developers who need the latest features from the develop branch on GitHub.

uat-testnet

The æternity core team runs another network, uat-testnet. It is used for testing and is not guaranteed to work with the SDKs built by æternity. However, it is the network that has the very latest features. If you are performance testing the network, testing mining, or hacking on æternity yourself, you may find this network useful.

uat-testnet Audience

The intended audience for this network are core developers, miners, and people who want to track the bleeding edge. You may be unable to connect to this network using our SDKs; this is because it is a version later than the ones they support. We do not offer a blockchain explorer or a wallet for this network.

Which Testnet Should You Use?

In most cases, the sdk-testnet is recommended, as our tools are built to run on it. Connecting to this network will allow any user to take advantage of everything our tools offer:

  • smart contract deployment;
  • acquiring tokens via the faucet;
  • the functionality offered by our SDKs;
  • a functional wallet;
  • a blockchain explorer, and more.

Anyone who is interested in SDK development can connect to the sdk-edgenet.

The uat-testnet is only relevant to core developers, miners, and people who want to track the bleeding edge. Our tools do not support the uat-testnet and the only way to get tokens for it is via mining.

Installation and Our Networks

If you download our SDK from package managers, you will automatically connect to the sdk-testnet. If you clone the SDK repository, you will connect to the sdk-edgenet. Alternatively, if you use your own nodes, you may select whichever version you prefer.

A Guide to Version Numbers

Here is how the version numbers correspond to Epoch versions and other releases.

0.24.0-0.2.0 - Universal Flavor & Improved RPC
^^^^^^ ^^^^^^^^
| |
| SDK version (next would be 0.24.0-0.3.0)
epoch version

Getting Tokens

There are two ways of getting tokens: the faucets operated by the SDK team will give you tokens for no effort at all, or you can mine your own, which is obviously cooler.

Faucets

sdk-testnet: https://faucet.aepps.com/
sdk-edgenet: https://edge-faucet.aepps.com/

The SDK team does not provide tokens for the uat-testnet via a faucet.

Mining

The simplest way of to mine is by using Docker. First, ensure you have Docker installed and running, then do the following.

First, determine the version of Epoch you need using the /v2/statusendpoint. Example output on sdk-edgenet:

// 20181109160745
// https://sdk-edgenet.aepps.com/v2/status
{
"difficulty": 2017450664,
"genesis_key_block_hash": "kh_2D3fMvkjuNaDwsrTctR4DjWUzztys8b1NBQrQYedTgCvZSkGpJ",
"listening": true,
"node_revision": "765f9cc0fb0904adb4efd0acfecd3c78c0d570f3",
"node_version": "0.25.0",
"peer_count": 0,
"pending_transactions_count": 0,
"protocols": Array[1][
{
"effective_at_height": 0,
"version": 28
}
],
"solutions": 0,
"syncing": true
}

The node_version field tells you this is version 0.25.0

Now you need to make a config file. The current versions of sdk-testnet and sdk-edgenet are versions 0.24.0 and 0.25.0, and appropriate config files for these are provided below. Later versions of Epoch will almost certainly have different formats, so bear this in mind.

Create a file myepoch.yaml, with contents the contents below for v0.24.0

---
peers:
- aenode://pp_HdcpgTX2C1aZ5sjGGysFEuup67K9XiFsWqSPJs4RahEcSyF7X@sync.sdk-testnet.aepps.com:3015
keys:
password: "top secret"
dir: ./keys
chain:
persist: true
mining:
autostart: true
beneficiary: "ak_2iBPH7HUz3cSDVEUWiHg76MZJ6tZooVNBmmxcgVK6VV8KAE688"
cuckoo:
miner:
executable: mean16s-generic
extra_args: ""
node_bits: 16

…and the contents below for v0.25.0

---
peers:
- aenode://pp_HdcpgTX2C1aZ5sjGGysFEuup67K9XiFsWqSPJs4RahEcSyF7X@sync.sdk-edgenet.aepps.com:3015
keys:
peer_password: "top secret"
dir: ./keys
chain:
persist: true
mining:
autostart: true
beneficiary: "ak_2iBPH7HUz3cSDVEUWiHg76MZJ6tZooVNBmmxcgVK6VV8KAE688"
cuckoo:
miner:
executable: mean16s-generic
extra_args: ""
node_bits: 16

Make sure you replace ak_2iBPH7HUz3cSDVEUWiHg76MZJ6tZooVNBmmxcgVK6VV8KAE688 with the public key to a wallet you control, unless you wish to donate your mining proceeds to the SDK team (strongly encouraged).

Please note that we use a different miner on our test networks — we use one which is less compute intensive, since we’re not running a full, secure blockchain.

Now you can run it with a command similar to this:

docker run \ 
-p 3013:3013 \
-v $PWD/myepoch.yaml:/home/epoch/myepoch.yaml \
-e EPOCH_CONFIG=/home/epoch/myepoch.yaml \
aeternity/epoch:vXX.Y.Z

Just replace $PWD/mypoch.yaml with the path to the file you created, and XX.YY.Z with the version, i.e. 0.24.0 (currently) for the sdk-testnet, 0.25.0 (at time of writing) for the sdk-edgenet. These will of course change.

If all is well you should see output similar to this:

15:17:29.362 [info] TX-pool sync requries getting 0 TXs
15:17:29.757 [info] TX-pool sync added 0 TXs
15:17:30.212 [info] TX-pool synchronization finished!
15:17:42.344 [info] Synced blocks 1 - 1
15:17:50.976 [info] Synced blocks 2 - 35
15:17:51.775 [info] Synced blocks 36 - 96
15:17:52.009 [info] Synced blocks 97 - 100

After following these steps, congratulations! You will be able to successfully mine on the sdk-testnet/sdk-edgenet.


Interested in æternity? Get in touch:

GitHub | Forum | Reddit | Telegram | Twitter | Facebook | Mail


Leave a Reply

Your email address will not be published. Required fields are marked *