Skip to content

0.0.10 - 2024-11-23

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 03 Dec 13:56

Release Notes

✨ Features

  • Global state lock, async leveldb, etc. (fa89d041)
  • Display localtime in dashboard fields (3626465f)
  • Allow batch-queries of blocks with out-of-order starting points (a99b16a9)
  • Derandomize wallet generation (4f3792a4)
  • Reject blocks with timestamp in future (0c0e2c5f)
  • Time locks (80552a81)
  • Report on own UTXOs (e36a6799)
  • Add CLI command for listing coins (497f4462)
  • Display time-locked balance in dashboard (f3007d6d)
  • Add ProofType and BlockType enums (612a753e)
  • Log duration of adding new block (0869f4c3)
  • Make duration macros more flexible (e61ef788)
  • Add tip_info() RPC API (678ede62)
  • Adds rpcs: block_info, block_digest (b433e0df)
  • Add utxo_digest RPC call (b8e7c35b)
  • Improve block_info and fix block_digest rpc (888a00d8)
  • Use rfc339 in Timestamp::standard_format() (5a8ad635)
  • Add block-info command to neptune-cli (3e21a69e)
  • Make block timestamp repr time block found (5f9c9e83)
  • (archival_state) Add method to get parent block of tip (99abbdc2)
  • Add get_cpu_temps (4eef2b7e)
  • Add CPU temp to dashboard overview (2ca45587)
  • (mutator-set) Add function to get active window's chunk index interval (384ca41f)
  • Add neptune-cli send-to-many command (e4e8edd6)
  • Symmetric key notifications (4182f7d3)
  • Persist ExpectedUtxo to disk (db) (232e8520)
  • Add stub for RemovalRecordsIntegrity subprogram (2525f13a)
  • Add tx consensus program KernelToOutputs (cdeec086)
  • Add consensus program CollectLockScripts (d2d34931)
  • Produce ProofCollection (c4ef536c)
  • Verify ProofCollection (7fb3d6d7)
  • Complete consensus program KernelToOutputs (4f01d485)
  • (consensus) Add snippet for reading coinbase amount from memory (914f06e6)
  • Add Display implementation of primitive witness (5ab088d7)
  • (Tx) (Verify capability to) produce ProofCollection (dac7d9c6)
  • (consensus) Update transaction proofs (stub) (e8eb336a)
  • (consensus) Merge transaction proofs (stub) (ee511924)
  • Modify environment when invoking builtin stark_verify (e3004806)
  • Verify KernelToOutputs in SingleProof (de1f930b)
  • Add snippet for storing RRI-claim in dyn memory (72619d9e)
  • (ProofCollection) Store claim for kernel-to-outputs (97846578)
  • (proof_collection) Store claim for collect-lockscripts (b0b13d03)
  • Add generic snippet for new claim (08dfcbc4)
  • (claim) Add snippet for generating collect-lock-scripts claim (2c0419b3)
  • (transaction_consensus) Verify MSA against TXK (65b9081e)
  • (tx-update) Authenticate both MSAs against respective txk-mhash (f4e78c6d)
  • Continue on transaction's Update program (7328794a)
  • (tx-consensus) Add snippet to verify tx inputs against txk MAST hash (8284c3e3)
  • Make progress on tx's update program (2fe3f592)
  • Add snippet for authenticating generic field against txk mast hash (5694640b)
  • Integrate generic field authentication snippet into Update (dcfd13bd)
  • (update) Also authenticate timestamps in update program (bd832f12)
  • (proof_abstractions) Add snippet for verifying integrity of end-vm state (d179a122)
  • (merge) Add snippet for verifying coinbase amount rules (25791088)
  • Add estimate of machine power to networking_state (1702caa6)
  • Make salt for tx-proof-generation deterministic (684dbb4a)
  • Use host-machine power to pick tx-proof type (cd9c7985)
  • Application-level transaction merge (617462f5)
  • (proofs) Query proof-servers for proof (af26c3fa)
  • (mempool) Allow caller to cap num txs for block (7fadf5cb)
  • (main_loop) Add scheduled task to upgrade tx-proofs in mempool (701b1306)
  • (atomic_mutex) Add synchronous try_lock method (bd66d851)
  • Ensure max one instance of Triton VM's prover runs at all times (b08c02e6)
  • Wallet unconfirmed balance. (3c605e40)
  • (difficulty-control) Implement advance difficulty correction (1a4d34b1)
  • Display unconfirmed balance in clients (203fb3ac)
  • Add ScopeDurationLogger (de96f98c)
  • Make log-slow-write-lock timeout configurable (2d0be8f0)
  • Add guesser fee to mutator set (551e9c71)
  • Record nonce-preimage (9f7bfc78)
  • (Timestamp) Implement AddAssign (640b9608)
  • Add serial job-queue for triton-vm jobs (d9b9dfa3)
  • Fifo job ordering of same priority jobs (439192ce)
  • Two-Step Mining (966db77b)
  • Add CLI flag --no-transaction-initiation (93f145be)
  • Generate proofs out-of-process (b7b70e0c)
  • Job cancellation of JobQueue jobs (06ca5d83)
  • Cli opt max_log2_padded_height_for_proofs (7d3826aa)
  • Reward peers for good behavior (6e983cdd)
  • Add JobResult::into_any(), owned downcast() (b18f0d1c)
  • Pause mining if proof complexity limit hit (e9a1c506)
  • (dashboard) Show number of own mempool-transactions (7b1426be)
  • (dashboard) Add mempool overview screen (4b5b9d10)
  • Add log-slow-read-lock feature (21319c9c)
  • Add location to slow scope log msg (adcaeef4)
  • (dashboard) Show proving capability (a2dd0d9d)
  • Log duration of VMState::run() in ProverJob (556c3584)
  • Add crate feature log-lock_events (203e2d23)
  • Include location in log-lock-events feature (a185aca3)
  • (wallet) Add support for offchain UTXO notifications (8592bfdd)

