Mainnet-Staging October 2019#
This release changes the storage backend and requires specific care when updating.
The new storage backend uses a different file format for context files, which contain chain data. As a result, a mainnet node in archive mode requires less than 40GB disk space, compared to more than 200GB before that.
To upgrade a mainnet node which is in archive mode, you need to
bootstrap from scratch (delete the old context and store folders in the
.tezos-node
data directory, otherwise the node will not start).
The synchronization process usually takes a few days. Don’t forget to
run your node with --history-mode=archive
as this setting will be lost.
To upgrade a mainnet node which is not in archive mode, export a snapshot before updating to this release. Then update your node and import the snapshot.
If you were testing the feature on branch mainnet-pack-validator
,
you were already using the new storage format and
you do not need to bootstrap from scratch or use a snapshot.
However, the storage format did change slightly since this branch
and you need to convert it. To this end, update your node and run:
dune exec -- vendors/index/fix.exe <data-dir>
Depending on your hardware this can take a few minutes.
Another notable change is that validation now runs in an external process.
This means, in particular, that your node should be more responsive to
RPC calls. This behavior can be disable using command-line flag --singleprocess
.
Changelog#
Shell#
Improve storage efficiency by switching from LMDB to new
pack
backendMake validation run in an external process (can be disabled with –singleprocess)
Improve bootstrap efficiency
Slightly improve log readability
Remove hardcoded testchain TTL
Docker Images#
Default Docker image is now stripped of debug symbols, reducing size by 70Mb
New
bare
image is also stripped and does not have thealphanet.sh
entrypointNew
debug
image is the old default image, i.e. not stripped
Codec#
New binary:
tezos-codec
to encode and decode Tezos values
Baker#
Use
preserved_cycles
from configuration instead of hard-coded constant
Client#
Add
--verbose-signing
to client for consistencyChange output of command
hash data
(replaceHash
withScript-expression-ID-Hash
andRaw Script-expression-ID-Hash
)
All Binaries#
Handle
SIGINT
andSIGTERM
more consistently
Build System#
Fix
make build-dev-deps
so that installing merlin does not change other packages