All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
The crates in this repository do not adhere to Semantic Versioning at this time.
mobilecoind
now has its own version of theLastBlockInfo
proto message. ([#3307])mobilecoind
now exposes the chain-id of the chain it is connected to via rpc ([#3313])
mobilecoind
now produces SCIs with correct tx_out_global_indices values ([#3311])
mobilecoind
now supports generating SCI transactions (#3212, #3214, #3232)mobilecoind-dev-faucet --activate
now auto-activates the faucet on startup (#3062)mc-transaction-signer
crate to define types for view-only accounts and offline signing (#2926)
mobilecoind-json
now always includes theMaskedAmount
version in its responses (#3036)- Replace
tempdir
withtempfile
(#3211) - Libraries used by client SDKs are now licensed under the Apache-2.0 license (servers remain GPLv3) (#3092)
- Restore ability to read the port a gRPC server is listening on (#3107)
- Fog view will no longer claim it's ready before ORAM is loaded ([#3149])
- fix(charts): fix blocklist activation logic (#3048)
- Make the local network script support a dense3 network option (#2988)
- HAProxy Ingress Blocklists (#2952)
- Improved performance of mobilecoind-dev-faucet for better load testing (#2955)
- MCIP 42: Partial-fill rules for signed contingent input transactions
- MCIP 43: Consensus nodes will now sign and publish metadata about blocks
- MCIP 54: Transaction builder support for TxO memo fields for payment intent and request IDs
- MCIP 55: Nested multi-sig for minting transactions
- Services can now output JSON-formatted messages to stdout/stderr
mc-consensus-mint-client
now supports--tombstone-from-node [mc://URI]
to set the tombstone block automaticallymc-consensus-mint-client
now supportsMintConfigTx
parameters from JSON files
- MCIP 52: Transactions now sign a
TxSummary
instead of the previousTxPrefix
, to aid with hardware wallet confirmations - MCIP 53: Extend the
MintTx
to allow direct minting to fog-enabled addresses - MCIP 57: Relax some constraints around ring signature contents in SCI transactions
- Bump
actions/checkout
from 2 to 3 (#2113) - Bump
actions/setup-python
from 3 to 4 (#2114) - Bump
docker/build-push-action
from 2 to 3 (#2425) - Bump
docker/login-action
from 1 to 2 (#2428) - Bump
docker/metadata-action
from 3 to 4 (#2426) - Bump
docker/setup-buildx-action
from 1 to 2 (#2427)
- Bump
protobuf
from 3.19.4 to 3.19.5 in /mobilecoind/strategies (#2602)
- Bump
anyhow
from 1.0.57 to 1.0.61 (#2177, #2365, #2389) - Bump
assert_cmd
from 2.0.4 to 2.0.5 (#2742) - Bump
async-channel
from 1.6.1 to 1.7.1 (#2364, #2386) - Bump
backtrace
from 0.3.65 to 0.3.66 (#2237) - Bump
base64
from 0.13.0 to 0.13.1 (#2755, #2752, #2754, #2751, #2753) - Bump
cargo_metadata
from 0.14.2 to 0.15.1 (#2186, #2768) - Bump
cbindgen
from 0.23.0 to 0.24.3 (#2103, #2117) - Bump
cc
from 1.0.73 to 1.0.74 (#2795, #2797, #2798, #2799, #2800) - Bump
chrono
from 0.4.19 to 0.4.22 (#2349, #2381, #2404) - Bump
clap
from 3.1.18 to 4.0.18 (#2135, #2152, #2182, #2217, #2263, #2264, #2327, #2470, #2561, #2665, #2715, #2756) - Bump
cookie
from 0.16.0 to 0.16.1 (#2610) - Bump
criterion
from 0.3.5 to 0.4.0 (#2238, #2510) - Bump
crossbeam-channel
from 0.5.4 to 0.5.6 (#2154, #2301) - Bump
digest
from 0.10.3 to 0.10.5 (#2560, #2596, #2556, #2553) - Bump
futures
from 0.3.21 to 0.3.25 (#2403, #2451, #2743) - Bump
generic-array
from 0.14.5 to 0.14.6 (#2336) - Bump
getrandom
from 0.2.6 to 0.2.8 (#2138, #2137, #2744) - Bump
grpcio
from 0.10.2 to 0.11.0 (#2207, #2529) - Bump
hashbrown
from 0.12.1 to 0.12.3 (#2247) - Bump
iana-time-zone
from 0.1.44 to 0.1.47 (#2453) - Bump
itertools
from 0.10.3 to 0.10.5 (#2574) - Bump
libc
from 0.2.126 to 0.2.137 (#2384, #2409, #2569, #2631, #2702, #2769, #2775) - Bump
libz-sys
from 1.1.6 to 1.1.8 (#2069) - Bump
link-cplusplus
from 1.0.6 to 1.0.7 (#2423) - Bump
mockall
from 0.11.1 to 0.11.3 (#2300, #2727) - Bump
more-asserts
from 0.2.2 to 0.3.1 (#2087, #2645) - Bump
num_cpus
from 1.13.1 to 1.14.0 (#2825) - Bump
once_cell
from 1.10.0 to 1.16.0 (#2016, #2229, #2410, #2408, #2480, #2579, #2796) - Bump
pem
from 1.0.2 to 1.1.0 (#2262) - Bump
percent-encoding
from 2.1.0 to 2.2.0 (#2499) - Bump
pkg-config
from 0.3.25 to 0.3.26 (#2774, #2778, #2779, #2776, #2777) - Bump
primitive-types
from 0.11.1 to 0.12.1 (#2575, #2787) - Bump
proc-macro2
from 1.0.39 to 1.0.47 (#2173, #2346, #2633, #2723) - Bump
prometheus
from 0.13.1 to 0.13.3 (#2498, #2758) - Bump
prost
from 0.11.0 to 0.11.2 (#2051, #2048, #2049, #2047, #2050, #2320, #2824, #2818, #2819, #2820) - Bump
quote
from 1.0.18 to 1.0.21 (#2175, #2190, #2343) - Bump
r2d2
from 0.8.9 to 0.8.10 (#2187) - Bump
rand_core
from 0.6.3 to 0.6.4 (#2541, #2538, #2534, #2539, #2537) - Bump
regex
from 1.5.4 to 1.7.0 (#2091, #2230, #2841) - Bump
reqwest
from 0.11.10 to 0.11.12 (#2128, #2578) - Bump
retry
from 1.3.1 to 2.0.0 (#2570) - Bump
semver
from 1.0.9 to 1.0.14 (#2124, #2219, #2344, #2540) - Bump
sentry
from 0.26.0 to 0.27.0 (#2176) - Bump
serde
from 1.0.137 to 1.0.147 (#2248, #2244, #2246, #2242, #2245, #2372, #2368, #2370, #2369, #2371, #2424, #2420, #2418, #2422, #2594, #2592, #2598, #2599, #2597, #2757, #2748, #2749, #2747, #2750) - Bump
serde_json
from 1.0.81 to 1.0.87 (#2213, #2345, #2421, #2701, #2740) - Bump
serial_test
from 0.6.0 to 0.9.0 (#2090, #2201, #2385) - Bump
sha2
from 0.10.2 to 0.10.6 (#2482, #2475, #2476, #2477, #2479, #2559, #2551, #2554, #2557, #2558) - Bump
sha3
from 0.10.1 to 0.10.6 (#2330, #2358, #2481, #2478, #2562, #2603, #2741, #2738) - Bump
signature
from 1.5.0 to 1.6.4 (#2402, #2511, #2669) - Bump
smallvec
from 1.2.0 to 1.8.0 (#2161, #2160, #2158, #2159) - Bump
syn
from 1.0.95 to 1.0.103 (#2082, #2174, #2347, #2568, #2608, #2677, #2739) - Bump
thread_local
from 1.0.1 to 1.1.4 (#2162) - Bump
tiny-bip39
from 0.8.2 to 1.0.0 (#2146) - Bump
url
from 2.2.2 to 2.3.1 (#2490, #2496, #2495, #2494, #2497, #2523) - Bump
wasm-bindgen
from 0.2.82 to 0.2.83 (#2509) - Bump
wasm-bindgen-test
from 0.3.28 to 0.3.33 (#2508, #2646) - Bump
zeroize
from 1.5.5 to 1.5.7 (#2212, #2210, #2211, #2209, #2294, #2292, #2291, #2293)
libmobilecoin
andandroid-bindings
have been moved to external repositories
- MCIP 56: Make the enclave enforce unique nonces per-token (improved fix for TOB-MCCT-4).
- TOB-MCCT-5: Reject transactions where the client's fee map differs from the consensus enclave's.
- Update SGX SDK to 2.18.
- Add
Chain-ID
gRPC metadata (MCIP #49) to provide additional runtime disambiguation between clients and servers. - Add a required
--chain-id
command-line arguments to consensus and fog servers. - Add an optional
--chain-id
command-line argument tomobilecoind
. - Support using environment variables to set values for nearly all command-line arguments.
- Update CI deployments to use zerossl instead of letsencrypt.
- Add a
--hash-tx-file
subcommand to 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
. - Make Jaeger telemetry opt-in using
MC_TELEMETRY=1
. - Add a
--block-query-batch-size
parameter to fog-view. This makes fog-view load more data at once from postgres, and helps it to start up faster even if there is high network latency in the connection to postgres. This defaults to 1000 now, where previous behavior corresponds to a value of 1.
- Update
mc-consensus-mint-client
to check that public addresses for minting targets do not have a configured fog server. - Update to
android-bindings
andlibmobilecoin
RNG APIs to assist in idempotent transactions.
- TOB-MCCT-4: Make minting nonces unique per-token.
- Build with SGX SDK 2.17.1 to mitigate and account for INTEL-SA-00657.
- Fix metadata script for new release branch patterns. ([#2298])
- Bump SGX to 2.17, mitigate INTEL-SA-00615
- Updated SGX to 2.16
- Updated
rust-toolchain
version to newer nightly- enables use of Generic Associated Types and static async fn in traits
- Replaced
datatest
with a customtest_with_data
macro. - Replace
structopt
withclap
. - Updated
grpcio
from 0.9 to 0.10.
- Expose the ability to get a TX shared secret to iOS SDK
- Restore the ability to derive an account from legacy root entropy to iOS SDK
- Improve the construction of
Amount
objects from Android SDK
- Fix panic when consensus service is configured for multiple tokens but still running in MOB-only block-version 0 mode.
- Fog is now part of this repository
- Fog Ledger key image checks are now oblivious (fog #101)
- Fog View OMAP size configurable via environment
- Fog Overseer utility for monitoring Fog Ingest instances
- Fog Ingest Client CLI now allows queries to the
get_ingress_key_record
API - Block versioning / protocol evolution (MCIP #26)
- In Block Version 1 (to be enabled along with block version 2):
- In Block Version 2 (to be enabled after network has been upgraded):
- In Block Version 3 (will be enabled in a future release):
- Require TxOuts to be sorted in TxProposal (MCIP #34).
- Enable
Bitcode
forlibmobilecoin
, reduce mobile artifact size by ~25% (#1124) - mobilecoind will now 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. - Bump SGX versions to 2.16. (#1101, #2018)
- Increase the maximum tombstone block for transactions to
20,160
from100
. - Lock enclave no-debug mode when building for IAS production.
- Update Rust toolchain to
nightly-2021-07-21
.
-
Replace
datatest
with a customtest_with_data
attribute macro (#1556) -
Replace
structopt
withclap
, and add support for env overrides for all flags (#1541) -
Fork
bulletproofs
tobulletproofs-og
to use dalek upstream, fix clippy issues from upstream. -
Fork
cpufeatures
to disableCPUID
usage, use fork in enclaves (cargo bug prevents upstreaming) -
Fork
opentelemetry
to update some of its dependencies. (#1918) -
Fork
schnorrkel
toschnorrkel-og
, to use dalek upstream -
Unfork
aes-gcm
and update to 0.9.2, use forkedmc-oblivious-aes-gcm
crate in the Fog hint decryption routines -
Unfork
cpuid-bool
, not used anymore -
Unfork
grpcio
and bump from 0.6 to 0.10.3. (#1592, #1717, #1814) -
Unfork
prost
from bump from 0.8.0 to 0.10.3 (#898, #1109, #1728, #1805, #1806, #1807, #1808, #1809, #1926, #1927, #1929, #1930) -
Update
cmake
fork to git-5f89f90ee5d7789832963bffdb2dcb5939e6199c -
Update
curve25519-dalek
fork from 4.0.0-pre.0 to 4.0.0-pre.2 -
Update
ed25519-dalek
fork to support new rust nightlies -
Update
mbedtls
,mbedtls-sys
forks to support newer rust nightlies, use newerspin
-
Update
x25519-dalek
fork to support newer rust nightlies -
Bump
aead
from 0.3.2 to 0.4.3 (#1389) -
Bump
aes-gcm
from 0.9.2 to 0.9.4 -
Bump
aes
from 0.7.4 to 0.7.5 -
Bump
anyhow
from 1.0.39 to 1.0.57 (#1013, #1146, #1265, #1341, #1529, #1578, #1837) -
Bump
arrayvec
from 0.5.2 to 0.7.1 (#980) -
Bump
assert_cmd
from 2.0.2 to 2.0.4 (#1314) -
Bump
backtrace
from 0.3.55 to 0.3.65 (#982, #1143, #1392, #1817) -
Bump
base64
from 0.12.3 to 0.13.0 -
Bump
bincode
from 1.3.1 to 1.3.3 (#1056) -
Bump
bindgen
from 0.51.1 to 0.59.2 -
Bump
bitflags
from 1.2.1 to 1.3.2 (#1016) -
Bump
blake2
from 0.9.1 to 0.10.4 (#1520) -
Bump
bs58
from 0.3.1 to 0.4.0 (#948) -
Bump
cargo-emit
from 0.1.1 to 0.2.1 (#1045, #990, #1000, #937, #968) -
Bump
cargo_metadata
from 0.9.1 to 0.14.2 (#949, #1135, #1502) -
Bump
cbindgen
from 0.14.3 to 0.23.0 (#1020, #1702, #1824, #1836) -
Bump
cc
from 1.0.66 to 1.0.73 (#919, #920, #983, #985, #1094, #1095, #1096, #1097, #1099, #1164, #1165, #1166, #1167, #1168, #1497, #1498, #1499, #1500, #1501) -
Bump
cfg-if
from 0.1.10 to 1.0.0 -
Bump
chrono
from 0.4.11 to 0.4.19 (#959) -
Bump
clap
from 3.1.6 to 3.1.18 (#1762, #1825, #1847, #1904, #1957) -
Bump
criterion
from 0.3.2 to 0.3.5 (#1059) -
Bump
crossbeam-channel
from 0.5.0 to 0.5.4 (#1039, #1313, #1678) -
Bump
diesel-derive-enum
from 1.1.1 to 1.1.2 (#1311) -
Bump
diesel
from 1.4.7 to 1.4.8 (#1061) -
Bump
digest
from 0.9.0 to 0.10.1 -
Bump
dirs
from 2.0.2 to 4.0.0 (#1071) -
Bump
generic-array
from 0.14.4 to 0.14.5 (#1315) -
Bump
getrandom
from 0.1.13, 0.2.2 to 0.2.6 (#986, #1052, #1031, #1310, #1387, #1532, #1531, #1714, #1712) -
Bump
ghash
from 0.4.2 to 0.4.4 -
Bump
hex
from 0.4.2 to 0.4.3 (#1006, #923, #909, #975, #913) -
Bump
hkdf
from 0.9.0 to 0.12.3 (#1345) -
Bump
hostname
from 0.1.5 to 0.3.1 (#902) -
Bump
itertools
from 0.10.1 to 0.10.3 (#1200) -
Bump
jni
from 0.16.0 to 0.19.0 (#1012) -
Bump
libc
from 0.2.97 to 0.2.125 (#1007, #1070, #1112, #1134, #1141, #1159, #1239, #1348, #1365, #1391, #1492, #1525, #1676, #1782, #1826, #1887) -
Bump
link-cplusplus
from 1.0.5 to 1.0.6 (#1171) -
Bump
more-asserts
from 0.2.1 to 0.2.2 (#1174) -
Bump
nix
from 0.18.0 to 0.22.1 (#1022) -
Bump
num_cpus
from 1.13.0 to 1.13.1 (#1261) -
Bump
packed_simd_2
from 0.3.4 to 0.3.7 -
Bump
pkg-config
from 0.3.17 to 0.3.25 (#915, #925, #965, #967, #1033, #1072, #1066, #1067, #1068, #1069, #1125, #1126, #1127, #1128, #1133, #1235, #1236, #1237, #1238, #1241, #1750, #1751, #1752, #1753, #1755) -
Bump
polyval
from 0.5.1 to 0.5.3 -
Bump
proc-macro2
from 1.0.24 to 1.0.38 (#1104, #1130, #1268, #1777, #1938) -
Bump
proptest
from 0.10.1 to 1.0.0 (#952) -
Bump
protobuf
from 2.22.1 to 2.27.1 (#1754) -
Bump
quote
from 0.6.13 to 1.0.18 (#1092, #1355, #1677, #1716, #1795) -
Bump
rand_chacha
from 0.3.0 to 0.3.1 (#1057) -
Bump
rand_core
from 0.6.2 to 0.6.3 (#921, #930, #947, #977, #1046) -
Bump
rand_hc
from 0.3.0 to 0.3.1 (#916, #972, #976, #988, #1019) -
Bump
rand
from 0.8.3 to 0.8.5 (#911, #914, #928, #999, #1041, #1484, #1485, #1486, #1487, #1489) -
Bump
retry
from 1.2.0 to 1.3.0 (#1036) -
Bump
rocket
from 0.4.6 to 0.5.0-rc2 -
Bump
rusoto_s3
from 0.42 to 0.48. (#1912) -
Bump
semver
from 0.11.0 to 1.0.9 (#1459, #1528, #1715, #1900) -
Bump
sentry
from 0.24.3 to 0.25.0 (#1563) -
Bump
serde_json
from 1.0.60 to 1.0.81 (#1023, #1155, #1170, #1278, #1322, #1344, #1488, #1916) -
Bump
serde
from 1.0.118 to 1.0.137 (#939, #940, #941, #991, #996, #1273, #1274, #1275, #1276, #1277, #1350, #1351, #1363, #1383, #1386, #1894, #1895, #1897, #1901, #1903) -
Bump
serial_test_derive
from 0.5.0 to 0.5.1 (#1001) -
Bump
serial_test
from 0.5.0 to 0.5.1 (#1044) -
Bump
sha3
from 0.9.1 to 0.10.0 -
Bump
signature
from 0.2.2 to 1.4.0 (#1115) -
Bump
siphasher
from 0.3.1 to 0.3.10 (#942, #1003, #1321, #1579) -
Bump
slog-async
from 2.5.0 to 2.7.0 (#1060) -
Bump
slog-atomic
from 3.0.0 to 3.1.0 (#1010) -
Bump
slog-json
from 2.3.0 to 2.4.0 -
Bump
slog-scope
from 4.3.0 to 4.4.0 (#1049) -
Bump
slog-stdlog
from 4.1.0 to 4.1.1 (#1692) -
Bump
subtle
from 1.0.0 to 2.4.1 -
Bump
syn
from 0.15.44 to 1.0.94 (#979, #1064, #1090, #1098, #1132, #1291, #1332, #1642, #1713, #1776, #1886, #1956, #1976) -
Bump
tempfile
from 3.2.0 to 3.3.0 (#1758) -
Bump
url
from 2.1.1 to 2.2.2 (#951) -
Bump
walkdir
from 2.3.1 to 2.3.2 (#997, #962, #931, #974, #922) -
Bump
yaml-rust
from 0.4.4 to 0.4.5 (#993) -
Bump
zeroize
from 1.2.0 to 1.5.5 (#908, #1027, #1028, #1029, #1156, #1360, #1366, #1656, #1896, #1898, #1899, #1902)
- The
slam
test utility, in favor offog-distribution
(#1611) - Support for root entropy-based key derivation in test keys/ledgers (#1893)
- The
pretty_assertions
dependency (#1055, #1078, #1431, #1610, #1657)
- Fog ingest state file handling is more resilient (#1358)
- Fog services sometimes returned the wrong grpc error code for attestation failures
- Added retries for connectivity issues with Postgres database in Fog services
- Fixed a problem with data authentication in the Fog OCALL Oram Storage interface (Thanks to [@AmbitionXiang] for reporting!, #1576)
- Updated TOS.
- Update IP restriction handling in mobilecoind to match TOS.
- Mnemonics-based Key Derivation
- Dynamic Fees rfcs/#1
consensus-service
now takes--minimum-fee=<picoMOB>
to configure minimum fees (nodes with different fees cannot attest to each other).mobilecoind
'sGenerateOptimizationTxRequest
API to takes a user-supplied fee.
- Authenticated fog details in public addresses
- Admin gRPC for
mobilecoind
. mc-slam
load generation utility.mc-sgx-css-dump
SIGSTRUCT (CSS) debug utility.mobilecoind
can send change to a designated subaddress.mobilecoind
support for load balancing (via forked grpcio).mobilecoind
encrypts account key at rest.watcher
app to keep track of Attestation Verification Reports from live machines.
- Bump ISV SVN for consensus enclave to 2
- Reduce minimum fee from 10mMOB to 400uMOB
- Parallelize HTTP transaction fetcher
- Optionally seed RNGs for mock attestation signer from
MC_SEED
env. - Bump rust version to
nightly-2021-03-25
- Update SGX to 2.13.3.
- Use
AWS_REGION
instead of?region=
. - Make enclave errors (to clients/peers) result in
PERMISSION_DENIED
to force reattestation. - Fog hints now use AES256-GCM
- Update
anyhow
to 1.0.39 - Update
arc-swap
to 0.4.8 - Update
arrayvec
to 0.5.2 - Update
backtrace
to 0.3.55 - Update
base64
to 0.12.3 - Update
bigint
to 4.4.3 - Update
blake2
to 0.9.1 - Update
cc
to 1.0.66 - Update
cfg-if
to 1.0.0 - Update
cookie
to 0.14.3 - Update
crossbeam-channel
to 0.5.0 - Update
curve25519-dalek
to 4.0.0-pre.0 - Update
datatest
to 0.6.4 - Update
displaydoc
to 0.2.0 - Update
fs_extra
to 1.2.0 - Update
futures
to 0.3.8 - Update
hmac
to 0.10.1 - Update
indicatif
to 0.15.0 - Update
libc
to 1.0.80 - Update
mockall
to 0.8.3 - Update
once_cell
to 1.5.2 - Update
pem
to 0.8.2 - Update
proc-macro2
to 1.0.24 - Update
proptest
to 0.10.1 - Update
protobuf
to 2.22.1 - Update
rand_core
to 0.6.2 - Update
rand_hc
to 0.3.0 - Update
rand
to 0.8.3 - Update
reqwest
to 0.10.6 - Update
retry
to 1.2.0 - Update
rocket
to 0.4.6 - Update
semver
to 0.11.0 - Update
serde_json
to 1.0.60 - Update
serde
to 1.0.118 - Update
serial_test
to 0.5.0 - Update
sha2
to 0.9.3 - Update
slog-stdlog
to 4.1.0 - Update
slog-term
to 2.6.0 - Update
structopt
to 0.3.21 - Update
syn
to 1.0.45 - Update
tempfile
to 3.2.0 - Update
thiserr
to 1.0.24 - Update
toml
to 0.5.7 - Update
unicode-normalization
to 1.1.17 - Update
version_check
to 0.9.3 - Update
x25519-dalek
to 1.1.0 - Update
zeroize
to 1.2.0
- Unfork
bulletproofs
to unreleased 2.0.0 from github - Fork
grpcio
to a 0.6.0 fork that supports cookies - Fork
aes-gcm
0.6.0 to support constant-time decrypt results
- Update
jinja
to 2.11.3 - Update
pygments
to 2.7.4
- Remove unnecessary limits on consensus request concurrency
- Readme fixes (thanks to contributors @hiqua, @petertodd)
- Fix monitor ID instability in
mobilecoind
. - Normalize fog URL in public addresses before lookup
- Unified rustfmt
- Make encryption/decryption success able to be used from within a larger constant-time context for
mc-crypto-box
. - Stricter EPID Pseudonym length test. (IoActive MC-03)
Initial release.