Releases: mobilecoinfoundation/mobilecoin
MobileCoin Core (Consensus/Fog) v4.0.0
🗓️ MainNet Deployment
This release is scheduled to be deployed to MainNet on March 7, 2023, at 11AM PST. We estimate the block height at that time to be 1,341,700.
We expect some amount of downtime during the upgrade, no greater than 2 hours.
What's new since 3.0
🚨 Breaking Changes
- New MRENCLAVE values for all enclaves (see Enclave Measurements section below).
- Block Version 3 (which will be enabled after deployment) requires a transaction to sign the
TxSummary
instead ofTxPrefix
. - Block Version 3 requires transactions to sort TxOs.
✨ Features
- Signed Contingent Inputs allow for a single TX containing multiple token types, enabling atomic swaps and partial transactions.
MintTx
can now be used to mint directly to a fog-enabled address.- Minting transactions can optionally use nested multi-signatures.
- Consensus nodes now publish block metadata signed by their SCP message key
- All services can optionally output log messages in json format
🔒 Security
- Consensus enclaves now enforce unique nonces on a per-token basis
- Consensus enclaves now reject transaction proposals when the client's fee map differs from the configured fees in the enclave
- SGX SDK upgraded to 2.18
For more details on individual changes, please see the full CHANGELOG.
Enclave Measurements
TestNet
Signer Measurement
- MRSIGNER:
bf7fa957a6a94acb588851bc8767e0ca57706c79f4fc2aa6bcb993012c3c386c
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
4f3879bfffb7b9f86a33086202b6120a32da0ca159615fbbd6fbac6aa37bbf02
- libingest-enclave.signed.so:
16d73984c2d2712156135ab69987ca78aca67a2cf4f0f2287ea584556f9d223a
- libview-enclave.signed.so:
f52b3dc018195eae42f543e64e976c818c06672b5489746e2bf74438d488181b
- libledger-enclave.signed.so:
23ececb2482e3b1d9e284502e2beb65ae76492f2791f3bfef50852ee64b883c3
MainNet
Signer Measurement
- MRSIGNER:
2c1a561c4ab64cbc04bfa445cdf7bed9b2ad6f6b04d38d3137f3622b29fdb30e
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
e35bc15ee92775029a60a715dca05d310ad40993f56ad43bca7e649ccc9021b5
- libingest-enclave.signed.so:
a8af815564569aae3558d8e4e4be14d1bcec896623166a10494b4eaea3e1c48c
- libview-enclave.signed.so:
da209f4b24e8f4471bd6440c4e9f1b3100f1da09e2836d236e285b274901ed3b
- libledger-enclave.signed.so:
8c80a2b95a549fa8d928dd0f0771be4f3d774408c0f98bf670b1a2c390706bf3
MobileCoin Core (Consensus/Fog) v3.0.0
Schedule of Release
🗓️ MainNet Deployment
This release is scheduled to be deployed to MainNet on February 16, 2023, at 11AM PST. We estimate the block height at that time to be 1,285,100.
We expect some amount of downtime during the upgrade, no greater than 2 hours.
What's new since 2.0.2
🚨 Breaking Changes
- There is a new
--chain-id
argument to consensus and fog services. MainNet hosts should usemain
, and TestNet hosts should usetest
.
✨ Features
mobilecoind
users may also use--chain-id
as a hint to servers of what network they believe they are connecting to. A properly configured server will reject connections if the relevant chain-id strings don't match.- Telemetry reporting can be completely disabled on servers by setting the environment variable
MC_TELEMETRY=0
- Nearly all configuration flags can be set via environment variables now.
- Add a
--hash-tx-file
subcommand to themc-consensus-mint-client
print the hash of amint-tx
ormint-config-tx
file. - Add the current block info (fee map, block version, etc.) to the response message for
mobilecoind_api.GetNetworkStatus
. - Add a
--block-query-batch-size
parameter tofog-view
, which controls how many encrypted blobs to retrieve from Postgres when the server is behind.
🐛 Bug Fixes
mc-consensus-mint-client
will now check that public addresses for minting targets do not have a configured fog server.android-bindings
andlibmobilecoin
RNG APIs have been updated to assist in idempotent transactions.
🔒 Security
- SGX SDK updated to 2.17.1 to mitigate INTEL-SA-00657
- TOB-MCCT-4: Make minting nonces unique per-token.
TestNet SGX Measurements
Signer Measurement
- MRSIGNER:
bf7fa957a6a94acb588851bc8767e0ca57706c79f4fc2aa6bcb993012c3c386c
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
5fe2b72fe5f01c269de0a3678728e7e97d823a953b053e43fbf934f439d290e6
- libingest-enclave.signed.so:
d901b5c4960f49871a848fd157c7c0b03351253d65bb839698ddd5df138ad7b6
- libview-enclave.signed.so:
be1d711887530929fbc06ef8b77b618db15e9cd1dd0265559ea45f60a532ee52
- libledger-enclave.signed.so:
d5159ba907066384fae65842b5311f853b028c5ee4594f3b38dfc02acddf6fe3
MainNet SGX Measurements
Signer Measurement
- MRSIGNER:
2c1a561c4ab64cbc04bfa445cdf7bed9b2ad6f6b04d38d3137f3622b29fdb30e
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
207c9705bf640fdb960034595433ee1ff914f9154fbe4bc7fc8a97e912961e5c
- libingest-enclave.signed.so:
3370f131b41e5a49ed97c4188f7a976461ac6127f8d222a37929ac46b46d560e
- libview-enclave.signed.so:
fd4c1c82cca13fa007be15a4c90e2b506c093b21c2e7021a055cbb34aa232f3f
- libledger-enclave.signed.so:
dca7521ce4564cc2e54e1637e533ea9d1901c2adcbab0e7a41055e719fb0ff9d
mobilecoind & mobilecoind-json v2.0.2
What's New since v2.0.1
🐛 Bug Fixes
- Correction to the bundled version of ingest-enclave.css which prevented sending fog transactions to the current production MainNet
TestNet SGX Measurements
Signer Measurement
- MRSIGNER:
bf7fa957a6a94acb588851bc8767e0ca57706c79f4fc2aa6bcb993012c3c386c
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
01746f4dd25f8623d603534425ed45833687eca2b3ba25bdd87180b9471dac28
- libingest-enclave.signed.so:
3e9bf61f3191add7b054f0e591b62f832854606f6594fd63faef1e2aedec4021
- libview-enclave.signed.so:
3d6e528ee0574ae3299915ea608b71ddd17cbe855d4f5e1c46df9b0d22b04cdb
- libledger-enclave.signed.so:
92fb35d0f603ceb5eaf2988b24a41d4a4a83f8fb9cd72e67c3bc37960d864ad6
Add this MainNet block to Github Release
MainNet SGX Measurements
Signer Measurement
- MRSIGNER:
2c1a561c4ab64cbc04bfa445cdf7bed9b2ad6f6b04d38d3137f3622b29fdb30e
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
d6e54e43c368f0fa2c5f13361afd303ee8f890424e99bd6c367f6164b5fff1b5
- libingest-enclave.signed.so:
3e9bf61f3191add7b054f0e591b62f832854606f6594fd63faef1e2aedec4021
- libview-enclave.signed.so:
3d6e528ee0574ae3299915ea608b71ddd17cbe855d4f5e1c46df9b0d22b04cdb
- libledger-enclave.signed.so:
92fb35d0f603ceb5eaf2988b24a41d4a4a83f8fb9cd72e67c3bc37960d864ad6
mobilecoind & mobilecoind-json v2.0.1
What's New
🐛 Bug Fixes
- Correct some issues with the packaging of some utilities.
- Correct an issue with the mainnet
mobilecoind
binary which prevented it connecting to the current enclaves.
TestNet SGX Measurements
Signer Measurement
- MRSIGNER:
bf7fa957a6a94acb588851bc8767e0ca57706c79f4fc2aa6bcb993012c3c386c
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
01746f4dd25f8623d603534425ed45833687eca2b3ba25bdd87180b9471dac28
- libingest-enclave.signed.so:
3e9bf61f3191add7b054f0e591b62f832854606f6594fd63faef1e2aedec4021
- libview-enclave.signed.so:
3d6e528ee0574ae3299915ea608b71ddd17cbe855d4f5e1c46df9b0d22b04cdb
- libledger-enclave.signed.so:
92fb35d0f603ceb5eaf2988b24a41d4a4a83f8fb9cd72e67c3bc37960d864ad6
MainNet SGX Measurements
Signer Measurement
- MRSIGNER:
2c1a561c4ab64cbc04bfa445cdf7bed9b2ad6f6b04d38d3137f3622b29fdb30e
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
d6e54e43c368f0fa2c5f13361afd303ee8f890424e99bd6c367f6164b5fff1b5
- libingest-enclave.signed.so:
3e9bf61f3191add7b054f0e591b62f832854606f6594fd63faef1e2aedec4021
- libview-enclave.signed.so:
3d6e528ee0574ae3299915ea608b71ddd17cbe855d4f5e1c46df9b0d22b04cdb
- libledger-enclave.signed.so:
92fb35d0f603ceb5eaf2988b24a41d4a4a83f8fb9cd72e67c3bc37960d864ad6
MobileCoin Core (Consensus/Fog) v2.0.0
Schedule of Release
🗓️ MainNet Deployment
This release is scheduled to be deployed to MainNet on September 21, 2022, at 9AM PDT. We estimate the block height at that time to be 842,800.
We expect some amount of downtime during the upgrade, no greater than 2 hours.
At the conclusion of the deployment, MainNet will remain at Block Version 0.
Check out the block explorer to follow along with the upgrade!
What's New
🚨 Breaking Changes
- Block Versioning allows for protocol evolution. Clients will need to keep up with these changes in order to read new blocks on the chain going forward.
mobilecoind
will exit on startup when a ledger migration is necessary, unless the new--ledger-db-migrate
command line argument is used, in which case it will migrate automatically. This flag does not do anything if the Ledger DB does not exist.
✨ New Features
Available in Block Version 1 (and later):
Available in Block Version 2 (and later):
- Confidential Multi-Token Support
- Minting support for non-MOB tokens
- Verifiable burning for any token
- Standardized Subaddresses for common uses
Available in Block Version 3 (future version 3.0.0):
Available on Deployment (testnet has been deployed, mainnet deployment TBD)
- New Fog Overseer utility to monitor Fog Ingest instances
- Fog's KeyImage checks are now oblivious.
- Fog Ingest Client CLI now allows queries to the
get_ingress_key_record
API.
🛠️ Improvements
- Fog View OMAP configurable via environment variable
- Merge MobileCoin Fog service code into this repository
- Enable Bitcode for libmobilecoin, reduces iOS artifact size by 25%
- Increase the maximum tombstone block for transactions to
20,160
from100
- Removed
slam
utility in favor offog-distribution
- Support root entropy-based key derivation in test keys/ledgers
🐛 Bug Fixes
- Make Fog Ingest state file handling more resilient
- Fix incorrect gRPC error codes for attestation failures
- Added additional retries to Postgres connections in fog services
🔒 Security Fixes
- Upgrade SGX SDK to 2.17, mitigates INTEL-SA-00615
- Fix a problem with data authentication in ORAM storage (thanks to @AmbitionXiang for reporting)
The full list of changes, including package version updates is available in the CHANGELOG.md.
TestNet SGX Measurements
Signer Measurement
- MRSIGNER:
bf7fa957a6a94acb588851bc8767e0ca57706c79f4fc2aa6bcb993012c3c386c
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
01746f4dd25f8623d603534425ed45833687eca2b3ba25bdd87180b9471dac28
- libingest-enclave.signed.so:
3e9bf61f3191add7b054f0e591b62f832854606f6594fd63faef1e2aedec4021
- libview-enclave.signed.so:
3d6e528ee0574ae3299915ea608b71ddd17cbe855d4f5e1c46df9b0d22b04cdb
- libledger-enclave.signed.so:
92fb35d0f603ceb5eaf2988b24a41d4a4a83f8fb9cd72e67c3bc37960d864ad6
MainNet SGX Measurements
Signer Measurement
- MRSIGNER:
2c1a561c4ab64cbc04bfa445cdf7bed9b2ad6f6b04d38d3137f3622b29fdb30e
Enclave Measurements (MRENCLAVE)
- libconsensus-enclave.signed.so:
d6e54e43c368f0fa2c5f13361afd303ee8f890424e99bd6c367f6164b5fff1b5
- libingest-enclave.signed.so:
3e9bf61f3191add7b054f0e591b62f832854606f6594fd63faef1e2aedec4021
- libview-enclave.signed.so:
3d6e528ee0574ae3299915ea608b71ddd17cbe855d4f5e1c46df9b0d22b04cdb
- libledger-enclave.signed.so:
92fb35d0f603ceb5eaf2988b24a41d4a4a83f8fb9cd72e67c3bc37960d864ad6
Client update 2020-09-15
Pre-releases will eventually be deployed to alpha
When we have iterated on pre-releases to our satisfaction, v1.2.0 will be tagged for testnet.
If that is accepted then 1.2 will be tagged for mainnet.
MobileCoin Clients 1.1.2
This release corrects some defects in the Terms of Use.
MobileCoin Clients 1.1.1
Updates for v1.1.1 (#870) * Update embargoed location list (based on master patches). * Bump all crate versions * Update TERMS-OF-USE.md (#869) * Update changelog. * Work around broken cargo trim -d (#860) * When we test that the code builds, actually build (#826) * Dont do cargo check, because it doesn't link anything. * Pull in mac CI fixes from master. Co-authored-by: Adam Mork <the-real-adammork@users.noreply.github.com> Co-authored-by: garbageslam <beck.ct@gmail.com>
MobileCoin 1.1.0
Hey all, this is the first incremental release of MobileCoin since launch of mainnet.
What's New and Different
✨ BIP-39 Mnemonics
MobileCoinD now supports BIP-39 mnemonics as its preferred account entropy scheme. The legacy root entropy scheme will continue to be supported, but we feel that AccountKeys derived using the new scheme are superior in every way, and so we're recommending that new users go with the new entropy scheme.
✨ Fog Support in MobileCoinD
Users of mobilecoind are able to properly encode fog hints, which makes desktop-to-mobile transactions a reality. This has been supported in pre-release since the release of Fog, and after several months of operations with no known issues we're integrating this into the primary release.
✨ Encrypted Keys At Rest in MobileCoinD
MobileCoinD now encrypts account private keys at rest in its local database.
✨ Lower, Dynamic Fees
The default transaction fee has been lowered from 10mMOB to 400uMOB, and we've implemented MobileCoin RFC #1, which will allow operators to raise or lower fees as needed.
✨ Sticky Sessions for gRPC Clients
We now support cookie-based load balancing at the gRPC layer when connecting to, e.g. consensus enclaves.
👷 Newer Rust (nightly-2021-03-25)
We've updated our supported rust version to one released after stable-0.51.0.
🔒 ⬆️ SGX 2.13.3
We've updated the version of the SGX SDK we're using to 2.13.3, to address INTEL-SA-00477, which is a timing attack vulnerability in some Intel crypto code.
Release Schedule and Advice
We are pushing out a release today, and will be coordinating with network operators to deploy the new version of Consensus network and Fog servers (enclaves) on or before July 14, 2021 (exact date TBD).
Existing users of MobileCoinD should update their installation to take automatic advantage of the lower fees once the upgrade goes live on the network, and will need to update in order to automatically respond to fees higher than the current hard-coded minimum of 10mMOB.
A more detailed changelog is also available.
Consensus SGX Measurements
The mainnet release of consensus produces the following measurements:
- MRSIGNER:
0x2c1a561c4ab64cbc04bfa445cdf7bed9b2ad6f6b04d38d3137f3622b29fdb30e
- MRENCLAVE:
0x653228afd2b02a6c28f1dc3b108b1dfa457d170b32ae8ec2978f941bd1655c83
Independent clients which depend on those values (e.g. those doing MRENCLAVE in particular) should add the values included to their trust story (and accept Intel Attestation Verification Reports [AVRs] with SOFTWARE_HARDENING_NEEDED
for INTEL-SA-00334, as those enclaves were built with the relevant hardening).
📦 Downloads
TestNet
Linux
MacOS
MainNet
Linux
MacOS
📝 Release Artifacts Build Instructions
The downloads for this release were build with the following on MacOS and Ubuntu:
TestNet
curl -O https://enclave-distribution.test.mobilecoin.com/$(curl -s https://enclave-distribution.test.mobilecoin.com/production.json | grep consensus-enclave.css | awk '{print $2}' | tr -d \" | tr -d ,)
curl -O https://enclave-distribution.test.mobilecoin.com/$(curl -s https://enclave-distribution.test.mobilecoin.com/production.json | grep ingest-enclave.css | awk '{print $2}' | tr -d \" | tr -d ,)
RUSTFLAGS='-C target-cpu=penryn' SGX_MODE=HW IAS_MODE=PROD CONSENSUS_ENCLAVE_CSS=$(pwd)/consensus-enclave.css INGEST_ENCLAVE_CSS=$(pwd)/ingest-enclave.css cargo build --release --no-default-features -p mc-mobilecoind -p mc-mobilecoind-json
Example Run Command
./target/release/mobilecoind \
--mobilecoind-db ~/my-wallet.db \
--ledger-db ~/ledger-testnet/ \
--peer mc://node1.test.mobilecoin.com/ \
--peer mc://node2.test.mobilecoin.com/ \
--tx-source-url https://s3-us-west-1.amazonaws.com/mobilecoin.chain/node1.test.mobilecoin.com/ \
--tx-source-url https://s3-us-west-1.amazonaws.com/mobilecoin.chain/node2.test.mobilecoin.com/ \
--fog-ingest-enclave-css $(pwd)/ingest-enclave.css \
--listen-uri insecure-mobilecoind://127.0.0.1:4444/ &
./target/release/mobilecoind-json &
MainNet
curl -O https://enclave-distribution.prod.mobilecoin.com/$(curl -s https://enclave-distribution.prod.mobilecoin.com/production.json | grep consensus-enclave.css | awk '{print $2}' | tr -d \" | tr -d ,)
curl -O https://enclave-distribution.prod.mobilecoin.com/$(curl -s https://enclave-distribution.prod.mobilecoin.com/production.json | grep ingest-enclave.css | awk '{print $2}' | tr -d \" | tr -d ,)
RUSTFLAGS='-C target-cpu=penryn' SGX_MODE=HW IAS_MODE=PROD CONSENSUS_ENCLAVE_CSS=$(pwd)/consensus-enclave.css INGEST_ENCLAVE_CSS=$(pwd)/ingest-enclave.css cargo build --release -p mc-mobilecoind -p mc-mobilecoind-json
Example Run Command
./target/release/mobilecoind \
--mobilecoind-db ~/my-wallet.db \
--ledger-db ~/ledger-mainnet/ \
--peer mc://node1.prod.mobilecoinww.com/ \
--peer mc://node2.prod.mobilecoinww.com/ \
--tx-source-url https://ledger.mobilecoinww.com/node1.prod.mobilecoinww.com/ \
--tx-source-url https://ledger.mobilecoinww.com/node2.prod.mobilecoinww.com/ \
--fog-ingest-enclave-css $(pwd)/ingest-enclave.css \
--listen-uri insecure-mobilecoind://127.0.0.1:4444/ &
./target/release/mobilecoind-json &
TestNet 2021-05-13
v1.1.0-pre4 Version bump