🐛 Bug Fixes

  • Prune_abandoned_monitored_utxos() RPC (1a978991)
  • Flush databases for RPC calls that mutate (723b23a5)
  • Reduce dashboard CPU usage via fewer draws (913a80c9)
  • Synchronize mast_hash trait with tasm snippets (7d99673f)
  • accumulate_transaction (2947dd0e)
  • wallet_state_constructor_with_genesis_block_test (a84a7c26)
  • get_ancestor_block_digests (4571d7c6)
  • Mock blocks should have some proof (c2b5656e)
  • Index blocks by digest not header (665a0dd6)
  • prune_abandoned_monitored_utxos (e4f77ccb)
  • Fix flaky mutator set test (bd15ae7a)
  • (mutator set) Fix flaky test (fcb306f7)
  • Use locked Cargo.lock for installation (94220272)
  • Disable lock_event tracing to fix tests leak (5b81b100)
  • Clippy warning in a test (44579900)
  • Potential overflow in RootAndPaths (86df380d)
  • Time lock tests (e5734d44)
  • Remove double padding (99843e46)
  • (Amounts) Add non-negativity test for outputs (f7206db6)
  • Get_batch_index_async() off-by-1, fixes 3 failing tests (e71ad26d)
  • Mutator set batch remove (18bddc7d)
  • Send syncing start/stop messages to miner (b4a939c8)
  • Build error. u64 --> TimeStamp (bc8ba6ad)
  • Utxo_digest() must call count_leaves() (5aabe432)
  • Use Block::hash() consistently (bf4336e1)
  • (test) Fix flaky timelock test (0a540f8d)
  • Loosen CPU temp test requirement because CI (e651a294)
  • Failing doctest example for new mempool (ff19ec37)
  • Docstring for creating a mempool instance (108cfc46)
  • Adjust difficulty in the mining loop (7fa9c694)
  • Fix RemovalRecordsIntegrity and add tests (6b7534ba)
  • Verify AOCL membership in RemovalRecordsIntegrity (bbab16c8)
  • (consensus) Fix CollectTypeScripts (53e3a430)
  • (consensus) Fix CollectTypeScripts and add test (2b276944)
  • Ensure valid total in arbitrary PrimitiveWitness (6df97476)
  • (consensus) Fix NativeCurrency type script (fab234e2)
  • Make arbitrary for PrimitiveWitness deterministic (c5079cb5)
  • (consensus) Move authentication against kernel forward and fix it (3b9fb920)
  • (consensus) Make RemovalRecordIntegrity valid tasm (3890af49)
  • (RemovalRecordsIntegrity) Populate nd_digests with aocl auth paths (12933daa)
  • (RemovalRecordsIntegrity) Compute canonical commitment correctly (656e80d9)
  • (RemovalRecordsIntegrity) Hash index sets correctly (c6fa1ef4)
  • (RemovalRecordsIntegrity) Hash chunk correctly (0cb274ad)
  • (RemovalRecordsIntegrity) Correct field getters for chunk dictionary entry (a0e5b3bb)
  • (RemovalRecordsIntegrity) Read leaf index from right memory location (cebb5bd5)
  • (RemovalRecordsIntegrity) Fix stack arithmetic (db752e45)
  • (consensus) RemovalRecordIntegrity (159ac807)
  • (GenerationAddress) Fix LockScriptAndWitness generator (18d3acff)
  • (mutator set) Fix update_from_addition (f5b33e7a)
  • (mutator_set) Fix wrong index arithmetic (a73a75ec)
  • (mutator_set) Skip over new chunk index (7d427f44)
  • (mutator set) Record indices of mps updated with append (7771e89f)
  • (mutator set) Condition population of index map (80fe1f6c)
  • (mutator set) Keep empty list up-to-date (186cf822)
  • (removal_records_integrity) Fix MMR auth path in Rust shadow (c628924e)
  • Names of snippet to be in line with that from tasm-lib (6e11750d)
  • (single_proof) Fix RRI claim generation (d1abb5cd)
  • (NewClaim) Bypass poor memory population manually (774e11ac)
  • (GenerateRriClaim) Populate rust shadow stack correctly (fc3d63e2)
  • (Tx) Fix production of nondeterminism in Update (ae3e6e12)
  • Fix discrepancy in Update's nondeterminism generator' (e6b2185a)
  • (Timelock) Update tasm code for Timelock (a792bb75)
  • (PrimitiveWitness) Fix arbitrary primitive witness with timelocks (7ff87142)
  • (test) Add missing assert in host-machine logic of MSA authentication (dfcee576)
  • (lints) Fix or silence clippy warnings (bf472cb2)
  • (primitive_witness) Split arguments correctly (0afa2161)
  • (primitive_witness) Arbitrary generator for two PWs (ee86cdf2)
  • Correct Map's input types (71344d3f)
  • (Update) Make output empty (466ef486)
  • (SingleProof) Read txk digest once (8e2d5eba)
  • Primitive witness generation on tx creation (8b6effe5)
  • State-related tests (9d4bd1b2)
  • (test) Allow_consumption_of_genesis_output_test (1957886a)
  • Fix deadlock in test-helper function (f6ec10f9)
  • Blocking issue when fetching proofs for tests from proof server (b63a27b7)
  • Make announcement payload public again (2ffaf6e8)
  • Make tests in state/mod.rs compile (4aea8999)
  • Make public announcement encryption deterministic (e0f44818)
  • Make send_to_many test deterministic (c7b1e997)
  • Make RPC server's send_to_many test deterministic (a61d4999)
  • Formatting errors for imports (c721f8ea)
  • Docstring test for mempool (0987997a)
  • (wallet_state) Don't use timelocked UTXOs as tx-inputs (d6f5680a)
  • (mempool) Remove all conflicting transactions (96c4a3ae)
  • (mine_loop) Don't hold read-lock when generating coinbase transaction (5c0242b5)
  • (ci-test) Force CI machine to think it can generate SingleProofs (1de32102)
  • Relate block hash to predecessor difficulty (bb339590)
  • (difficulty-control) Simplify controller (6407a300)
  • Space blocks apart in tests (0a6c30f0)
  • Conflicting implementations of Arbitrary (201092ac)
  • (BlockProgram) Fix implementation of Block's 1st claim: transaction_is_valid (e57f4593)
  • Make proof producers async (e36fdb86)
  • (test) Restore_monitored_utxos_from_recovery_data_test (cba9279a)
  • (block_program) Output all claim digests verified (131365f3)
  • (test_helper) Make_mock_block_with_valid_pow (cff358f5)
  • (Arbitrary) Fix arbitrary impl of TransactionKernel (74ed400d)
  • (TxIsValidWitness) Std-in is block body mast hash, not tx-kernel's (0016fa93)
  • Drop block-verify asserts in mempool test (d1b9939e)
  • Use invalid block template in wallet test (ffeaeea5)
  • (peer_loop) Fix test in peer loop (40e4723d)
  • (SingleProof) Verify that discriminant has legal value in TASM program (f9aeb505)
  • Disable log-slow-write-lock for stable channel (e3002a6a)
  • Remove all futures::executor::block_on() (85ebb168)
  • Shutdown even if prover is running. (41b170d6)
  • Handle 'channel closed' err on ctrl-c (5b721a31)
  • Await aborted tasks in graceful_shutdown() (2cd9d1a5)
  • Find triton-vm-prover in same dir as neptune-core (9909e233)
  • Ignore stderr when invoking triton-vm-prover (18f2bef8)
  • Stop queue when last JobQueue instance drops (2eb6dff9)
  • (mempool) Prefer tx with higher proof quality (2304ae7f)
  • (mutator_set) Drop correction of removal records (18e98e8a)
  • Fixes a compile error on stable rustc (430afd67)
  • Avoid sending job-cancel if channel closed (aa009d0d)
  • (mock_genesis_global_state) Allow setting tx-prover capability (f2beea8a)
  • Scope duration logger was not working (2888c480)
  • (dashboard) Correct historical balance (c0a6afff)
  • Unused case in macro log_slow_scope() (23b6de29)
  • Use wrapping add to avoid panic (4a86c6e0)
  • Check emptiness, not absence, of SWBFI chunks (a79b827c)
  • (CLI-args) Drop static variable in caching accessor (ed38cf5f)
  • Avoid overflow (2175b1e5)
  • Fix generate_collect_lock_scripts_claim (8750bed9)
  • Fix generate_collect_type_scripts_claim (cd63a8ab)
  • Fix rust shadow of claim template generation (94af1a2c)
  • (test) Introduce assertion error IDs (6bceec5e)
  • Use canonical hash of claim to derive proof file name (8ce6c761)
  • (SingleProof) Bug in claim method (d2e556ce)
  • Un-pause mining if returning early in send() (f2230d24)
  • Send no longer pause/unpause mining/composing. (4ba22f7b)
  • Expand height of notice text and wrap text (07721001)
  • (mine_loop) Flip logic of sleepy_guessing (4316b8d3)

