Releases: karlsen-network/rusty-karlsen
v2.1.0
Mandatory Update
Critical bug fix for difficulty adjustment after hardfork block.
Summary
We've recently realized that our previous method for difficulty adjustment isn't sufficient when a hardfork occurs, especially if the hashrate drops significantly. Normally, the default difficulty adjustment window spans 2641
blocks, which are used to calculate the target difficulty. Previously, we reset the difficulty for the first 10
blocks following a hardfork, but by block 11
, the difficulty reverted to almost the same level as before the hardfork. This situation necessitates rebuilding all releases, making it a mandatory update. Although this remains a single hardfork since we are still before the HF DAA score of 26962009
.
Changes
- difficulty adjustment window fix fe41a8d
- Version bump 300091a
- Hardfork in devnet and simnet after the difficulty adjustment window 8b849d4
Thanks
Thanks to everyone who directly contributed to this release:
v2.0.1
Recommended Update
This is an optional update which includes changes for testnet
and no mainnet
changes.
Summary
We've experimented with 3 different hashing algorithm in testnet
, named khashv1
, khashv1.5
and khashv2
.
khashv1 = KarlsenHashv1
khashv1.5 = FishHash
khashv2 = FishHash Plus (KarlsenHashv2)
However at the end we've decided to use FishHash Plus as it was result of security review of the FishHash algorithm. The PoW code for FishHash is still there, but the expected blocks are either version 1 or version 2. Therefore we decided to restart testnet-1 with shorter HF DAA score and don't need to maintain code for special case in the network.
Changes
Thanks
Thanks to everyone who directly contributed to this release:
v2.0.0
Mandatory Update
Stable release of Rust node daemon including KarlsenHashv2 (khashv2
). The hardfork (HF) will happen at DAA score 26.962.009
around Fri Sep 13 01:37:00 PM UTC 2024. See here https://github.com/karlsen-network/rusty-karlsen/blob/b0982f660f9b211d5dff459ac570ccae3d5a237f/consensus/core/src/config/params.rs#L359. It is mandatory for all node operators to update the Rust node to v2.0.0
prior to reaching the DAA score.
DAG Generation
To start mining using the built-in CPU miner it needs a pre-generated DAG file. KarlsenHashv2 karlsen-miner uses a 4GB DAG for efficient mining. It generates this DAG with 8 CPU threads and saves it as dataset.bin
for faster subsequent runs.
- First Run: Generates a 4GB DAG using 8 CPU threads. This may take time depending on your computer. Saves the DAG as
dataset.bin
for future use. - Next Runs: Loads
dataset.bin
to skip DAG generation, speeding up startup.
If you need to regenerate the DAG, delete dataset.bin
and run the karlsen-miner
again. More information about mining and already available third-party miners are in the README.md
Changes
fishhash
hashers and testnet setup 0a94692 53fd2c1- dual algo setup for block
v1
&v2
9e40f23 - fix the fishhash & fishhashplus implementations 81d0192
- fix wasm state 0a7049e
- dual block version fix for block template 9742398
- setup hard fork block version switch ca37b51
- fix hf algo switch issue b0976e6
- HF procedure with diff adjustment f0ccf0b
- format code 29fc10b
- fix block header version test and according consensus intgration test 85d2dd9
- fix clippy 7245359
- don't treat wasm build warnings as errors 74cc7af
- KDX -> Karlsen Desktop 87f0576
- rework
guide.txt
and fixed some typos and removed the cpu miner description 3a99c84 - Fixed public resolver a74e546
- Removed temporary auto generated cargo file 5f083d3
- Rename last batches of Kaspa->Karlsen 3331b3d
- Fixed type inference with latest Rust 8a3f92c
- Pass all tests with
khashv2
fa11a54 - Fixed Rust compile warnings, mainly for
khashv2
39ec41c - Fix formatting, make lint check happy 65f1981
- Version bump and prepare release for
khashv2
d230f1c - RPC listener changes: Align RPC listener with current Golang behavior, listen on
0.0.0.0
instead of127.0.0.1
f1b5446 - Use latest GitHub actions and add additional targets 9f74ee4
- Align Rust
hf_daa_score
with GolangHFDAAScore
13962d4 - Mainnet
hf_daa_score
set to 26962009 to switch tokhashv2
964e53b - Updated README.md and added
khashv1
andkhashv2
paragraph 8153ca5 d48937d
Thanks
Thanks to everyone who directly contributed to this release:
v0.1.0 - Rusty Karlsen - Testnet
Testnet Beta Update
This is a beta release of Rusty Karlsen for Karlsen Network including KarlsenHashv2
based on FishHashPlus. It works as a drop-in replacement for the testnet
Golang node and wallet daemon.
- Full Karlsen Network testnet support
- Added support for
KarlsenHashv2
into the Rust codebase.
Additional Information
In the course of a security review of FishHash, a recommendation was made to modify the algorithm to slightly improve it. This suggestion does not have an immediate effect on safety or security, but it was recommended to implement the change. The modifications have been made publicly accessible for review at the following URL: Lolliedieb/FishHashMiner@5d94a52
Mining
There is no built-in miner in the Rust codebase but you can use the KarlsenHashv2
miner from the Golang testnet release: https://github.com/karlsen-network/karlsend/releases/tag/v2.0.1-testnet-1-fishhashplus
Setup
Run the node:
karlsend --testnet --utxoindex --connect 192.99.200.155
Run the miner:
karlsenminer --testnet --miningaddr karlsentest:qrxuvenk483jj5k5zpwgdqyk27eacsgv9fj3kwu6puj38usnaj9uu55cz0y8q
Replace the miningaddr
with your wallet address and please be aware of the karlsentest:
prefix in testnet.
Backward Incompatibility
As mentioned already in release notes of the Golang v1.2.0 daemon, we've transitioned from Kaspa coin type 111111
to Karlsen coin type 121337
- a change already documented on https://github.com/satoshilabs/slips/blob/master/slip-0044.md - we're in the process of adopting our specific derivation path. This step is crucial for most integrations that do not operate a node daemon, such as hardware wallets, to ensure address compatibility across different platforms. A unique derivation path is essential for this purpose. The Rusty Karlsen wallet supports only Karlsen wallet derivation paths, legacy ones are not supported as of now. In such case please transfer your funds from an old to new wallet or as intermediate step to the desktop or web wallet before upgrading.
Thanks
Thanks to everyone who directly contributed to this release:
v0.1.0 - Rusty Karlsen - Testnet - Dual Block Version Fix
Testnet Beta Update
This is a beta release of Rusty Karlsen for Karlsen Network including KarlsenHashv2
based on FishHashPlus. It works as a drop-in replacement for the testnet
Golang node and wallet daemon.
- Mining support for
KarlsenHashv2
with the original Golang testnet miner
Mining
There is no built-in miner in the Rust codebase but you can use the KarlsenHashv2
miner from the Golang testnet release: https://github.com/karlsen-network/karlsend/releases/tag/v2.0.1-testnet-1-fishhashplus
Thanks
Thanks to everyone who directly contributed to this release:
v0.1.0 - Rusty Karlsen - Mainnet
Mainnet Beta Update
This is a beta release of Rusty Karlsen for Karlsen Network. It works as a drop-in replacement for the mainnet Golang node and wallet daemon.
- Full Karlsen Network mainnet support
- Added support for
KarlsenHashv1
into the Rust codebase.
Backward Incompatibility
As mentioned already in release notes of the Golang v1.2.0 daemon, we've transitioned from Kaspa coin type 111111
to Karlsen coin type 121337
- a change already documented on https://github.com/satoshilabs/slips/blob/master/slip-0044.md - we're in the process of adopting our specific derivation path. This step is crucial for most integrations that do not operate a node daemon, such as hardware wallets, to ensure address compatibility across different platforms. A unique derivation path is essential for this purpose. The Rusty Karlsen wallet supports only Karlsen wallet derivation paths, legacy ones are not supported as of now. In such case please transfer your funds from an old to new wallet or as intermediate step to the desktop or web wallet before upgrading.
Thanks
Thanks to everyone who directly contributed to this release: