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