Devnet Pre-Release 1.1.6alpha4
Pre-releaseAs usual, the team has been making tons of changes behind the scenes to further test and improve the functionality of the Mina Daemon. To test all of these changes properly, we are releasing this alpha
build for our Test Network devnet
to allow for safer and more thorough testing before upgrading mainnet everywhere. All of these changes have been tested in some form internally, but very few hours have been logged on them as a group, and we need your help to properly test how reliable the changes are. Please notify us with new github issues or on discord if you encounter any regressions since 1.1.5, we want to get them resolved for you ASAP so the stable release of 1.1.6 can be perfect!
This release includes a variety of new features that the community has been hoping or asking for, as well as major reliability improvements as we track down each crash and stuck node. The team even added 57 improvements for CI/CD to ensure all new changes are properly tested! Docker images no longer need to be baked
, the genesis proof is not generated or required after the first few blocks of a network, and snark keys are only downloaded on first use!
From now on builds will be packaged and released to the debian repo based on debian release codenames (stretch
for Debian 9/Ubuntu 18.04 and soon buster
for Debian 10 / Ubuntu 20.04), and a release channel (alpha
, beta
, stable
, unstable
). To move your machine to the alpha
channel and install this build you must first execute the following:
echo "deb [trusted=yes] http://packages.o1test.net stretch alpha" | sudo tee /etc/apt/sources.list.d/mina-alpha.list
echo -e "Package: mina-mainnet\nPin: release c=alpha\nPin-priority: 1" | sudo tee /etc/apt/preferences.d/99-mina-alpha
sudo apt-get update
This creates two files, /etc/apt/sources.list.d/mina-alpha.list
which configures the stretch/alpha
repository, and /etc/apt/preferences.d/99-mina-alpha
which lowers the "preference" of mina-mainnet alpha packages so that you do not accidentally install mainnet packages. Delete these two files and reinstall mina if you want to downgrade back to 1.1.5.
New Features:
GraphQL:
- Match GraphQL sync status with the daemonStatus #8255
- Allows the
pooledUserCommands
query to select transactions by hash or ID, to make it more consistent withtransactionStatus
#8293 - Adds new GraphQL endpoint
stagedLedgerProofEmitted
to indicate that a new staged ledger proof was formed #8658
CLI Commands:
mina advanced vrf
is a set of new advanced commands for generating and evaluating VRF witnesses to prove that your key has won a slot #8814mina advanced hash-transaction
is a new command for hashing transactions #8294mina ledger export snarked-ledger
is a new command for exporting snarked ledgers with proven balances #8844- Show the coinbase-receiver in
mina client status
if it is set, and adds a new commandmina advanced set-coinbase-reciever
to change the coinbase receiver at runtime #8127 mina advanced chain-id-inputs
is a new command for displaying the inputs to the ChainID #8264mina advanced send-rosetta-transaction
now immediately sends the transaction instead of waiting for the command to exit #8186mina accounts
commands now support retrieving/uploading keys and account information over a remote graphQL interface instead of just local files #7282- Return exit code 1 when
mina ledger export
commands fail #8720 - New flag
--minimum-block-reward
tomina daemon
that allows a block producer to set the minimum net reward from producing a block. #8605- Addresses concerns from #8576 and block producers who have overpaid for snark work. If paying the fees for a given snark would drop the resulting profit below the given value, an empty block with no transactions is produced instead.
Other:
- More coda->mina changes #8238
- Allow passing peers-list-url parameter as part of the daemon.json or other config file #8295
- Quieter logging and improved messaging during daemon startup #8261 #8203 #8146 #8260 #8488 #8503
Stability Improvements and Bug Fixes:
- Guard against underflow when calculating balances via GraphQL #8096
- More thorough fix for nodes getting stuck at old block heights #8352 #8358 #8419 #8506
- Don't add "extra" snark work even if there is space and budget #8098
- Check that keys are valid before adding transaction to the pool #8442
- Fix edge case where transactions were dropped from the mempool #8473
- Check the validity of keys when they are provided as arguments to the CLI #8447
- Catch errors when the chain runs out of available accounts in the ledger #7258
- More verbose logging around long async cycles to help debug their source #8809
- Rebroadcast snark work until it is included in a block #8793
- Prevent crashes caused by short forks off of the root of the transition frontier #8952
- Rebroadcast transactions in chunks to better support reliable transaction broadcasts #8965
- Make calls to the verifier async to avoid lockups and bottlenecks in verifying transactions #8961
Improved Packaging and CI:
- Use the mina-mainnet package in docker #8239
- Terraform for mainnet and devnet2 #8225 #8179 #8250 #8248
- Attempted fix of clientSDK publish CI job #8325
- Optional Genesis Proof, Prover/Verifier Keys, and other network-specific artifacts at build-time and at startup #8497 #8584 #8672 #8764 #8947
- New tool for managing generated/downloaded keys,
snark_keys/gen_keys.exe
, which takes in a config-file and downloads or generates the appropriate artifacts #8554 - Refactor docker entrypoint script to be more flexible and allow for arbitrary scripts to execute in
/entrypoints.d/
#8263 - Enable Alpha Builds #8876
- coda->mina across CI/CD, scripts, and docker/debian tags
- consolidate mainnet, devnet, and archive-node builds into a single job
- migrate Ubuntu 18.04 containers to debian:stretch-slim for lightness
- lay groundwork for Ubuntu 20.04 and Debian Buster support
- remove legacy code including circle-ci
- adds
dockerfiles/Dockerfile-deb-builder
which can build complete .deb packages for all mina packages - remove debugging symbols from dune builds
- remove unused dependencies from debian packages
Improvements to ancillary tools (rosetta, archive-node, sidecar, etc.)
Rosetta:
- Add minimum transaction fee to Rosetta #8170
- New functions in the ClientSDK for supporting Rosetta-formatted keypairs #8324
- Add locked_ and total_ balance metadata to Rosetta account and balance responses #8141
- Add support for network=mainnet to Rosetta #8877
Libraries:
- New version of
ppx_version
#8435 #8734 - New version of snarky #8908
- Additional utility library for managing
Pickles_types
#8075
Archive-node and related tools:
- Canonical representation for "extensional blocks" for backing up and restoring archive node data #8312
mina-extract-blocks
tool for restoring archive node data from an existing archive node #8343mina-replayer
improvements #8329 #8717 #8739 #8751- Tools for patching bad balances from before the 1.1.5 archive node release #8583 #8611 #8732
Delegation Compliance App:
- New Delegation Compliance App for calculating payments back to the foundation from the top 120 block producers #8735 #8760 #8792 #8873 #8884 #8923
Sidecar:
Documentation:
- #8374 Blockchain proof verification
- #8486 Child Processes
- #8428 bin_io Serialization Format
- #8670 Fix link to the CONTRIBUTING doc
- #8678 Improved README-dev.md
Monitoring, Testing, Alerting:
And 57 separate PRs to improve our monitoring, testing, and alerting infrastructure:
#8077 #8050 #8099 #8241 #8249 #8214 #8216 #8182 #8259 #8300 #8313 #8302 #8328 #8342 #8360 #7842 #8258 #8240 #8237 #8332 #8414 #8427 #8361 #8341 #8458 #8233 #8455 #8530 #8596 #8606 #8535 #8637 #8631 #8645 #8622 #8582 #8691 #8676 #8689 #8640 #8664 #8707 #8688 #8683 #8768 #8752 #8740 #8783 #7884 #8758 #8810 #8861 #8871 #8869 #8850 #8909 #8926
Complete Changelog:
Linked below is the full git history between 1.1.5 and 1.1.6alpha2. Split into 4 chunks as github will only display 250 commits at a time:
- February 22-March 4: 1.1.5...16d41f4
- March 4-April 6: 16d41f4...0e14abf
- April 6-May 3: 0e14abf...19a5324
- May 3-June 2: 19a5324...1.1.6alpha4
Upgrading & Connecting
Daemon Release Artifacts:
NOTE: For devnet only!
Docker Image:
gcr.io/o1labs-192920/mina-daemon:1.1.6alpha4-74793a2-devnet
Debian Package:
To allow for installation of mina-devnet alpha builds but prevent installing mina-mainnet alphas:
echo "deb [trusted=yes] http://packages.o1test.net stretch alpha" | sudo tee /etc/apt/sources.list.d/mina-alpha.list
echo -e "Package: mina-mainnet\nPin: release c=alpha\nPin-priority: 1" | tee /etc/apt/preferences.d/99-mina-alpha
sudo apt-get update
sudo apt-get install -y mina-devnet=1.1.6alpha4-74793a2
Archive Node Release Artifacts:
NOTE: For devnet only!
Docker Image:
gcr.io/o1labs-192920/mina-archive:1.1.6alpha4-74793a2-devnet
Debian Package:
sudo apt-get install -y mina-archive-devnet=1.1.6alpha4-74793a2
Schema for initializing postgres:
create_schema.sql
Sandbox Node: For testing in an isolated, single-node network without snarks
As of 1.1.6, the demo functionality is built into the standard daemon container, via the environment variable RUN_DEMO=true
.
Just docker run -it --name mina-demo -e RUN_DEMO=true gcr.io/o1labs-192920/mina-daemon:1.1.6alpha4-74793a2-devnet
and go!
Block Producer Stats Sidecar:
The block producer sidecar has been upgraded to be more stable and resilient when nodes are in bootstrap/catchup. The :latest docker tag has been updated, or you can pull minaprotocol/mina-bp-stats-sidecar:1.1.6-386c5ac
to ensure you are using the newest version.
Docker Image
minaprotocol/mina-bp-stats-sidecar:latest
Debian Package
sudo apt-get install -y mina-bp-stats-sidecar=1.1.6alpha4-74793a2
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Devnet. Make sure to run with --peer-list-url https://storage.googleapis.com/seed-lists/devnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 8af43cf261ea10c761ec540f92aafb76aec56d8d74f77c836f3ab1de5ce4eac5
Git SHA-1: 74793a26dabd381bc65d6be767fb7559e8dadf48