Version 1.1 =========== .. note:: **Mavryk/Tezos Version Mapping:** Mavryk is forked from Tezos and uses its own versioning system. Mavryk Version 1 (Atlas) corresponds to Tezos Oxford (v19). Git tags follow Tezos versioning for compatibility (e.g., ``v19.3-mavryk`` for this release). Version 1 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 :doc:`Atlas <../protocols/001_atlas>` protocol, the first protocol of the Mavryk blockchain. This release contains the Atlas protocol itself, as well as its associated protocol-specific executable binaries (baker, accuser, etc). .. _acl_fix: Following security best practices for RPC nodes (and other public-facing infrastructure) operators, version 1.1 hardens the default RPC ACL whitelist when starting an RPC server. In addition, Mavkit v1.1 introduces a ``--max-active-rpc-connections `` option, that limits the number of active RPC connections *per server* to the provided argument. The default limit is set to 100. Finally, version 1.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 1, the rollup node is *protocol-agnostic*. This means that a single executable, ``mavkit-smart-rollup-node`` can be used with any Mavryk 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. .. code-block:: rst ========================================== ==================================================== Command RPC ========================================== ==================================================== get smart rollup address [GET global/smart_rollup_address] ------------------------------------------ ---------------------------------------------------- get state value for [-B --block [GET global/block//state] ] ------------------------------------------ ---------------------------------------------------- get proof for message of outbox [GET /global/block//helpers/proofs/outbox/ at level transferring /messages] with message index in query ------------------------------------------ ---------------------------------------------------- get proof for message of outbox [GET /global/block//helpers/proofs/outbox/ at level /messages] with message index in query ========================================== ==================================================== The result of encode outbox message ```` can be achieved: ``mavkit-codec encode alpha.smart_rollup.outbox.message from .`` 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 ``, or by merging the key files between the ``mavkit-client`` base directory and the ``smart-rollup-client-`` base directory. The Smart Rollup node now allows multiple :ref:`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 1 introduces a :ref:`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 1.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 :ref:`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 :ref:`the rollup node documentation ` for more details on the prerequisites. Update Instructions ------------------- To update from sources:: git fetch git checkout v19.3-mavryk 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.3-mavryk`` 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 `_. Changelog --------- - `Version 1.1 <../CHANGES.html#version-1-1>`_ - `Version 1.0 <../CHANGES.html#version-1-0>`_ - `Version 1.0~rc1 <../CHANGES.html#version-1-0-rc1>`_