Revision c9c8dda7dd0cbdb3204ab36a953deb287277b3f4 authored by Marge Bot on 06 September 2022, 10:47:20 UTC, committed by Marge Bot on 06 September 2022, 10:47:20 UTC
Co-authored-by: Ole Krüger <ole.kruger@trili.tech> Approved-by: Swann Moreau <evertedsphere@gmail.com> Approved-by: Emma Turner <1623821-emturner@users.noreply.gitlab.com> Approved-by: Thomas Letan <lthms@nomadic-labs.com> Approved-by: Romain <romain@nomadic-labs.com> See merge request https://gitlab.com/tezos/tezos/-/merge_requests/6222
april-2019.rst
Mainnet April 2019
==================
As announced on Nomadic Labs' blog, the April release contains many
improvements and fixes for the Tezos shell and its baking daemons.
The release is available as usual in the Git branch or in the Docker
tag `mainnet`.
Enable the testchain
--------------------
When the node is started with the new option ``--enable-testchain``,
it follows both the mainchain and the testchain, once the latter is
started.
Once a node knows about the testchain it will also accept rpc calls
starting with ``/chains/test/`` and as a consequence `tezos-client`
can be used with the option ``--chain test``.
Peers randomization
-------------------
This release includes also improvements for the randomization of peers
on the gossip network.
If you are using a front-end node facing the public internet to hide a node in
private mode, it is important for the ip of the private node to be present in
the front-end's list of trusted peers.
It suffice to pass the private node ip to the ``--peer`` option of the
front-end node.
A lighter setup using snapshots
-------------------------------
In order to minimize the impact of the testchain on a baker's existing
infrastructure, instead of enabling the testchain on the node that is
baking on the mainchain, we advice running a second node.
This second node will enable the testchain and it will be used by the
baking daemons of the testchain.
Deploying a second node can be done without duplicating the existing
chain context, but by starting it using a snapshot from your
first node.
For this purpose the `mainnet` node has a new command ``snapshot
export`` that allows to export a snapshot from a existing whole
context, in history mode full or rolling.
Note that the `mainnet` node can only export snapshots and not import
them.
A node from the Git branch (or Docker tag) `mainnet-snapshots` is
capable of importing a snapshot and starting from it.
This allows for a smaller disk footprint and faster node execution
because of better locality on disk.
Furthermore a `mainnet-snapshots` node will start the testchain by
default.
Note that the branch `mainnet-snapshots` produces and requires a
`tezos-node` directory with version 0.0.2 while a node from the branch
`mainnet` requires version 0.0.1.
The two are incompatible and a node will refuse to start if given the
wrong one.
Single machine setup
--------------------
The suggested setup is to run on the same machine the two nodes,
`mainnet` with standard ports and `mainnet-snapshots` on different
ports.
For the `mainnet` node, the updated 003 daemons can be started as usual.
For the `mainnet-snapshots` node, the 004 daemons should be started
with right port and the option ``--chain test``.
Note that both sets of daemons need access to the same `tezos-client`
directory and it is important that this directory is not duplicated.
There are several precautions in place to avoid double baking and
replaying of operations between networks but all daemons should use
the same `tezos-client` to work properly.
An example of this setup is described later.
Two machine setup
-----------------
If running the `mainnet` node and the `mainnet-snapshots` node on two
separate machines is preferable, it is important that the two sets
of daemons for the main and test chain access the same keys from the
same source.
Duplicating keys in never advisable.
This setup can be chosen if you use the Ledge baking app from
Obsidian Systems or a remote signer, such as `tezos-remote-signer`.
They both support the testchain and implement mechanisms to prevent
double baking.
Example setup
-------------
Here's a example of the procedure to set up two nodes on the same
machine, running on different ports, built from sources.
1. Compile the binaries for the two branches `mainnet` and `mainnet-snapshots`
and copy them into two directories `~/bin-main` and `~/bin-test`.
For example for `mainnet`::
git fetch --all
git checkout mainnet
git reset --hard origin/mainnet
make
mkdir ~/bin-main
cp tezos-* ~/bin-main/
git checkout mainnet-snapshots
git reset --hard origin/mainnet-snapshots
make
mkdir ~/bin-test
cp tezos-* ~/bin-test/
2. Gracefully stop your old node and using the new node from `mainnet`, export a
snapshot in the history mode you prefer, default is `full`::
~/bin-main/tezos-node snapshot export mainnet-$(date +%F).full --data-dir ~/.tezos-node
3. Restart the node and daemons for the main chain with default ports::
~/bin-main/tezos-node run --net-addr [::]:9732 --rpc-addr localhost:8732 --data-dir ~/.tezos-node
~/bin-main/tezos-baker-003-PsddFKi3 -P 8732 -d ~/.tezos-client run with local node ~/.tezos-node <account>
~/bin-main/tezos-endorser-003-PsddFKi3 -P 8732 -d ~/.tezos-client run <account>
~/bin-main/tezos-accuser-003-PsddFKi3 -P 8732 -d ~/.tezos-client run
4. Import the snapshot with the node from `mainnet-snapshots` to populate the
new directory `~/tezos-node-testchain`::
~/bin-test/tezos-node snapshot import mainnet-$(date +%F).full --data-dir ~/tezos-node-testchain
5. Generate a fresh network identity::
~/bin-test/tezos-node identity generate --data-dir ~/tezos-node-testchain
6. Restart the node and daemons for the test chain on different ports::
~/bin-test/tezos-node run --net-addr [::]:9733 --rpc-addr localhost:8733 --data-dir ~/tezos-node-testchain
~/bin-test/tezos-baker-004-Pt24m4xi --chain test -P 8733 -d ~/.tezos-client run with local node ~/tezos-node-testchain <account>
~/bin-test/tezos-endorser-004-Pt24m4xi --chain test -P 8733 -d ~/.tezos-client run <account>
~/bin-test/tezos-accuser-004-Pt24m4xi --chain test -P 8733 -d ~/.tezos-client run
Once the testchain starts the 004 daemons will automatically wake up
and the chain will progress.
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...