Difference between revisions of "NodeCore 0.4.9 ReleaseNotes"

From Veriblock Wiki
Jump to: navigation, search
Line 1: Line 1:
 
See: [[ReleaseNotes]]
 
See: [[ReleaseNotes]]
  
 +
__TOC__
  
 
New or updated wiki pages
 
New or updated wiki pages
Line 6: Line 7:
 
* [[HowTo_run_PoP_Miner_0.4.9]]
 
* [[HowTo_run_PoP_Miner_0.4.9]]
 
* [[PoP_Miner_CommandLine_0.4.9]]
 
* [[PoP_Miner_CommandLine_0.4.9]]
 +
 +
== VeriBlock PoP Miner ==
 +
 +
=== Stability ===
 +
 +
* Fixed a bug that allowed multiple BTC endorsement transactions to be created at once and caused the BTC wallet to be unstable. Only one BTC endorsement will be broadcasted concurrently now.
 +
* Each PoP Mining operation has been divided into substeps.
 +
** Each PoP Mining operation substep will be reattempted up to 10 times when they have an error from which they can recover.
 +
** Each PoP Mining operation substep has a timeout set, giving us the guarantee that there will never be operations stuck in the RUNNING state forever.
 +
** Each PoP Mining operation substep has its own description and attached data, so that the `listoperations` and `getoperation` commands and the operation-related HTTP API endpoints will now offer more meaningful data.
 +
 +
=== Clarity ===
 +
* Payout detection implemented. From now the PoP miner will tell you whether or not each of your Mining Operations has been paid out and how many VBKs were rewarded for their endorsement.
 +
* More meaningful logging. There's less noise and more valuable information such as the BTC transaction fees.
 +
* Added extra log file containing only error-level logs.
 +
 +
=== Configuration Rework ===
 +
