Skip to content

MobileCoin 1.1.0

Compare
Choose a tag to compare
@jcape jcape released this 10 Jun 20:31

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 &