Skip to content

@NinjaCoin-Master NinjaCoin-Master released this Feb 27, 2020

NinjaCoin Client Network v2.0.0 (Daemon + CLI wallet)

asciii

Special Notes

Upgrade to this release is required

Network Upgrade at block 950,000

This release contains a network consensus update at block 950,000 that activates the following consensus rules:

  • A single transaction must not contain more than 90 outputs
  • Minimum network transaction fees are now calculated via a fee-per-byte method.
    • Transactions with a fee of less than the minimum fee-per-byte amount will be rejected by the network.
    • Fusion transactions remain free
    • See #967 for more details.
  • Network Upgrade at block 950,000
    This release contains a network consensus update at block 950,000 which will not permit an output of a transaction to exceed 1/4th of the total supply (250,000,000,000.00 NINJA). Due to the static mixin size requirement of 3 mixins and thus a ring size of 4, it is impossible to have enough mixins available to spend an output larger than 250 billion NINJA.

The change to fee-per byte takes effect immediately in zedwallet, wallet-api, and ninja-service in this release. The software will not wait for the network upgrade before setting the minimum transaction fee via fee-per-byte.

End of Support (EOS) Notice

Legacy zedwallet is no longer supported. zedwallet++ has officially replaced legacy zedwallet in all builds from here on out. If you're having problems with legacy zedwallet, you're on your own.

End of Life (EOL) Notice

Please note that v2.0.0 will be the last release to contain ninja-service. Releases after v2.0.0 will no longer contain the ninja-service binaries and the code will be removed. In preparation for this EOL, please work to implement wallet-api in your application(s), perform testing, and report any issues that you encounter so that they may be resolved as quickly as possible.

Note: The End of Support (EOS) date for ninja-service has not been set at this time. Please pay attention to release notes for further information regarding ninja-service EOS.

Reminder

Wallets created and/or managed by zedwallet are no longer compatiable with with ninja-service. To be very clear, ninja-service can only open wallets created with ninja-service as of this release.

NinjaCoind API Changes

A number of API changes have been made as a result of the RPC rewrite in #903. The /getinfo, /getheight, /getpeers, and /getfee calls have been removed in lieu of /info, /height, /peers, and /fee. In addition, quite a few json_rpc calls were removed as they were deemed redundant during the rewrite. All of the TurtleCoind API calls remaining are listed below. All other API methods have been removed.

  • /info
  • /fee
  • /height
  • /peers
  • /json_rpc
    • getblocktemplate
    • submitblock
    • getblockcount
    • getlastblockheader
    • getblockheaderbyhash
    • getblockheaderbyheight
    • f_blocks_list_json
    • f_block_json
    • f_transaction_json
    • f_on_transactions_pool_json
  • /sendrawtransaction
  • /getrandom_outs
  • /getwalletsyncdata
  • /get_global_indexes_for_range
  • /queryblockslite
  • /get_transactions_status
  • /get_pool_changes_lite
  • /queryblocksdetailed
  • /get_o_indexes
  • /getrawblocks

Wallet Software & Node Interaction

Due to fixing the HTTP verbs (GET vs POST) as part of the rewrite, it is unlikely that older versions of wallet software will properly sync with Daemon’s running v0.22.0+. Please make sure you are always using the latest version of your favorite wallet software.

Release Notes

General Updates

  • Implemented #915: Switch to GitHub Actions for CI/CD
  • Resolved #925: Link in SSS3 Support in Argon2
  • Accepted #934: Remove legacy Zedwallet and promote Zedwallet++ out of beta
  • Implemented #938: Update error codes to be in line with js backend
  • Implemented #945: Enforce Excessive Output Creation Limits
    • Implemented #968: Rework output capping
  • Implemented #951: Update CuvéeCZ Seed Node
  • Implemented #954: Reorder transaction validation to be easier to follow
    • Implemented #969: Remove invalid transactions from pool once a new block comes in
  • Implemented #967: Fee per byte
  • Implemented #987: Updated inbuilt checkpoints
  • Implemented #990: HTTP Client Retry on Socket Failure
  • Accepted #995: Updated README.md with directions for compiling on RHEL-based systems. Thanks @sohamb03
  • Accepted #999: Pass thru cmake used binary to rocksdb cmake build

NinjaCoind Updates

  • Resolved #603: Error in JSON serialization in multiple RPC methods regarding large uint64_t values
  • Implemented #903: Full RPC rewrite with threading
  • Resolved #942: Fix a bug that prevents blockchain to be loaded if the blockindexes.bin corrupts. Thanks @ngeojiajun
  • Implemented #946: Update Transaction Pool To Account For Additional Metrics in Transaction Ordering
  • Resolved #952: wallet-api creates hundreds of connection to node daemon
  • Implemented #954: Limit the number of Fusion Transactions In The Transaction Pool
  • Implemented #965: Threaded Input Validation
    • Adds new daemon CLI argument --transaction-validation-threads to specify the number of threads to use. Defaults to maximum on a per system basis.
    • Implemented #970: Cancel the validation if one of the inputs is invalid instead of waiting for all inputs to be fully validated. Thanks @ngeojiajun
  • Implemented #975: Add size, fee to Daemon 's command print_pool_sh. Thanks @wrkzdev
  • Implemented #980: Fix Daemon status command when using threaded RPC
  • Implemented #982: Fix off by one error in transaction extra parsing
  • Implemented #986: Fix Legacy RPC Responses Containing Raw TX_EXTRA
  • Resolved #988: Error in Transaction Input Serialization
  • Implemented #993: Log the IP address of the requestor when they use the daemon RPC
  • Implemented #996: TransactionValidationResult Cross Thread Safety
  • Implemented #998: /getblocktemplate invalid returned offset
  • Updated P2P Version from 7 to 8 and set the minimum required to 7 to help with the network upgrade at block 2,200,000

zedwallet++ Updates

  • Implemented #831: Generating deterministic private spend keys for subwallets
  • Resolved #842: Key images are regenerated on transaction creation [WB]
  • Resolved #892: Updated WalletBackend and friends to return daemon rejection message
  • Resolved #922: Log data fetch failures and JSON deserialization failures in Nigel
  • Implemented #930: Improved nigel logging
  • Implemeneted #936: Update zedwallet++ to allow setting trace log level via command
  • Resolved #940: Need to deduct node fee + network fee before checking send_all validity
  • Implemented #948: Allow syncing with /getrawblocks instead of /getwalletsyncdata

ninja-service Updates

  • Implemented #981: Add User-Agent Header to HTTP requests made by NodeRpcProxy
  • Implemented #983: Fix ninja-service log levels not working as expected
  • Implemented #985: NodeRpcProxy HTTP Method fixes for Threaded RPC

wallet-api Updates

  • Implemented #831: Generating deterministic private spend keys for subwallets
  • Resolved #842: Key images are regenerated on transaction creation [WB]
  • Resolved #892: Updated WalletBackend and friends to return daemon rejection message
  • Resolved #922: Log data fetch failures and JSON deserialization failures in Nigel
  • Implemented #930: Improved nigel logging
  • Implemented #931: Allow Arbitrary Data in Transaction Extra Nonce via Wallet-API
  • Resolved #932: GET /transactions/hash does not convert public keys to addresses
  • Implemented #948: Allow syncing with /getrawblocks instead of /getwalletsyncdata

miner Updates

  • N/A

cryptotest Updates

  • N/A

wallet-upgrader

  • N/A

Known Issues

  • #893: Incorrectly resetting instead of rewinding on subwallet import
  • #943: wallet-upgrader needs further scrutiny

How To Compile

Please see the How To Compile section of the project README for instructions on how to compile this release on your system.

Changelog

See the NinjaCoin Release page for the full change history.

Thanks

Cryptonote Developers, Bytecoin Developers, Forknote Project, TurtleCoin Community

Assets 4
You can’t perform that action at this time.