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 theset_unique()
method instead of the deprecatedunique()
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
- In
- 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:
- Stylistic changes using ?
is_dag_ancestor_of(a, b)
is different than!is_dag_ancestor_of(b, a)
- Bug fix:
- Hash -> child
- Make store calls only where they are actually used (within the if)
- Style:
- Use struct unfolding syntax
- Use a name such as
decedent
which reflects the relation tohash
- 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
- propagate
- introduce change index to PTX
- fix missing transfer of client Transaction mass to
RpcTransaction
- introduce
IRawBlock
andIRawHeader
TS types used inGetBlockTemplateResponse
andSubmitBlockRequest
- fix docs
- refactor mass calculator and extract global storage mass function that operates on iterators + use from wallet mass calculator
- rename verbose data mass to
[@0xA001113] PR #18
- Added official testnet DNS seeders
testnet-dnsseed-1.spectre-network.org
andtestnet-dnsseed-2.spectre-network.org
87df80a - Added official testnet11 (10bps) DNS seeders
testnet11-dnsseed-1.spectre-network.org
andtestnet11-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
- Introduces
- Replace openssl with rustls + ring + webpki_roots da843c8
- It passed all architecture tests for
aarch64
,amd64
,powerpc64
,powerpc64le
andriscv64gc
inmusl
,gnu
,gnullvm
andmsvc
builds.
- It passed all architecture tests for
- Do
disconnect()
beforeconnect()
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