🚀 Performance

  • Make archival_state file ops async/friendly (e6031bf9)
  • Use non-blocking I/O in wallet_state.rs (1a6cdd1a)
  • Add sync_atomic bench test (636c53a9)
  • Add db/storage bench tests (ae8c0c77)
  • Add benchmark for archival-MMR appned operations (e98baa29)
  • Speedup AMMR append operation (c2d7ee45)
  • Add benchmark of AMMR leaf mutations (70f06c6e)
  • Speed up archival-MMR's leaf mutation by removing auth path (e282482a)
  • Faster count_leaves and prove_membership_async for MMRA (3adb0216)
  • Add benchmark of ArchivalMMR's get_peaks (081acaa2)
  • Add spawn_blocking around script execution (bf83e9ca)
  • Wrap mining loop with spawn_blocking() (b17c8b32)
  • Wrap tx prover with spawn_blocking (b160e1d1)
  • Optimize get_peaks_and_heights for archival MMR. (e6f3e916)
  • Optimize get_peaks_and_heights for archival MMR. (e1bf9dda)
  • Make Block::hash() 0(1) via precompute (20f4e0fa)
  • Only compute block digest if hash() called. (b5ad29c6)
  • Use OnceLock for Block::digest field (6b71f348)
  • Avoid holding write-lock across prove() (10a95b6d)
  • Avoid unneeded write-lock in send_to_many (d177cca5)
  • Make scan_for_expected_utxos o(n)+o(m) (90aaa942)
  • (!) Use iterator for receiver digests list, instead of list (6b06a33a)
  • (RemovalRecordsIntegrity) Use varlen hashing with static size (9251326c)
  • (peer_loop) Return batch of blocks based on 1st matching digest (15970eb1)
  • (test) Speedup how blocks with valid PoWs are found for tests (95156b03)
  • (test) Make test_difficulty_control_matches faster by parallelization (ae5a6359)
  • (test) Parallelize block production in resync_ms_membership_proofs_across_stale_fork (819047a8)
  • (test) Don't rebuild block in block_hash_relates_to_predecessor_difficulty (119a9691)
  • Log_slow_scope(), better description when running vm program (0ca21177)
  • Wrap VM::run() with spawn_blocking() (621c7e69)
  • Acquire read-lock only once in dashboard rpc (c1c78b22)
  • Cache TimeLock and NativeCurrency hashes with OnceLock (9a135d5d)
  • Impl hash() with OnceLock for impl ConsensusProgram (1b81397d)
  • Disable cpu temp in dashboard data. (dd1e9fd8)
  • Slow scope logging for dashboard_overview rpc (de87a93f)
  • Avoid extra tip5 hash in Utxo::hash() (9c75ffec)
  • Avoid extra tip5 hash in TypeScript Hash impl (6a430dc9)
  • Cache CliArg::proving_capability() result (576f1b36)
  • Lower cpu priority of triton-vm-prover (60254645)
  • Remove extra rpc calls, fix notice display (6328fee0)

📚 Documentation

  • Remove obsolete comment line (e39186ad)
  • Add git_branches.md, update README.md (39b3eba8)
  • Add conventional commits and topic naming (53999e4c)
  • Git branch workflow (31514e19)
  • Clarify validity of uncle blocks (e8b858bb)
  • Improve installation instructions (bb435567)
  • Document NativeCurrency and NeptuneCoins (643bdb62)
  • Fix doctests. all tests now passing (52f75c83)
  • Update DbSchema docs, remove unused files (bde7172d)
  • Doc-comment tweak (c4c32cc5)
  • Output which directory is used for MS init test (d372d727)
  • Comment lock usage in send rpc. (a40aee0e)
  • (tip-updater) Elaborate on comments in method to update tip (65b283c7)
  • Improve error message on client startup (167b452b)
  • (mempool) Elaborate on mempool methods (fe65beb8)
  • Describe state element's tolerance to reorganizations (1e788556)
  • Apply feedback on documentation of reorganization (d76d3a69)
  • Create mdBook (ec08ef13)
  • Add consensus overview (eb5fc0fe)
  • Finish first draft of transaction validity (bbc2c130)
  • Add outline of block consensus (c214af4c)
  • Clarify transaction and block consensus rules (4b9fd578)
  • Add diagram and table to clarify transaction validity (1a0839f1)
  • Address updating of removal records auth paths (308ecbb2)
  • Comment send-to-many outputs parsing (a70adbcf)
  • Danda's first read edits (0c71a42f)
  • Rewrite "Atomic writing to databases" (c58be396)
  • Clarify "Atomic writing to databases" (7e64b1cc)
  • Fix cargo doc warnings (ae49fa4a)
  • Fix clippy 1.80 doc-comment warning (a111926f)
  • Improve/fix doc-comments. (48122030)
  • Add description of generation addresses (67a20f4d)
  • Add mdbook note re generation key naming (340fb9c3)
  • Update PeerLoopHandler doc-comment (a59bae6b)
  • Add comment about ignoring cost of reallocation (40983b57)
  • (kernel_to_outputs) More descriptive loop name (c81a19ba)
  • Verify AOCL membership in RemovalRecordsIntegrity (b5f3de98)
  • Fix diagram: show all inputs to TypeScript (62d46175)
  • Add docs for UTXO, scripts, Neptune Coins (1e85e0ac)
  • (consensus::transaction) Add motivation for TX-validity (68906d07)
  • Update transaction.md (e78e4caf)
  • (Tx) Add fields of PrimitiveWitness (935d7fd2)
  • Update comment on RegTest variant (e4ee8cd8)
  • Add documentation on sharing proofs (6f18665b)
  • Restrict suggested nginx server config for proof server (3ebc8775)
  • Update comment on whether to make test helper async (4012b33a)
  • Add ASCII diagram to difficulty control mechanism (08d6d192)
  • Add docstrings to Difficulty and ProofOfWork (5cfe4a8a)
  • Add proof server documentation to mdbook (069637ca)
  • Clarify possible error in return value (355bbda1)
  • Update max_log2_padded_height_for_proofs description (005c5fca)
  • Update README.md (3465c8c4)

🔒️ Security

  • (Block) Drop field uncle_blocks (785b0ef4)

