Skip to content

Karbo CLI Suite v.1.7.3

Compare
Choose a tag to compare
@github-actions github-actions released this 01 May 11:44
· 539 commits to master since this release

This release sets a softfork at height 500000 because of transaction fees per byte for extra data and forbidding unmixable outputs in transaction. Mining pool operators are asked to update their nodes.

  • Change storage for various blockchain indexes
    This reduces memory usage by ~ 500Mb, from ~1.5Gb to ~ 1Gb and greatly speedup start/exit by dump key images map and transactions map to disk and restore as a single array, very efficiently, and without requiring any hash computation.

  • Transaction fees per byte for extra data
    A CryptoNote transaction has an extra field that can store additional information that is stored forever in the blockchain along with the transaction. There is no any limit of the size of this additional transaction extra, therefore it can potentially be quite large. We believe that permanent blockchain storage of the extra data, unrelated to the main purpose of transactions per se, namely, storing information about the transfer of money, has to be paid for. The problem is that the size of the transaction has no influence on the fee of the transaction. The fee based on transaction size solves this problem but creates another one: if a user sends a transaction with many outputs it will render a larger fee amount because of the larger size of the transaction. This is unfair and hard to understand by non-tech-savvy users: why a user has to pay more fees merely because, e.g. he received his money in many smaller transactions or, for example, he wants to send funds in one transaction to many recipients? Therefore, instead of the whole transaction, calculate the additional fee only for the size of the extra field of the transaction. Let's call this fee as 'fee per byte'. This way, the normal transactions will all have the same obligatory limit of the 'minimal fee' but for the additional data, the sender will have to pay an extra fee based on the size of the extra data.

    The extra field of any normal transaction always contains or may contain some data, like e.g. payment id. The size of the extra field of the typical transaction fits in 100 bytes, therefore this size of the extra field of the transaction is proposed to be free of charge.

    The extra field is the vector of uint8_t, and the uint8_t is exactly the one byte, therefore we can easily get the size of the extra field, being the size of the vector, and calculate the 'fee per byte', excluding first 100 bytes.

    The cost of one byte of the extra is set as 1/100 of the 'minimal transaction fee'.

    The 'fee per byte' is added to the 'minimal transaction fee'. The total transaction fee is calculated as

    F = Fb + Fm

    where Fb is 'fee per byte' and Fm is 'minimal transaction fee'.

    Standard transactions from normal wallets are not affected!

  • Exposed these RESTful-like API endpoints for GET requests

    • /api/block/height/[height] - returns block info in JSON by height
    • /api/block/hash/[hash] - returns block info in JSON by hash
    • /api/transaction/[hash] - returns transaction info in JSON by hash
    • /api/payment_id/[hash] - returns the list of transaction hashes by payment id in JSON

    which is convenient to get block or transaction info in browser without the need of making a POST request.
    E.g. complete URL looks like http://127.0.0.1:32348/api/block/height/12345

  • Changes in node server

    • Added nice HTML output to / path with basic stats
    • Added plain HTML /supply endpoint that returns a string with total coins in circulation
    • Moved /paimentid endpoint to the plain HTML output of randomly generated payment id instead of JSON

Download

Karbo-cli-win64-v.1.7.3.zip
CBB693DA84B104EDDCDD6CC8B67A8186322C232D1D2C4979635242528B67155E

Karbo-cli-ubuntu18.04-v.1.7.3.tar.gz
6B01C97A1D066069DD6895E9268FD71FF408B8574DEC1443FAD70FFE31939644

Karbo-cli-ubuntu16.04-v.1.7.3.tar.gz
EDA2C787929A5C203506B9E92E72FB06FA90235F061F544933A5E026651FA616

Karbo-cli-macOS-v.1.7.3.zip
3B23E3E6BCC7B2ECBFE46BCBD4D497B2A721E07FD8E680F68AF4D53899C0360A