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 &