♻️ Refactor

  • Add GlobalData::store_block() (853affd3)
  • No more LevelDB interior mutability (4098dc78)
  • Require mutable access via monitored_utxos_mut() (7f781ddf)
  • No more interior mutability for RustyArchivalMutatorSet::ams (4912ccd6)
  • Make NeptuneLevelDb api take &mut self. (150dd848)
  • Add prelude.rs and simplify deps (eda04be8)
  • (consensus) Introduce skeleton for block validation logic (af4bb001)
  • Wip modify block structure (5ac6e841)
  • Make compile (4a694c4c)
  • get_children_blocks now takes Digest (258fdf6a)
  • (block) Drop body hash from header (bc4e3c14)
  • (block) Drop mutator set hash (7821efe1)
  • Simplify HasDiscriminant trait (78b9793a)
  • (amount) Amount -> NeptuneCoins (99e8da6d)
  • Use fold() in indices_to_hash_map() (2309850c)
  • Move cli args out of RwLock (89ef48c2)
  • Rename native_coin -> native_currency (c3e8c939)
  • Add type_scripts directory (ac0637b9)
  • Finish renaming (e1bc0455)
  • (consensus) Simplify PrimitiveTransactionWitness (dc1dfcf7)
  • Factor out inputs and outputs generation (e903689f)
  • Factor out valid output amounts finding (66a94149)
  • Wrap witness UTXOs with salt (eda0fa86)
  • Expand trait SecretWitness (88c26dc6)
  • (Amounts) Switch to u128 (79933279)
  • (Amounts) Use safe_add (477c378c)
  • Integrate time-lock logic (aea112f8)
  • Update Network enum (809817bb)
  • Make genesis block relative to Network (4bc8c6ac)
  • Harmonize timestamps (9e55a5b6)
  • Kill traits Mmr and MutatorSet (5acf2073)
  • Drop MutatorSetKernel (343209ef)
  • Remove sync methods in ArchivalMmr (72a9fa6b)
  • Remove MPs as input to batch_mutate_leaf_and_update_mps for archival-MMR (ac8be915)
  • Don't return peaks when getting MMR auth path from AMMR (cae4b55e)
  • Polish RPC API (587e9eb5)
  • (test) Update state through GlobalState's set_new_tip_internal (c64b7905)
  • Change type of CPU temperature to f32 (2e086c31)
  • Improve on/off chain notice handling (448e0ec1)
  • Sender can specify change notify method (682b47cd)
  • Prepare for Symmetric Key notifications (9d2091e1)
  • Move change outside create_transaction (d5f20fe0)
  • Separate create_raw_tx, create_tx (0612210c)
  • Create Address enum (c4f65687)
  • Create_transaction, tests compile but 5 fail (76f8335e)
  • Add privacy_preimage to UtxoReceiver (9e48306e)
  • Abstract over spending key type (6195fa7c)
  • TxInput, TxOutput (a42aa19f)
  • Make from_bech32() take &str (d6b5daef)
  • Simplify keys and utxo notifications (a37f5ef8)
  • Atomic_rw requires &mut self (8a87902f)
  • (Block) Add variant DummyProof to BlockProof (75dc4974)
  • Move RemovalRecordsIntegrity out of tasm folder (daf8415a)
  • Hide field dictionary on ChunkDictionary (db2e79dc)
  • (chunk_dictionary) Hide type of internal field (c0ff03c1)
  • Change internal representation of ChunksDictionary (44aaf4fa)
  • Add commitment randomness fields to PrimitiveWitness (b300b207)
  • Use From to cast witnesses (a398a091)
  • Add tx consensus program CollectTypeScripts (3b48ee85)
  • Add const MAST_HEIGHT on trait MastHash (8988478e)
  • (consensus) Add tasm code for CollectLockScripts (0c8d0e9d)
  • (consensus) Link CoinbaseAmount with NativeCurrency (6eb6ea2e)
  • Remove all references to MMR's MP-leaf-index (db8eb164)
  • (removal_records_integrity) Factor out TASM for MAST hash checks (54691084)
  • Remove use of MMR-membership proof's leaf index from TASM (a3add519)
  • Separate LockScript from Utxo (7f4d07ef)
  • Drop unused function (24aed203)
  • Introduce and use const Digests for subprogram hashes (c4813bfb)
  • Wrap ProofCollection into variant of new enum SingleProof (62d05162)
  • (Tx Update) Anticipate verifying an MMR extension (c7181885)
  • (removal_records_integrity) Only initialize memory with needed fields (27e2c123)
  • (removal_records_integrity) Read swbfa from ND-stream (174d36a5)
  • (ArchivalMMR) Drop generic type argument <H> (987373e0)
  • (Tx Update) Include AOCL MMR successor proof (17b3e8fe)
  • Use rust more idiomatically in verify (e245f926)
  • Drop reverse with VecDeque in emulated Triton environment (d9375e0b)
  • Factor out claim assemblers (1a7fcf20)
  • Factor out dup-digest-from-stack-and-reverse (d3e84419)
  • (SingleProof) Factor out common tasm blobs (17e4716e)
  • (SingleProof) Factor out instance of load_digest (7ed55d8f)
  • (Tx Consensus) Relativize Update and Merge wrt SingleProof (f6c08676)
  • Integrate NewClaim into GenerateRriClaim (e3cbecda)
  • (SingleProof) Use GenerateRriClaim (58d4b4e3)
  • (K2O) Integrate NewClaim into GenerateK2oClaim (e98d16b8)
  • (claims) Move helper snippet new_claim to claims dir (8755e29e)
  • Use type script claim template generator in SingleProof (3ed77bb8)
  • (Update) Fix tasm verification of SingleProof (f1a5901e)
  • (TimeLock) Generate primitive witnesses with expired or active time locks (618e3f4a)
  • Convert MSA authentication snippet to MemPreserver trait (f7c1674b)
  • Remove unused snippet to hash removal records (d877d60d)
  • Extract snippet “single proof claim” (8a487649)
  • Split RR hashing from set equality check (9a5ca304)
  • (merge) Use ChainMap for inputs (5a857f0c)
  • (compute_indices) Remove obsolete snippet (4ddd9717)
  • (msa_and_records) Move split_by to tests (1eef8993)
  • (create_transaction) Allow caller to specify proving capability (7cc44ae3)
  • (Tx) Enable updating txs with new blocks (f05a49f3)
  • Allow insertion of pw-backed txs into mempool (a0d20bba)
  • Stronger types in proof-fetching logic (fc3e5b67)
  • Make clippy happy (e4751951)
  • Rename function to new_native_currency (c83da55e)
  • Add function to extract ExpectedUtxos (3e900073)
  • Move some test-case generaters under test-flag (b9cc3924)
  • Make all proving-functions async (200453d8)
  • Wallet updates now atomic with mempool (82a9fc7a)
  • Remove un-needed Result<()> in mempool (2940ee05)
  • Modify fork choice rule (64e53300)
  • Require minimum block time (be54cf80)
  • Modify interface of difficulty_control (84c4db25)
  • Use Timestamp for time intervals (cc00882f)
  • Move difficulty control to separate file (a5152ed5)
  • Rename difficulty_to_digest_threshold to target (c8bfdf12)
  • (difficulty-adjustment) Make PID adjustment multiplicative (26c7645e)
  • (difficulty-control) Clamp error (5843fe41)
  • Use new types Difficulty and ProofOfWork (ce2361ba)
  • (difficulty-control) Factor out mul by fixed point rational (9d1a426f)
  • (Block) Encapsulate fork choice rule into function (7ba0f85c)
  • Move block program into separate file (78932e8b)
  • Pull TransferBlock into separate file (1158cf16)
  • Drop block consensus program TransactionIsValid (5707fed3)
  • Dedicate function to hash-lock (30079632)
  • Supply guesser fee argument to state updaters (ff04f020)
  • Split guesser fee into time-locked and no-lock (9e2d854f)
  • Pass current block to mempool update (8c0cced6)
  • Job-queue improvements. (843aa42d)
  • Use MiningStatus to track and display mining status (621bda88)
  • (Block) Reduce visibility of mutator_set_accumulator (2a54b5e8)
  • Make block mutator set implicit (a6324acd)
  • Distinguish between block-body-MSA and MSA-after-block (fc91b17f)
  • Drop guesser fee records from update interface (5989885f)
  • Drop reward for transactions (54ace0c2)
  • (peer-loop) Distinguish positive from negative sanctions (655865e2)
  • Maybe future-date Tx timestamp in block proposal (ed9df050)
  • Remove deprecated duration macros (ad273c5a)
  • (MainLoopHandler) Encapsulate channel to miner (25495f17)
  • Reduce visibility of CLI args on GlobalState (50784249)
  • Make TransactionKernel immutable (19b5ac54)
  • (mempool) Do not update primitive witnesses transactions (51b87dc1)
  • (NetworkingState) Drop proving capability (9c21222d)
  • (ConsensusProgram) Take owned argument (b6e4aebe)
  • Set defailt network CLI arg to beta (1b724b60)

