Releases: kaspanet/rusty-kaspa
Release Candidate v0.15.4
Instructions for Node Maintainers
This is the first release that includes the database version upgrade introduced in #494. When you run this version with an existing datadir, you may be asked to upgrade your database version in CLI. To proceed, type y
or yes
and hit enter. Alternatively, you can run this version with a --yes
flag to skip the interactive question.
This database upgrade is a one-way path, which means after updating your datadir to the new version, you won't be able to go back to an earlier version.
What's Changed
- rothschild: donate funds to external address with custom priority fee by @demisrael in #482
- fix wrong combiner condition by @biryukovmaxim in #567
- fix wRPC JSON notification message format by @aspect in #571
- Documentation updates by @aspect in #570
- WASM RPC method type updates by @aspect in #572
- Cleanup legacy bip39 cfg flags interfering with docs.rs documentation builds by @aspect in #573
- Bump tonic and prost versions, adapt middlewares by @biryukovmaxim in #553
- Fix README.md layout and add linting section by @gvbgduh in #488
- Bump tonic version by @michaelsutton in #579
- replace statrs and statest deps & upgrade some deps. by @D-Stacks in #425
- enhance tx inputs processing by @biryukovmaxim in #495
- Parallelize MuHash calculations by @coderofstuff in #575
- Muhash parallel reduce -- optimize U3072 mul when LHS = one by @michaelsutton in #581
- Rust 1.82 fixes + mempool std sig op count check by @michaelsutton in #583
- typo(cli/utils): kaspa wording by @IzioDev in #582
- On-demand calculation for Ghostdag for Higher Levels by @coderofstuff in #494
- Standartize fork activation logic by @someone235 in #588
- Refactoring for cleaner pruning proof module by @coderofstuff in #589
- Pruning proof minor improvements by @coderofstuff in #590
- Add KIP-10 Transaction Introspection Opcodes, 8-byte arithmetic and Hard Fork Support by @biryukovmaxim in #487
- Some simplification to script number types by @someone235 in #594
- feat: add signMessageWithoutRand method for kaspa wasm by @witter-deland in #587
- Optimize window cache building for ibd by @D-Stacks in #576
- Enable payloads for non coinbase transactions by @someone235 in #591
- Small fixes related to enabling payload by @someone235 in #605
- Fix new lints required by Rust 1.83 by @michaelsutton in #606
- IBD sync: recover sampled window by @michaelsutton in #598
- Track the average transaction mass throughout the mempool's lifespan by @michaelsutton in #599
- Create TN11 KIP10 HF activation and KIP9 beta switch by @coderofstuff in #595
New Contributors
- @demisrael made their first contribution in #482
- @IzioDev made their first contribution in #582
- @witter-deland made their first contribution in #587
Full Changelog: v0.15.2...v0.15.4-rc1
Testnet 11 Only v0.15.4
WARNING: INTENDED FOR USE IN TESTNET 11 ONLY
This is a special release with code not in the mainline yet. It is intended to hardfork the testnet-11 environment and should only be used by Testnet-11 node maintainers.
The TN11 HF includes:
- Enabling KIP10
- Switching KIP9 to use the Beta version in consensus
- Enabling Payloads for transactions
In addition, this includes all the optimizations that we have been working on which will allow us to determine a minimum recommended hardware spec for 10bps in mainnet.
Instructions for Node Maintainers
- This is the first release that includes the database version upgrade introduced in #494. When you run this version with an existing datadir, you may be asked to upgrade your database version in CLI. To proceed, type
y
oryes
and hit enter. Alternatively, you can run this version with a--yes
flag to skip the interactive question.- This database upgrade is a one-way path, which means after updating your datadir to the new version, you won't be able to go back to an earlier version.
Instruction to build from source
- Git pull and checkout the
kip10-tn11-hf
branch - Build your binary from there. This release is on the commit 14b1e10
Release v0.15.2
Released mainly for Integrators using GetVirtualChainFromBlock
NOTE: If you do not use GetVirtualChainFromBlock
in your integration, you do not need to update to this version.
This release updates the GetVirtualChainFromBlock
so that it operates in batches. This solves an issue where the call to GetVirtualChainFromBlock
would previously take a long time to complete if the client has to sync virtual chain state from a deep chain block after a period of being unsynced. Each call will now return very promptly, but it also means you now have to call GetVirtualChainFromBlock multiple times if you're syncing from a deep chain block.
To take advantage of this new batching mechanism, you only need to make sure that you continue calling GetVirtualChainFromBlock
until your software has caught up to the tips of the network. For reference, the pseudo-code is:
startHash = <the_last_hash_you_synced_from>
isCatchingUp = true
// Catch-Up code. Expecting to do faster catch up logic here
while isCatchingUp:
batch = GetVirtualChainFromBlock(startHash, includeTransactionIds: true)
// Do your processing with batch
// ...
startHash = batch.added[<last_element_index>]
if len(batch.added) < 10:
// if the response was batched it will contain at least 10 chain blocks
// (because we limit the number of merged blocks by mergeset limit x 10),
// otherwise, we've caught up and can proceed with normal batch processing
isCatchingUp = false
// Continue your normal pace of processing next batches with GetVirtualChainFromBlock
// ...
What's Changed
- Fix WASM interface typo for
normalBuckets
andlowBuckets
inIFeerateBucket
by @Cryptok777 in #557 - Fix new gRPC methods to use camel case (non-breaking change) by @michaelsutton in #560
virtual chain from block
batching. by @D-Stacks in #454- A few CLI rpc query fixes by @michaelsutton in #563
- Deploy linux binary without musl in its name + various minor miscellaneous things towards v0.15.2 by @michaelsutton in #564
New Contributors
- @Cryptok777 made their first contribution in #557
Full Changelog: v0.15.1...v0.15.2
Release Candidate v0.15.2-rc1
Note to Integrators using GetVirtualChainFromBlock
IMPORTANT: If you do not use GetVirtualChainFromBlock
in your integration, you do not need to update to this version.
This release updates the GetVirtualChainFromBlock
so that it operates in batches. This solves an issue where the call to GetVirtualChainFromBlock
would previously take a long time to complete if the client has to sync virtual chain state from a deep chain block after a period of being unsynced. Each call will now return very promptly, but it also means you now have to call GetVirtualChainFromBlock multiple times if you're syncing from a deep chain block.
To take advantage of this new batching mechanism, you only need to make sure that you continue calling GetVirtualChainFromBlock
until your software has caught up to the tips of the network. For reference, the pseudo-code is:
startHash = <the_last_hash_you_synced_from>
isCatchingUp = true
// Catch-Up code. Expecting to do faster catch up logic here
while isCatchingUp:
batch = GetVirtualChainFromBlock(startHash, includeTransactionIds: true)
// Do your processing with batch
// ...
startHash = batch.added[<last_element_index>]
if len(batch.added) < 10:
// if the response was batched it will contain at least 10 chain blocks
// (because we limit the number of merged blocks by mergeset limit x 10),
// otherwise, we've caught up and can proceed with normal batch processing
isCatchingUp = false
// Continue your normal pace of processing next batches with GetVirtualChainFromBlock
// ...
What's Changed
- Fix WASM interface typo for
normalBuckets
andlowBuckets
inIFeerateBucket
by @Cryptok777 in #557 - Fix new gRPC methods to use camel case (non-breaking change) by @michaelsutton in #560
virtual chain from block
batching. by @D-Stacks in #454
New Contributors
- @Cryptok777 made their first contribution in #557
Full Changelog: v0.15.1...v0.15.2-rc1
Stable Mainnet Release & WASM SDK v0.15.1
Kaspa on Rust — Mempool-Focused Release (second stable release)
This version focuses on introducing mempool features required for users and wallets for adopting to fee market conditions.
The main mempool features include:
- Replace-By-Fee (RBF)
- A fee estimation API based on real-time mempool state
- A new mempool evict policy based on fee rate
The version also includes the following major changes:
- Major performance enhancements in the block template transaction selection algorithm. This operation now takes only ~100 microseconds even under heavy load, and that is achieved without compromising on the most profitable selection strategy.
- Important improvement in header processing performance
- Many more accumulated enhancements, improvements and non-critical fixes
It is highly recommended that miners and pools gradually shift to this version both for stability reasons and for better supporting the network under upcoming expected fee market conditions.
What's Changed
- Update README and remove mainnet mining restriction by @michaelsutton in #477
- rustc 1.79.0 lints by @aspect in #485
- Address GitHub Actions warnings re Node 20 by @eladitzhakian in #471
- Add support for IP only for --rpclisten-borsh/json (#402) by @gvbgduh in #439
- Implement PSKT(Partially Signed Kaspa Transaction) by @biryukovmaxim in #481
- Replace by fee on mempool by @KaffinPX in #499
- style: fix clippy by @biryukovmaxim in #510
- Add input signature_script checking to submitTransaction RPC by @KaffinPX in #479
- Add hint message for P2P reject reason block not found. by @1bananagirl in #512
- Lazy load origin children by @someone235 in #518
- O(k log n) mempool transaction sampler + Fee estimation API by @michaelsutton in #513
- #505 #473 Upgrade kaspa-alloc's mimalloc dependency by @starkbamse in #519
- feat: implement next_block_template_feerate by @biryukovmaxim in #523
- Semaphore tracing feature (for tracing prune readers vs writers time) by @michaelsutton in #526
- TN11 bug fix: activate mass hashing when modifying a cached block template by @michaelsutton in #476
- A few optimizations related to multi-level relations by @michaelsutton in #527
- Query all DNS seeders if missing many connections by @michaelsutton in #530
- Cumulative PR - omega branch (wRPC v2, integrations, typescript-v2, resolver v2) by @aspect in #506
- get_current_block_color RPC utility by @KaffinPX in #528
- Mempool tweaks by @someone235 in #524
- Bump to version 0.14.3 by @michaelsutton in #531
- Transaction pool -- fix rare cases where byte size tracking was inaccurate by @michaelsutton in #535
- Feerate estimator outliers: capture block slot by the specific mass of the outlier transaction by @michaelsutton in #537
- Refactoring of mass calculator utilities by @aspect in #538
- Various miscellaneous changes towards 0.15.1 RC2 by @michaelsutton in #543
- Add optional proxy socket limit info to utils::SystemInfo() by @aspect in #544
- Deprecate zigbuild and glibc in favor of static musl binaries for Linux builds. by @starkbamse in #541
- Change directory back to repo root. by @starkbamse in #545
- WIP: Updates for 15-rc3 by @aspect in #546
- Replace openssl with rustls + ring + webpki_roots by @elichai in #547
- Fix CLI not showing incorrect URL on connect + add disconnect() before connect() by @aspect in #549
- Simple wRPC client example by @thesheepcat in #550
- 15 rc4 updates by @aspect in #554
- Bump to version 0.15.1 by @michaelsutton in #555
New Contributors
- @eladitzhakian made their first contribution in #471
- @KaffinPX made their first contribution in #499
- @1bananagirl made their first contribution in #512
- @thesheepcat made their first contribution in #550
Full Changelog: v0.14.1...v0.15.1
Release Candidate v0.15.1-rc4
A minor RC update without node-related changes. Includes an important hotfix to the Wasm SDK as well as removal of openssl dep which fixes a problem in the Linux release binary.
Version will show as 0.14.7
What's Changed
- WIP: Updates for 15-rc3 by @aspect in #546
- Replace openssl with rustls + ring + webpki_roots by @elichai in #547
- Fix CLI not showing incorrect URL on connect + add disconnect() before connect() by @aspect in #549
- Simple wRPC client example by @thesheepcat in #550
New Contributors
- @thesheepcat made their first contribution in #550
Full Changelog: v0.15.1-rc3...v0.15.1-rc4
Release Candidate v0.15.1-rc3
What's Changed
- Transaction pool -- fix rare cases where byte size tracking was inaccurate by @michaelsutton in #535
- Feerate estimator outliers: capture block slot by the specific mass of the outlier transaction by @michaelsutton in #537
- Refactoring of mass calculator utilities by @aspect in #538
- Various miscellaneous changes towards 0.15.1 RC2 by @michaelsutton in #543
- Add optional proxy socket limit info to utils::SystemInfo() by @aspect in #544
- Deprecate zigbuild and glibc in favor of static musl binaries for Linux builds. by @starkbamse in #541
- Change directory back to repo root. by @starkbamse in #545
- Fix Rust 1.81 lints
Full Changelog: v0.15.1-rc1...v0.15.1-rc3
Release Candidate v0.15.1-rc1
What's Changed
- Update README and remove mainnet mining restriction by @michaelsutton in #477
- rustc 1.79.0 lints by @aspect in #485
- Address GitHub Actions warnings re Node 20 by @eladitzhakian in #471
- Add support for IP only for --rpclisten-borsh/json (#402) by @gvbgduh in #439
- Implement PSKT(Partially Signed Kaspa Transaction) by @biryukovmaxim in #481
- Replace by fee on mempool by @KaffinPX in #499
- style: fix clippy by @biryukovmaxim in #510
- Add input signature_script checking to submitTransaction RPC by @KaffinPX in #479
- Add hint message for P2P reject reason block not found. by @1bananagirl in #512
- Lazy load origin children by @someone235 in #518
- O(k log n) mempool transaction sampler + Fee estimation API by @michaelsutton in #513
- #505 #473 Upgrade kaspa-alloc's mimalloc dependency by @starkbamse in #519
- feat: implement next_block_template_feerate by @biryukovmaxim in #523
- Semaphore tracing feature (for tracing prune readers vs writers time) by @michaelsutton in #526
- TN11 bug fix: activate mass hashing when modifying a cached block template by @michaelsutton in #476
- A few optimizations related to multi-level relations by @michaelsutton in #527
- Query all DNS seeders if missing many connections by @michaelsutton in #530
- Cumulative PR - omega branch (wRPC v2, integrations, typescript-v2, resolver v2) by @aspect in #506
- get_current_block_color RPC utility by @KaffinPX in #528
- Mempool tweaks by @someone235 in #524
- Bump to version 0.14.3 by @michaelsutton in #531
New Contributors
- @eladitzhakian made their first contribution in #471
- @KaffinPX made their first contribution in #499
- @1bananagirl made their first contribution in #512
Full Changelog: v0.14.1...v0.15.1-rc1
Stable Mainnet Release & WASM SDK v0.14.1
Kaspa on Rust — First Stable Release
What's Changed
- Initialize pruning point depth store -- minor bug fix by @michaelsutton in #453
- Write panic errors to logs (#445) by @gvbgduh in #446
- Bump version to 0.14.0 by @coderofstuff in #466
- Rust 1.78 compatibility by @aspect in #467
- WASM SDK update, public node resolver and TypeScript bindings by @aspect in #459
New Contributors
Full Changelog: v0.13.6...v0.14.1
Mainnet RC v0.13.6
What's Changed
- Changes applied during crate publishing by @aspect in #409
- Fix EstimateNetworkHashesPerSecond missing data on fresh DB by @michaelsutton in #411
- feat: import golang-based wallet account by @biryukovmaxim in #413
- fix lints. by @D-Stacks in #421
- Fix max difficulty bound by @michaelsutton in #423
- allow using a toml config file by @orgr in #429
- Set the default Args appdir to None by @coderofstuff in #432
- Fix ContextualNetAddress parsing by @orgr in #433
- Fix rustc 1.77 issues and lints by @aspect in #442
- Implement updated KIP9 mempool rules (excluding TN11) by @michaelsutton in #448
- Address Tracker for subscriptions to changed UTXOs notifications by @tiram88 in #427
- Fix for the pruning proof rebuild issue (issue #444) by @michaelsutton in #449
New Contributors
Full Changelog: v0.13.4...v0.13.6