Skip to content

Releases: karlsen-network/rusty-karlsen

v2.1.0

03 Sep 19:56
8b849d4
Compare
Choose a tag to compare

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

02 Sep 08:55
40c65a4
Compare
Choose a tag to compare

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

  • HF DAAscore to switch to khashv2 (12 hours after testnet launch) a4b63bb
  • Version bump 9825c66

Thanks

Thanks to everyone who directly contributed to this release:

v2.0.0

29 Aug 12:46
b0982f6
Compare
Choose a tag to compare

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 of 127.0.0.1 f1b5446
  • Use latest GitHub actions and add additional targets 9f74ee4
  • Align Rust hf_daa_score with Golang HFDAAScore 13962d4
  • Mainnet hf_daa_score set to 26962009 to switch to khashv2 964e53b
  • Updated README.md and added khashv1 and khashv2 paragraph 8153ca5 d48937d

Thanks

Thanks to everyone who directly contributed to this release:

v0.1.0 - Rusty Karlsen - Testnet

25 May 21:52
Compare
Choose a tag to compare
Pre-release

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

26 May 20:38
Compare
Choose a tag to compare

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

16 May 21:34
5cd6de0
Compare
Choose a tag to compare

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: