Skip to content

v0.3.16

Latest
Compare
Choose a tag to compare
@0xA001113 0xA001113 released this 25 Oct 13:30
· 2 commits to main since this release
86eefaf

Notes

This release is primarily focused on upstream merges from Kaspa Rust to stabilize the codebase as well as some minor adjustments required for Spectre.

Changes

[@x100111010] PR #15

  • Updated the open_db method to use the set_unique() method instead of the deprecated unique() method. 539af9c

[@x100111010] PR #16

  • remove unnecessary conditions in Matrix::compute_rank 52f9147

[@x100111010] PR #19

  • replace by fee on mempool 1b0956d
  • input signature_script checking to submitTransaction 817a3db
  • hint message for P2P reject reason block not found a7ff129
  • lazy load origin children 91f8117
  • O(k log n) mempool transaction sampler + Fee estimation API 93fdc31
  • update mimalloc dep (fixes compiling on debian) ec3b064
  • feat: next_block_template_feerate f24bbb7
  • semaphore tracing feature (for tracing prune readers vs writers time) 411bc42
  • TN11 bug fix: activate mass hashing when modifying a cached block template 6b46dc6
    • fix transaction hash merkle root calculation in modify block template to consider storage mass activation
    • avoid similar future errors: expose only a single calc_hash_merkle_root function with include_mass_field arg and update all test usages explicitly
    • move subnet checks to inner location
    • reorganize cache mem estimators
  • optimizations related to multi-level relations 694da52
    • In ParentsBuilder optimize the execution path of the common case for high levels
    • Prune relations for all levels below the affiliated proof level for block
    • Keep relations for multi-level parents of pruning point and its anticone
  • query all DNS seeders if missing many connections 4e35e0b
  • wRPC v2, integrations, typescript-v2, resolver v2 052e65c
    • refactored Borsh serialization (wRPC v2)
    • refactored watch-only
    • fix Rust v1.81 lints
    • using latest resolver APIs (guards)
    • updated TypeScript bindings (typescript-v2)
    • fixes related to "insufficient-funds"
    • Hex View for ScriptBuilder:
    • formatted hex view for scripts
  • Kip9 Updates:
    • improvements to mass calculator (Kip9::Beta variant)
  • New RPC Methods
    • get_sync_status():
      • node sync status polling
    • get_connection_count():
      • total TCP sockets in use
    • get_system_info():
      • unique ID, git commit hash, total RAM, CPU cores, internal FD limit
    • get_metrics():
      • provisional dictionary*based map for custom metrics
  • get_current_block_color RPC utility 8d49801
    • getCurrentBlockColor algorithm and RPC functions
    • move get_current_block_color to consensus and apply standard sorting
    • check for block existence on get_current_block_color
    • add extra DAG order checks to ensure about children
    • Includes:
      1. Stylistic changes using ?
      2. is_dag_ancestor_of(a, b) is different than !is_dag_ancestor_of(b, a)
    • Bug fix:
      1. Hash -> child
      2. Make store calls only where they are actually used (within the if)
    • Style:
      1. Use struct unfolding syntax
      2. Use a name such as decedent which reflects the relation to hash
    • remove Borsh derivations
    • fix gRPC message codes
    • fix gRPC getCurrentBlockColorResponse
    • improve tests
  • mempool tweaks 1ced37a
    • add case to test_evict
    • remove explicit check for too big transactions
    • raise DEFAULT_MEMPOOL_SIZE_LIMIT to 1GB
    • move to estimated size
    • remove estimated_size field
  • transaction pool -- fix rare cases where byte size tracking was inaccurate 509e900
    • remove crate-level mutable access to inner mempool tx
    • fix bytes size tracking
    • update update_revalidated_transaction only if validation result is OK
    • remove transaction if validation fails
  • feerate estimator outliers: capture block slot by the specific mass of the outlier transaction 7ecb3f4
    • deals with outliers (high feerate transactions)
    • captures block space
    • estimates feerate for remaining block space
    • inaccurate average tx mass for outliers
    • fix: Capture block space by specific mass of outlier transaction
    • includes test to verify changes
  • refactoring of mass calculator utilities c759870
    • rename verbose data mass to compute_mass
    • fix TS interface verbose transaction data property name
    • relocate consensus core processes MassCalculator to consensus core
    • WASM fix ECDSA pubkey generation
    • error variant related to ECDSA from PublicKey creation
    • refactor client mass APIs
      • propagate minimum_signatures via pending tx
      • rename mass calc functions to unsigned for clarity
    • introduce change index to PTX
    • fix missing transfer of client Transaction mass to RpcTransaction
    • introduce IRawBlock and IRawHeader TS types used in GetBlockTemplateResponse and SubmitBlockRequest
    • fix docs
    • refactor mass calculator and extract global storage mass function that operates on iterators + use from wallet mass calculator

[@0xA001113] PR #18

  • Added official testnet DNS seeders testnet-dnsseed-1.spectre-network.org and testnet-dnsseed-2.spectre-network.org 87df80a
  • Added official testnet11 (10bps) DNS seeders testnet11-dnsseed-1.spectre-network.org and testnet11-dnsseed-2.spectre-network.org 87df80a

[@0xA001113] PR #20

  • Version bump, rust 1.82 and missing dependencies a694aa6
  • Fix out-of-order upstream merges ba4ae26
  • Fix out-of-order upstream merges, part 2 c28bdde
  • fmt fixes + clippy fixes by enforcing specific wasm-bindgen version 6799c51
  • fix warning: ambiguous glob re-exports 02885b6
  • virtual chain from block batching 8609ab8
  • Various miscellaneous changes for next release deb1a8b
    • infrequent logs should be debug
    • cleanup some todos
    • when a network starts, genesis has a body, so there's no need for a special exception
    • remove unneeded method and add an error just in case it is added in the future
    • count and log chain disqualified blocks
    • count and log mempool evictions
  • Add optional proxy socket limit info to utils::SystemInfo() c40d2e6
  • WASM SDK improvements 490af48
    • Introduces maximumStandardTransactionMass()
    • Fixes documentation for calculateTransactionMass()
    • Adds PublicKey::fingerprint()
    • Fixes critical issue in submitTransaction() causing a "recursive mutex use" error
  • Replace openssl with rustls + ring + webpki_roots da843c8
    • It passed all architecture tests for aarch64, amd64, powerpc64, powerpc64le and riscv64gc in musl, gnu, gnullvm and msvc builds.
  • Do disconnect() before connect() fe0a71f
  • Fix CLI not showing incorrect URL on connect 77eded3
  • Simple wRPC client example 3648fd7
  • Bump tonic and prost versions, adapt middlewares 70634f0
  • Metrics: fix first snapshot sample + cleanup 485132a
  • Fix new gRPC methods to use camel case (non-breaking change) 6de6d1a
  • Few CLI rpc query fixes 1b0e3f8
  • Fix psst implementation d4c30e5
  • Documentation updates relevant for Spectre only 4aa6c3d
  • Fix wRPC JSON notification message format 3d75fdf
  • WASM RPC method type updates 2af2598
  • Cleanup legacy bip39 cfg flags interfering with docs.rs documentation builds ae7b054
  • Parallelize MuHash calculations 44d8129
  • Bump tonic version 7897256
  • Muhash parallel reduce -- optimize U3072 mul when LHS = one 3783dea
  • mempool std sig op count check 01db7eb

[@0xA001113] PR #22

  • Enforce zig 0.13.0 as newer version breaks the build f0cc87d