Skip to content

Devnet Pre-Release 1.1.6alpha4

Pre-release
Pre-release
Compare
Choose a tag to compare
@lk86 lk86 released this 03 Jun 01:06
· 19291 commits to develop since this release
74793a2

As 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 with transactionStatus #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 #8814
  • mina advanced hash-transaction is a new command for hashing transactions #8294
  • mina 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 command mina 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 #8264
  • mina advanced send-rosetta-transaction now immediately sends the transaction instead of waiting for the command to exit #8186
  • mina 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 to mina 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 #8343
  • mina-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:

Sidecar:

  • New mina-bp-stats sidecar application and package #8122 #8750 (already released as v1.1.6)

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:

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