NodeCore 0.4.8 ReleaseNotes

From Veriblock Wiki
Revision as of 20:02, 25 February 2020 by VeriBlockTim (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

See: ReleaseNotes, Bootstrap_Downloader

Nodecore.dat storage split into multiple files

Block storage has been reworked. The bootstrap file size has been reduced significantly and now the blocks' data is split into files and subfolders (~1 file per day and ~1 subfolder per year).

  • There will be a 'blocks' folder in the data directory. This folder will contain a set of subfolders with numerical values, and in each of these subfolders there will be a numerical .dat file.
  • Nodecore will automatically upgrade the existing data into the new format, prompting the user beforehand.
mainnet/
  blocks/
    000/
      000.dat
      001.dat
      002.dat
      ...

Update getHistory command to show more transaction history

Address indexing option has been implemented. When enabled, the gethistory <address> command and API will return all the transactions affecting the given address.

  • This option can be enabled with the blockchain.index.addresses=true configuration which is inside the nodecore.properties file


Output Sample...
(VBK_CLI rpc (127.0.0.1:10501)) > gethistory V3AsJRSSSV7g6LVxMhgXuiBe15hhJK
gethistory V3AsJRSSSV7g6LVxMhgXuiBe15hhJK
[
  {
    "balance": "29.99934000",
    "blocks_mined": 0,
    "confirmed_transactions": [
      {
        "type": "signed",
        "signed": {
          "signature": "3046022100ACC31D34D3F8E7441BB136548D934708A05B0B5D4AA69ACADC42011FBDAEB623022100ECC020AC97975BDCFB3F547C27EF013B675718EA5B0C0A7DB7D6C9E5E1D8BA3A",
          "public_key": "3056301006072A8648CE3D020106052B8104000A034200044DEF8C9104AA0FD5CBA927925F657A03FCFA10755F36937DF7352EDAA8A965E46DCA8BDC91B85BABE135E4869DACBF2C28C905D0530903303A714F2093613C80",
          "signature_index": 0,
          "transaction": {
            "size": 67,
            "txid": "03849591FB273ED4818647EFDDF99CA87BEAFE2D329B7A26DEC56F8E145A0414",
            "data": "",
            "type": "standard",
            "fee": "0.00066000",
            "timestamp": 1581445506,
            "source_amount": "70.00066000",
            "merkle_path": "",
            "source_address": "V3AsJRSSSV7g6LVxMhgXuiBe15hhJK",
            "bitcoin_transaction": "N/A",
            "bitcoin_block_header_of_proof": "N/A",
            "endorsed_block_header": "N/A",
            "outputs": [
              {
                "address": "V5ePgM74AENVbpUt2FbVmqswdAh4hz",
                "amount": "70.00000000"
              }
            ]
          }
        }
      },
      {
        "type": "signed",
        "signed": {
          "signature": "3046022100A579F43EB1F2400650B760A4407C988F85ADE4D6AA596532EE4CBF6A8FEF82D2022100A630E4971B583160619269C350EB8541CED56D9D21CB14365180CA5DA23B0BCB",
          "public_key": "3056301006072A8648CE3D020106052B8104000A034200046C1750232449DA0E613E0516313AA1FEC64FCC03BDEC872EA3D5985D3AE36A1F35EAC6FB46CE2DCC2F25E6ADA7E4190D86BED0CC8B5AA6AAFE4D6B009D011CF9",
          "signature_index": 180,
          "transaction": {
            "size": 67,
            "txid": "4F92D3D2DC54952C4FF71325AAE68C192F9CC6BDC3DF891582371385C22920B6",
            "data": "",
            "type": "standard",
            "fee": "0.00066000",
            "timestamp": 1581445403,
            "source_amount": "100.00066000",
            "merkle_path": "",
            "source_address": "VGDavya9wLmU5EvKw2479VJT5HcfT9",
            "bitcoin_transaction": "N/A",
            "bitcoin_block_header_of_proof": "N/A",
            "endorsed_block_header": "N/A",
            "outputs": [
              {
                "address": "V3AsJRSSSV7g6LVxMhgXuiBe15hhJK",
                "amount": "100.00000000"
              }
            ]
          }
        }
      }
    ],
    "pending_transactions": []
  }
]

Officially shipping segwit

Segwit support has been officially shipped as part of VPM, with a lower operation failure rate. Previous wiki page: SegWit_PoP_Miner

  • The BitcoinJ library has been updated to the latest version: 0.15.6
  • Fixed a bug that created multiple context objects while creating the bitcoinj's WalletAppKit, which increased unstability.
  • There are a set of new experimental configurable parameters in the VeriBlock PoP Miner which may help users to reduce even more the failure rate:
    • bitcoinj.minimal.peer.protocol.version
    • bitcoinj.max.peer.connections
    • bitcoinj.peer.discovery.timeout.millis
    • bitcoinj.peer.download.tx.dependency.depth
    • bitcoinj.required.peer.services
    • bitcoinj.min.peer.broadcast.connections
    • bitcoinj.max.peers.to.discover.count
    • bitcoinj.peer.ping.interval.msec

You can find documentation about each of these options in the VPM's documentation page

Updated PoP Miner API

PoP Miner API has been reworked (breaking changes):

  • It is closer to the standards (e.g. now it requires the header -H "Content-Type: application/json" when sending a JSON body).
  • Quit API now supports restart code optionally with "/api/quit?restart=true".
  • Restart quit is now supported on the windows bat file.
  • The API documentation is now accessible through the "/apidocs" API call which by default is accessible through the url: localhost:8600/apidocs

Updated CLI and VPM shell

Major rework of applications' shell (CLI and VPM):

  • Shell now is able to display the normal logs in addition to the shell color-printed messages, so there will be more logs.
  • Common logs are colored depending on the severity level.
  • Ability to separately configure the console and files logging level through environment variables:
    • You can use the next logging levels for all the next environment variables: ERROR, WARN, INFO, DEBUG, TRACE, ALL or OFF
    • Nodecore environment variables: NODECORE_LOG_LEVEL, NODECORE_CONSOLE_LOG_LEVEL
    • VeriBlock PoP Miner environment variables: VPM_LOG_LEVEL, VPM_CONSOLE_LOG_LEVEL
    • AltChain PoP Miner environment variables: APM_LOG_LEVEL, APM_CONSOLE_LOG_LEVEL

Updated CLI command getDiagnosticInfo

Added environment variables in the NodeCore diagnostic info.

  • The command getdiagnosticinfo now will display the used command line to start the NodeCore instance and the environment variables.

Other

  • Optimized data stored in block storage to shrink from 60 GB to 23GB
  • When booting up and loading the blockchain a progress bar will be displayed.
  • NodeCore's logging is now much less verbose. To enable verbosity, use the "NODECORE_CONSOLE_LOG_LEVEL=DEBUG" environment variable.

Bootstrap Downloader

See: Bootstrap_Downloader

While the blockchain can always sync from scratch, this is an embedded utility to download blocks for faster sync of a full node.