✅ Testing

  • (block mmr) Can prove block ancestry (696facde)
  • Make test case less timing sensisitive (9b13d608)
  • Add manual integration test scripts (bda1fd1e)
  • Implement Arbitrary for RootAndPaths (76a3aab8)
  • Add struct MmraAndMembershipProofs WIP (37cfe4f1)
  • Add test for RootAndPaths reaching max tree height (a7e7df65)
  • Ensure RootAndPaths panics for too-large indices (1d7ff91b)
  • Fix arbitrary_with for MmraAndMembershipProofs (b51333f2)
  • Implement arbitrary_with for PrimitiveWitness (ddfa13cc)
  • Implement arbitrary_with for TimeLockWitness (cd05d828)
  • Implement arbitrary_with for MsaAndRecords (7d27ba14)
  • Fix arbitrary_with for MsaAndRecords (5b60c624)
  • Fix arbitrary for PrimitiveWitness (64434d29)
  • Add tests for NativeCurrency (e7fc923f)
  • Test that released tokens can be spent (dabedd89)
  • Fix failing test (22a9c78d)
  • Implement arbitrary_between for Timestamp (990cf777)
  • Fixes broken doctests (147c524c)
  • Reduce size of all tests running more than 20 seconds in Mjolnir (ac9f61c9)
  • Add test of AMMR's batch leaf mutation (91bb776b)
  • Add test mined_block_has_proof_of_work (bcb56952)
  • Test block timestamp repr time block mined (318b7a20)
  • Delete bad helper function from test lib (4e0e75d6)
  • Add mining difficulty regression test (0458d773)
  • Add utxo_receiver tests (5dbb38e6)
  • Add send_to_many_test() (0b499333)
  • Add mod global_state_tests::restore_wallet (a8272ad1)
  • Add failing test for #172: ExpectedUtxo (0663c687)
  • (mine_loop) Fix tests wrt dropped accumulate_transaction (152598f4)
  • Fix tests in state/mod.rs wrt accumulate_transaction (c3bef8e2)
  • Fix tests in mempool.rs re dropped accumulate_transaction (32d1a7fa)
  • Fix stalling tests (57783e8e)
  • Fix complex wallet state update test (723a2263)
  • Harden KernelToOutputs test (52f50215)
  • Add case generator for PrimitiveWitness with time locks (372c7d0a)
  • Test validity of primitive witness with time locks (d49dbe1d)
  • Fix test for CollectTypeScripts (d69ca2b9)
  • Harden tests for NativeCurrency (76da2a77)
  • (consensus) Do not reverse digests in output (590dc130)
  • (PrimitiveWitness) Set arbitrary AOCL size to less than 2^63 (fff8991e)
  • Add test for SingleProof with time-locked transaction (a5ad1ef5)
  • (update) Factor out witness-generation function (3ef0663e)
  • (Update) Ensure that mutator set is updated too (0c58e069)
  • (tx-update) Add negative tests of update program (6c6d4e77)
  • (tx-update) Add negative test of manipulated index sets (20e74436)
  • (primitive_witness) Add generator for tuple with matching MSAs (84be7af5)
  • Verify matching outputs (318f9fba)
  • (SingleProof) Test Update pathway to SingleProof (c61d2f85)
  • (collect_type_scripts) Fix confusing test (ec94a8e6)
  • (mempool) Fix monster test (da4d85e1)
  • (mine_loop) Fix difficulty-adjustment test (65b65835)
  • Fix test checking archival MS rollback (55826919)
  • Fetch proofs from proof-server if not found locally (0f142f83)
  • (mine_loop) Fix timestamps (19dbfca9)
  • Verify no crash on proving-power-estimator (11acbe04)
  • (proof_server) Attempt to send test-name to server on requests (d9c2a90f)
  • Don't create expensive SingleProofs in mempool test (13207aae)
  • Add a proof server (e162e0a6)
  • Fix tests in mine_loop.rs (52004512)
  • Fix broken test: flaky_mutator_set_test (885641b8)
  • Fix test block_template_is_valid (a12ecdf3)
  • Speed up test of mempool proof-maintanence through updates (061070f1)
  • Specify proving capability SingleProof (2b618409)
  • Set proving capability to SingleProof (a3fd2375)
  • Fix restore_wallet tests by setting proving capacity (a62ecd1d)
  • (peer_loop) Introduce ability to mock time (9afad221)
  • Fix a couple failing doc-tests (b3a0bf0f)
  • Add more blocks to reorganization test (a6b54a3d)
  • (mempool) Test new method most_dense_proof_collection (7fc160bc)
  • (proof_upgrader) Add test of main loop's scheduled task for proof upgrades (214642f4)
  • (hash_removal_record_index_sets) Fix flaky test (4136cb4a)
  • Space blocks apart by minimum block time (c9b2eb90)
  • (difficulty-control) Verify no-overflow (8d031034)
  • (mempool) Fix wrong timestamps (94e1a8bf)
  • (PrimitiveWitness) Add arbitrary impl for Merging into Blocks (08a02903)
  • Add arbitrary generator for BlockPrimitiveWitness (d6481694)
  • Implement first block validity program (!) (d840745b)
  • Test graceful halt of BlockProgram (89c26a42)
  • Fix test mine_10_blocks_in_10_seconds (0b87c4d8)
  • Estimate block preparation time (840ea2c0)
  • Factor out helper for sequence of blocks (75522311)
  • Use block sequence helper function (de1312d1)
  • Support multi-user 'cargo test' on same machine (a2d80cb6)
  • Define and use helper make_mock_transaction_with_mutator_set_hash (8251e193)
  • Add spawned_tasks_live_as_long_as_jobqueue (14c294ba)
  • Fix test network_response_is_consistent (b359091a)
  • Update jobquee test, remove #[should_panic] (3caf807f)
  • Fix flaky job-queue test (5b1a5f62)
  • Trigger sanity check with negative test (ecbcbe8f)
  • Fix nasty off-by-one error in arbitrary impl (b33a7683)
  • Kill magic constant (f211f25f)
  • Fix wallet-balance test after changing block subsidy (2b012788)
  • Fix mempool-related test in CI (2d48dd66)
  • Fix test failure in CI (761be764)
  • (claim_utxo) Ensure double registration does not change balance (c4288ee2)
  • (Block) Add test that double-spending blocks are rejected (4746a778)

