Community News

Judecoin updates and development notes.

2026 Updates

11 updates

May 2026

2 updates

Judecoin Lab update #20260516

Cleanup on block adding failure.

If a block adding operation fails and triggers the following error message:

Block added hook signalled failure

the service node list does not get reset correctly. This can immediately lead to an incorrect service node winner, because the winner has already been incremented but not removed from the list.

This update fixes the issue by calling the blockchain detached hooks to perform the required cleanup.

The old version of the website will no longer be available. The new version will be gradually added to the information repository for community reference.

More APIs will be opened in the future, and more versions of blockchain explorers will be included.

Judecoin Lab update #20260511

Currently, some code repositories on GitHub and the website content are lagging behind the on-chain development progress.

In the future, the website will be restructured and integrated with GitHub. The website will be built around the theme of Proof of Stake, and its content can be directly updated and optimized on GitHub.

April 2026

4 updates

Judecoin Lab update #20260430

Kusama (KSM) Tripartite System

Kusama (KSM) uses a tripartite system:

  • Referendum: all nodes
  • Council: community governance organizers
  • Technical Committee: development

Incentive Mechanism

Node incentives and voting are related to Service Nodes updating the community's latest CLI.

Rewards for community governance organizers are distributed from the total amount contributed to the Judecoin community since its launch.

Qualifications for Community Governance Organizers

  1. Community governance organizers must hold at least 100,000 Judecoins.
  2. They must have an independent GitHub account.
  3. They must have the ability to identify simple code.
  4. Community governance organizers must not be located in regions where cryptocurrency operations are prohibited.
  5. They must be able to provide maintenance protocols and technical upgrade suggestions.
  6. Malicious and illegal upgrades will be rejected.
  7. Malicious proposals will be penalized, have their privileges revoked, or be blocked.
  8. Community governance organizers must leave a message on GitHub and provide an email address.

Judecoin Lab update #20260424

Update your CLI wallet to version V3.1.1.

If you have already registered and started a Service Node, re-register and start it with the new wallet version to prevent block rewards from not being distributed.

Judecoin Lab update #20260423

In the future, the core nodes, iOS wallet, and GUI wallet versions will be upgraded to prepare for the next major upgrade.

The next wallet upgrade will add more nodes.

Please follow the official website's instructions to start the registration service.

Judecoin Lab update #20260416

quorum_cop: Fix Bug in Missing Node Detection and Add Logging

Fixed a bug in missing node detection and added logging.

Service Nodes: Add Quorum States to Database Storage

Added quorum states to database storage for Service Nodes.

Make Transaction Type and Version Scoped Enums

This converts the transaction type and version to scoped enums, giving type safety and making transaction type assignment less error-prone.

There is no implicit conversion or comparison with raw integers that needs to be considered.

This converts uses of:

text
cryptonote::transaction::type_xyz

to:

text
cryptonote::transaction::txtype::xyz

For versions, names such as:

text
transaction::version_v3

become:

text
cryptonote::txversion::v3_tx_types

This also allows and includes various other simplifications related to, or enabled by, this change:

  • Handle is_standard_tx dynamically in serialization code, setting type::standard or type::state_change rather than using a version-determined union.
  • get_type() is no longer needed with the above change. It is now much simpler to directly access type, which will always have the correct value, even for v2 or v3 transaction types.
  • Although there was an assertion on the enum value, get_type() was only used sporadically, and many places accessed .type directly.
  • The old unscoped enum did not have a type but was assumed castable to and from uint16_t, which technically meant there was potential undefined behavior when deserializing any type values greater than or equal to 8.
  • Transaction type range checks were not being done in all serialization paths. They are now.
  • Because get_type() was not used everywhere, and many places simply accessed .type directly, these issues might not have been caught before.
  • set_type() is not needed. It was only being used in a single place, wallet2.cpp, and only for v3 transactions, so the version protection code was never doing anything.
  • Added a std::ostream << operator for the enum types so that they can be output with:
cpp
  << tx_type <<

rather than needing to wrap it everywhere in:

cpp
  type_to_string(tx_type)
  • For versions, the annotated version string is output, such as v3_tx_types, rather than just the number.

March 2026

1 update

Judecoin Lab update #20260313

  1. quorum_cop: added quorum cop and Service Node keys to judecoind.
  2. Service Nodes: added quorum states to database storage.
  3. quorum_cop: changed uptime proof prune timeout to 2 hours 10 minutes.
  4. Added judecoin-sn-keys SN key management tool.

This allows inspecting, generating, and restoring Ed25519 secret key files as needed by judecoind.

Generate SN Key

bash
$ ./judecoin-sn-keys generate key_ed25519
text
Generated SN Ed25519 secret key in key_ed25519

Public key:      08791467164b3f41681cb650385ffedeab96345f509e87a9852e4389643c5611
X25519 pubkey:   ea7b652f1d215674441775e5e42ceaef31cf3ffad6cc3f0321031abf0935b86c

Show SN Key

bash
$ ./judecoin-sn-keys show key_ed25519
text
key_ed25519 (Ed25519 SN keypair)

==========

Secret key:      08016220970441955b29b1797f2c4bee0d3237e50bfafdb7999264caea163ecc
Public key:      08791467164b3f41681cb650385ffedeab96345f509e87a9852e4389643c5611
X25519 pubkey:   ea7b652f1d215674441775e5e42ceaef31cf3ffad6cc3f0321031abf0935b86c

Restore SN Key

bash
$ ./judecoin-sn-keys restore key_ed25519-2
text
Enter the Ed25519 secret key:

08016220970441955b29b1797f2c4bee0d3237e50bfafdb7999264caea163ecc

Public key:      08791467164b3f41681cb650385ffedeab96345f509e87a9852e4389643c5611
X25519 pubkey:   ea7b652f1d215674441775e5e42ceaef31cf3ffad6cc3f0321031abf0935b86c

Is this correct? Press Enter to continue, Ctrl-C to cancel.

Saved secret key to key_ed25519-2
  1. Version 3.0.1 of the CLI wallet will be re-released once the upgrade is complete.

February 2026

1 update

Judecoin Lab update #20260214

Palm Wallet is an integrated wallet based on Judecoin mainnet version 3.0.0.

Future updates and upgrades to the wallet will primarily be based on version 3.0.0.

January 2026

3 updates

Judecoin Lab update #20260130

Cleaner Validation

This update provides cleaner validation that is faster and more reasonable.

There is no need to call check_key for every output public key in check_tx_outputs again.

The redundant call to check_key inside check_tx_outputs can be safely removed.

This change saves one unnecessary point decompression for every output public key since hard fork v14.

This provides a useful performance gain, in addition to the key image sanity check done for clarity and to prevent future mistakes.

Judecoin Lab update #20260122

Reject New Votes That Can Slip Through the Syncing Phase at Startup

If the daemon is not completely synced at startup, it can connect to peers that relay P2P votes from the tip of the chain before the daemon realizes it has blocks to sync.

This can cause the missing quorum state error to print erroneously.

This update rejects new votes that can slip through the syncing phase at startup.

Judecoin Lab update #20260111

Do Not Relay Expired Votes; Add Vote Tolerance Before Disconnection

This update changes the way votes are relayed to fix superfluous P2P disconnections.

The update includes:

  • Checking that votes are not older than VOTE_LIFETIME before relaying.
  • Adding a 5-block buffer to incoming vote tolerance handling.

Votes that are too new or too old should not be accepted.

However, a disconnection should not be triggered if the vote is within 5 blocks of the acceptable range, so that relays from slightly out-of-sync peers do not trigger P2P disconnections.