Releases: MinaProtocol/mina
Mainnet Beta Release 1.2.1beta1
The O(1) Labs team is proud to announce that we're graduating the 1.2.1 alpha to Beta, with some additional UX improvements and some retry logic for the uptime service. 1.2.1beta1 includes the more comprehensive changes to improve graphQL/networking responsiveness as promised, as well as a new async VRF computation process to keep VRF evaluations off of the main thread (especially for block producers with many delegates). These changes have been very effective on Devnet thusfar and initial Mainnet testing looks equally positive.
If you run into any issues, please include Release: 1.2.1beta1
in the name of any issues you create. Please report any issues you encounter here or join the Discussion!
Stability Improvements and Bug Fixes:
- Async scheduler changes to improve responsiveness #9416 and related metrics #9545
- Stop restarting the Verifier every 15 minutes #9565 #9568
New Features:
- Asynchronous VRF evaluation process #9409 with improved ux #9792
- Change the docker entrypoint script so that the last few lines of log output are less likely to get cut off #9568
- Properly tag releases in CI and push them directly to minaprotocol/ #9566
- Deprecate the setStaking graphql endpoint and
mina client set-staking
command #9717 - 5 minutes of retries for sending snark work to the foundation delegation backend #9764
Archive Node:
- Update mina-extract-blocks to properly set the block_winner instead of always using creator_id #9567 (Thanks @kobigurk for making the change and @jrwashburn for bringing attention to this bug)
Complete Changelog since 1.2.0:
1.2.0...1.2.1beta1
For more information about the changes included in 1.2.0, see the previous release notes
Upgrading & Connecting
Debian Packages:
Debian Repository:
First, Set up and update the beta
Debian Repository
echo "deb [trusted=yes] http://packages.o1test.net stretch beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update
Then, install the package(s) that you need:
Mina Daemon: sudo apt-get install -y mina-mainnet=1.2.1beta1-45440dc
Mina Archive: sudo apt-get install -y mina-archive=1.2.1beta1-45440dc
Docker Images:
Mina Daemon: minaprotocol/mina-daemon:1.2.1beta1-45440dc-mainnet
Mina Archive: minaprotocol/mina-archive:1.2.1beta1-45440dc
Devnet:
This release does also improve the experience for nodes on devnet, simply replace mainnet
with devnet
in the package or docker image name above to use this beta on devnet.
Sandbox Node: For testing in an isolated, single-node network without snarks
As of 1.2.0, 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 minaprotocol/mina-daemon:1.2.1beta1-45440dc-devnet
and go!
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Docker only Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: 45440dc7e4c5dac480dd075357c1d369b893fbe1
Mainnet Stable Release 1.2.0
As many of you are already aware, we have been working to stablize version 1.2.0 for quite some time. The O(1) Labs Team is proud to announce that 1.2.0 Stable is ready for use in production on Mainnet! 1.2.0 contains a variety of Quality of Life Improvements for node operators, including some new tools, graphql queries, cli commands, metrics, not to mention the countless efforts that went on behind the scenes to keep Mainnet and our team at O(1) Labs running smoothly.
In addition, 1.2.0 includes the client for the proposed update to the Mina Foundation Delegation Program (some further server work is required before the updated program launches, stay tuned for more announcements from the Mina Foundation on this topic). You can test the client implementation and configuration yourself as described below in the New Features section.
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:
- Improved handling of locally-generated transactions to allow re-sending transactions and give the user more control over rebroadcasting transactions. No more
already saw this
errors! #8973 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
- Improved Mina Foundation Uptime Tracking! #9499
- This feature no longer requires importing your keypair, now supports a new flag --uptime-submitter-key which takes the path to your private key, just like --block-producer-key.
- To test the new system, pass in the following information to the daemon:
- The path to the private key with the flag --uptime-submitter-key </path/to/private/key>
- The URL of our testing backend server with the flag --uptime-url http://34.134.227.208/v1/submit
- The password for the keypair associated to the given public key with the environment variable UPTIME_PRIVKEY_PASS=My_V3ry_S3cure_Password. If you are using a .mina-env file on Debian then this value should be on its own line, not included in EXTRA_FLAGS=.
- New environment variables in .mina-env for use with the mina systemd service #9375 #9533
- Passes in the --peer-list-url automatically to correspond to the mina package (mina-mainnet for mainnet peers list, and mina-devnet for devnet peers).
- This value can still be overridden with PEERS_LIST_URL variable in .mina-env
- Block production is disabled by default, use EXTRA_FLAGS as shown below to configure your block producer keys
- LOG_LEVEL variable to set the daemon log level, with the default value Info
- FILE_LOG_LEVEL variable to set the daemong file log level, with the default value Debug
- Remove --generate-genesis-proof true as it no longer does anything in this mina version
- Changed WantedBy to default.target instead of multi-user.target as the latter does not work in user services (as many users have reported)
EXTRA_FLAGS="--block-producer-key /home/mina/my-wallet --uptime-submitter-key /home/mina/my-wallet --uptime-url http://34.134.227.208/v1/submit"
UPTIME_PRIVKEY_PASS=My_V3ry_S3cure_Password
MINA_PRIVKEY_PASS=My_V3ry_S3cure_Password
CODA_PRIVKEY_PASS=My_V3ry_S3cure_Password
LOG_LEVEL=Info
FILE_LOG_LEVEL=Debug
Note: MINA_PRIVKEY_PASS will not be supported until the 1.3.0+ Mina Daemon releases but it won't hurt to start providing it now.
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
- Improves logic for communicating between rust and ocaml processes to prevent some memory corruption and segfaults #8998
- Limit snark work broadcasts to a safe rate below the libp2p rate limit to avoid getting throttled by peers #9011
- Revert the changes to staged ledger diff application #9068
- Fix super-catchup cache invalidation to allow re-downloading failed state hashes #9132
- Fix remaining WNOHANG crashes caused by child process management #9171
- Prevent mina ledger export-ledger staged-ledger from blocking RPC heartbeats from being processed #9168
- Fix file descriptor leak by ensuring stdin is closed for all child processes after they have exited #9178
- Mitigation for the offline issue (crash when node has been running for >34 hours) #9301 #9387 add
--stop-time
flag to configure this behavior #9506 - Hardening for the transaction mempool and mitigations to prevent broadcasting bad transactions. See our Retrospective for more information about our approach with these fixes and why they were important.
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
- Dockerfile now uses UserID 50000 instead of 192920 #9435 #9326
- Debian stretch archive image no longer requires man to use postgres package #9410
- Fix $KEY_NAME quoting #9446
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 #8815 See complete instructions for a walkthrough on how to patch your archive.
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
Documentation:
Devnet Pre-Release 1.2.1alpha1
The O(1) Labs team is proud to announce that we're moving onto the 1.2.1 range of releases in the anticipation of 1.2.0beta8 soon graduating to stable. This first 1.2.1 Alpha release 1.2.1alpha1 includes the more comprehensive changes to improve graphQL/networking responsiveness as promised, as well as a new async VRF computation process to keep VRF evaluations off of the main thread (especially for block producers with many delegates).
This alpha release includes all of the changes from 1.2.0beta8, including the new uptime tracking system, but it is not recommended to use this feature on devnet unless its for testing against your own backend. Otherwise you can expect the same workflow as using 1.2.0beta8 with no new breaking changes.
If you run into any issues, please include Release: 1.2.1alpha1
in the name of any issues you create. Please report any issues you encounter here or join the Discussion!
Stability Improvements and Bug Fixes:
- Async scheduler changes to improve responsiveness #9416 and related metrics #9545
- Stop restarting the Verifier every 15 minutes #9565 #9568
New Features:
- Asynchronous VRF evaluation process #9409
- Change the docker entrypoint script so that the last few lines of log output are less likely to get cut off #9568
- Properly tag releases in CI and push them directly to minaprotocol/ #9566
Archive Node:
- Update mina-extract-blocks to properly set the block_winner instead of always using creator_id #9567 (Thanks @kobigurk for making the change and @jrwashburn for bringing attention to this bug)
Complete Changelog since 1.2.0beta8:
1.2.0beta8...1.2.1alpha1
For more information about the changes included in 1.2.0beta8, see the previous release notes
Upgrading & Connecting
Debian Repository:
First, Set up and update the alpha
Debian Repository
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
Then, install the package(s) that you need:
Daemon Package: sudo apt-get install -y mina-devnet=1.2.1alpha1-1f98b8b
Archive Node Package: sudo apt-get install -y mina-archive=1.2.1alpha1-1f98b8b
Docker Images:
Daemon Image: minaprotocol/mina-daemon:1.2.1alpha1-1f98b8b-devnet
Archive Image: minaprotocol/mina-archive:1.2.1alpha1-1f98b8b
Sandbox Node: For testing in an isolated, single-node network without snarks
As of 1.2.0, 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 minaprotocol/mina-daemon:1.2.1alpha1-1f98b8b-devnet
and go!
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Docker only 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: b6ee40d336f4cc3f33c1cc04dee7618eb8e556664c2b2d82ad4676b512a82418
Git SHA-1: 1f98b8be743e78993670e7b148be72c894b212e3
Mainnet Beta Release 1.2.0beta8
The O(1) Labs team is making progress on the networking issues reported since 1.2.0beta2/3
but so far, we are struggling to solve the issue beyond about 40 hours of uptime. So to mitigate this, and to still provide an overall better experience than 1.1.X, we have improved the automated shutdown behavior to be configurable. The default stop time is after 24 hours of uptime, use the new --stop-time
flag to reconfigure this value. The next release, 1.2.1alpha1, will include more comprehensive changes to improve responsiveness.
Now for the good news! 1.2.0beta8 also includes improvements to the new features from 1.2.0beta5. This beta release allows you to connect to our uptime tracking endpoint or run your own, but the data you submit now WILL NOT COUNT towards your uptime until this feature is released in a stable version. At that point the Mina Foundation will make an announcement, wipe the google cloud bucket, and reset everything for production use. In the meantime, you can try out the new daemon flags ( --uptime-submitter-key </path/to/private/key>
, --uptime-url http://34.134.227.208/v1/submit
) and the new environment variable UPTIME_PRIVKEY_PASS
for providing the password to the keypair you registered with on the leaderboard. You no longer need to import your key to use it in this way, --uptime-submitter-key works identically to --block-producer-key. See #9499 for more details on how to use this new feature. Additionally, if you want to test out the backend side or experiment with creating your own leaderboard UI, check out the backend README.
If you run into any issues, please include Release: 1.2.0beta8
in the name of any issues you create. Please report any issues you encounter here: https://github.com/MinaProtocol/mina/issues/new/choose
Stability Improvements and Bug Fixes:
- Add
--stop-time
flag to configure the automatic restart behavior. Defaults to 24 hours. #9506
New Features:
- Improved Mina Foundation Uptime Tracking! #9499
- This feature no longer requires importing your keypair, now supports a new flag
--uptime-submitter-key
which takes the path to your private key, just like--block-producer-key
. - To test the new system, pass in the following information to the daemon:
- The path to the private key with the flag
--uptime-submitter-key </path/to/private/key>
- The URL of our testing backend server with the flag
--uptime-url http://34.134.227.208/v1/submit
- The password for the keypair associated to the given public key with the environment variable
UPTIME_PRIVKEY_PASS=<YOUR PASSWORD HERE>
. If you are using a .mina-env file on Debian then this value should be on its own line, not included inEXTRA_FLAGS=
.
- The path to the private key with the flag
- This feature no longer requires importing your keypair, now supports a new flag
- New environment variables in .mina-env for use with the mina systemd service #9375 #9533
- Passes in the --peer-list-url automatically to correspond to the mina package (mina-mainnet for mainnet peers list, and mina-devnet for devnet peers).
- This value can still be overridden with PEERS_LIST_URL variable in .mina-env
- KEY_NAME variable is no longer supported, use EXTRA_FLAGS to configure block producer keys
- LOG_LEVEL variable to set the daemon log level, with the default value Info
- FILE_LOG_LEVEL variable to set the daemong file log level, with the default value Debug
- Remove
--generate-genesis-proof true
as its a no-op in this mina version anyway - Changed WantedBy to default.target instead of multi-user.target as the latter does not work in user services (as many users have reported)
- Passes in the --peer-list-url automatically to correspond to the mina package (mina-mainnet for mainnet peers list, and mina-devnet for devnet peers).
Complete .mina-env example to take advantage of both of the above features:
EXTRA_FLAGS="--block-producer-key /home/mina/my-wallet --uptime-submitter-key /home/mina/my-wallet --uptime-url http://34.134.227.208/v1/submit"
UPTIME_PRIVKEY_PASS=My_V3ry_S3cure_Password
MINA_PRIVKEY_PASS=My_V3ry_S3cure_Password
LOG_LEVEL=Info
FILE_LOG_LEVEL=Debug
Archive Node:
We put together a new tool to process archive node data all the way back to the genesis block, locate any "swapped" balances (caused by a pre-1.1.5 bug in the archive node logic), and fix them. See https://gist.github.com/lk86/22b07d3b3f91c765f34e4e4398a84701 for complete instructions.
Complete Changelog since 1.2.0beta2:
1.2.0beta5...1.2.0beta8
For more information about the changes included in 1.2.0beta5, see the previous release notes
The beta6 and beta7 releases contain improvements to the transaction inclusion logic for block producers, and it is highly recommended that you upgrade to , 1.1.8, 1.2.0beta7, or this release. See our Retrospective for more information about our approach with these fixes and why they're important.
Upgrading & Connecting
Daemon Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-daemon:1.2.0beta8-5b35b27-mainnet
Debian Package:
NOTE: --peers-list-url flag is no long required when running with systemctl --user ...
To allow for installation of mina beta
builds:
echo "deb [trusted=yes] http://packages.o1test.net stretch beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update
sudo apt-get install -y mina-mainnet=1.2.0beta8-5b35b27
Archive Node Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-archive:1.2.0beta8-5b35b27
Debian Package:
sudo apt-get install -y mina-archive-mainnet=1.2.0beta8-5b35b27
Schema for initializing postgres:
create_schema.sql
Sandbox Node: For testing in an isolated, single-node network without snarks
As of 1.2.0, 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.2.0beta8-5b35b27-devnet
and go!
NEW Devnet:
This release is the first to support the newly relaunched Devnet #9523. To use any of the above packages or docker images with devnet instead of mainnet, you can simply replace mainnet
with devnet
in either the name of the package or the docker image tag.
Block Producer Stats Sidecar:
The block producer sidecar will be replaced with the foundation delegation uptime tracker described above, once it is graduated to stable. In the meantime any version of the sidecar since ~1.1.6 should work the same way, and the data produced by the sidecar still counts towards foundation delegation elegibility.
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Docker only Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: 5b35b27df8e137ddbe88874b4efdcf4bb2cb4ae9
Mainnet Beta Release 1.2.0beta7
After discovering the issue with transaction inclusion logic, which we addressed with the 1.2.0beta6 release, our team took a closer look at the remaining transaction logic and added some more aggressive tests to that area of the code in order to ensure there were no remaining bugs. In that process, the team found additional transaction inclusion logic issues, covering other edge cases that were not triggered on our dev network yet. In an abundance of caution, we have provided this 1.2.0beta7 update to prevent larger issues, and the new logic has been thoroughly tested. To instead run this same change on the latest 1.1.7 stable version, see Release 1.1.8.
Complete Changelog since 1.2.0beta6:
1.2.0beta6...1.2.0beta7
For more information about the changes included in other 1.2.0 beta releases, see the previous release notes
Upgrading & Connecting
Daemon Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-daemon-baked:1.2.0beta7-9b5bbaa-mainnet
Debian Package:
NOTE: --peers-list-url flag is no long required when running with systemctl --user ...
To allow for installation of mina beta
builds:
echo "deb [trusted=yes] http://packages.o1test.net stretch beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update
sudo apt-get install -y mina-mainnet=1.2.0beta7-9b5bbaa
Archive Node Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-archive:1.2.0beta7-9b5bbaa
Debian Package:
sudo apt-get install -y mina-archive-mainnet=1.2.0beta7-9b5bbaa
Schema for initializing postgres:
create_schema.sql
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: 9b5bbaa17a77a15b559400dec578236f782655bc
Mainnet Stable Release 1.1.8
After discovering the issue with transaction inclusion logic, which we addressed with the 1.1.7 release, our team took a closer look at the remaining transaction logic and added some more aggressive tests to that area of the code in order to ensure there were no remaining bugs. In that process, the team found additional transaction inclusion logic issues, covering other edge cases that were not triggered on our dev network yet. In an abundance of caution, we have provided a stable fix on top of the existing 1.1.7 codebase, tagged as 1.1.8. The changes have been thoroughly tested, and are limited to the minimal change to prevent future issues. To run this same change on the 1.2.0 beta release version, see 1.2.0beta7.
Complete Changelog since 1.1.7:
Upgrading & Connecting
Daemon Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-daemon-baked:1.1.8-b10c0e3-mainnet
Debian Package:
sudo apt-get install -y mina-mainnet=1.1.8-b10c0e3
Archive Node Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-archive:1.1.8-b10c0e3
Debian Package:
sudo apt-get install -y mina-archive=1.1.8-b10c0e3
Schema for initializing postgres:
create_schema.sql
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: b10c0e3db9112a2a8aebc3eec7c6d2570fcc4044
Mainnet Beta Release 1.2.0beta6
While working on stabilizing 1.2.0, the O(1) Labs team discovered an issue with the transaction inclusion logic. In an abundance of caution, we have provided this 1.2.0beta6 update to prevent larger issues, and the new logic has been thoroughly tested. To instead run this same change on the latest 1.1.5 stable version, see Release 1.1.7.
Complete Changelog since 1.2.0beta5:
1.2.0beta5...1.2.0beta6
For more information about the changes included in other 1.2.0 beta releases, see the previous release notes
Upgrading & Connecting
Daemon Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-daemon:1.2.0beta6-bee023a-mainnet
Debian Package:
NOTE: --peers-list-url flag is no long required when running with systemctl --user ...
To allow for installation of mina beta
builds:
echo "deb [trusted=yes] http://packages.o1test.net stretch beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update
sudo apt-get install -y mina-mainnet=1.2.0beta6-bee023a
Archive Node Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-archive:1.2.0beta6-bee023a
Debian Package:
sudo apt-get install -y mina-archive-mainnet=1.2.0beta6-bee023a
Schema for initializing postgres:
create_schema.sql
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: bee023a25b8884813dc14a843c569dc297878c0a
Mainnet Stable Release 1.1.7
While hard at work on the 1.2.0+ releases, the O(1) Labs team discovered an issue with the transaction inclusion logic. In an abundance of caution, we have provided a stable fix on top of the existing 1.1.5 codebase, tagged as 1.1.7 to avoid any confusion with the previous 1.1.6alpha naming convention. The changes have been thoroughly tested, and are limited to the minimal change to prevent future issues. To run this same change on the 1.2.0 beta release version, see 1.2.0beta6.
Complete Changelog since 1.1.5:
Upgrading & Connecting
Daemon Release Artifacts:
Docker Image:
minaprotocol/mina-daemon-baked:1.1.7-d5ff5aa-mainnet
Debian Package:
sudo apt-get install -y mina-mainnet=1.1.7-d5ff5aa
Archive Node Release Artifacts:
Docker Image:
minaprotocol/mina-archive:1.1.7-d5ff5aa
Debian Package:
sudo apt-get install -y mina-archive=1.1.7-d5ff5aa
Schema for initializing postgres:
create_schema.sql
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: d5ff5aa207e64bcd6862e1ae9a3b83910c1c7b1d
Mainnet Beta Release 1.2.0beta5
The O(1) Labs team is making progress on the networking issues reported in 1.2.0beta2/3
but so far, we are struggling to solve the issue beyond about 60-70 hours of uptime. So to mitigate this, and to still provide an overall better experience than 1.1.5, we have introduced behavior to shutdown the node gracefully after it has been up for 40-48 hours, in a period where your block producer will not win a slot. With docker or systemctl restarting your node after a shutdown, this operation should provide the minimum service disruption possible until we make more major changes to the networking code (also in the works!). The next release, potentially as an alpha on a new large testnet with a more realistic ledger, will include more comprehensive changes to improve responsiveness.
To fix a minor issue with release 1.2.0beta4 from ~24 hours ago, this release includes some more consistent quoting around the variables in mina.service which should improve the experience for debian/ubuntu package users. Docker users will not notice any difference between beta4 and beta5 besides the commit hash / mina version
output.
Now for the good news! 1.2.0beta5 also includes a more immediately useful new feature, the snark-work-based foundation delegation uptime tracking system. So that folks can begin testing it more widely, this beta release allows you to connect to our uptime tracking endpoint or run your own, but the data you submit now WILL NOT COUNT towards your uptime until this feature is released in a stable version. At that point we will make an announcement, wipe the google cloud bucket, and reset everything for production use. In the meantime, you can try out the new daemon flags ( --uptime-submitter <PUBLIC_KEY>
, --uptime-url http://34.134.227.208/v1/submit
) and the new environment variable UPTIME_PRIVKEY_PASS
for providing the password to the keypair you registered with on the leaderboard. Make sure to import your key into the daemon with mina account import --help
. See #9160 for more details on how to use this new feature. Additionally, if you want to test out the backend side or experiment with creating your own leaderboard UI, check out the backend README.
If you run into any issues, please include Release: 1.2.0beta5
in the name of any issues you create. Please report any issues you encounter here: https://github.com/MinaProtocol/mina/issues/new
Stability Improvements and Bug Fixes:
- Mitigation for the offline issue (crash when node has been running for >40 hours) #9301 #9387
- New metrics for tracking RPC responsiveness #9222 #9390
- Less metrics that are causing long async cycles (Gc.stat is more expensive than originally anticipated) #9436
- New block height metric #9408
- Dockerfile now uses UserID 50000 instead of 192920 #9435 #9326
- Debian stretch archive image no longer requires man to use postgres package #9410
- Move spammy logs to spam #9377
- Fix $KEY_NAME quoting #9446
New Features:
- New Mina Foundation Uptime Tracking! #9160
- This feature assumes the block producer key you intend to use has been imported with
mina accounts import --privkey-path /path/to/your/key
. - To test the new system, pass in the following information to the daemon:
- The public key you submitted to the Mina Foundation for the existing leaderboard with the flag
--uptime-submitter <PUBLIC_KEY>
- The URL of our testing backend server with the flag
--uptime-url http://34.134.227.208/v1/submit
- The password for the keypair associated to the given public key with the environment variable
UPTIME_PRIVKEY_PASS=<YOUR PASSWORD HERE>
. If you are using a .mina-env file on Debian then this value should be on its own line, not included inMINA_FLAGS=
.
- The public key you submitted to the Mina Foundation for the existing leaderboard with the flag
- This feature assumes the block producer key you intend to use has been imported with
- New environment variables in .mina-env for use with the mina systemd service #9375
- Passes in the --peer-list-url automatically to correspond to the mina package (mina-mainnet for mainnet peers list, and mina-devnet for devnet peers).
- This value can still be overridden with PEERS_LIST_URL variable in .mina-env
- KEY_NAME variable for the name of the keyfile in /home/%user/keys/ with default of
my-wallet
- LOG_LEVEL variable to set the daemon log level, with the default value Info
- Remove
--generate-genesis-proof true
as its a no-op in this mina version anyway - Changed WantedBy to default.target instead of multi-user.target as the latter does not work in user services (as many users have reported)
- Passes in the --peer-list-url automatically to correspond to the mina package (mina-mainnet for mainnet peers list, and mina-devnet for devnet peers).
Archive Node:
We put together a new tool to process archive node data all the way back to the genesis block, locate any "swapped" balances (caused by a pre-1.1.5 bug in the archive node logic), and fix them. See https://gist.github.com/lk86/22b07d3b3f91c765f34e4e4398a84701 for complete instructions.
Complete Changelog since 1.2.0beta2:
1.2.0beta2...1.2.0beta5
For more information about the changes included in 1.2.0beta1, see the previous release notes
Upgrading & Connecting
Daemon Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-daemon:1.2.0beta5-260701a-mainnet
Debian Package:
NOTE: --peers-list-url flag is no long required when running with systemctl --user ...
To allow for installation of mina beta
builds:
echo "deb [trusted=yes] http://packages.o1test.net stretch beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update
sudo apt-get install -y mina-mainnet=1.2.0beta5-260701a
Archive Node Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-archive:1.2.0beta5-260701a
Debian Package:
sudo apt-get install -y mina-archive-mainnet=1.2.0beta5-260701a
Schema for initializing postgres:
create_schema.sql
Sandbox Node: For testing in an isolated, single-node network without snarks
As of 1.2.0, 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.2.0beta5-260701a-devnet
and go!
Devnet:
To use any of the above packages or docker images on devnet instead of mainnet, with testnet signatures, you can simply replace mainnet
with devnet
in either the name of the package or the docker image tag.
Block Producer Stats Sidecar:
The block producer sidecar will be replaced with the foundation delegation uptime tracker described above, once it is graduated to stable.
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Docker only Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: 260701a0b82dc2093f95b9bae6e91f17cea34391
Mainnet Beta Release 1.2.0beta4
The O(1) Labs team is making progress on the networking issues reported in 1.2.0beta2/3
but so far, we are struggling to solve the issue beyond about 60-70 hours of uptime. So to mitigate this, and to still provide an overall better experience than 1.1.5, we have introduced behavior to shutdown the node gracefully after it has been up for 40-48 hours, in a period where your block producer will not win a slot. With docker or systemctl restarting your node after a shutdown, this operation should provide the minimum service disruption possible until we make more major changes to the networking code (also in the works!). The next release, potentially as an alpha on a new large testnet with a more realistic ledger, will include more comprehensive changes to improve responsiveness.
Known issues: The debian package included with this release does not properly quote/escape the $KEY_NAME variable in mina.service and therefore does not work properly with systemd. This issue is resolved in beta5.
Now for the good news! 1.2.0beta4 also includes a more immediately useful new feature, the snark-work-based foundation delegation uptime tracking system. So that folks can begin testing it more widely, this beta release allows you to connect to our uptime tracking endpoint or run your own, but the data you submit now WILL NOT COUNT towards your uptime until this feature is released in a stable version. At that point we will make an announcement, wipe the google cloud bucket, and reset everything for production use. In the meantime, you can try out the new daemon flags ( --uptime-submitter <PUBLIC_KEY>
, --uptime-url http://34.134.227.208/v1/submit
) and the new environment variable UPTIME_PRIVKEY_PASS
for providing the password to the keypair you registered with on the leaderboard. Make sure to import your key into the daemon with mina account import --help
. See #9160 for more details on how to use this new feature. Additionally, if you want to test out the backend side or experiment with creating your own leaderboard UI, check out the backend README.
If you run into any issues, please include Release: 1.2.0beta4
in the name of any issues you create. Please report any issues you encounter here: https://github.com/MinaProtocol/mina/issues/new
Stability Improvements and Bug Fixes:
- Mitigation for the offline issue (crash when node has been running for >40 hours) #9301 #9387
- New metrics for tracking RPC responsiveness #9222 #9390
- Less metrics that are causing long async cycles (Gc.stat is more expensive than originally anticipated) #9436
- New block height metric #9408
- Dockerfile now uses UserID 50000 instead of 192920 #9435 #9326
- Debian stretch archive image no longer requires man to use postgres package #9410
- Move spammy logs to spam #9377
New Features:
- New Mina Foundation Uptime Tracking! #9160
- This feature assumes the block producer key you intend to use has been imported with
mina accounts import --privkey-path /path/to/your/key
. - To test the new system, pass in the following information to the daemon:
- The public key you submitted to the Mina Foundation for the existing leaderboard with the flag
--uptime-submitter <PUBLIC_KEY>
- The URL of our testing backend server with the flag
--uptime-url http://34.134.227.208/v1/submit
- The password for the keypair associated to the given public key with the environment variable
UPTIME_PRIVKEY_PASS=<YOUR PASSWORD HERE>
. If you are using a .mina-env file on Debian then this value should be on its own line, not included inMINA_FLAGS=
.
- The public key you submitted to the Mina Foundation for the existing leaderboard with the flag
- This feature assumes the block producer key you intend to use has been imported with
- New environment variables in .mina-env for use with the mina systemd service #9375
- Passes in the --peer-list-url automatically to correspond to the mina package (mina-mainnet for mainnet peers list, and mina-devnet for devnet peers).
- This value can still be overridden with PEERS_LIST_URL variable in .mina-env
- KEY_NAME variable for the name of the keyfile in /home/%user/keys/ with default of
my-wallet
- LOG_LEVEL variable to set the daemon log level, with the default value Info
- Remove
--generate-genesis-proof true
as its a no-op in this mina version anyway - Changed WantedBy to default.target instead of multi-user.target as the latter does not work in user services (as many users have reported)
- Passes in the --peer-list-url automatically to correspond to the mina package (mina-mainnet for mainnet peers list, and mina-devnet for devnet peers).
Archive Node:
We put together a new tool to process archive node data all the way back to the genesis block, locate any "swapped" balances (caused by a pre-1.1.5 bug in the archive node logic), and fix them. See https://gist.github.com/lk86/22b07d3b3f91c765f34e4e4398a84701 for complete instructions.
Complete Changelog since 1.2.0beta2:
1.2.0beta2...1.2.0beta4
For more information about the changes included in 1.2.0beta1, see the previous release notes
Upgrading & Connecting
Daemon Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-daemon:1.2.0beta4-53a65a0-mainnet
Debian Package:
NOTE: --peers-list-url flag is no long required when running with systemctl --user ...
To allow for installation of mina beta
builds:
echo "deb [trusted=yes] http://packages.o1test.net stretch beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update
sudo apt-get install -y mina-mainnet=1.2.0beta4-53a65a0
Archive Node Release Artifacts:
Docker Image:
gcr.io/o1labs-192920/mina-archive:1.2.0beta4-53a65a0
Debian Package:
sudo apt-get install -y mina-archive-mainnet=1.2.0beta4-53a65a0
Schema for initializing postgres:
create_schema.sql
Sandbox Node: For testing in an isolated, single-node network without snarks
As of 1.2.0, 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.2.0beta4-53a65a0-devnet
and go!
Devnet:
To use any of the above packages or docker images on devnet instead of mainnet, with testnet signatures, you can simply replace mainnet
with devnet
in either the name of the package or the docker image tag.
Block Producer Stats Sidecar:
The block producer sidecar will be replaced with the foundation delegation uptime tracker described above, once it is graduated to stable.
Step by Step Guide:
Check out our documentation for complete instructions on using this version to connect to Mainnet. Docker only Make sure to run with --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt
.
If you are running the correct version on the correct network, mina client status
will show:
Chain id: 5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1: 53a65a0136f8f804d9b743d1aaae55f55c66a3b7