⏱ Benchmark

  • Remove now-unneeded step in AMMR benchmark (56e3bc12)
  • Add benchmark for batch-mutation of leafs in AMMR (3cbf59c4)
  • Add benchmark for KernelToOutputs (c6e3de65)
  • (consensus) Add benchmarks for script collectors (94873783)
  • (transaction) Factor out profile-generator for consensus programs (97dbcb2d)
  • Update benchmarks (c0175c5c)
  • Update consensus-benchmark results (a2d980d2)
  • Add removal record index set hashing bench (11cbbc52)
  • Update benchmarks (a61a2c4c)

🎨 Styling

  • Rename crate::locks::sync to std (ab579295)
  • Remove '_async' from ArchivalMmr methods (e88c7155)
  • Add .vscode/settings.json to .gitignore (f54c68ea)
  • Rename receiver_preimage (9f3df51f)
  • Clippy, fmt, docs (8195bf43)
  • Rename var: utxo_receiver -> tx_output (336f1ef9)
  • UtxoReceiver -> TxOutput in comments (15835596)
  • Is_wallet_utxo() -> can_unlock() (4f1f0261)
  • Replace 'thread' with 'task' (8d302dcd)
  • (kernel_to_outputs) Make linter happy (fe062493)
  • Make linter happy about removal record integrity file (59419c6f)
  • (removal_record_integrity) Refactor imports (c11848e7)
  • (removal_record_integrity) Add explicit types to Rust-shadow (9322badf)
  • Simplify directory structure (9f67c3fb)
  • Complete simplification of directory structure (78b3573c)
  • (genesis_block) Avoid mutable tx variablk (6b2d21f9)
  • Name players in tests (86a695ba)
  • Reduce visibility (0b6f038d)
  • Make clippy 1.83.0 happy (0ee4db22)
  • Replace print with use of logger (1f570ec3)
  • Make many pub functions pub(crate) (0624a4ba)
  • (main_loop) Rename timers and intervals (259bf73e)
  • (lib.rs) Change logic for opening p2p TCP-listener (a6a812f1)
  • Make linter happy (85ff54f3)
  • Declare variables in using match-branch (64484cb3)
  • (difficulty-control) Multiply fixed-length u32 arrays directly (6d918ec8)
  • Use idiomatic OnceLock for caching (6deeeb04)
  • Add stop method to JobQueue (4a36ec54)
  • Prover job returns thiserror style error (608d21ef)
  • Rename ConsensusProgramProverJob (e41ccc1e)
  • (dashboard) Hide useless stack trace (3ed0946a)
  • Drop unnecessary closure (038ef6a7)
  • Remove un-needed trait bound from impls (3884b0a7)
  • (Transaction) Move test constructor to test module (d9058529)
  • Fix many style issues (5c7e1cd8)
  • Happify clippy (18602898)
  • (dashboard) Fix clippy complaint (fb07e336)
  • (ConsensusProgram) Return early on error (400aa9fe)
  • Prefer display() over to_string_lossy() (87057cf3)