* Flexible format, supporting old .properties format up to HOCON/JSON (https://github.com/lightbend/config/blob/master/HOCON.md)
 +
* For the sake of stability, the `setconfig` command and the PUT config HTTP API endpoint no longer alter the current runtime state, they will only modify the config file. A PoP miner restart is needed for the changes to apply. However:
 +
** Added '''getautomine''', '''setautomine ''<1/2/3/4> <true/false>''''', '''getmaxfee''', '''setmaxfee ''<amount>''''', '''getfeeperkb''' and '''setfeeperkb ''<amount>''''' commands. These commands change the runtime values, but not the configuration file.
 +
** Added '''GET/PUT ''`/api/config/automine`''''' and '''GET/PUT ''`/api/config/btc-fee`''''' HTTP API endpoints. These endpoints change the runtime values, but not the configuration file.
 +
 +
=== Code ===
 +
The amount of actual code has been reduced greatly and overall it has become easier to understand, welcoming more open-source community collaboration.
 +
 +
=== How to Update Your VeriBlock PoP Miner Installations ===
 +
==== Update Your Config to Match the New Names ====
 +
The configuration property names have changed, as well as the configuration file name. 'ncpop.properties' is no longer used; the new configuration file name is 'application.conf'.
 +
Sample new config in the known format:
 +
<pre>
 +
vpm.nodeCoreRpc.host = 127.0.0.1
 +
vpm.nodeCoreRpc.port = 10500
 +
vpm.nodeCoreRpc.ssl = false
 +
vpm.bitcoin.network = mainnet
 +
vpm.bitcoin.maxFee = 8000
 +
vpm.bitcoin.feePerKB = 20000
 +
vpm.bitcoin.enableMinRelayFee = true
 +
vpm.bitcoin.useLocalhostPeer = false
 +
vpm.httpApiPort = 8080
 +
vpm.autoMine.round1 = false
 +
vpm.autoMine.round2 = false
 +
vpm.autoMine.round3 = false
 +
vpm.autoMine.round4 = false
 +
</pre>
 +
Same sample config in the modern format:
 +
<pre>
 +
vpm {
 +
  nodeCoreRpc {
 +
    host = 127.0.0.1
 +
    port = 10500
 +
    ssl = false
 +
  }
 +
  bitcoin {
 +
    network = mainnet
 +
    maxFee = 8000
 +
    feePerKB = 20000
 +
    enableMinRelayFee = true
 +
    useLocalhostPeer = false
 +
  }
 +
  httpApiPort = 8080
 +
  autoMine {
 +
    round1 = false
 +
    round2 = false
 +
    round3 = false
 +
    round4 = false
 +
  }
 +
}
 +
</pre>
 +
Both formats are allowed, or even a mix of them in the same file. It is up to each user's preferences.
 +
==== Update your scripts ====
 +
If your scripts relied on setting to config for changing the fees or the automine settings on runtime, that will no longer work. Instead, you should use the new commands/endpoints described in the {{section link||Configuration rework}} section.
 +
 +
Example to enable automine round 4:
 +
* Command:
 +
<pre>
 +
setautomine 4 true
 +
</pre>
 +
* HTTP API:
 +
<pre>
 +
PUT <host>:<port>/api/config/automine with body: '{"round1":"false","round2":"false","round3":"false","round4": "true"}'
 +
</pre>
 +
 +
Example to set max fee:
 +
* Command:
 +
<pre>
 +
setmaxfee 3000
 +
</pre>
 +
* HTTP API:
 +
<pre>
 +
PUT <host>:<port>/api/config/btc-fee with body: '{"maxFee":"3000","feePerKB":"10000"}'
 +
</pre>
 +
These calls will not alter the contents of your configuration file, only the runtime values. This way, each setting is more clearly handled on runtime and we're leaving more clarity on which settings had no runtime edit support.

Revision as of 19:15, 27 March 2020

See: ReleaseNotes

New or updated wiki pages

VeriBlock PoP Miner

Stability

  • Fixed a bug that allowed multiple BTC endorsement transactions to be created at once and caused the BTC wallet to be unstable. Only one BTC endorsement will be broadcasted concurrently now.
  • Each PoP Mining operation has been divided into substeps.
    • Each PoP Mining operation substep will be reattempted up to 10 times when they have an error from which they can recover.
    • Each PoP Mining operation substep has a timeout set, giving us the guarantee that there will never be operations stuck in the RUNNING state forever.
    • Each PoP Mining operation substep has its own description and attached data, so that the `listoperations` and `getoperation` commands and the operation-related HTTP API endpoints will now offer more meaningful data.

Clarity

  • Payout detection implemented. From now the PoP miner will tell you whether or not each of your Mining Operations has been paid out and how many VBKs were rewarded for their endorsement.
  • More meaningful logging. There's less noise and more valuable information such as the BTC transaction fees.
  • Added extra log file containing only error-level logs.

Configuration Rework

  • Flexible format, supporting old .properties format up to HOCON/JSON (https://github.com/lightbend/config/blob/master/HOCON.md)
  • For the sake of stability, the `setconfig` command and the PUT config HTTP API endpoint no longer alter the current runtime state, they will only modify the config file. A PoP miner restart is needed for the changes to apply. However:
    • Added getautomine, setautomine <1/2/3/4> <true/false>, getmaxfee, setmaxfee <amount>, getfeeperkb and setfeeperkb <amount> commands. These commands change the runtime values, but not the configuration file.
    • Added GET/PUT `/api/config/automine` and GET/PUT `/api/config/btc-fee` HTTP API endpoints. These endpoints change the runtime values, but not the configuration file.

Code

The amount of actual code has been reduced greatly and overall it has become easier to understand, welcoming more open-source community collaboration.

How to Update Your VeriBlock PoP Miner Installations

Update Your Config to Match the New Names

The configuration property names have changed, as well as the configuration file name. 'ncpop.properties' is no longer used; the new configuration file name is 'application.conf'. Sample new config in the known format:

vpm.nodeCoreRpc.host = 127.0.0.1
vpm.nodeCoreRpc.port = 10500
vpm.nodeCoreRpc.ssl = false
vpm.bitcoin.network = mainnet
vpm.bitcoin.maxFee = 8000
vpm.bitcoin.feePerKB = 20000
vpm.bitcoin.enableMinRelayFee = true
vpm.bitcoin.useLocalhostPeer = false
vpm.httpApiPort = 8080
vpm.autoMine.round1 = false
vpm.autoMine.round2 = false
vpm.autoMine.round3 = false
vpm.autoMine.round4 = false

Same sample config in the modern format:

vpm {
  nodeCoreRpc {
    host = 127.0.0.1
    port = 10500
    ssl = false
  }
  bitcoin {
    network = mainnet
    maxFee = 8000
    feePerKB = 20000
    enableMinRelayFee = true
    useLocalhostPeer = false
  }
  httpApiPort = 8080
  autoMine {
    round1 = false
    round2 = false
    round3 = false
    round4 = false
  }
}

Both formats are allowed, or even a mix of them in the same file. It is up to each user's preferences.

Update your scripts

If your scripts relied on setting to config for changing the fees or the automine settings on runtime, that will no longer work. Instead, you should use the new commands/endpoints described in the Template:Section link section.

Example to enable automine round 4:

  • Command:
setautomine 4 true
  • HTTP API:
PUT <host>:<port>/api/config/automine with body: '{"round1":"false","round2":"false","round3":"false","round4": "true"}'

Example to set max fee:

  • Command:
setmaxfee 3000
  • HTTP API:
PUT <host>:<port>/api/config/btc-fee with body: '{"maxFee":"3000","feePerKB":"10000"}'

These calls will not alter the contents of your configuration file, only the runtime values. This way, each setting is more clearly handled on runtime and we're leaving more clarity on which settings had no runtime edit support.