Version 19.1¶
Version 19 contains a new version (V11) of the protocol environment, which is the set of functions that a protocol can call. This new version is used by the new version of Atlas, protocol proposal for the successor of Nairobi. This release contains the Atlas protocol proposal itself, as well as its associated protocol-specific executable binaries (baker, accuser, etc).
Following the recent security alert for RPC nodes (and other public-facing infrastructure) operators, version 19.1 hardens the default RPC ACL whitelist when starting an RPC server. The same document provides further recommendations on operating securely public facing infra.
In addition, Mavkit v19.1 introduces a --max-active-rpc-connections <NUM>
option, that limits the number
of active RPC connections per server to the provided argument. The
default limit is set to 100.
Finally, version 19.1 now shuts down the node gracefully when hitting an “unknown key” error raised by Irmin. This prevents the node to run indefinitely in a failing state.
Rollup node¶
Starting from version 19, the rollup node is protocol-agnostic – This change was also backported to v18.1.
This means that a single executable, mavkit-smart-rollup-node
can be used with any Tezos protocols.
The old executable names have been kept as symbolic links, but will be removed in a future version.
The rollup client is not released anymore. Equivalent RPCs to the rollup node must be used instead of its commands.
========================================== ====================================================
Command RPC
========================================== ====================================================
get smart rollup address [GET global/smart_rollup_address]
------------------------------------------ ----------------------------------------------------
get state value for <key> [-B --block [GET global/block/<block>/state]
<block>]
------------------------------------------ ----------------------------------------------------
get proof for message <index> of outbox [GET /global/block/<block-id>/helpers/proofs/outbox/
at level <level> transferring <outbox_level>/messages] with message index in query
<transactions>
------------------------------------------ ----------------------------------------------------
get proof for message <index> of outbox [GET /global/block/<block-id>/helpers/proofs/outbox/
at level <level> <outbox_level>/messages] with message index in query
========================================== ====================================================
The result of encode outbox message <transactions>
can be achieved:
mavkit-codec encode alpha.smart_rollup.outbox.message from <transactions>.
The keys in the Smart Rollup client use the same format as the Mavkit client.
They can be imported with mavkit-client import secret key <sk_uri>
, or by merging the key files
between the mavkit-client
base directory and the smart-rollup-client-<proto>
base directory.
The Smart Rollup node now allows multiple batcher keys. Setting multiple keys for the batching purpose allows to inject multiple operations of the same kind per block by the rollup node.
Version 19 introduces a history-mode option for the rollup node.
It can be either archive
or full
.
The full
mode integrates garbage collection that reduces the disk usage.
By default, the rollup node runs in archive
mode, without the GC.
Version 19.1 fixes a critical bug that could happen on a full
rollup node.
This bug leads to data loss when chain reorganizations happen while a GC is running.
In addition, it fixes the protocol migration on the rollup node. The constants are now fetched from a correct context, preventing failure in case the rollup node is stopped before processing the protocol migration.
Warning
Due to the new default ACL, the Mavkit node requires allowing some specific RPCs from the rollup node if it is running on a remote machine or a different network interface. Check the rollup node documentation for more details on the prerequisites.
Update Instructions¶
To update from sources:
git fetch
git checkout v19.1
make clean
opam switch remove . # To be used if the next step fails
make build-deps
eval $(opam env)
make
If you are using Docker instead, use the v19.1
Docker images of Mavkit.
You can also install Mavkit using Opam by running opam install mavkit
.
It is now also possible to download experimental Debian and Redhat packages on the release page and in the package registry.