🛠 Build

  • Upgrade h2 to version 0.3.24 in Cargo.lock (d9b48c3a)
  • Cargo update; fix tarpc/tokio_serde deps (59b4eed5)
  • (deps) Bump mio from 0.8.10 to 0.8.11 (17dd186d)
  • Cargo update and fix breakage (eea86e01)
  • Use major.minor for all deps (015e4dbf)
  • Fix build errors for rustc 1.80 (7ec96932)
  • Set flags to make Triton VM compilation fast(ish) (c19dfcad)
  • Set up binary artifact distribution (#216) (5b74c61c)
  • Bump version (4a415531)

⚙️ Miscellaneous

  • Update tasm-lib to current master (bf2c77bd)
  • (mutator set) Drop generic type argument (c85273fa)
  • Implement arbitrary (df00fe0f)
  • Moving storage from twenty-first (db800e5e)
  • Fix clippy 1.77 errors (a8a47690)
  • Clippy, remove needless casts (1c5e6c9d)
  • Replace emojihash of latest block with timestamp of latest block. (83c56e22)
  • Update to t-vm 0.40 twenty-first 0.40 (a00aa939)
  • Adapt to MMR::verify() return value change (c6e76f3d)
  • Upgrade to latest tasm-lib (d46dfcb2)
  • Block.kernel.mast_hash() --> block.hash() (c94a02bf)
  • Log info in PeerMessage::BlockNotification (10761a70)
  • Log timestamp when new block is mined. (64c46e86)
  • Use block_selector in neptune-cli header (e4276d80)
  • Use twenty-first compat with blockexplorer (5ef24236)
  • Cli wallet-status outputs pretty json (e215cb05)
  • Add doctests to Makefile recipe (80b3b34f)
  • Rename key types (525d24de)
  • Make NeptuneCoins more human friendly. (7d2b89e8)
  • Canonicalize use statements (733182a4)
  • Cleanup consts, improve doc comments (7ab26752)
  • (consensus) Progress on NativeCurrency (674577d0)
  • (tasm-lib) Update tasm-lib upstream to latest commit (3b347659)
  • Integrate reviewer feedback (9fff18a5)
  • Bump tasm-lib version (90cfb1e4)
  • (SingleProof) Use claim generator snippets (f56dc844)
  • (Update) Anticipate verifying an MmrSuccessorProof (8c2b55cf)
  • Add makefile recipe for producing expensive proofs (7e219529)
  • Upgrade upstream tasm-lib (715ed21c)
  • Upgrade upstream tasm-lib to get latest traits (e384475e)
  • Upgrade tasm-lib to fix bug in MMR successor proof snippet (4478753d)
  • Upgrade tasm-lib upstream (bc130ef7)
  • Update upstream tasm-lib (38b507c2)
  • Update upstream tasm-lib to TVM 0.42-alpha10 (28c87556)
  • Upgrade upstream tasm-lib (9a2af3f5)
  • Update upstream tasm-lib (7dbd94fc)
  • Ignore proofs in ./test_data (1b288b6c)
  • Audit preloaded data (c446e7e7)
  • Bump tasm-lib to TVM 0.42.1 (35fc72b9)
  • Delete privacy flag from CLI args (f4ea5ec1)
  • (block) Drop parameter network from premine_distribution (0a12392b)
  • (mutator-set) Drop redundant bounds check (a856b2f8)
  • Update Cargo.lock (26c83cad)
  • Change data model to allow non-standard lockscripts (1c71167c)
  • Make latest rust version happy (7b472ed3)
  • Add field for tx-proof-upgrading timer (e2abf6b1)
  • Skeleton for block proofs (237ec263)
  • Make linter happy (926650f3)
  • Skip load-dependent mining test (b8b7f3ee)
  • Disallow coinbase when tx has inputs (#214) (b08614c5)
  • Audit preloaded witness data (ebdb760c)
  • Add log-slow-write-lock crate feature (76bafbb2)
  • Change type of nonce to digest (bbbc6caa)
  • Set guesser-fee fraction of block subsidy in coinbase tx (1dff0fed)
  • Accound for guesser-fee UTXOs when resyncing MS-MPs (31322675)
  • Make linter happy (ff2ca0fb)
  • Make formatter happy (8c3c77ac)
  • Only show whole seconds in Display (40b2dfb4)
  • Log prover job start/end with random id. (f173d30c)
  • Log job number in JobQueue (6f4046df)
  • Log number of pending jobs in JobQueue (93151447)
  • Include job duration field in log msg (79ee090a)
  • Enable anyhow backtrace feature (a8142d2e)
  • Log job count when a job is added to queue (2abf450c)
  • Change how queued jobs are counted (5759cf20)
  • Spawn threads for proof-updates (18467c40)
  • MutatorSetUpdateSequence (1edebfed)
  • SEt proving capability on CI machine (9cd36164)
  • Use panic=abort for release and dev builds (61db5d06)
  • Proving job returns anyhow::Result (d9e3d317)
  • Revert run-single-instance change (8e45ee98)
  • Rename script for parsing slow lock warnings (a89c719d)
  • Run nodes with slow-locks features (9ea13532)
  • Instrument Rpc::send_to_many_inner() (c3d0b825)
  • (dashboard) Show net balance delta for mempool transactions (cff49534)
  • Add script for logging lock events (26e2fd02)
  • Log duration when lock released (1812a348)
  • Log lock acquisition times (5181f799)
  • Log lock acquisition times (0ec47ce6)
  • Allocate funds to premine recipients (1981345b)
  • Remove default impl of ConcensusProgram::hash() (822ac7b1)
  • Remove PartialEq - block_primitive_witness (eb068b3a)
  • Add option of claiming from raw string (f2fcc925)
  • Remove option to read ciphertext from stdin (bc15bb2a)
  • Delete deprecated transaction_is_valid program (236f9f1d)
  • Return Result from send rpcs. (53deffc1)
  • Upgrade to ratatui 0.29.0 and fix breakages (90853e3d)
  • Simplify insufficient funds error message (697d4cc1)

ArchivalMutatorSet

ArchivalState

  • Prevent block from being written to disk twice (e356734d)
  • Fix test of rollback-behavior (70d281cf)

Block

  • Improved error message on illegal coinbase amount (f350bfc6)

BlockPrimitiveWitness

  • Disallow construction from inconsistent tx/predecessor block pair (0c3faa7c)

CI

  • Work-around for non-implemented TxProvingCapability::LockScript (2dbbc7ab)

ConsensusProgram

  • Assert that all Merkle tree auth paths consumed (e6d157f8)
  • Require clean stack at halt (0ad07f95)

GlobalState

  • Add test where same block is stored twice (e7fd919d)
  • Unwrap parent block on msmp-recovery (3bd63de3)
  • Move shuffle_seed function from mine_loop to global state (ea8aa49d)

Makefile

  • Don't overwrite tokio_unstable RUSTFLAGS value (8453d243)

Merge

  • Add test of Merge with a coinbase transaction (e5ceb4b9)

PrimitiveWitness

  • Fix missing field updates on update (8881fa9e)
  • Reduce AOCL leaf count in test-case generator (6d921636)

RPC-cli

  • Add endpoint for number of expected UTXOs (7f9ded9b)

SingleProof

  • Add function to encapsulate proof production (b53e17a7)
  • Assign error IDs to some asserts (9b5dd0f4)

Transaction

  • Move TransactionOutput from blockchain to wallet dir (c685c6dc)

TransactionProof

TransferBlock

Update

  • Expand on tests of tx-consensus program (56742b01)
  • Add error IDs to asserts (4d0a21f6)

UtxoNotificationPayload

  • Use dedicated structure in more fn interfaces (b1ecdf7b)

Add

  • (consensus) Add rust source for ProofCollection validity (b1301cfd)
  • (SingleProof) Add claim template generator for lock scripts (85b45d50)
  • Integrate lock script claim generator into SingleProof (6da18240)
  • Add type script claim template generator (fbf25a32)
  • Add builtin for verifying MmrSuccessorProofs (2e50549d)
  • Verify 2 transactions in “merge” (ba0fbee8)
  • Check integrity of to-be-merged inputs (fec4bcf2)
  • (Merge) Verify new timestamp (3f78bf7f)
  • (Merge) Verify mutator set hash agreement (4fbef7dd)
  • (merge) Assert outputs are permuted merger (dc81f9c0)
  • (merge) Assert announcements are merger (37101d9a)
  • (SingleProof) Add support for Update -> SingleProof (e685691b)
  • (SingleProof) Write TASM for Update path (9ae7ac6e)
  • (SingleProof) Add support for Merge (284d3eb8)
  • Wrap fee into UTXO (971d3754)

Archival-mutator-set

Archival-state

  • Always set stored block as tip (09b7f193)

Archival_mutator_set

  • Verify initialized with correct AOCL leafs (3d88d217)

Archival_state

  • Fix failing test of MS-rollback (3ddfa1c1)
  • Derandomize test to reuse proofs (6a5b0fac)
  • Add function to get ms-update data to tip (0c7f8440)
  • Handle guesser UTXOs in AMS updater (55dc1baa)

Claim_utxo

  • Verify sender_randomness equality in wallet check (2bacee41)
  • Handle scenario where UTXO is already spent (18283238)
  • Add Raw option to sender documentation (808876e6)

Cleanup

  • Remove old unused helper functions (b36a5526)

Collect_lock_scripts

Collect_type_scripts

Dashboard

  • Remove unused test function, add Default impl (06be015b)
  • Show more information about mining process (59d2a073)

Dashboard/mempool

  • Show both negative and positive effect on balance (13878e7c)

Debug

  • Minimal failing example of Triton VM incompleteness (a516db01)

Deps

  • Upgrade to latest version of tasm-lib (d152de06)
  • Point to newest version of tasm-lib (ca0e1577)
  • Point to new version of tasm-lib (095aac4d)
  • Update tasm-lib rev (5bed35c2)
  • Bump dependency on tasm-lib (5035629d)
  • Bump tasm-lib rev (6d4df6ca)
  • Update to new version of tasm-lib (c6bba938)
  • Update version of tasm-lib (73dc0e26)
  • Update dependency on tasm-lib to 2024-09-06 (df2954f0)

Devops

  • Also lint tests in pre-commit hook (40888890)
  • Ignore triton-tui artifacts (152c9ae5)
  • Use domain name for known proof server (15d1f369)
  • opt-level=3 for test profile (8858abf2)

Devx

  • (ArchivalState) Improve error message on block-file corruption (e2d9b237)
  • (main.rs) Return result of main's block_on (abb754e0)
  • (Makefile) Remove unused stuff (a9b4ed00)
  • Make failed VM run error readable (28ce358f)

Drop

  • Remove depracated source files (677e985c)
  • Deprecated variant of transaction MultiClaimProof (abd7881f)
  • (proof-abstractions) Drop unused structs (f4b91314)

Genesis_block

  • Change RegTest time resolution to 7 days (3f961355)

Global_state

  • Move function to add expected UTXOs to wallet state (90bfb2d5)

Integration-test

Integration_tests

  • Build before multiple cargo run (d2690c23)

Log

  • Make block-syncronization scheduled task less noisy (55660978)
  • Implement get_type for MainToMiner messages (bc9a09e0)
  • Inform user about which network they are on (bceae04a)

Logs/integration-tests

  • Don't delete timestamp from log msg (a737335a)

Main_loop

  • Fix wrong task identifier (741c4ddf)
  • Run proof-upgrader in spawned task (1892e4f1)
  • Upgrade transaction-witnesses received from RPC server (b0f6c617)
  • Handle mempool tx-updating in spawned task (ea83086c)

Mempool

  • Clear all transactions on reorganizations (11e12616)
  • Add warning about caller-responsibility cf. future timestamps (f5ce7f2c)
  • Don't crash program on failure to update tx on new block (91caa3fb)
  • Allow insertion of proof collections (a56f2e42)
  • Change key used to identify transactions (c17c31e7)
  • Allow capping number of txs in mempool (12c2a87b)
  • Add methods to get proof-upgrade candidates (9dd6a14e)
  • Allow caller to request only SingleProof-backed txs (bce410eb)
  • Fix wrong answer about proof quality (0eb613a0)
  • Track which transaction are own (8f866093)
  • Always run update prover jobs with highest priority (533f6dd4)
  • Inform caller about update jobs, don't do them (8dcd1eda)

Mine_loop

  • Change mining-loop from while to do-while (1d0603c9)
  • Allow coinbase tx-fee to be non-zero (8ced612c)
  • Spawn task for composing (01eb7be9)
  • Log more information from mined block (e2cbc057)
  • Use mpsc, not watch, channel from main_loop (cfabe20a)
  • Inject timestamp to compose_block (4cfc7f96)

Mining_state

  • Add unit to Display of duration (df10a422)

Mmr

  • Add method split_by_activity to AbsoluteIndexSet (71ea84cf)
  • Use new method split_by_activity for MS-MP verification (2d01f14a)
  • Fix validation of removal records (998ba577)

Networking

  • Use --max-peers=0 to disallow all incoming peer connections (b4d16236)

Peer_loop

  • Use const boolean to indicate connection action (eb702446)
  • Use const booleans to indicate if connection should be closed (3c413d7b)
  • Add new type for p2p transaction communication (87ed8515)
  • Prefer transactions of higher proof quality (2a090723)
  • Check if mempool contains tx with higher quality proof (212d71ca)
  • Increase default tolerance to 1.000 (8ef470ef)

Peer_map

  • Change field last_seen to connection_established (a3a695d7)

Peers

  • Allow max_peers to be used to refuse incoming connections (7bf999ec)

Proof_abstractions

  • Ensure dummy proof exists on server (f751c0ea)

Removal_records_integrity

Rename

  • Directory consensus -> proof_abstractions (512e13f8)

Rewrite

  • (removal_records_integrity) Don't check for double-spend (2023f6e8)

Robustness

  • Wrap update program in initand end state sanity check (e2c8c201)

Rpc_server

  • Change return type of tx initiation to TransactionKernelId (a9cdd724)

Run-multiple-instances

  • Adjust mining/composing roles (33fbcfe6)

Security

Sub

  • Put undetermined claims into appendix (ecdf684a)

Transaction

  • Make single-proof updater take MsUpdate type, not block (9055688d)

Tx-consensus

  • Add snippet for asserting RR index set equality (c6efd7c2)
  • :merge: Fix recursive part of TASM-version (a0f669f9)
  • :merge: Validate fee (f2d5275f)
  • :merge: add coinbase-check to merge (9d8b3dfa)
  • Audit preloaded data of type scripts (081d8a2c)

Update

  • Add more tests of the update tx-consensus program (8a988df3)

Upstream

Ux

  • Improve helpfulness of error message (f879b7f0)
  • (export-seed-phrase) Inform user about network and wallet file (7f926709)

Wallet

  • Update wallet with block-induced mempool events (19c76d22)

Wallet_state

  • Avoid monitoring multiple copies of same UTXO (f79ddda0)

Wip

  • Sync db writes by default, verify read checksums by default (a667251b)
  • Move more code into GlobalState, fix tests (d9950363)
  • Implement arbitrary for PrimitiveWitness for Transaction (16c476f1)
  • Fix arbitrary for PrimitiveWitness (b0d2cc8b)
  • Test arbitrary_with for TimeLockWitness (ec8dd094)
  • Implement NativeCurrency type script (d5008541)
  • Make storage layer async. passes all tests except doctests (698f6ad0)
  • Remove util_types/sync (ebce7b69)
  • Add stub tasm code for KernelToOutputs (df4665d9)
  • (consensus) Add stub tasm for CollectTypeScripts (0f26b013)
  • (consensus) Make progress on CollectTypeScripts (8660ff5e)
  • (consensus) Finish tasm code for NativeCurrency (be6323d5)
  • Add stub for RemovalRecordsIntegrity (a4023e15)
  • (consensus) Make stub for RemovalRecordsIntegrity compile (6dced985)
  • (consensus) Advance RemovalRecordIntegrity; compute index set (07b6d99d)
  • (consensus) Add complete draft of RemovalRecordsIntegrity (e32982b0)
  • (RemovalRecordsIntegrity) Use multiset eq from updated dependency (d29097d6)
  • Track bug in batch_update_from_addition (59b6e2c3)
  • Add case removal-records-integrity to single-proof tasm code (a7d8f172)
  • Debug SingleProof tasm stub (4a022e56)
  • Determine "now" timestamp in arbitrary timelocked witness (c7f4c9d6)

Note: (!) indicates a breaking change.

Install neptune-cash 0.0.10

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Neptune-Crypto/neptune-core/releases/download/v0.0.10/neptune-cash-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy ByPass -c "irm https://github.com/Neptune-Crypto/neptune-core/releases/download/v0.0.10/neptune-cash-installer.ps1 | iex"

Download neptune-cash 0.0.10

File Platform Checksum
neptune-cash-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
neptune-cash-x86_64-apple-darwin.tar.xz Intel macOS checksum
neptune-cash-x86_64-pc-windows-msvc.zip x64 Windows checksum
neptune-cash-x86_64-pc-windows-msvc.msi x64 Windows checksum
neptune-cash-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo Neptune-Crypto/neptune-core

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>