https://wiki.veriblock.org/api.php?action=feedcontributions&user=Leonard&feedformat=atomVeriblock Wiki - User contributions [en]2024-03-28T19:28:03ZUser contributionsMediaWiki 1.33.1https://wiki.veriblock.org/index.php?title=List_of_mining_pools&diff=4010List of mining pools2022-10-18T14:26:38Z<p>Leonard: /* Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]], [[List_of_mining_pools_testnet]], [[List_of_mining_pools_vBlake]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Join a VeriBlock PoW Mining Pool!<br />
<br />
See: [[HowTo_run_and_connect_to_PoW_Miner_pool]]<br />
<br />
To add your pool to this list, post a message on Discord: https://discord.gg/phazWBE<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes. This list may change at any time. The IPs listed below are not guaranteed to be up.<br />
<br />
VeriBlock may occasionally run a tool for testing and reference purposes - but we strongly encourage folks to use the community pools!<br />
<br />
See Community resources for pool-related tools: [[Community_Resource_Contributions]]<br />
<br />
== Pools ==<br />
<br />
Join https://discord.gg/wJZEjry to add your pool.<br />
<br />
Also consider: https://miningpoolstats.stream/veriblock<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Location of IP<br />
! Url for webpage<br />
! Comment<br />
! VarDiff Support<br />
|-<br />
| devpool-gpu.veriblock.org:8502<br />
| Europe<br />
| https://devpool-gpu.veriblock.org/<br />
| Initial Dev GPU Pool<br />
| Yes<br />
|-<br />
| bigshoots.net:8502<br />
| Canada<br />
| http://bigshoots.net:8500/<br />
| Big Shoots<br />
| Yes<br />
|-<br />
| vbk-reb0rn.ddns.net:8502<br />
| Germany<br />
| http://vbk-reb0rn.ddns.net/<br />
| reb0rn<br />
| Yes<br />
|-<br />
| oceansail.ddns.net:8502<br />
| Spain<br />
| http://oceansail.ddns.net:8500/<br />
| Tato<br />
| Yes<br />
|-<br />
| kurtix.theworkpc.com:8502<br />
| France<br />
| http://kurtix.theworkpc.com:8500/<br />
| Kurtix<br />
| Yes<br />
|}</div>Leonardhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools&diff=4009List of mining pools2022-10-18T14:26:12Z<p>Leonard: /* Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]], [[List_of_mining_pools_testnet]], [[List_of_mining_pools_vBlake]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Join a VeriBlock PoW Mining Pool!<br />
<br />
See: [[HowTo_run_and_connect_to_PoW_Miner_pool]]<br />
<br />
To add your pool to this list, post a message on Discord: https://discord.gg/phazWBE<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes. This list may change at any time. The IPs listed below are not guaranteed to be up.<br />
<br />
VeriBlock may occasionally run a tool for testing and reference purposes - but we strongly encourage folks to use the community pools!<br />
<br />
See Community resources for pool-related tools: [[Community_Resource_Contributions]]<br />
<br />
== Pools ==<br />
<br />
Join https://discord.gg/wJZEjry to add your pool.<br />
<br />
Also consider: https://miningpoolstats.stream/veriblock<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Location of IP<br />
! Url for webpage<br />
! Comment<br />
! VarDiff Support<br />
|-<br />
| devpool-gpu.veriblock.org:8502<br />
| Europe<br />
| https://devpool-gpu.veriblock.org/<br />
| Initial Dev GPU Pool<br />
| Yes<br />
|-<br />
| bigshoots.net:8502<br />
| Canada<br />
| http://bigshoots.net:8500/<br />
| Big Shoots<br />
| Yes<br />
|-<br />
| vbk-reb0rn.ddns.net:8502<br />
| Germany<br />
| http://vbk-reb0rn.ddns.net/<br />
| reb0rn<br />
| Yes<br />
|-<br />
| oceansail.ddns.net:8502<br />
| Spain<br />
| http://oceansail.ddns.net:8500/<br />
| Tato<br />
| Yes<br />
|-<br />
| kurtix.theworkpc.com:8502<br />
| France<br />
| http://kurtix.theworkpc.com/<br />
| Kurtix<br />
| Yes<br />
|}</div>Leonardhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools&diff=4008List of mining pools2022-10-18T14:25:21Z<p>Leonard: /* Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]], [[List_of_mining_pools_testnet]], [[List_of_mining_pools_vBlake]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Join a VeriBlock PoW Mining Pool!<br />
<br />
See: [[HowTo_run_and_connect_to_PoW_Miner_pool]]<br />
<br />
To add your pool to this list, post a message on Discord: https://discord.gg/phazWBE<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes. This list may change at any time. The IPs listed below are not guaranteed to be up.<br />
<br />
VeriBlock may occasionally run a tool for testing and reference purposes - but we strongly encourage folks to use the community pools!<br />
<br />
See Community resources for pool-related tools: [[Community_Resource_Contributions]]<br />
<br />
== Pools ==<br />
<br />
Join https://discord.gg/wJZEjry to add your pool.<br />
<br />
Also consider: https://miningpoolstats.stream/veriblock<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Location of IP<br />
! Url for webpage<br />
! Comment<br />
! VarDiff Support<br />
|-<br />
| devpool-gpu.veriblock.org:8502<br />
| Europe<br />
| https://devpool-gpu.veriblock.org/<br />
| Initial Dev GPU Pool<br />
| Yes<br />
|-<br />
| bigshoots.net:8502<br />
| Canada<br />
| http://bigshoots.net:8500/<br />
| Big Shoots<br />
| Yes<br />
|-<br />
| vbk-reb0rn.ddns.net:8502<br />
| Germany<br />
| http://vbk-reb0rn.ddns.net/<br />
| reb0rn<br />
| Yes<br />
|-<br />
| oceansail.ddns.net:8502<br />
| Spain<br />
| http://oceansail.ddns.net:8500/<br />
| Tato<br />
| Yes<br />
|-<br />
| http://kurtix.theworkpc.com:8500/<br />
| Franse<br />
| http://kurtix.theworkpc.com/<br />
| Kurtix<br />
| Yes<br />
|}</div>Leonardhttps://wiki.veriblock.org/index.php?title=HowTo_run_SPV&diff=3603HowTo run SPV2021-12-06T18:16:24Z<p>Leonard: /* Source Code */</p>
<hr />
<div><br />
__TOC__<br />
<br />
== Overview ==<br />
NodeCore SPV (Simple Payment Verification) is a light wallet that allows a user to see their balance and send VBK without downloading, syncing, and running a full node.<br />
<br />
Post vProgPoW, run this beta wallet:<br />
<br />
DOWNLOAD latest: https://explore.veriblock.org/api/stats/download, "nodecore_spv".<br />
<br />
See other wallets here: https://www.veriblock.org/#wallet<br />
<br />
Run veriblock-spv.bat<br />
<br />
Tested on OpenJDK 8, 11, 14, for Windows and Ubuntu Linux<br />
<br />
https://openjdk.java.net/projects/jdk/<br />
<br />
<br />
[[File:Spv download 2.png|800px]]<br />
<br />
== Source Code ==<br />
<br />
Github: https://github.com/VeriBlock/nodecore/tree/master/nodecore-spv<br />
<br />
== Commands ==<br />
<br />
SPV has a subset of commands: https://wiki.veriblock.org/index.php/NodeCore_CommandLine<br />
<br />
<pre><br />
help<br />
Commands:<br />
clear<br />
quit|leave|close|exit<br />
help|?|/?|h|/h|h?|showcommands<br />
getbalance|getbal|bal<br />
getstateinfo|stateinfo|state|getstate<br />
send|sendtoaddress|sendtoaddr<br />
lockwallet<br />
unlockwallet<br />
decryptwallet<br />
encryptwallet<br />
importwallet<br />
backupwallet<br />
getnewaddress<br />
</pre><br />
<br />
=== Configuration ===<br />
<br />
File: application.conf<br />
<br />
<pre><br />
# Default Configuration of VeriBlock SPV<br />
spv {<br />
# Blockchain network to connect to (mainnet | testnet | alphanet)<br />
network: mainnet<br />
# Data directory<br />
dataDir: "."<br />
# Uncomment if you want SPV to connect to a local node<br />
#connectDirectlyTo: [localhost]<br />
# Uncomment if you want SPV to connect to 3 arbitrary nodes/ports<br />
#connectDirectlyTo: [host1:1111,host1:2222,host1:3333]<br />
# Trust the block hashes from the peers (fast sync) or compute them locally (slow sync)<br />
trustPeerHashes: false<br />
}<br />
</pre><br />
<br />
== Appendix ==<br />
<br />
=== Known Issues ===<br />
<br />
SPV does not show locked coins (from MainNet launch). If you have a locked-coin balance, SPV will still show as zero.<br />
<br />
Running importwallet may take a few minutes to sync the new wallet.</div>Leonardhttps://wiki.veriblock.org/index.php?title=HowTo_Mine_BTCSQ&diff=3372HowTo Mine BTCSQ2021-09-13T10:39:37Z<p>Leonard: /* Helpful Links */</p>
<hr />
<div>See: [[VAIF]], [[Altchain_List]], [[Altchain_PoP_Miner]]<br />
<br />
'''vBTC is currently in the 0.4 release phase, and will change. This page is for testing purposes.'''<br />
<br />
__toc__<br />
<br />
== Overview ==<br />
vBTC is the reference implementation for Bitcoin-based blockchains utilizing VeriBlock's Proof-of-Proof technology.<br />
<br />
Below, you will find the steps needed to download and run the vBTC daemon. <br />
<br />
Please note, all coins associated with this network are without value, and are for testing purposes only.<br />
<br />
In the current implementation, we are using tVBK (testnet) to PoP mine (testnet) vBTC. vBTC inherits security from the VeriBlock TestNet, and VeriBlock TestNet inherits security from Bitcoin Testnet.<br />
<br />
'''In order to PoP mine ALL 3 of the following are required to stay open and running:'''<br><br />
'''1) NodeCore'''<br><br />
'''2) vBitcoin'''<br><br />
'''3) Altchain PoP Miner'''<br><br />
<br />
=== Prerequisites: ===<br />
<br />
It is recommended to have 4 cpu cores and 16GB of RAM to run all 3 applications. (NodeCore, APM, vBitcoin daemon)<br />
<br />
Currently, VeriBlock TestNet requires a minimum of 6GB of space to sync. 10+ GB free space recommended.<br />
<br />
====64-bit Java====<br />
Tested using AdoptOpenJDK 8, 11, & 14 with HotSpot JVM. https://adoptopenjdk.net/<br />
<br />
== Download Packages for Linux ==<br />
<br />
[[BTCSQ#Get_Package]]<br />
<br />
== Download Packages for Windows x64 ==<br />
<br />
[[BTCSQ#Get_Package]]<br />
<br />
Package contains:<br />
<br />
=== vBitcoin 0.4 Daemon ===<br />
* vbitcoin-qt.exe<br />
* vbitcoind.exe<br />
* vbitcoin-cli.exe<br />
* vbitcoin-tx.exe<br />
* vbitcoin-wallet.exe<br />
* vbitcoin.conf<br />
<br />
=== vbitcoin.conf location ===<br />
Located within the '''vBTC-release.0.4-<version>/data''' directory.<br />
<br />
===NodeCore 0.4.13-rc.1===<br />
<br />
===Altchain PoP Miner 0.4.13-rc.1===<br />
<br />
== Configuration and First Run ==<br />
<br />
=== NodeCore ===<br />
<br />
# Sync TestNet<br />
## While you could sync from block 0, the fastest way is using the bootstrap downloader:<br />
## Inside the nodecore folder, double click '''download_testnet_bootstrap.bat''' and it will download the latest TestNet bootstrap and place it in the nodecore/bin/testnet folder.<br />
# Once the bootstrap-downloader has finished, you can close the window and double click '''bin/nodecore.bat''' to start NodeCore in testnet mode.<br />
<br />
=== vBTC ===<br />
<br />
==== Running vBitcoin QT Wallet ====<br />
Double click the '''start-vbitcoin-qt.bat''' file to launch the QT Wallet using the '''data''' directory, instead of the default '''%appdata%\vBitcoin'''<p><br />
[[File:vBitcoin_Start.png|thumb|400px|none|vBitcoin Initial Start]]<br />
<p><br />
<br />
==== Generate Reward Address ====<br />
[[File:vBitcoin_getnewaddress.png|thumb|600px|none|vBitcoin getnewaddress]]<br />
<br />
=== APM (Altchain PoP Miner) ===<br />
==== Edit application.conf ====<br />
<br />
After unzipping the package, it can be found in '''altchain-pop-miner-0.4.12-<version>/bin/application.conf'''<br />
<br />
Open application.conf, and update the '''payoutAddress''' to match the newly generated vBitcoin address to receive rewards.<p> NOTE: If you changed the vBitcoin RPC username or password, or if you are running a VeriBlock TestNet node on another machine you will want to update those fields as well.<p><br />
<br />
Sample Config: <p><br />
<br />
<pre><br />
miner {<br />
network: testnet<br />
feePerByte: 1000<br />
maxFee: 10000000<br />
api.port: 8080<br />
connectDirectlyTo: ["localhost"]<br />
}<br />
securityInheriting {<br />
vbtc: {<br />
// This can be set to [1,2,3,4]<br />
autoMineRounds: [4]<br />
payoutAddress: "tb1qdvkkx4r824wcgu92acwn88wll929jxkwey5gsd"<br />
pluginKey: btc<br />
id: 3860170<br />
name: "vBitcoin"<br />
host: "http://localhost:18332"<br />
// Uncomment if your vBTC daemon is auth protected<br />
auth: {<br />
username: "vbitcoin"<br />
password: "BETATeSt!"<br />
}<br />
payoutInterval: 50<br />
extraConfig: {<br />
daemonConnectionTimeout: 20000<br />
}<br />
}<br />
}<br />
</pre><br />
<br />
==== Start the APM ====<br />
<br />
Once you have edited the '''application.conf''' file, please start the APM by double clicking '''altchain-pop-miner.bat''' within the '''altchain-pop-miner-0.4.12-<version>/bin/''' directory.<p><br />
<br />
==== Funding APM Wallet ====<br />
[[File:APM_Start.png|thumb|600px|none|APM Initial Start]]<br />
When the APM starts, you will see a line similar to '''Send funds to the tVBK wallet V4xwrouY6UNtBEC9V8fmWaibd4taqz'''<br><br />
You will want to fund this wallet with VeriBlock TestNet coins. You can get testnet coins from a faucet, such as bitspill's community faucet at: <br><br />
https://vbk.bitspill.net<br />
<br />
==== Wait for SPV Synchronization ====<br />
Once the wallet is funded you will need to wait for NodeCore to synchronize with the VeriBlock TestNet network if it is not already.<br />
<pre><br />
2020-11-02 12:40:54 nc-poll INFO VeriBlockNetwork - SPV is not synchronized: 963230 blocks left (LocalHeight=30399 NetworkHeight=993629 InitialBlockDownload=false)<br />
2020-11-02 12:40:54 nc-poll INFO AltchainPoPMiner - SPV is not ready<br />
<br />
</pre><br />
<br />
== How To PoP Mine vBTC ==<br />
<br />
=== Run getdebuginfo to check if APM is ready ===<br />
This performs several checks, such that it can connect to both NodeCore and vBTC daemons, and has a VBK balance.<br />
<br />
<pre><br />
> getdebuginfo<br />
getdebuginfo<br />
Running several checks, this may take a few moments...<br />
{<br />
"information": [<br />
"SUCCESS - SPV connection: Connected",<br />
"SUCCESS - SPV synchronization status: Synchronized 0 blocks left (LocalHeight=993821 NetworkHeight=993821 InitialBlockDownload=false)",<br />
"SUCCESS - vBitcoin connection: Connected to http://localhost:18332",<br />
"SUCCESS - vBitcoin configured network: vBitcoin & APM are running on the same configured network (testnet)",<br />
"SUCCESS - vBitcoin synchronization status: Synchronized 0 blocks left (LocalHeight=7128 NetworkHeight=7128 InitialBlockDownload=false)",<br />
"SUCCESS - vBitcoin payoutAddress: 'tb1qtmtcd6y398n7tdxafscah0x9yg5ffprpum20y4' is configured",<br />
"SUCCESS - vBitcoin configuration for autoMineRounds is valid",<br />
"SUCCESS - The tVBK PoP wallet contains sufficient funds, current balance: 9.99506000 tVBK"<br />
],<br />
"diagnosticInfo": {<br />
"user_language": "en",<br />
"java_runtime_name": "OpenJDK Runtime Environment",<br />
"sun_boot_library_path": "C:\\Program Files\\AdoptOpenJDK\\jdk-14.0.2.12-hotspot\\bin",<br />
"java_runtime_version": "14.0.2+12",<br />
"java_specification_version": "14",<br />
"os_name": "Windows 10",<br />
"os_arch": "amd64",<br />
"os_version": "10.0",<br />
"memory_total_gb": "2.21 GB",<br />
"memory_max_gb": "3.98 GB",<br />
"processor_count": "12",<br />
"processor_type": "Intel64 Family 6 Model 63 Stepping 2, GenuineIntel",<br />
"working_directory": "C:\\Users\\User\\Desktop\\vBTC-release.0.4-888de8e\\altchain-pop-miner-0.4.12-rc.3\\bin",<br />
"datetime_now_utc": "2020-11-02 14:18:51.593-0600"<br />
}<br />
}<br />
200 success (17.17 ms)<br />
</pre><br />
<br />
Once vBitcoin and NodeCore have synchronized, and you have funded your tVBK wallet in the APM, you can type 'mine vbtc' to submit a PoP transaction.<br />
<br />
You may need to wait for wallet funding:<br />
<br />
<pre><br />
2020-06-03 18:46:06 event-list INFO TransactionMonitor - Detected incoming VBK transaction: 844A9DFFFAA1F26CA413AD4354AC4844A90053BE31C03C894C049A1CD5739119<br />
2020-06-03 18:46:06 event-list INFO AltchainPoPMiner - Current balance: 10.00000000 tVBK<br />
2020-06-03 18:46:06 event-list INFO AltchainPoPMiner - Miner is ready!<br />
</pre><br />
<br />
=== Submit PoP Transaction ===<br />
<pre><br />
> mine vbtc<br />
mine vbtc<br />
2020-06-03 18:47:16 main INFO AltchainPoPMiner - Created operation [vbtc85541518] on chain vBitcoin<br />
INFO: (2020-06-03 18:47:16) [v200] Mining operation started<br />
Operation id: vbtc85541518<br />
200 success (266.7 ms)<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Getting the mining instruction...<br />
2020-06-03 18:47:16 pop-tasks- INFO BitcoinFamilyChain - Retrieving mining instruction at height 53 from vBitcoin daemon at http://localhost:18332...<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Successfully retrieved the mining instruction!<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Submitting endorsement VBK transaction...<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Successfully added the VBK transaction: D8A0D80B1C286B1C5B04CE6894C6BBDA0CFF23FA288D72F60DF7A48A58B66005!<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Waiting for the transaction to be included in VeriBlock block...<br />
</pre><br />
=== Verify PoP Transaction on VBK TestNet Explorer ===<br />
Transactions can be seen and verified at https://testnet.explore.veriblock.org/<br />
<br />
https://testnet.explore.veriblock.org/tx/D8A0D80B1C286B1C5B04CE6894C6BBDA0CFF23FA288D72F60DF7A48A58B66005<br />
<br />
The transaction information should match your payoutAddress you selected earlier:<br />
<br />
{| class="wikitable" <br />
|-<br />
! Altchain Data<br />
! Example<br />
|-<br />
| Altchain<br />
| vBTC<br />
|-<br />
| Identifier<br />
| 3860170<br />
|-<br />
| Endorsed Block Hash<br />
| 000000076CF8E04E16DD28FAA5831041B56CD1AF46B80959586CD754C7091E2E<br />
|-<br />
| Endorsed Block Height<br />
| 53<br />
|-<br />
| Reward Address<br />
| tb1qdvkkx4r824wcgu92acwn88wll929jxkwey5gsd<br />
|-<br />
| First Previous Keystone<br />
| 00000000142988A6E06E52DE0D57420D590E602D9E908731FD6AF7B09C2089B5<br />
|-<br />
| Second Previous Keystone<br />
| 000000071279A847E7C1E633651CC54FDCCAD492E13052562DAF7E71714D5B7D<br />
|}<br />
<br />
=== View PoP tx from start to finish ===<br />
<br />
<pre><br />
> getoperation vbtc366214b4<br />
...<br />
Operation workflow:<br />
DONE 1. START Created APM operation id: vbtc366214b4<br />
DONE 2. RETRIEVE_MINING_INSTRUCTION Endorsed vBitcoin block height: 95<br />
DONE 3. SUBMIT_ENDORSEMENT_TRANSACTION tVBK endorsement transaction id: 43B8A911BCCF8B5D20E8D6374B22555CD1A1DD22B356461EDBDD23581900C660 (fee: 0.00248000)<br />
DONE 4. CONFIRM_ENDORSEMENT_TRANSACTION<br />
DONE 5. DETERMINE_BLOCK_OF_PROOF tVBK Block of Proof: 0000000005E4E0F3A62A5FCD7852BE4EDBAC033E836B07A8 @ 583257<br />
DONE 6. PROVE_ENDORSEMENT_TRANSACTION Merkle path has been verified<br />
DONE 7. WAIT_FOR_KEYSTONE_OF_PROOF tVBK Keystone of Proof: 000000001A1EFAB5F9890DD4182D57DF53519F5BD8676E45<br />
DONE 8. GET_VBK_PUBLICATIONS Retrieved 14 VTBs<br />
DONE 9. SUBMIT_POP_TRANSACTION VTBs submitted to vBitcoin! vBitcoin PoP TxId: 0a3fcf3d4db23eee84c922dcd535b949ba9bb0bbf353012f8ca77128287d8640<br />
DONE 10. WAIT_FOR_PAYOUT_BLOCK Payout detected in vBitcoin block 145 to vBitcoin address tb1qps3s9t9kz9atl6m666t57ehzy849la08wshahy!<br />
DONE 11. COMPLETED Paid amount: 47.20500000<br />
</pre><br />
<br />
== How To PoW Mine vBTC ==<br />
<br />
One can proof-of-work mine via the stratum pool.<br />
<br />
There is a stratum implementation and running pool.<br />
<br />
Note: This pool is setup for '''CPU''' mining only, and as such, difficulty of shares is too low for GPU or ASIC mining.<br />
<br />
===CPU Miner Binaries:===<br />
<br />
Linux: https://mirror1.veriblock.org/btcsq-minerd<br />
<br />
Windows: https://mirror1.veriblock.org/btcsq-minerd.exe<br />
<br />
===CPU Miner Start String Examples:===<br />
<br />
Linux: '''./btcsq-minerd -o 'stratum+tcp://testnet.pool.vbtc.veriblock.org:3333' -u <legacy_address> -p x -a sha256d'''<br />
<br />
Windows: '''btcsq-minerd.exe -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x -a sha256d'''<br />
<br />
To use this pool you will need to generate a legacy address using the command: '''vbitcoin-cli getnewaddress "mining" legacy'''<br />
<br />
Pool: https://testnet.pool.vbtc.veriblock.org/<br />
<br />
Detailed instructions: https://github.com/VeriBlock/vbk-ri-stratum-pool<br />
<br />
== How to upgrade ==<br />
<br />
If you are already pop mining vBTC, then upgrading is relatively easy.<br />
<br />
Get latest package. This will have 3 separate applications:<br />
* APM<br />
* NodeCore<br />
* vBTC daemon<br />
<br />
Each part can be upgraded as needed. For example you may only want to upgrade to the new APM, and not change NC or vBTC.<br />
<br />
=== Upgrade APM ===<br />
<br />
# Shut down old APM<br />
# Copy these files to new APM /bin folder:<br />
## application.conf<br />
## vbk-testnet.wallet --> this has your tVBK for sending altchain pop transactions<br />
# Start new APM<br />
<br />
=== Upgrade vBTC Daemon ===<br />
<br />
# Shut down old vBTC<br />
# Start new vBTC<br />
<br />
Note: The new vBTC should have the same vbitcoin.conf and blockchain as before, therefore no need to update the conf or blockchain.<br />
<br />
Note: It may take some time to resync the network. (There are known issues to optimize this).<br />
<br />
== Appendix ==<br />
<br />
=== Helpful Links ===<br />
<br />
* Github repos<br />
** vBTC - https://github.com/VeriBlock/vbk-ri-btc<br />
** C++ altchain library - https://github.com/VeriBlock/alt-integration-cpp<br />
** APM - https://github.com/VeriBlock/nodecore/tree/master/pop-miners/altchain-pop-miner<br />
* How to run APM - [[Altchain_PoP_Miner]]<br />
* Explorers<br />
** vBTC explorer - https://testnet.explore.vbtc.veriblock.org<br />
** VBK TestNet explorer - https://testnet.explore.veriblock.org/altchain-details/3860170<br />
* Background Information<br />
** https://wiki.veriblock.org/index.php/Altchain_PoP_Lifecycle<br />
** https://wiki.veriblock.org/index.php/VeriBlock_and_Proof-of-Proof_FAQ<br />
** https://wiki.veriblock.org/index.php/How_VeriBlock_PoP_BFI_Protects_Altchains<br />
** TODO: [[HowTo_Mine_vBTC]], [[Join_vBTC_Testnet]]</div>Leonardhttps://wiki.veriblock.org/index.php?title=HowTo_Mine_BTCSQ&diff=3371HowTo Mine BTCSQ2021-09-13T10:39:11Z<p>Leonard: /* Helpful Links */</p>
<hr />
<div>See: [[VAIF]], [[Altchain_List]], [[Altchain_PoP_Miner]]<br />
<br />
'''vBTC is currently in the 0.4 release phase, and will change. This page is for testing purposes.'''<br />
<br />
__toc__<br />
<br />
== Overview ==<br />
vBTC is the reference implementation for Bitcoin-based blockchains utilizing VeriBlock's Proof-of-Proof technology.<br />
<br />
Below, you will find the steps needed to download and run the vBTC daemon. <br />
<br />
Please note, all coins associated with this network are without value, and are for testing purposes only.<br />
<br />
In the current implementation, we are using tVBK (testnet) to PoP mine (testnet) vBTC. vBTC inherits security from the VeriBlock TestNet, and VeriBlock TestNet inherits security from Bitcoin Testnet.<br />
<br />
'''In order to PoP mine ALL 3 of the following are required to stay open and running:'''<br><br />
'''1) NodeCore'''<br><br />
'''2) vBitcoin'''<br><br />
'''3) Altchain PoP Miner'''<br><br />
<br />
=== Prerequisites: ===<br />
<br />
It is recommended to have 4 cpu cores and 16GB of RAM to run all 3 applications. (NodeCore, APM, vBitcoin daemon)<br />
<br />
Currently, VeriBlock TestNet requires a minimum of 6GB of space to sync. 10+ GB free space recommended.<br />
<br />
====64-bit Java====<br />
Tested using AdoptOpenJDK 8, 11, & 14 with HotSpot JVM. https://adoptopenjdk.net/<br />
<br />
== Download Packages for Linux ==<br />
<br />
[[BTCSQ#Get_Package]]<br />
<br />
== Download Packages for Windows x64 ==<br />
<br />
[[BTCSQ#Get_Package]]<br />
<br />
Package contains:<br />
<br />
=== vBitcoin 0.4 Daemon ===<br />
* vbitcoin-qt.exe<br />
* vbitcoind.exe<br />
* vbitcoin-cli.exe<br />
* vbitcoin-tx.exe<br />
* vbitcoin-wallet.exe<br />
* vbitcoin.conf<br />
<br />
=== vbitcoin.conf location ===<br />
Located within the '''vBTC-release.0.4-<version>/data''' directory.<br />
<br />
===NodeCore 0.4.13-rc.1===<br />
<br />
===Altchain PoP Miner 0.4.13-rc.1===<br />
<br />
== Configuration and First Run ==<br />
<br />
=== NodeCore ===<br />
<br />
# Sync TestNet<br />
## While you could sync from block 0, the fastest way is using the bootstrap downloader:<br />
## Inside the nodecore folder, double click '''download_testnet_bootstrap.bat''' and it will download the latest TestNet bootstrap and place it in the nodecore/bin/testnet folder.<br />
# Once the bootstrap-downloader has finished, you can close the window and double click '''bin/nodecore.bat''' to start NodeCore in testnet mode.<br />
<br />
=== vBTC ===<br />
<br />
==== Running vBitcoin QT Wallet ====<br />
Double click the '''start-vbitcoin-qt.bat''' file to launch the QT Wallet using the '''data''' directory, instead of the default '''%appdata%\vBitcoin'''<p><br />
[[File:vBitcoin_Start.png|thumb|400px|none|vBitcoin Initial Start]]<br />
<p><br />
<br />
==== Generate Reward Address ====<br />
[[File:vBitcoin_getnewaddress.png|thumb|600px|none|vBitcoin getnewaddress]]<br />
<br />
=== APM (Altchain PoP Miner) ===<br />
==== Edit application.conf ====<br />
<br />
After unzipping the package, it can be found in '''altchain-pop-miner-0.4.12-<version>/bin/application.conf'''<br />
<br />
Open application.conf, and update the '''payoutAddress''' to match the newly generated vBitcoin address to receive rewards.<p> NOTE: If you changed the vBitcoin RPC username or password, or if you are running a VeriBlock TestNet node on another machine you will want to update those fields as well.<p><br />
<br />
Sample Config: <p><br />
<br />
<pre><br />
miner {<br />
network: testnet<br />
feePerByte: 1000<br />
maxFee: 10000000<br />
api.port: 8080<br />
connectDirectlyTo: ["localhost"]<br />
}<br />
securityInheriting {<br />
vbtc: {<br />
// This can be set to [1,2,3,4]<br />
autoMineRounds: [4]<br />
payoutAddress: "tb1qdvkkx4r824wcgu92acwn88wll929jxkwey5gsd"<br />
pluginKey: btc<br />
id: 3860170<br />
name: "vBitcoin"<br />
host: "http://localhost:18332"<br />
// Uncomment if your vBTC daemon is auth protected<br />
auth: {<br />
username: "vbitcoin"<br />
password: "BETATeSt!"<br />
}<br />
payoutInterval: 50<br />
extraConfig: {<br />
daemonConnectionTimeout: 20000<br />
}<br />
}<br />
}<br />
</pre><br />
<br />
==== Start the APM ====<br />
<br />
Once you have edited the '''application.conf''' file, please start the APM by double clicking '''altchain-pop-miner.bat''' within the '''altchain-pop-miner-0.4.12-<version>/bin/''' directory.<p><br />
<br />
==== Funding APM Wallet ====<br />
[[File:APM_Start.png|thumb|600px|none|APM Initial Start]]<br />
When the APM starts, you will see a line similar to '''Send funds to the tVBK wallet V4xwrouY6UNtBEC9V8fmWaibd4taqz'''<br><br />
You will want to fund this wallet with VeriBlock TestNet coins. You can get testnet coins from a faucet, such as bitspill's community faucet at: <br><br />
https://vbk.bitspill.net<br />
<br />
==== Wait for SPV Synchronization ====<br />
Once the wallet is funded you will need to wait for NodeCore to synchronize with the VeriBlock TestNet network if it is not already.<br />
<pre><br />
2020-11-02 12:40:54 nc-poll INFO VeriBlockNetwork - SPV is not synchronized: 963230 blocks left (LocalHeight=30399 NetworkHeight=993629 InitialBlockDownload=false)<br />
2020-11-02 12:40:54 nc-poll INFO AltchainPoPMiner - SPV is not ready<br />
<br />
</pre><br />
<br />
== How To PoP Mine vBTC ==<br />
<br />
=== Run getdebuginfo to check if APM is ready ===<br />
This performs several checks, such that it can connect to both NodeCore and vBTC daemons, and has a VBK balance.<br />
<br />
<pre><br />
> getdebuginfo<br />
getdebuginfo<br />
Running several checks, this may take a few moments...<br />
{<br />
"information": [<br />
"SUCCESS - SPV connection: Connected",<br />
"SUCCESS - SPV synchronization status: Synchronized 0 blocks left (LocalHeight=993821 NetworkHeight=993821 InitialBlockDownload=false)",<br />
"SUCCESS - vBitcoin connection: Connected to http://localhost:18332",<br />
"SUCCESS - vBitcoin configured network: vBitcoin & APM are running on the same configured network (testnet)",<br />
"SUCCESS - vBitcoin synchronization status: Synchronized 0 blocks left (LocalHeight=7128 NetworkHeight=7128 InitialBlockDownload=false)",<br />
"SUCCESS - vBitcoin payoutAddress: 'tb1qtmtcd6y398n7tdxafscah0x9yg5ffprpum20y4' is configured",<br />
"SUCCESS - vBitcoin configuration for autoMineRounds is valid",<br />
"SUCCESS - The tVBK PoP wallet contains sufficient funds, current balance: 9.99506000 tVBK"<br />
],<br />
"diagnosticInfo": {<br />
"user_language": "en",<br />
"java_runtime_name": "OpenJDK Runtime Environment",<br />
"sun_boot_library_path": "C:\\Program Files\\AdoptOpenJDK\\jdk-14.0.2.12-hotspot\\bin",<br />
"java_runtime_version": "14.0.2+12",<br />
"java_specification_version": "14",<br />
"os_name": "Windows 10",<br />
"os_arch": "amd64",<br />
"os_version": "10.0",<br />
"memory_total_gb": "2.21 GB",<br />
"memory_max_gb": "3.98 GB",<br />
"processor_count": "12",<br />
"processor_type": "Intel64 Family 6 Model 63 Stepping 2, GenuineIntel",<br />
"working_directory": "C:\\Users\\User\\Desktop\\vBTC-release.0.4-888de8e\\altchain-pop-miner-0.4.12-rc.3\\bin",<br />
"datetime_now_utc": "2020-11-02 14:18:51.593-0600"<br />
}<br />
}<br />
200 success (17.17 ms)<br />
</pre><br />
<br />
Once vBitcoin and NodeCore have synchronized, and you have funded your tVBK wallet in the APM, you can type 'mine vbtc' to submit a PoP transaction.<br />
<br />
You may need to wait for wallet funding:<br />
<br />
<pre><br />
2020-06-03 18:46:06 event-list INFO TransactionMonitor - Detected incoming VBK transaction: 844A9DFFFAA1F26CA413AD4354AC4844A90053BE31C03C894C049A1CD5739119<br />
2020-06-03 18:46:06 event-list INFO AltchainPoPMiner - Current balance: 10.00000000 tVBK<br />
2020-06-03 18:46:06 event-list INFO AltchainPoPMiner - Miner is ready!<br />
</pre><br />
<br />
=== Submit PoP Transaction ===<br />
<pre><br />
> mine vbtc<br />
mine vbtc<br />
2020-06-03 18:47:16 main INFO AltchainPoPMiner - Created operation [vbtc85541518] on chain vBitcoin<br />
INFO: (2020-06-03 18:47:16) [v200] Mining operation started<br />
Operation id: vbtc85541518<br />
200 success (266.7 ms)<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Getting the mining instruction...<br />
2020-06-03 18:47:16 pop-tasks- INFO BitcoinFamilyChain - Retrieving mining instruction at height 53 from vBitcoin daemon at http://localhost:18332...<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Successfully retrieved the mining instruction!<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Submitting endorsement VBK transaction...<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Successfully added the VBK transaction: D8A0D80B1C286B1C5B04CE6894C6BBDA0CFF23FA288D72F60DF7A48A58B66005!<br />
2020-06-03 18:47:16 pop-tasks- INFO ApmTaskService - [vbtc85541518] Waiting for the transaction to be included in VeriBlock block...<br />
</pre><br />
=== Verify PoP Transaction on VBK TestNet Explorer ===<br />
Transactions can be seen and verified at https://testnet.explore.veriblock.org/<br />
<br />
https://testnet.explore.veriblock.org/tx/D8A0D80B1C286B1C5B04CE6894C6BBDA0CFF23FA288D72F60DF7A48A58B66005<br />
<br />
The transaction information should match your payoutAddress you selected earlier:<br />
<br />
{| class="wikitable" <br />
|-<br />
! Altchain Data<br />
! Example<br />
|-<br />
| Altchain<br />
| vBTC<br />
|-<br />
| Identifier<br />
| 3860170<br />
|-<br />
| Endorsed Block Hash<br />
| 000000076CF8E04E16DD28FAA5831041B56CD1AF46B80959586CD754C7091E2E<br />
|-<br />
| Endorsed Block Height<br />
| 53<br />
|-<br />
| Reward Address<br />
| tb1qdvkkx4r824wcgu92acwn88wll929jxkwey5gsd<br />
|-<br />
| First Previous Keystone<br />
| 00000000142988A6E06E52DE0D57420D590E602D9E908731FD6AF7B09C2089B5<br />
|-<br />
| Second Previous Keystone<br />
| 000000071279A847E7C1E633651CC54FDCCAD492E13052562DAF7E71714D5B7D<br />
|}<br />
<br />
=== View PoP tx from start to finish ===<br />
<br />
<pre><br />
> getoperation vbtc366214b4<br />
...<br />
Operation workflow:<br />
DONE 1. START Created APM operation id: vbtc366214b4<br />
DONE 2. RETRIEVE_MINING_INSTRUCTION Endorsed vBitcoin block height: 95<br />
DONE 3. SUBMIT_ENDORSEMENT_TRANSACTION tVBK endorsement transaction id: 43B8A911BCCF8B5D20E8D6374B22555CD1A1DD22B356461EDBDD23581900C660 (fee: 0.00248000)<br />
DONE 4. CONFIRM_ENDORSEMENT_TRANSACTION<br />
DONE 5. DETERMINE_BLOCK_OF_PROOF tVBK Block of Proof: 0000000005E4E0F3A62A5FCD7852BE4EDBAC033E836B07A8 @ 583257<br />
DONE 6. PROVE_ENDORSEMENT_TRANSACTION Merkle path has been verified<br />
DONE 7. WAIT_FOR_KEYSTONE_OF_PROOF tVBK Keystone of Proof: 000000001A1EFAB5F9890DD4182D57DF53519F5BD8676E45<br />
DONE 8. GET_VBK_PUBLICATIONS Retrieved 14 VTBs<br />
DONE 9. SUBMIT_POP_TRANSACTION VTBs submitted to vBitcoin! vBitcoin PoP TxId: 0a3fcf3d4db23eee84c922dcd535b949ba9bb0bbf353012f8ca77128287d8640<br />
DONE 10. WAIT_FOR_PAYOUT_BLOCK Payout detected in vBitcoin block 145 to vBitcoin address tb1qps3s9t9kz9atl6m666t57ehzy849la08wshahy!<br />
DONE 11. COMPLETED Paid amount: 47.20500000<br />
</pre><br />
<br />
== How To PoW Mine vBTC ==<br />
<br />
One can proof-of-work mine via the stratum pool.<br />
<br />
There is a stratum implementation and running pool.<br />
<br />
Note: This pool is setup for '''CPU''' mining only, and as such, difficulty of shares is too low for GPU or ASIC mining.<br />
<br />
===CPU Miner Binaries:===<br />
<br />
Linux: https://mirror1.veriblock.org/btcsq-minerd<br />
<br />
Windows: https://mirror1.veriblock.org/btcsq-minerd.exe<br />
<br />
===CPU Miner Start String Examples:===<br />
<br />
Linux: '''./btcsq-minerd -o 'stratum+tcp://testnet.pool.vbtc.veriblock.org:3333' -u <legacy_address> -p x -a sha256d'''<br />
<br />
Windows: '''btcsq-minerd.exe -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x -a sha256d'''<br />
<br />
To use this pool you will need to generate a legacy address using the command: '''vbitcoin-cli getnewaddress "mining" legacy'''<br />
<br />
Pool: https://testnet.pool.vbtc.veriblock.org/<br />
<br />
Detailed instructions: https://github.com/VeriBlock/vbk-ri-stratum-pool<br />
<br />
== How to upgrade ==<br />
<br />
If you are already pop mining vBTC, then upgrading is relatively easy.<br />
<br />
Get latest package. This will have 3 separate applications:<br />
* APM<br />
* NodeCore<br />
* vBTC daemon<br />
<br />
Each part can be upgraded as needed. For example you may only want to upgrade to the new APM, and not change NC or vBTC.<br />
<br />
=== Upgrade APM ===<br />
<br />
# Shut down old APM<br />
# Copy these files to new APM /bin folder:<br />
## application.conf<br />
## vbk-testnet.wallet --> this has your tVBK for sending altchain pop transactions<br />
# Start new APM<br />
<br />
=== Upgrade vBTC Daemon ===<br />
<br />
# Shut down old vBTC<br />
# Start new vBTC<br />
<br />
Note: The new vBTC should have the same vbitcoin.conf and blockchain as before, therefore no need to update the conf or blockchain.<br />
<br />
Note: It may take some time to resync the network. (There are known issues to optimize this).<br />
<br />
== Appendix ==<br />
<br />
=== Helpful Links ===<br />
<br />
* Github repos<br />
** vBTC - https://github.com/VeriBlock/vbk-ri-btc<br />
** C++ altchain library - https://github.com/VeriBlock/alt-integration-cpp<br />
** APM - https://github.com/VeriBlock/nodecore/tree/master/altchain-pop-miner<br />
* How to run APM - [[Altchain_PoP_Miner]]<br />
* Explorers<br />
** vBTC explorer - https://testnet.explore.vbtc.veriblock.org<br />
** VBK TestNet explorer - https://testnet.explore.veriblock.org/altchain-details/3860170<br />
* Background Information<br />
** https://wiki.veriblock.org/index.php/Altchain_PoP_Lifecycle<br />
** https://wiki.veriblock.org/index.php/VeriBlock_and_Proof-of-Proof_FAQ<br />
** https://wiki.veriblock.org/index.php/How_VeriBlock_PoP_BFI_Protects_Altchains<br />
** TODO: [[HowTo_Mine_vBTC]], [[Join_vBTC_Testnet]]</div>Leonardhttps://wiki.veriblock.org/index.php?title=HowTo_run_AlphaNet&diff=3275HowTo run AlphaNet2021-08-09T07:13:02Z<p>Leonard: /* Bootstrapping with current Bitcoin testnet block */</p>
<hr />
<div>See: [[AlphaNet]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
When developing, it is helpful to run a local node with low difficulty and fast sync time. The AlphaNet allows this.<br />
<br />
AlphaNet is separate from TestNet or MainNet... nodes do not talk across different networks, and coins cannot be sent from one network to the other. Alpha coins are intended for local development purposes.<br />
<br />
AlphaNet uses port 7502 and 10502<br />
<br />
This article assumes familiarity with NodeCore, including: [[NodeCore_QuickStart]] (has download instructions), [[HowTo_run_NodeCore]], [[NodeCore_Networking]]<br />
<br />
== How to run alpha locally ==<br />
<br />
=== Start NodeCore ===<br />
<br />
Set nodecore.properties:<br />
<br />
<pre><br />
#NodeCore Configuration<br />
#set network to alpha and do not pull any bootstrap nodes<br />
network=alpha<br />
peer.bootstrap.enabled=false<br />
<br />
#Allow a CPU pool so that we can mine and get new blocks<br />
pool.stats.bind.address=0.0.0.0<br />
ucp.mining.bind.address=0.0.0.0<br />
</pre><br />
<br />
If you wanted to set up a network of multiple nodes in alpha, you can still explicitly add nodes:<br />
<br />
<pre><br />
peer.external.hosts.alpha=<ip_of_node>\:7502<br />
</pre><br />
<br />
Have just these 3 files in the bin folder (delete any previous "alpha" folder if it existed)<br />
* nodecore<br />
* nodecore.bat<br />
* nodecore.properties<br />
<br />
Run NodeCore<br />
<br />
This should create an "bin\alpha" folder (instead of a bin\testnet or bin\mainnet folder)<br />
<br />
=== Connect via the NC_CLI ===<br />
<br />
Alpha runs on port '''10502''' (instead of 10501 or 10500)<br />
<br />
So connect to a local alpha instance via:<br />
<br />
<pre><br />
connect 127.0.0.1:10502<br />
</pre><br />
<br />
Run getstateinfo<br />
<br />
<pre><br />
"network_version": "Alpha",<br />
</pre><br />
<br />
=== Run a CPU miner to get coins ===<br />
<br />
In the NC_CLI, start a CPU pool<br />
<br />
<pre><br />
#Allow a CPU pool<br />
startpool CPU<br />
</pre><br />
<br />
Run the PoW CPU Miner (part of the nodecore suite). See: [[HowTo_run_PoW_CPU_Miner]]. This will require 3 inputs:<br />
<br />
* Number of threads --> hit [ENTER] to accept default<br />
* Address/Port --> hit [ENTER] to accept default of connecting to local host<br />
* Address --> use any address, such as the result of getinfo in the NC_CLI<br />
<br />
NOTE: If for some reason the CPU Miner gets stuck (block height is not increasing), then restart the CPU Miner.<br />
<br />
=== Bootstrapping with current Bitcoin testnet block ===<br />
<br />
To change out the starting bitcoin testnet block, get the values from the VeriBlock PoP miner using '''getlastbitcoinblock'''<br />
<br />
Output:<br />
<pre><br />
> getlastbitcoinblock<br />
Block hash: 000000001fd874b858bf940102e1a8816b105b5eb30685ba1ded235117e16848<br />
Block height: 1576454<br />
Block header: 0000002037D955FA58D1E487CB3979CD0109185D292B44D4DF319A7277443408000000009C67028FA173C9EE0E4461E611A764252E3D474390747EC444B66322DCF31589295B695DFFFF001DBD329854<br />
INFO: (2019-08-30 13:27:20) [V200] Success<br />
000000001fd874b858bf940102e1a8816b105b5eb30685ba1ded235117e16848 @ 1576454: 0000002037D955FA58D1E487CB3979CD0109185D292B44D4DF319A7277443408000000009C67028FA173C9EE0E4461E611A764252E3D474390747EC444B66322DCF31589295B695DFFFF001DBD329854<br />
</pre><br />
Use the following script with the hash of the latest bitcoin testnet block:<br />
<pre><br />
output=( $( curl -s https://testnet.blockchain.info/rawblock/$1 | jq -r '.time, .bits, .mrkl_root, .ver, .nonce, .prev_block, .height' ) )<br />
echo "bitcoin.configured=true"<br />
echo "initial.bitcoin.timestamp=${output[0]}"<br />
echo "initial.bitcoin.difficulty=${output[1]}"<br />
echo "initial.bitcoin.merkle=${output[2]}"<br />
echo "initial.bitcoin.version=${output[3]}"<br />
echo "initial.bitcoin.nonce=${output[4]}"<br />
echo "initial.bitcoin.previous=${output[5]}"<br />
echo "initial.bitcoin.height=${output[6]}"<br />
</pre><br />
Usage: <code>./script 000000001fd874b858bf940102e1a8816b105b5eb30685ba1ded235117e16848</code><br />
<br />
Output:<br />
<pre><br />
bitcoin.configured=true<br />
initial.bitcoin.timestamp=1567185705<br />
initial.bitcoin.difficulty=486604799<br />
initial.bitcoin.merkle=8915f3dc2263b644c47e749043473d2e2564a711e661440eeec973a18f02679c<br />
initial.bitcoin.version=536870912<br />
initial.bitcoin.nonce=1419260605<br />
initial.bitcoin.previous=0000000008344477729a31dfd4442b295d180901cd7939cb87e4d158fa55d937<br />
initial.bitcoin.height=1576454<br />
</pre><br />
Add the above inside '''nodecore.properties''' and restart NodeCore, it also may require that you remove the '''alpha''' directory from your data directory and start a new AlphaNet chain.<br />
<br />
== End Result ==<br />
<br />
If everything is successful, the following will all be running locally:<br />
<br />
# NodeCore is running.<br />
## Block height is increasing.<br />
## A folder "bin\alpha" has been created<br />
# NC_CLI is running, and run getinfo to see latest block and balance. Run any command from the [[NodeCore_CommandLine]]<br />
# PoW CPU miner is running, submitting shares</div>Leonardhttps://wiki.veriblock.org/index.php?title=HowTo_run_AlphaNet&diff=3274HowTo run AlphaNet2021-08-09T07:12:49Z<p>Leonard: /* Bootstrapping with current Bitcoin testnet block */</p>
<hr />
<div>See: [[AlphaNet]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
When developing, it is helpful to run a local node with low difficulty and fast sync time. The AlphaNet allows this.<br />
<br />
AlphaNet is separate from TestNet or MainNet... nodes do not talk across different networks, and coins cannot be sent from one network to the other. Alpha coins are intended for local development purposes.<br />
<br />
AlphaNet uses port 7502 and 10502<br />
<br />
This article assumes familiarity with NodeCore, including: [[NodeCore_QuickStart]] (has download instructions), [[HowTo_run_NodeCore]], [[NodeCore_Networking]]<br />
<br />
== How to run alpha locally ==<br />
<br />
=== Start NodeCore ===<br />
<br />
Set nodecore.properties:<br />
<br />
<pre><br />
#NodeCore Configuration<br />
#set network to alpha and do not pull any bootstrap nodes<br />
network=alpha<br />
peer.bootstrap.enabled=false<br />
<br />
#Allow a CPU pool so that we can mine and get new blocks<br />
pool.stats.bind.address=0.0.0.0<br />
ucp.mining.bind.address=0.0.0.0<br />
</pre><br />
<br />
If you wanted to set up a network of multiple nodes in alpha, you can still explicitly add nodes:<br />
<br />
<pre><br />
peer.external.hosts.alpha=<ip_of_node>\:7502<br />
</pre><br />
<br />
Have just these 3 files in the bin folder (delete any previous "alpha" folder if it existed)<br />
* nodecore<br />
* nodecore.bat<br />
* nodecore.properties<br />
<br />
Run NodeCore<br />
<br />
This should create an "bin\alpha" folder (instead of a bin\testnet or bin\mainnet folder)<br />
<br />
=== Connect via the NC_CLI ===<br />
<br />
Alpha runs on port '''10502''' (instead of 10501 or 10500)<br />
<br />
So connect to a local alpha instance via:<br />
<br />
<pre><br />
connect 127.0.0.1:10502<br />
</pre><br />
<br />
Run getstateinfo<br />
<br />
<pre><br />
"network_version": "Alpha",<br />
</pre><br />
<br />
=== Run a CPU miner to get coins ===<br />
<br />
In the NC_CLI, start a CPU pool<br />
<br />
<pre><br />
#Allow a CPU pool<br />
startpool CPU<br />
</pre><br />
<br />
Run the PoW CPU Miner (part of the nodecore suite). See: [[HowTo_run_PoW_CPU_Miner]]. This will require 3 inputs:<br />
<br />
* Number of threads --> hit [ENTER] to accept default<br />
* Address/Port --> hit [ENTER] to accept default of connecting to local host<br />
* Address --> use any address, such as the result of getinfo in the NC_CLI<br />
<br />
NOTE: If for some reason the CPU Miner gets stuck (block height is not increasing), then restart the CPU Miner.<br />
<br />
=== Bootstrapping with current Bitcoin testnet block ===<br />
<br />
To change out the starting bitcoin testnet block, get the values from the VeriBlock PoP miner using '''getlastbitcoinblock'''<br />
<br />
Output:<br />
<pre><br />
> showlatestbitcoinblock<br />
Block hash: 000000001fd874b858bf940102e1a8816b105b5eb30685ba1ded235117e16848<br />
Block height: 1576454<br />
Block header: 0000002037D955FA58D1E487CB3979CD0109185D292B44D4DF319A7277443408000000009C67028FA173C9EE0E4461E611A764252E3D474390747EC444B66322DCF31589295B695DFFFF001DBD329854<br />
INFO: (2019-08-30 13:27:20) [V200] Success<br />
000000001fd874b858bf940102e1a8816b105b5eb30685ba1ded235117e16848 @ 1576454: 0000002037D955FA58D1E487CB3979CD0109185D292B44D4DF319A7277443408000000009C67028FA173C9EE0E4461E611A764252E3D474390747EC444B66322DCF31589295B695DFFFF001DBD329854<br />
</pre><br />
Use the following script with the hash of the latest bitcoin testnet block:<br />
<pre><br />
output=( $( curl -s https://testnet.blockchain.info/rawblock/$1 | jq -r '.time, .bits, .mrkl_root, .ver, .nonce, .prev_block, .height' ) )<br />
echo "bitcoin.configured=true"<br />
echo "initial.bitcoin.timestamp=${output[0]}"<br />
echo "initial.bitcoin.difficulty=${output[1]}"<br />
echo "initial.bitcoin.merkle=${output[2]}"<br />
echo "initial.bitcoin.version=${output[3]}"<br />
echo "initial.bitcoin.nonce=${output[4]}"<br />
echo "initial.bitcoin.previous=${output[5]}"<br />
echo "initial.bitcoin.height=${output[6]}"<br />
</pre><br />
Usage: <code>./script 000000001fd874b858bf940102e1a8816b105b5eb30685ba1ded235117e16848</code><br />
<br />
Output:<br />
<pre><br />
bitcoin.configured=true<br />
initial.bitcoin.timestamp=1567185705<br />
initial.bitcoin.difficulty=486604799<br />
initial.bitcoin.merkle=8915f3dc2263b644c47e749043473d2e2564a711e661440eeec973a18f02679c<br />
initial.bitcoin.version=536870912<br />
initial.bitcoin.nonce=1419260605<br />
initial.bitcoin.previous=0000000008344477729a31dfd4442b295d180901cd7939cb87e4d158fa55d937<br />
initial.bitcoin.height=1576454<br />
</pre><br />
Add the above inside '''nodecore.properties''' and restart NodeCore, it also may require that you remove the '''alpha''' directory from your data directory and start a new AlphaNet chain.<br />
<br />
== End Result ==<br />
<br />
If everything is successful, the following will all be running locally:<br />
<br />
# NodeCore is running.<br />
## Block height is increasing.<br />
## A folder "bin\alpha" has been created<br />
# NC_CLI is running, and run getinfo to see latest block and balance. Run any command from the [[NodeCore_CommandLine]]<br />
# PoW CPU miner is running, submitting shares</div>Leonardhttps://wiki.veriblock.org/index.php?title=HowTo_PoP_PHL&diff=3123HowTo PoP PHL2020-12-10T17:48:08Z<p>Leonard: /* Binaries */</p>
<hr />
<div>See: [[HowTo_PoP_vBTC]], [[Altchain_PoP_Miner]]<br />
<br />
'''PHL is currently in the Beta release phase, so please expect some bugs.'''<br />
<br />
__toc__<br />
<br />
== Overview ==<br />
<br />
Placeholders is the first coin to implement VeriBlock's Proof of Proof technology and allow users to earn PHL while spending VBK to secure the Placeholders blockchain.<br><br />
Note: Currently in the testnet phase, so all coins are for testing purposes only and have no value, prior to mainnet implementation.<br />
<br />
== Windows Quick Start ==<br />
<br />
*1. Download PHL Daemon and APM Package -> https://mirror.veriblock.org/Placeholders-PoP-testnet-ab30caf.zip<br />
*2. Start PHL Daemon by double clicking '''run.bat''' within the Placeholders-develop-<version> folder.<br />
*3. Wait for Sync.<br />
*4. Generate a new PHL address.<br />
*5. Copy PHL testnet address into the '''application.conf''' file for payout rewards inside the altchain-pop-miner-<version->/bin/ folder..<br />
*6. Start APM by running '''altchain-pop-miner.bat'''<br />
*7. Use VeriBlock testnet faucet at https://vbk.bitspill.net to fund your PoP miner wallet.<br />
<br />
With the default configuration files provided, PoP mining is auto-enabled on all rounds and rewards should appear after 50 confirmations.<br />
<br />
== Explorer ==<br />
https://testnet.explore.phl.veriblock.org/<br />
<br />
== Binaries ==<br />
Windows:<br />
<br />
https://mirror.veriblock.org/Placeholders-develop-ab30caf-win64-qt.zip<br />
<br />
Linux:<br />
<br />
https://mirror.veriblock.org/Placeholders-develop-ab30caf-linux-x64.tar.gz<br />
<br />
== GitHub Repository ==<br />
<br />
https://github.com/VeriBlock/pop-phl</div>Leonardhttps://wiki.veriblock.org/index.php?title=HowTo_run_and_connect_to_PoW_Miner_pool&diff=3004HowTo run and connect to PoW Miner pool2020-09-21T19:48:18Z<p>Leonard: /* View pool summary */</p>
<hr />
<div>See: [[Main_Page]], [[NodeCore_Networking]]<br />
<br />
See also: [[List_of_mining_pools_testnet]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
A brand new pool will start at Current Round = 1, as the Current Round is based on number of blocks won... not to be confused with the current blockchain height<br />
<br />
* Current Round: X - the blocks that have been won by this pool. This increments each time the pool wins a new block.<br />
* Pool Mining Block: Y - the current block the pool is working on<br />
* Blockchain height: Z - the height of the blockchain<br />
<br />
Once a round is won, then the pool payouts the reward from the block proportionally to all the shares submitted.<br />
<br />
For example, if you mine on a pool for 10 minutes, and it wins a block (block time is targeted for every 30 seconds, other pools may win other blocks in the meantime), and you contributed 10% of the shares to that round, then you will receive approximately 10% of the block reward (less pool fees).<br />
<br />
Technical note - The pool data is stored in the file: "\testnet\poolshares-normal.txt". Is that is deleted, then the html page will start anew.<br />
<br />
== Setup a Pool ==<br />
<br />
In order to run a pool that is compatible with the vProgPoW fork (occurring on MainNet block 1512000), pool operators must use the following settings for the vProgPoW pool to correctly bind the stratum server to be reachable from any remote host on port 8502:<br />
<pre><br />
stratum.mining.bind.address=0.0.0.0<br />
stratum.mining.bind.port=8502<br />
</pre><br />
Modify the nodecore.properties file:<br />
<br />
<pre><br />
#Allow the pool statistics page to be reachable from any remote host<br />
pool.stats.bind.address=0.0.0.0<br />
<br />
#Allow the UCP pool server to be reachable from any remote host (Can remove after vProgPoW fork)<br />
ucp.mining.bind.address=0.0.0.0<br />
<br />
#Allow the Stratum pool server to be reachable from any remote host<br />
stratum.mining.bind.address=0.0.0.0<br />
<br />
#Bind the Stratum pool server to port 8502<br />
stratum.mining.bind.port=8502<br />
<br />
#set the pool fee<br />
# Decimal value between 0 and 1, representing a percentage, i.e. 0.01 = 1%<br />
pool.operator.fee=0.01<br />
<br />
#set the address the pool fees are paid out to. <br />
# NOTE: This should be different than the pool address that appears on the website.<br />
pool.operator.address=VHPQB7kUNtkKFLdx3CyB6rAyHAhdAS<br />
<br />
#on nodecore start, automatically run the pool<br />
pool.standard.autostart=GPU<br />
<br />
#OPTIONAL - inject custom html into pool<br />
pool.custom.html=pool_html_file.txt<br />
<br />
#OPTIONAL - specify some miner comment that will show up the blockchain, such as your pool name or url<br />
pool.operator.comment=myPool<br />
<br />
</pre><br />
<br />
# Run an instance of NodeCore<br />
# In the [[NodeCore_CommandLine]], run startpool, either for CPU or GPU. Note that one instance of nodecore supports only 1 pool. If you want both a CPU and GPU, then you'll need to run two instances of NodeCore, one for each.<br />
## Run 'startpool CPU'<br />
## Run 'startpool GPU'<br />
# Make note of the public IP (pool miners will connect to this)<br />
# Open firewall ports for 8500/tcp, and 8501/tcp (only prior to vProgPoW hardfork), and 8502/tcp such that other clients can connect<br />
<br />
Opening firewall ports will vary per OS and version. One set of commands is:<br />
<pre><br />
firewall-cmd --permanent --add-port=8500/tcp<br />
firewall-cmd --permanent --add-port=8501/tcp<br />
firewall-cmd --permanent --add-port=8502/tcp<br />
firewall-cmd --reload<br />
</pre><br />
<br />
<br />
Note the Pool Address is created by the pool service, and is separate from the 'pool.operator.address' that the fee is paid to.<br />
<br />
[[File:pool_settings_v2.png|600px]]<br />
<br />
=== Choose a Pool Type ===<br />
'''NOTE: After the vProgPoW fork, only the GPU pool will be viable (until the economically gated ASIC transition occurs, at which point GPU and [future-feature] ASIC pools will be viable).<br />
<br />
A pool can be either CPU, GPU, or FPGA (CPU and FPGA pools will be deprecated at the vProgPoW fork height). Simply pass in the type to the command line:<br />
<br />
<pre><br />
#CPU<br />
startpool CPU<br />
<br />
#GPU (Use only this one after vProgPoW hardfork)<br />
startpool GPU<br />
</pre><br />
<br />
=== Set the auto-restart option ===<br />
<br />
For better pool stability, set nodecore.properties to auto-restart the pool. When nodecore starts (or restarts), it will automatically start the pool without needing to run the NC_CLI startpool command.<br />
<br />
<pre><br />
pool.standard.autostart = GPU<br />
</pre><br />
<br />
For a solo pool, just specify the address:<br />
<pre><br />
pool.solo.autostart=V5QCsNjm8nzqWi1ymHtF3GWPEDsd2g<br />
</pre><br />
<br />
=== Set custom html for your pool ===<br />
This is optional, but if you wanted to add custom html to the top of your pool's web page, such as your website or a contact, then set the nodecore.properties file:<br />
<br />
<pre><br />
pool.custom.html=pool_html_file.txt<br />
</pre><br />
<br />
"pool_html_file.txt" is relative to the bin folder.<br />
<br />
This takes the contents of the file and injects it directly into the top of the pool html page as an html snippet.<br />
<br />
See: [[HowTo_run_and_connect_to_PoW_Miner_pool#How_to_inject_custom_HTML_into_the_pool]]<br />
<br />
=== Update memory ===<br />
<br />
Modify nodecore or nodecore.bat to allow Java to use more memory instead of the default 6. Consider 16g, 24g, or 32g depending on your pool size.<br />
<br />
<pre><br />
# Add default JVM options here. You can also use JAVA_OPTS and NODECORE_OPTS to pass JVM options to this script.<br />
DEFAULT_JVM_OPTS='"-XX:+HeapDumpOnOutOfMemoryError" "-Dio.netty.noUnsafe=true" "-Xmx16g"'<br />
</pre><br />
<br />
=== Configurations ===<br />
<br />
* The log level can be changed: [[HowTo_run_NodeCore#How_to_set_NodeCore_log_level]]. A high level (default) provides more detail in case something went wrong, but takes more resources.<br />
* The ports can be changed in [[Nodecore.properties]]<br />
** stratum.mining.bind.port=8502<br />
** pool.stats.bind.port=8500<br />
<br />
Starting in NodeCore 0.4.6:<br />
<br />
* pool.cycle.time<br />
<br />
<pre><br />
Added nodecore properties for pool operators: "pool.cycle.time". It is an integer representing the number of milliseconds between recalculation of pool mining jobs. The default value is 3000 (3 seconds), which differs from prior versions of NodeCore that were using a fixed 500ms schedule.<br />
</pre><br />
<br />
=== Run in a loop ===<br />
<br />
If for whatever reason NodeCore crashes, you'll want to run it in a loop that auto-restarts for best uptime. Consider a script like so:<br />
<br />
Windows : "nodecore-loop.bat"<br />
<pre><br />
:execute<br />
call nodecore.bat<br />
<br />
echo ----------------------------------------------------------------------<br />
echo ^| NodeCore is restarting in 30 seconds! ^|<br />
echo ^| Press CTRL+C to cancel this or ENTER to proceed immediately... ^|<br />
echo ----------------------------------------------------------------------<br />
timeout /t 30 > NUL<br />
echo Restarting NodeCore...<br />
goto execute<br />
</pre><br />
<br />
Linux : "nodecore-loop"<br />
<pre><br />
while true<br />
do<br />
./nodecore<br />
<br />
echo ----------------------------------------------------------------------<br />
echo ": NodeCore is restarting in 30 seconds! :"<br />
echo ": Press CTRL+C to cancel this or ENTER to proceed immediately... :"<br />
echo ----------------------------------------------------------------------<br />
read -t 30<br />
echo Restarting NodeCore...<br />
done<br />
<br />
</pre><br />
<br />
=== What success looks like ===<br />
<br />
There will be two addresses: (1) the pool address (on the pool html page), (2) the pool owner's address that any fees are sent to.<br />
<br />
A pool wins a block, and then sends many transactions to all the contributing workers:<br />
<br />
# The address from the pool html page should exist in the block explorer<br />
# This usually has a very small balance, such as between 0 and 1 block reward<br />
# Once a block has been won, it has transactions (to send the reward to all the contributing workers)<br />
<br />
[[File:Pool_success_2.png|600px]]<br />
<br />
The file structure in the testnet folder will look something like so:<br />
<br />
* 3 groups of files for nodecore.dat, pool.dat, and wallet.dat<br />
<br />
[[File:Pool_success_3.png|400px]]<br />
<br />
=== Checklist ===<br />
<br />
* Html page shows up, per success screenshots above<br />
* For a public pool, reach out on Telegram/Discord to make sure it's listed here: [[List_of_mining_pools_testnet]]<br />
* Join the pool community on Discord: https://discord.gg/phazWBE<br />
* Some pool monitoring. The pool exposes an API like so: http://<your_pool_url>:8500/api/summary. Set up your favorite http monitoring tool to alert you if your pool goes down<br />
* Auto-restart script (listed above). If for whatever reason your pool dies, you'll want NodeCore to instance restart<br />
* Some anti-DDOS protection. If you're a pool admin, reach out to the pool channels on discord<br />
<br />
== Connect to an Existing Pool ==<br />
<br />
To run the GPU miner, see instructions here: https://wiki.veriblock.org/index.php/HowTo_run_vProgPoW_GPU_Miner<br />
<br />
You can see pool mining statistics, including the number of shares you are submitting (based on the VeriBlock address you are mining to) by viewing the web page:<br />
<br />
http://<IP_Address>:8500<br />
<br />
== API ==<br />
<br />
===View a specific address===<br />
Not really an API, but will highlight address in the HTML page and show an address summary<br />
<br />
<pre><br />
http://testnet-pool-gpu.veriblock.org:8500?address=VEcTwuZfAmBABEFTguoYgyQVR55Job<br />
</pre><br />
<br />
<br />
[[File:pool_address_highlight.png|600px]]<br />
<br />
===View pool summary===<br />
<br />
Breaking change, as of 0.3.4:<br />
<br />
<pre><br />
http://testnet-pool-gpu.veriblock.org:8500/api/summary<br />
<br />
{<br />
"network": "TestNet",<br />
"poolType": "GPU",<br />
"poolAddress": "VJ2WZN7nB4AVDJZc2Sg1whwJLAUPNr",<br />
"fee": 0.0,<br />
"currentRoundNumber": 2,<br />
"miningBlockNumber": 48267,<br />
"lastBlockNumber": 48266,<br />
"lastBlockHash": "00000000000187D3269B861CA088C7C188D8617A74E89993",<br />
"recentRoundsIncluded": 1,<br />
"recentRoundsTotalShares": 183,<br />
"recentRoundsAverageShares": 183,<br />
"recentHashRate": 1209198484,<br />
"displayAddress": false,<br />
"recentRoundsSingleAddressShares": 0,<br />
"recentRoundsSingleAddressPercent": 0.0,<br />
"applicationVersion": "VeriBlock NodeCore v0.3.4",<br />
"nodeCoreStartTime": 1538408980,<br />
"timestamp": "Oct 1, 2018 6:01:33 PM"<br />
}<br />
</pre><br />
<br />
== Useful NC_CLI pool commands ==<br />
<br />
'''Get Information'''<br />
* getpoolinfo (see: [[NodeCore_CommandLine#getpoolinfo]] )<br />
* getstateinfo (see: [[NodeCore_CommandLine#getstateinfo]] )<br />
* getdiagnosticinfo (see: [[NodeCore_CommandLine#getdiagnosticinfo]] )<br />
<br />
'''Start and Stop the pool'''<br />
* startpool (see: [[NodeCore_CommandLine#startpool]] )<br />
* startsolopool (see: [[NodeCore_CommandLine#startsolopool]] )<br />
* stoppool (see: [[NodeCore_CommandLine#stoppool]] )<br />
* restartpoolwebserver --> restart just the web page without affecting NodeCore or miners (see: [[NodeCore_CommandLine#restartpoolwebserver]] )<br />
<br />
'''Security'''<br />
* listbannedminers (see: [[NodeCore_CommandLine#listbannedminers]] )<br />
* clearpoolbans (see: [[NodeCore_CommandLine#clearpoolbans]] )<br />
<br />
== FAQ ==<br />
<br />
=== Should I pool or solo mine? ===<br />
<br />
Joining a pool reduces the variance.<br />
<br />
If you join a pool, you are more likely to get a trickle of rewards because the pool has higher hashing rate, but splits among all the members. Pools will also have an operator fee, but that is negligible.<br />
<br />
* If you join a bigger pool (more hashes), then you are likely to get a more frequent trickle, but of smaller rewards because it's split among more people<br />
* If you join a smaller pool (less hashes), then you are likely to get less frequent rewards... but when (if) they come they'll be larger because it's split among less people<br />
<br />
If you solo mine, when (if) you do a get a reward then you get the whole thing. If you solo mine at 1/10000 of the total network hash, statistically within 10000 blocks you will win a block and get the whole reward.<br />
<br />
There is not a right or wrong answer to (1) Should I join a pool or solo mine, or (2) should I join a big pool or a small pool.<br />
<br />
=== How to inject custom HTML into the pool ===<br />
<br />
As of 0.3.11, NodeCore allows the ability to inject an HTML snippet into the pool html page.<br />
<br />
In the nodecore.properties file, set the 'pool.custom.html=your-html-file-name.html'. This file will be injected into the top of the pool.<br />
<br />
The pool html file's path is relative to the "bin" folder (so put the "your-html-file-name.html" file in "bin")<br />
<br />
This requires restarting the whole NodeCore instance to first take affect. But once the nodecore.prop file is set, the content will be auto-picked up by the pool with each page refresh.<br />
<br />
[[File:pool_html_inject.png|600px]]<br />
<br />
=== Can I set a miner comment for blocks my pool wins? ===<br />
<br />
Yes, as of 0.4.3<br />
<br />
In nodecore.properties, set:<br />
<br />
<pre><br />
pool.operator.comment=myPool<br />
</pre><br />
<br />
This will show up in the blockchain and be visible in the explorer (shows us as HEX and not ASCI):<br />
<br />
[[File:pool_miner_comment_1.png|600px]]<br />
<br />
== Troubleshooting ==<br />
<br />
===Cannot see the pool web page===<br />
<br />
Check for http (as in '''http'''://<IP_Address>:8500), not https<br />
<br />
Ensure that the nodecore.properties file has been updated per above steps (and NodeCore was restarted).<br />
<br />
Ensure that firewall ports are open for 8500/tcp and 8501/tcp<br />
<br />
===I start the pool but another computer can not connect its IP ===<br />
<br />
Set this option in your nodecore.properties file (See: [[Nodecore.properties]])<br />
<pre><br />
ucp.mining.bind.address=0.0.0.0<br />
</pre><br />
<br />
And restart NodeCore and the pool software<br />
<br />
=== Error: unable to start pool Starting pool failed: the port 8500 is already bound on 127.0.0.1! ===<br />
<br />
Ensure that the nodecore.properties file is updated per above, and restart nodecore.<br />
<br />
Related:<br />
<br />
<pre><br />
Unable to start HTTP server!<br />
java.net.BindException: Address already in use: bind<br />
</pre><br />
<br />
Ensure that nothing is binding on port 8500<br />
<br />
This could be:<br />
<br />
* A second instance of NodeCore<br />
* Another process that coincidentally used 8500<br />
* A web server configuration/redirect that somehow "locks up" port 8500<br />
<br />
To check for processes bound on port 8500:<br />
<br />
In Windows:<br />
* In an admin cmd window, run "netstat -a -b"<br />
* Check Resource Monitor<br />
<br />
In Linux:<br />
* Run "netstat -tulpn"<br />
<br />
=== Pool is stuck at round 1 ===<br />
<br />
Troubleshooting questions to check:<br />
* Is there a miner connecting to it? <br />
* If you run NC_CLI getinfo, does it show the latest block (i.e. does NodeCore appear to be updating)?<br />
<br />
=== Pool is stuck at block X ===<br />
<br />
This should not happen, but if it does... have the administrator restart nodecore on the server.<br />
<br />
=== Pool html page not showing up ===<br />
<br />
Run this NC_CLI command: <br />
<br />
<pre><br />
restartpoolwebserver<br />
</pre><br />
<br />
It only restarts the web page, it does not kick out miners.<br />
<br />
== General Troubleshooting tips ==<br />
<br />
Make sure that it works locally:<br />
* You can connect a miner on 127.0.0.1<br />
* You can view the html page at http://127.0.0.1:8500<br />
* You can connect NC_CLI on 127.0.0.1 and run getInfo and it shows the latest block<br />
<br />
Make your you're connecting to the right ports:<br />
<pre><br />
The website is on port 8500<br />
http://111.194.224.159:8500/<br />
<br />
The vProgPoW miner connects to port 8502<br />
111.194.224.159:8502<br />
</pre></div>Leonardhttps://wiki.veriblock.org/index.php?title=PoP_Miner_API&diff=2374PoP Miner API2019-12-11T19:52:56Z<p>Leonard: /* POST /api/quit */</p>
<hr />
<div><languages/><br />
<br />
<translate><br />
<br />
See: [[PoP_Miner_CommandLine]]<br />
<br />
__TOC__<br />
<br />
<!--T:1--><br />
== Introduction ==<br />
<br />
The VeriBlock PoP Mining software has an embedded HTTP API that makes available some basic functionality for third-party integrations. By default, this HTTP API is bound to 127.0.0.1:8600. Both the host address and port can be configured in the '''ncpop.properties''' file via the properties: ''http.api.address'' and ''http.api.port'', respectively. If running multiple miners on a single machine, each miner will need at least the port configured uniquely or it will be unable to start the embedded HTTP server.<br />
<br />
Any requests requiring a message body should be formatted as JSON, and conversely all responses will be formatted as JSON as well.<br />
<br />
<br />
NOTE: This requires 0.3.12-rc.5 of the PoP Miner CLI or higher.<br />
<br />
Sample client to call PoP API: https://github.com/VeriBlock/samples/tree/master/pop/pop-api-client/csharp/PoPClient<br />
<br />
<!--T:2--><br />
=== Setup the API ===<br />
<br />
# [OPTIONAL] In "ncpop.properties", configure the http.api.address and http.api.port. If not configured, by default these will be 127.0.0.1:8600<br />
# Start the PoP Miner. See: https://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner<br />
# Ensure the PoP Miner is ready to mine. If the PoP Miner cannot run the "mine" command, then the API will not run the "mine" command either.<br />
<br />
<!--T:2--><br />
== API Documentation ==<br />
<br />
<!--T:3--><br />
=== GET /api/config ===<br />
<br />
Lists the effective configuration values. Same as running '''listconfig''' from the command-line. The response will be formatted as a JSON object in which each property name represents the configuration name and the property value represents the configuration value.<br />
<br />
<!--T:4--><br />
==== Response ====<br />
<br />
<nowiki><br />
{<br />
"auto.mine.round1": "false",<br />
"pop.cron.schedule": "",<br />
"bitcoin.fee.max": "8000",<br />
"bitcoin.fee.perkb": "20000",<br />
"http.api.port": "8600",<br />
"bitcoin.minrelayfee.enabled": "false",<br />
"nodecore.rpc.password": "",<br />
"nodecore.rpc.ssl": "false",<br />
"nodecore.rpc.cert.chain.path": "",<br />
"http.api.address": "127.0.0.1",<br />
"bitcoin.network": "mainnet",<br />
"nodecore.rpc.host": "127.0.0.1",<br />
"pop.action.timeout": "90",<br />
"nodecore.rpc.port": "10501",<br />
"auto.mine.round4": "false",<br />
"auto.mine.round3": "false",<br />
"auto.mine.round2": "false"<br />
}</nowiki><br />
<br />
=== PUT /api/config ===<br />
<br />
Updates a single configuration value. Same as running '''setconfig''' from the command-line.<br />
<br />
==== Request ====<br />
<br />
Request properties:<br />
<br />
{| class="wikitable"<br />
! style="text-align:left;"| Property<br />
! style="text-align:left;"| Constraint<br />
! style="text-align:left;"| Data Type<br />
! style="text-align:left;"| Description<br />
|-<br />
|key<br />
|Required<br />
|String<br />
|Represents the name of a configuration property to set. Possible values are listed under GET /api/config.<br />
|-<br />
|value<br />
|Required<br />
|String<br />
|Represents the value to be set for a given configuration property. The value should be a string but must be convertible to the appropriate type for that configuration property. (E.g. "auto.mine.round1" must have a value of "true" or "false")<br />
|}<br />
<br />
<nowiki><br />
{<br />
"key": "auto.mine.round4",<br />
"value": "true"<br />
}</nowiki><br />
<br />
==== Response ====<br />
<br />
A successful request will return a 200 OK status code response with the following body:<br />
<nowiki><br />
[<br />
{}<br />
]</nowiki><br />
<br />
An unsuccessful action will return a 500 Server Error status code with some explanation for the failure in the body:<br />
<nowiki><br />
[<br />
{<br />
"details": [<br />
"Property 'pop.action.timeout' requires a positive integer value representing the number of seconds to wait before timing out."<br />
]<br />
}<br />
]</nowiki><br />
<br />
=== GET /api/miner ===<br />
<br />
Lists several miner properties, like the BTC address and amount, and VBK address.<br />
<br />
The very first time this is called, if the 'y' acknowledgement hasn't been accepted yet, it will also list the wallet seeds.<br />
<br />
NOTE: pass in '-skipAck' from the command line on startup to bypass the 'y' acknowledgement and therefore automate a fully new instance<br />
<br />
==== Response ====<br />
<br />
<pre><br />
{<br />
"minerAddress": "V9uC3ywS12qW4ESD9783eZXVU3voMo",<br />
"bitcoinAddress": "1CRb4b5u2AYdaoovgV9aQWV3kSt9x66rJq",<br />
"bitcoinBalance": 0,<br />
"walletSeed": [<br />
"1548958861",<br />
"cave",<br />
"conduct",<br />
"pottery"<br />
]<br />
}<br />
</pre><br />
<br />
=== GET /api/operations ===<br />
<br />
Lists the current running operations. Same as running '''listoperations''' from the command-line.<br />
<br />
==== Response ====<br />
<br />
<pre><br />
[<br />
{<br />
"operationId": "ce3c3e8b",<br />
"endorsedBlockNumber": 22,<br />
"state": "RUNNING",<br />
"action": "Waiting for transaction to be included in Bitcoin block",<br />
"message": ""<br />
},<br />
{<br />
"operationId": "736be6e4",<br />
"endorsedBlockNumber": 22,<br />
"state": "RUNNING",<br />
"action": "Waiting for transaction to be included in Bitcoin block",<br />
"message": ""<br />
}<br />
]<br />
</pre><br />
<br />
=== GET /api/operations/:id ===<br />
<br />
Gets the details of the specified operation. Same as running '''getoperation''' from the command-line. ''':id''' is to be substituted with an actual operation ID, e.g. GET /api/operations/797b3b15<br />
<br />
==== Response ====<br />
<br />
<nowiki>{<br />
"operationId": "ce3c3e8b",<br />
"status": "RUNNING",<br />
"currentAction": "WAIT",<br />
"miningInstruction": {<br />
"publicationData": [<br />
...<br />
],<br />
"endorsedBlockHeader": [<br />
...<br />
],<br />
"lastBitcoinBlock": [<br />
...<br />
],<br />
"minerAddress": [<br />
...<br />
],<br />
"endorsedBlockContextHeaders": [<br />
[<br />
...<br />
]<br />
]<br />
},<br />
"transaction": [<br />
...<br />
],<br />
"submittedTransactionId": "2897ba47dfed819879ebe3c5cdbb17e56fcc15d49e3cb42331d2c683b949aeb3",<br />
"merklePath": "",<br />
"detail": "",<br />
"popTransactionId": ""<br />
}</nowiki><br />
<br />
=== GET /api/lastbitcoinblock ===<br />
<br />
NOTE: Available in latest beta version: [[SegWit_PoP_Miner]]<br />
<br />
Gets the last known bitcoin block. Same as running '''showlastbitcoinblock''' from the command-line.<br />
<br />
==== Response ====<br />
<br />
<nowiki>{<br />
"header": "0000002005B2B5EF66F47670478DD6462E020E8F9A49BAD1B4C85F6E36C0D675000000007959A7784C5CF4AE38D3EF8ED8E14548FFE3E87A4E39A37AE233001B83B26C854D4E925DFFFF001DA60E33E8",<br />
"hash": "000000001DD4FAC03E838027EB10FCEB031F14AD0DE943B4F8AB82D0B31F3899",<br />
"height": 1580114<br />
}<br />
</nowiki><br />
<br />
=== POST /api/quit ===<br />
<br />
NOTE: Available in latest beta version: [[SegWit_PoP_Miner]]<br />
<br />
Sends a shutdown command to the pop miner. Same as running '''quit''' from the command-line.<br />
<br />
Since nodecore-pop-0.4.8-dev.24 it's possible to restart the PoP miner by adding the optional restart parameter: "/api/quit?restart=true"<br />
<br />
==== Response ====<br />
<br />
<nowiki>{<br />
"failed": false,<br />
"messages": []<br />
}<br />
</nowiki><br />
<br />
=== POST /api/mine ===<br />
<br />
Begins a new mining operation. Same as running '''mine''' from the command-line.<br />
<br />
==== Request ====<br />
<br />
Request properties:<br />
<br />
{| class="wikitable"<br />
! style="text-align:left;"| Property<br />
! style="text-align:left;"| Constraint<br />
! style="text-align:left;"| Data Type<br />
! style="text-align:left;"| Description<br />
|-<br />
|block<br />
|Optional<br />
|Integer<br />
|Represents a specific block number to endorse in this mining operation.<br />
|}<br />
<br />
<nowiki><br />
{<br />
"block": 32040<br />
}</nowiki><br />
<br />
By not specifying a block number the most recent VeriBlock block will be endorsed. An empty JSON object must be sent in the body:<br />
<br />
<nowiki>{}</nowiki><br />
<br />
==== Response ====<br />
<br />
If the miner is able to successfully begin a new operation a 200 OK response will be return with the following body:<br />
<br />
<nowiki>{<br />
"operationId": "c692ed9e",<br />
"failed": false,<br />
"messages": [<br />
{<br />
"code": "V201",<br />
"message": "Mining operation started",<br />
"details": [<br />
"To view details, run command: getoperation c692ed9e"<br />
],<br />
"error": false<br />
}<br />
]<br />
}</nowiki><br />
<br />
If the miner is unable to begin a 200 OK response will be returned, but will contain the following body:<br />
<br />
<nowiki>{<br />
"failed": true,<br />
"messages": [<br />
{<br />
"code": "V412",<br />
"message": "Miner is not ready",<br />
"details": [<br />
"Waiting for connection to NodeCore",<br />
"Bitcoin blockchain is not downloaded",<br />
"Bitcoin service is not ready"<br />
],<br />
"error": true<br />
}<br />
]<br />
}</nowiki><br />
<br />
</translate></div>Leonardhttps://wiki.veriblock.org/index.php?title=PoP_Miner_API&diff=2373PoP Miner API2019-12-11T19:52:33Z<p>Leonard: /* POST /api/quit */</p>
<hr />
<div><languages/><br />
<br />
<translate><br />
<br />
See: [[PoP_Miner_CommandLine]]<br />
<br />
__TOC__<br />
<br />
<!--T:1--><br />
== Introduction ==<br />
<br />
The VeriBlock PoP Mining software has an embedded HTTP API that makes available some basic functionality for third-party integrations. By default, this HTTP API is bound to 127.0.0.1:8600. Both the host address and port can be configured in the '''ncpop.properties''' file via the properties: ''http.api.address'' and ''http.api.port'', respectively. If running multiple miners on a single machine, each miner will need at least the port configured uniquely or it will be unable to start the embedded HTTP server.<br />
<br />
Any requests requiring a message body should be formatted as JSON, and conversely all responses will be formatted as JSON as well.<br />
<br />
<br />
NOTE: This requires 0.3.12-rc.5 of the PoP Miner CLI or higher.<br />
<br />
Sample client to call PoP API: https://github.com/VeriBlock/samples/tree/master/pop/pop-api-client/csharp/PoPClient<br />
<br />
<!--T:2--><br />
=== Setup the API ===<br />
<br />
# [OPTIONAL] In "ncpop.properties", configure the http.api.address and http.api.port. If not configured, by default these will be 127.0.0.1:8600<br />
# Start the PoP Miner. See: https://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner<br />
# Ensure the PoP Miner is ready to mine. If the PoP Miner cannot run the "mine" command, then the API will not run the "mine" command either.<br />
<br />
<!--T:2--><br />
== API Documentation ==<br />
<br />
<!--T:3--><br />
=== GET /api/config ===<br />
<br />
Lists the effective configuration values. Same as running '''listconfig''' from the command-line. The response will be formatted as a JSON object in which each property name represents the configuration name and the property value represents the configuration value.<br />
<br />
<!--T:4--><br />
==== Response ====<br />
<br />
<nowiki><br />
{<br />
"auto.mine.round1": "false",<br />
"pop.cron.schedule": "",<br />
"bitcoin.fee.max": "8000",<br />
"bitcoin.fee.perkb": "20000",<br />
"http.api.port": "8600",<br />
"bitcoin.minrelayfee.enabled": "false",<br />
"nodecore.rpc.password": "",<br />
"nodecore.rpc.ssl": "false",<br />
"nodecore.rpc.cert.chain.path": "",<br />
"http.api.address": "127.0.0.1",<br />
"bitcoin.network": "mainnet",<br />
"nodecore.rpc.host": "127.0.0.1",<br />
"pop.action.timeout": "90",<br />
"nodecore.rpc.port": "10501",<br />
"auto.mine.round4": "false",<br />
"auto.mine.round3": "false",<br />
"auto.mine.round2": "false"<br />
}</nowiki><br />
<br />
=== PUT /api/config ===<br />
<br />
Updates a single configuration value. Same as running '''setconfig''' from the command-line.<br />
<br />
==== Request ====<br />
<br />
Request properties:<br />
<br />
{| class="wikitable"<br />
! style="text-align:left;"| Property<br />
! style="text-align:left;"| Constraint<br />
! style="text-align:left;"| Data Type<br />
! style="text-align:left;"| Description<br />
|-<br />
|key<br />
|Required<br />
|String<br />
|Represents the name of a configuration property to set. Possible values are listed under GET /api/config.<br />
|-<br />
|value<br />
|Required<br />
|String<br />
|Represents the value to be set for a given configuration property. The value should be a string but must be convertible to the appropriate type for that configuration property. (E.g. "auto.mine.round1" must have a value of "true" or "false")<br />
|}<br />
<br />
<nowiki><br />
{<br />
"key": "auto.mine.round4",<br />
"value": "true"<br />
}</nowiki><br />
<br />
==== Response ====<br />
<br />
A successful request will return a 200 OK status code response with the following body:<br />
<nowiki><br />
[<br />
{}<br />
]</nowiki><br />
<br />
An unsuccessful action will return a 500 Server Error status code with some explanation for the failure in the body:<br />
<nowiki><br />
[<br />
{<br />
"details": [<br />
"Property 'pop.action.timeout' requires a positive integer value representing the number of seconds to wait before timing out."<br />
]<br />
}<br />
]</nowiki><br />
<br />
=== GET /api/miner ===<br />
<br />
Lists several miner properties, like the BTC address and amount, and VBK address.<br />
<br />
The very first time this is called, if the 'y' acknowledgement hasn't been accepted yet, it will also list the wallet seeds.<br />
<br />
NOTE: pass in '-skipAck' from the command line on startup to bypass the 'y' acknowledgement and therefore automate a fully new instance<br />
<br />
==== Response ====<br />
<br />
<pre><br />
{<br />
"minerAddress": "V9uC3ywS12qW4ESD9783eZXVU3voMo",<br />
"bitcoinAddress": "1CRb4b5u2AYdaoovgV9aQWV3kSt9x66rJq",<br />
"bitcoinBalance": 0,<br />
"walletSeed": [<br />
"1548958861",<br />
"cave",<br />
"conduct",<br />
"pottery"<br />
]<br />
}<br />
</pre><br />
<br />
=== GET /api/operations ===<br />
<br />
Lists the current running operations. Same as running '''listoperations''' from the command-line.<br />
<br />
==== Response ====<br />
<br />
<pre><br />
[<br />
{<br />
"operationId": "ce3c3e8b",<br />
"endorsedBlockNumber": 22,<br />
"state": "RUNNING",<br />
"action": "Waiting for transaction to be included in Bitcoin block",<br />
"message": ""<br />
},<br />
{<br />
"operationId": "736be6e4",<br />
"endorsedBlockNumber": 22,<br />
"state": "RUNNING",<br />
"action": "Waiting for transaction to be included in Bitcoin block",<br />
"message": ""<br />
}<br />
]<br />
</pre><br />
<br />
=== GET /api/operations/:id ===<br />
<br />
Gets the details of the specified operation. Same as running '''getoperation''' from the command-line. ''':id''' is to be substituted with an actual operation ID, e.g. GET /api/operations/797b3b15<br />
<br />
==== Response ====<br />
<br />
<nowiki>{<br />
"operationId": "ce3c3e8b",<br />
"status": "RUNNING",<br />
"currentAction": "WAIT",<br />
"miningInstruction": {<br />
"publicationData": [<br />
...<br />
],<br />
"endorsedBlockHeader": [<br />
...<br />
],<br />
"lastBitcoinBlock": [<br />
...<br />
],<br />
"minerAddress": [<br />
...<br />
],<br />
"endorsedBlockContextHeaders": [<br />
[<br />
...<br />
]<br />
]<br />
},<br />
"transaction": [<br />
...<br />
],<br />
"submittedTransactionId": "2897ba47dfed819879ebe3c5cdbb17e56fcc15d49e3cb42331d2c683b949aeb3",<br />
"merklePath": "",<br />
"detail": "",<br />
"popTransactionId": ""<br />
}</nowiki><br />
<br />
=== GET /api/lastbitcoinblock ===<br />
<br />
NOTE: Available in latest beta version: [[SegWit_PoP_Miner]]<br />
<br />
Gets the last known bitcoin block. Same as running '''showlastbitcoinblock''' from the command-line.<br />
<br />
==== Response ====<br />
<br />
<nowiki>{<br />
"header": "0000002005B2B5EF66F47670478DD6462E020E8F9A49BAD1B4C85F6E36C0D675000000007959A7784C5CF4AE38D3EF8ED8E14548FFE3E87A4E39A37AE233001B83B26C854D4E925DFFFF001DA60E33E8",<br />
"hash": "000000001DD4FAC03E838027EB10FCEB031F14AD0DE943B4F8AB82D0B31F3899",<br />
"height": 1580114<br />
}<br />
</nowiki><br />
<br />
=== POST /api/quit ===<br />
<br />
NOTE: Available in latest beta version: [[SegWit_PoP_Miner]]<br />
<br />
Sends a shutdown command to the pop miner. Same as running '''quit''' from the command-line.<br />
<br />
Since nodecore-pop-0.4.8-dev.24 it's possible to restart by adding the optional restart parameter: "/api/quit?restart=true"<br />
<br />
==== Response ====<br />
<br />
<nowiki>{<br />
"failed": false,<br />
"messages": []<br />
}<br />
</nowiki><br />
<br />
=== POST /api/mine ===<br />
<br />
Begins a new mining operation. Same as running '''mine''' from the command-line.<br />
<br />
==== Request ====<br />
<br />
Request properties:<br />
<br />
{| class="wikitable"<br />
! style="text-align:left;"| Property<br />
! style="text-align:left;"| Constraint<br />
! style="text-align:left;"| Data Type<br />
! style="text-align:left;"| Description<br />
|-<br />
|block<br />
|Optional<br />
|Integer<br />
|Represents a specific block number to endorse in this mining operation.<br />
|}<br />
<br />
<nowiki><br />
{<br />
"block": 32040<br />
}</nowiki><br />
<br />
By not specifying a block number the most recent VeriBlock block will be endorsed. An empty JSON object must be sent in the body:<br />
<br />
<nowiki>{}</nowiki><br />
<br />
==== Response ====<br />
<br />
If the miner is able to successfully begin a new operation a 200 OK response will be return with the following body:<br />
<br />
<nowiki>{<br />
"operationId": "c692ed9e",<br />
"failed": false,<br />
"messages": [<br />
{<br />
"code": "V201",<br />
"message": "Mining operation started",<br />
"details": [<br />
"To view details, run command: getoperation c692ed9e"<br />
],<br />
"error": false<br />
}<br />
]<br />
}</nowiki><br />
<br />
If the miner is unable to begin a 200 OK response will be returned, but will contain the following body:<br />
<br />
<nowiki>{<br />
"failed": true,<br />
"messages": [<br />
{<br />
"code": "V412",<br />
"message": "Miner is not ready",<br />
"details": [<br />
"Waiting for connection to NodeCore",<br />
"Bitcoin blockchain is not downloaded",<br />
"Bitcoin service is not ready"<br />
],<br />
"error": true<br />
}<br />
]<br />
}</nowiki><br />
<br />
</translate></div>Leonardhttps://wiki.veriblock.org/index.php?title=NodeCore_CommandLine&diff=2314NodeCore CommandLine2019-10-14T06:54:49Z<p>Leonard: Changed ports in examples to 10500 because this is the default and for conformity (10500 is already used in other examples)</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
The NodeCore CommandLine (i.e. NC_CLI) can access an instance of NodeCore.<br />
<br />
To run the NC_CLI, click on the nodecore-cli.bat (for windows) or nodecore-cli (for linux/mac).<br />
<br />
Initially NC_CLI is not connected, so run the connect command to connect to a local instance (this will require running NodeCore (see: [[HowTo_run_NodeCore]]):<br />
<br />
<pre><br />
connect 127.0.0.1:10500<br />
</pre><br />
<br />
One can also auto-connect by passing the host:port via the command line, for example in windows:<br />
<pre><br />
nodecore-cli.bat -connect 127.0.0.1:10500<br />
</pre><br />
<br />
=== Script with command file ===<br />
<br />
Given an input.txt file, this will read each line of the input file as a command:<br />
<br />
<pre><br />
connect 127.0.0.1:10500<br />
getinfo<br />
quit<br />
</pre><br />
<br />
LINUX<br />
<br />
<pre><br />
#using pipe | instead of input redirection <<br />
cat input.txt | ./nodecore-cli<br />
</pre><br />
<br />
WINDOWS<br />
<pre><br />
#from powershell<br />
./nodecore-cli < input.txt<br />
</pre><br />
<br />
=== Write output to file ===<br />
<br />
Add the -o <myFile> to write the output to a JSON file:<br />
<br />
<pre><br />
getinfo -o myData.json<br />
</pre><br />
<br />
== Commands: Not Connected ==<br />
<br />
When first started, the command line is not connected.<br />
<br />
=== clear ===<br />
<br />
Standard command, clears the screen<br />
<br />
=== connect ===<br />
<br />
Connects to an instance of nodecore via gRPC, on port 10500.<br />
<br />
If connected to a node, then many other commands are available.<br />
<br />
Syntax:<br />
<br />
<pre><br />
connect <peer><br />
</pre><br />
<br />
Examples:<br />
<br />
<pre><br />
#connect to an instance<br />
connect 77.46.106.162:10500<br />
<br />
</pre><br />
<br />
=== help ===<br />
<br />
Standard help command.<br />
<br />
Syntax:<br />
<br />
<pre><br />
help [command]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#returns list of available commands<br />
help<br />
<br />
#returns info for a specific command<br />
help connect<br />
<br />
</pre><br />
<br />
=== quit ===<br />
<br />
Standard quit command, exits the console<br />
<br />
== Commands: Connected ==<br />
<br />
Once the CLI is connected to a NodeCore instance, then there are many other commands that can be run.<br />
<br />
<br />
=== addallowed ===<br />
<br />
Adds an IP to the whitelist. See: [[NodeCore_Networking]]. See command [[NodeCore_CommandLine#clearallowed]]<br />
<br />
Syntax<br />
<pre><br />
addallowed <address><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
addallowed 33.33.33.33<br />
<br />
# This will update [[nodecore.properties]] file:<br />
# rpc.whitelist.addresses=33.33.33.33<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== addnode ===<br />
<br />
Add a peer node to the local configuration and connect. After adding a node, you should see it when running getpeerinfo,<br />
<br />
Syntax<br />
<pre><br />
addnode <peer><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
addnode 93.130.33.180:7501<br />
<br />
#output (also run getpeerinfo to see the node added)<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== backupwallet ===<br />
<br />
Backup the wallet of the NodeCore instance to the given folder. Copies multiple wallet-related files. Takes either a folder, or a specific file.<br />
<br />
See: [[NodeCore_CommandLine#importwallet]], [[NodeCore_File_Structure]]<br />
<br />
Syntax<br />
<pre><br />
backupwallet <targetLocation><br />
</pre><br />
<br />
Example: Folder<br />
<br />
<pre><br />
# input A<br />
backupwallet C:\Temp\myFolder<br />
<br />
#copies <br />
# wallet_backup.dat<br />
# walletconfig_backup.dat<br />
<br />
</pre><br />
<br />
Example: File<br />
<br />
<pre><br />
# input A<br />
backupwallet C:\Temp\myFolder\wallet.dat<br />
<br />
#copies <br />
# wallet.dat <br />
# walletconfig.dat<br />
<br />
</pre><br />
<br />
=== clearallowed ===<br />
<br />
Clears the list of allowed addresses. See command [[NodeCore_CommandLine#addallowed]].<br />
<br />
Syntax<br />
<pre><br />
clearallowed<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
clearallowed<br />
<br />
# This will update [[nodecore.properties]] file:<br />
# rpc.whitelist.addresses=<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== clearbannedpeers ===<br />
<br />
Removes banned peers<br />
<br />
<pre><br />
(VBK_CLI rpc (127.0.0.1:10500)) > clearbannedpeers<br />
clearbannedpeers<br />
{}<br />
<br />
200 success (47.27 ms)<br />
</pre><br />
<br />
=== clearpoolbans ===<br />
<br />
<pre><br />
clearpoolbans<br />
Clears the list of pool connections that have been banned<br />
</pre><br />
<br />
=== decryptwallet ===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
decryptwallet<br />
Decrypts the wallet loaded in NodeCore<br />
</pre><br />
<br />
=== disconnect ===<br />
<br />
Simply disconnects from the current NodeCore instance<br />
<br />
=== drainaddress ===<br />
<br />
<pre><br />
drainaddress <sourceAddress> <destinationAddress><br />
Fully drain all VBK from one address to another. The result of sourceAddress will be zero.<br />
</pre><br />
<br />
=== dumpprivatekey ===<br />
<br />
See also: importprivatekey<br />
<br />
<pre><br />
dumpprivatekey <address><br />
Gets private key for an address<br />
</pre><br />
<br />
=== encryptwallet ===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
encryptwallet<br />
Encrypts the wallet loaded in NodeCore with a passphrase<br />
</pre><br />
<br />
=== generatemultisigaddress ===<br />
<br />
<pre><br />
generatemultisigaddress <csvaddresses> <signatureThreshold><br />
(Generates a multisig address from the provided standard addresses)<br />
</pre><br />
<br />
=== getblocktemplate ===<br />
<br />
Returns a block template along with candidate transactions<br />
<br />
Syntax<br />
<pre><br />
getblocktemplate [mode] [capabilities]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
getblocktemplate<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"target": -7236281451971613363,<br />
"size_limit": 1232896,<br />
"block_height": 37625,<br />
"coinbase_value": 500000000000,<br />
"minimum_timestamp": 1516502622,<br />
"current_timestamp": 1516503768,<br />
"previous_block_hash": "00000002F22575136B63F90BBAB423CC1241C0ED8EA6FB40",<br />
"mutable": [<br />
"timestamp",<br />
"transactions"<br />
],<br />
"transactions": [<br />
{<br />
"fee": 121,<br />
"weight": 221,<br />
"required": true,<br />
"transaction_id": "2EB013AC6B62D192FD0EA3D8DBB757BB8D4F6008BC3A17846A42CBB629F27D58",<br />
"transaction": {<br />
"type": "signed",<br />
"signed": {<br />
"signature": "304402202F8DDB95B57F536C5317B19C63BDBF41314BBEB9C8A02484DCF09C9069FB2F6F022077902BDC9CDE23BA9FFD6256E9DF57BB37D9D21EF6D793F8B2A2959789A60110",<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29",<br />
"signature_index": 27,<br />
"transaction": {<br />
"size": 56,<br />
"txid": "2EB013AC6B62D192FD0EA3D8DBB757BB8D4F6008BC3A17846A42CBB629F27D58",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VEP6ZjXby6Ska22bb4fcrirL4Dj2Vo",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
}<br />
},<br />
"depends": []<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
<br />
=== getbalance===<br />
Find the balance for a given address<br />
<br />
Syntax<br />
<pre><br />
getbalance [address]<br />
</pre><br />
<br />
Case 1: Specific address<br />
<pre><br />
#input<br />
getbalance VEYtYxYUJY3MinMa7oyC7vjdGBLrfV<br />
<br />
#output<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"confirmed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 992331<br />
}<br />
],<br />
"unconfimed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 0<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
Case 2: All addresses<br />
<br />
<pre><br />
#input<br />
getbalance<br />
<br />
#output<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"confirmed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 992331<br />
},<br />
{<br />
"address": "VCGeXVDjH9EHv8zkGmh6VwL5mHXfpm",<br />
"amount": 0<br />
}<br />
],<br />
"unconfimed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 0<br />
},<br />
{<br />
"address": "VC4YViRdJuiiZw8VSMZMBaUUXBzr8v",<br />
"amount": 0<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
<br />
=== getbalanceunlockschedule ===<br />
<br />
Shows the schedule for unlocking coins.<br />
<br />
<pre><br />
getbalanceunlockschedule<br />
[<br />
{<br />
"address": "V7t4RfqkdJedmH3DG8EPdF6tnG6jdJ",<br />
"totalBalance": "733.74304500",<br />
"unlockedBalance": "733.74304500",<br />
"lockedBalance": "0.00000000",<br />
"schedule": []<br />
}<br />
]<br />
</pre><br />
<br />
=== getblockfromindex ===<br />
<br />
Returns the block for the specified block number<br />
<br />
Syntax<br />
<pre><br />
getblockfromindex <blockNumber><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get info for block 30000<br />
getblockfromindex 30000<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"blocks": [<br />
{<br />
"coinbaseReward": 1000000000,<br />
"transactionFees": 0,<br />
"size": 0,<br />
"raw": "CLDqARDu+t7SBRoYAAABzlcP6/yCPKGucmMsLyg5lpSry1lAIhgAAAOgOclPMbNBFhGVm/qG/Hamtlw3HtYpRgAAAAAAAAAwhsm43/v/////AToWaVLnTYcGoeUPflsiB8rJOoy/viPRGkIk0000003815F944BD02E2AA76E69E7DFBD493D689ADE032ACaICU69wD",<br />
"number": 30000,<br />
"timestamp": 1515699566,<br />
"hash": "000001CE570FEBFC823CA1AE72632C2F28399694ABCB5940",<br />
"previous_hash": "000003A039C94F31B3411611959BFA86FC76A6B65C371ED6",<br />
"difficulty": 70,<br />
"winning_nonce": -1142020986,<br />
"miner_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"ledgerHash": "D34D34D34DFCD7917DE38043D36136000EFA13AF44EC31410F8F770FAF3D003134DF6002",<br />
"bitcoin_block_headers": [],<br />
"transactions": []<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== getblockchains ===<br />
<br />
Returns blockchain information<br />
<br />
Syntax<br />
<pre><br />
getblockchains<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get info about the current blockchain<br />
getblockchains<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"best_length": 37530,<br />
"longest_length": 37530<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== getblockfromhash ===<br />
<br />
Returns the block for the specified hash<br />
<br />
Syntax<br />
<pre><br />
getblockfromhash <blockHash><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get block given specific hash<br />
getblockfromhash 0000000B1F90DED765A69641F9840568839BCA0DB02EF126<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"blocks": [<br />
{<br />
"coinbaseReward": 1000000000,<br />
"transactionFees": 0,<br />
"size": 0,<br />
"raw": "CKulAhCcxI7TBRoYAAAACx+Q3tdlppZB+YQFaIObyg2wLvEmIhgAAAAQSRpa2pkGjaMFF0g+7uedXcOynIopfQcAAAAAAAAwof3QwP//////AToWaVLnTYcGoeUPflsiB8rJOoy/viPRGkIk0000003815F944BD02E2AA76E69E7DFBD493D689ADE032ACaICU69wD",<br />
"number": 37547,<br />
"timestamp": 1516479004,<br />
"hash": "0000000B1F90DED765A69641F9840568839BCA0DB02EF126",<br />
"previous_hash": "00000010491A5ADA99068DA30517483EEEE79D5DC3B29C8A",<br />
"difficulty": 1917,<br />
"winning_nonce": -132890975,<br />
"miner_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"ledgerHash": "D34D34D34DFCD7917DE38043D36136000EFA13AF44EC31410F8F770FAF3D003134DF6002",<br />
"bitcoin_block_headers": [],<br />
"transactions": []<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== getdiagnosticinfo ===<br />
<br />
<pre><br />
Returns diagnostic info about the NodeCore instance<br />
</pre><br />
<br />
<br />
=== gethistory ===<br />
<br />
Returns transaction history for specified address or the default if not.<br />
<br />
Syntax<br />
<pre><br />
gethistory [address]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#Get history for a specific address<br />
gethistory VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": [<br />
{<br />
"balance": 2000,<br />
"blocks_mined": 0,<br />
"transactions": [<br />
{<br />
"type": "signed",<br />
"signed": {<br />
"signature": "3046022100E786556F3693541F6D059165903F261D8971E6DC92316457FA5381C039E3D8F4022100A08D4B8838053B48474ECABE9EF340E83D8A3A330A814316EA75958D510A1B76",<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29",<br />
"signature_index": 25,<br />
"transaction": {<br />
"size": 56,<br />
"txid": "B6C62ADB8CFAC18FBAC5F9F5BD3E828249E176A64C71445BD443752C8635787D",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VE2TkS4er4JeZJRnPkSKUdSeaAew5E",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
}<br />
},<br />
{<br />
"type": "signed",<br />
"signed": {<br />
"signature": "3044022042C19F6CC85D64E9D87583011D020D232A056DBDAAECA0499BD711AFF72B87540220010A9D4F7BFC7CF4F3202FC8774542ECFBE94CC1B4876DAB9EFC1CE586959073",<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29",<br />
"signature_index": 26,<br />
"transaction": {<br />
"size": 56,<br />
"txid": "7BA24151FA9A8D59D009B952BC259E3228FFE753526C38F8F1C4703EFFA8C115",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VE2TkS4er4JeZJRnPkSKUdSeaAew5E",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
}<br />
}<br />
]<br />
}<br />
],<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== getinfo ===<br />
<br />
Returns general information about this node and the presently-known blockchain<br />
<br />
Syntax<br />
<pre><br />
getinfo<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
getinfo<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"default_address": {<br />
"address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"amount": 187457753607875<br />
},<br />
"estimated_hash_rate": 6,<br />
"number_of_blocks": 37532,<br />
"transaction_fee": "0.00000801",<br />
"last_block": {<br />
"coinbaseReward": 1000000000,<br />
"transactionFees": 0,<br />
"size": 0,<br />
"raw": "CJulAhCLoo7TBRoYAAAAKxIj2rocYAtCHvclu0nOg6mEdUFFIhgAAAAV+9oXWONJpFXwDTd3aUIEabXUJJ8pfQcAAAAAAAAw6q+nsvr/////AToWaVLnTYcGoeUPflsiB8rJOoy/viPRGkIk0000003815F944BD02E2AA76E69E7DFBD493D689ADE032ACaICU69wD",<br />
"number": 37531,<br />
"timestamp": 1516474635,<br />
"hash": "0000002B1223DABA1C600B421EF725BB49CE83A984754145",<br />
"previous_hash": "00000015FBDA1758E349A455F00D377769420469B5D4249F",<br />
"difficulty": 1917,<br />
"winning_nonce": -1505110038,<br />
"miner_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"ledgerHash": "D34D34D34DFCD7917DE38043D36136000EFA13AF44EC31410F8F770FAF3D003134DF6002",<br />
"bitcoin_block_headers": [],<br />
"transactions": []<br />
},<br />
"difficulty": 1917<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== getlastbitcoinblock ===<br />
<br />
Returns the last bitcoin block.<br />
<br />
Syntax<br />
<pre><br />
getlastbitcoinblock<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getlastbitcoinblock<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": "00000020F3E15A9E8C0D18957E6E048311B85014F54EDD6FDB27442809C9A64C00000000324227DB35ECF6AC8E35C403366C84BCBA613F3A8F5C67DA3B40E302731A1BD8A90EA35AFFFF001D6887AE1E",<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== getnewaddress ===<br />
<br />
Creates a new address from the wallet<br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getnewaddress<br />
<br />
#output<br />
rpc (77.46.106.162:10500) > {<br />
"payload": "VCGeXVDjH9EHv8zkGmh6VwL5mHXfpm",<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
Create multiple addresses at once<br />
<br />
<pre><br />
getnewaddress [count]<br />
Gets {count} new address from the wallet (default: 1)<br />
</pre><br />
<br />
<br />
=== getpeerinfo ===<br />
Returns a list of connected peers<br />
<br />
Syntax<br />
<pre><br />
getpeerinfo <br />
</pre><br />
<br />
Examples:<br />
<pre><br />
rpc (127.0.0.1:10500) > {<br />
"payload": {<br />
"configured_endpoints": [<br />
{<br />
"address": "93.130.33.180",<br />
"port": 6500<br />
},<br />
{<br />
"address": "77.46.106.162",<br />
"port": 6500<br />
}<br />
],<br />
"connected": [<br />
{<br />
"address": "77.46.106.162",<br />
"port": 6500,<br />
"application": "VeriBlock NodeCore v0.1.0-rc.28",<br />
"protocol_version": 1,<br />
"platform": "Windows Server 2016",<br />
"start_timestamp": 1520633272<br />
}<br />
],<br />
"disconnected": [],<br />
"candidates": [<br />
{<br />
"address": "23.96.176.247",<br />
"port": 6500,<br />
"application": "VeriBlock NodeCore v0.1.0-rc.28",<br />
"protocol_version": 1,<br />
"platform": "Linux",<br />
"start_timestamp": 1520634269<br />
},<br />
{<br />
"address": "13.95.160.234",<br />
"port": 6500,<br />
"application": "VeriBlock NodeCore v0.1.0-rc.24",<br />
"protocol_version": 1,<br />
"platform": "Linux",<br />
"start_timestamp": 1520625288<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
<br />
=== getpendingtransactions ===<br />
<br />
Returns the serialized mempool transactions. Returns nothing if there are no transactions.<br />
<br />
Syntax<br />
<pre><br />
getpendingtransactions<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#First send some coins (to ensure there is a transaction), then check for pending transactions.<br />
send 1000 VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
getpendingtransactions<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": [<br />
{<br />
"size": 56,<br />
"txid": "2EB013AC6B62D192FD0EA3D8DBB757BB8D4F6008BC3A17846A42CBB629F27D58",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VEP6ZjXby6Ska22bb4fcrirL4Dj2Vo",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
],<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== getpoolinfo ===<br />
<br />
Shows pool info if running a pool.<br />
<br />
<pre><br />
getpoolinfo<br />
{<br />
"running": true,<br />
"configuration": {<br />
"solo": false,<br />
"type": "GPU",<br />
"pool_target": "00000000ffffffffffffffffffffffffffffffffffffffff",<br />
"pool_address": "V4upDbv4ne6f88Pr8h5oHdok9Ezzzz",<br />
"operator_address": "V4cP4AfoSomxYHfnCDN8tuWFstrgdw",<br />
"operator_fee": 0.01,<br />
"coinbase_comment": "myPoolCommentHere"<br />
},<br />
"stats": {<br />
"current_round": 4536,<br />
"mining_block_number": 55855,<br />
"last_block_number": 55854,<br />
"recent_hash_rate": "772.66 GH/s"<br />
}<br />
}<br />
</pre><br />
<br />
<br />
=== getpop ===<br />
<br />
<pre><br />
getpop [block]<br />
Gets the data VeriBlock wants Proof-of-Proof published to Bitcoin<br />
</pre><br />
<br />
=== getpopendorsementsinfo ===<br />
<br />
Returns transaction history for specified address or the default if not.<br />
<br />
<pre><br />
getpopendorsementsinfo <address> [searchLength]<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getpopendorsementsinfo V34RwWk5CEp5uE8L4SSpJWcwN29dKu<br />
<br />
#output<br />
"payload": [<br />
{<br />
"miner_address": "V34RwWk5CEp5uE8L4SSpJWcwN29dKu",<br />
"endorsed_veriblock_block_hash": "0000000330089FE0A8335AEF138265D7F9A7E9EFC251001A",<br />
"contained_in_veriblock_block_hash": "00000003028BD9FD9A3FD188BF2D70A4B99FC8BB43EC9786",<br />
"veriblock_transaction_id": "E9E18AFB9212EC873B5D1E7A6AFE7727AF8D5FCC07C9CAA4DD39662C5C8EB1D2",<br />
"bitcoin_transaction": "0100000001497856D96BCC107D844DE83F711A30101AAD1BF2EF68213CAAE72225C8E65A08000000006B4830450221009AD5105F19A1A03D48E69860659BEBAF456DF4A80D0A047C8A0F67C020A230C502203F6EFC440B2BC177A6CA91914E8CD881D4D60E496AC22AFE6704E9DA1DA9480D0121025EA042772B22B46E924C1EAFF3D24F369501D615ECF4063C2C6C97C820C107C7FFFFFFFF0208413900000000001976A914E9C0E8D5D4C74F427A4836C8E6E3A582E761958588AC0000000000000000536A4C50000000010000000019E1492ECF1943299294D1B72AB25E56AD2A5BDA0C28A9D3E1299F501DA61E9FE2081CE3DEAD8DFFDD6041125ADA3E9A044AE83904116460217C8C3562659235A15C85F155CA620C00000000",<br />
"bitcoin_transaction_id": "1CA7C540AF39C6D11F40569AA549AA716B12AAF052A57D521ED41049C12A97B7",<br />
"bitcoin_block_header": "00000020605C4627C7168F21B41CECF20DC8C4AC0C7F32C8B9CF186ACF00000000000000C232B26F9AFCCFDDCA7819A9FBF7B146FEC2B17E88968ADD318CD74279C878138540DA5A9B03031A4CDDF632",<br />
"bitcoin_block_header_hash": "0000000000000107EB54ED752020E978BBAC7504659EC1745A61A1905E40B66F",<br />
"reward": "28.00000000",<br />
"finalized": true<br />
},<br />
<br />
</pre><br />
<br />
=== getprotectedchildren ===<br />
<br />
Returns the children protected by PoP transactions in a particular VeriBlock block identified by the provided block hash.<br />
<br />
The paradigm is "A parent protects children"<br />
<br />
See: [[NodeCore_CommandLine#getprotectingparents]]<br />
<br />
Syntax<br />
<pre><br />
getprotectedchildren <blockhash> [searchLength]<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getprotectedchildren 00000001176E53EA4CB9872910F9E567C6DC4B09C01DBB6B 10000<br />
<br />
#output<br />
"payload": [<br />
{<br />
"miner_address": "V34RwWk5CEp5uE8L4SSpJWcwN29dKu",<br />
"endorsed_veriblock_block_hash": "00000000EBDFF3806FEFC22799E75FD36C3935F7FA36AA53",<br />
"contained_in_veriblock_block_hash": "00000001176E53EA4CB9872910F9E567C6DC4B09C01DBB6B",<br />
"veriblock_transaction_id": "E25E8ECFFF3A3DB843167C066AC052AE42BE44EB528934EEE6ED8CF5219A17C3",<br />
"bitcoin_transaction": "020000000129F1343830462940EC71F9A041FA3FF3FCBC87360AD891F1F93FDFC19E030E63010000006A473044022017ACFF98378B2865981C9E2D4D79AF27005B4FE4843EC7811BAEC12F0C40189602203087F1B456E6A7E794AE67A369D3214CEEC2AE0923AE9D73084FC7B25C474BBF0121029787960F4CE284F40F1C8953E2F8DDFC5E664088580588153E5FC7513AC88C7DFFFFFFFF020000000000000000536A4C500000000100000002666994A2AFEF035F53D0048991648A8304839BF07B1C3A9F5CE2071B1EE66E039F8E3477A2FD940FC87CE7A45ACE5178045F55BE585CA12F217C8C3562659235A15C85F155CA620CC0270900000000001976A914ABA57562278E5D543E33A20E5AE1B8427B51AD0988AC00000000",<br />
"bitcoin_transaction_id": "840AD8CB3D5A64979220FA9CE9BE302FF644D294E0186CD14C876BE7B54C87E8",<br />
"bitcoin_block_header": "00000020F0055E0D2B1D78409650AE4C23D9501EBDF3AA00D03B50014D0000000000000089ABCEA79221A9BCFF8BA8DF17719C23AB399D6B171CC5A2199878D76AB859C6B552CE5A9B03031ADD59C1A0",<br />
"bitcoin_block_header_hash": "000000000000017CC389D86556814B198A4B9673E5D55CC846A6853B0C283279",<br />
"reward": "28.00000000",<br />
"finalized": true<br />
</pre><br />
<br />
=== getprotectingparents ===<br />
<br />
Returns the pop endorsement information of parents protecting the provided block hash.<br />
<br />
The paradigm is "A child can be protected by mulitple parents"<br />
<br />
See: [[NodeCore_CommandLine#getprotectedchildren]]<br />
<br />
Syntax<br />
<pre><br />
getprotectingparents <blockhash> [searchLength]<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getprotectingparents 00000000EBDFF3806FEFC22799E75FD36C3935F7FA36AA53 10000<br />
<br />
#output<br />
"payload": [<br />
{<br />
"miner_address": "V34RwWk5CEp5uE8L4SSpJWcwN29dKu",<br />
"endorsed_veriblock_block_hash": "00000000EBDFF3806FEFC22799E75FD36C3935F7FA36AA53",<br />
"contained_in_veriblock_block_hash": "00000001176E53EA4CB9872910F9E567C6DC4B09C01DBB6B",<br />
"veriblock_transaction_id": "E25E8ECFFF3A3DB843167C066AC052AE42BE44EB528934EEE6ED8CF5219A17C3",<br />
"bitcoin_transaction": "020000000129F1343830462940EC71F9A041FA3FF3FCBC87360AD891F1F93FDFC19E030E63010000006A473044022017ACFF98378B2865981C9E2D4D79AF27005B4FE4843EC7811BAEC12F0C40189602203087F1B456E6A7E794AE67A369D3214CEEC2AE0923AE9D73084FC7B25C474BBF0121029787960F4CE284F40F1C8953E2F8DDFC5E664088580588153E5FC7513AC88C7DFFFFFFFF020000000000000000536A4C500000000100000002666994A2AFEF035F53D0048991648A8304839BF07B1C3A9F5CE2071B1EE66E039F8E3477A2FD940FC87CE7A45ACE5178045F55BE585CA12F217C8C3562659235A15C85F155CA620CC0270900000000001976A914ABA57562278E5D543E33A20E5AE1B8427B51AD0988AC00000000",<br />
"bitcoin_transaction_id": "840AD8CB3D5A64979220FA9CE9BE302FF644D294E0186CD14C876BE7B54C87E8",<br />
"bitcoin_block_header": "00000020F0055E0D2B1D78409650AE4C23D9501EBDF3AA00D03B50014D0000000000000089ABCEA79221A9BCFF8BA8DF17719C23AB399D6B171CC5A2199878D76AB859C6B552CE5A9B03031ADD59C1A0",<br />
"bitcoin_block_header_hash": "000000000000017CC389D86556814B198A4B9673E5D55CC846A6853B0C283279",<br />
"reward": "28.00000000",<br />
"finalized": true<br />
},<br />
<br />
</pre><br />
<br />
=== getstateinfo ===<br />
<br />
<pre><br />
getstateinfo<br />
Returns blockchain, operating, and network state information<br />
</pre><br />
<br />
Example:<br />
<br />
<pre><br />
getstateinfo<br />
{<br />
"blockchain_state": "LOADED",<br />
"operating_state": "RUNNING",<br />
"network_state": "CONNECTED",<br />
"connected_peer_count": 8,<br />
"current_sync_peer": "",<br />
"network_height": 148816,<br />
"local_blockchain_height": 148816,<br />
"network_version": "TestNet",<br />
"data_directory": "",<br />
"program_version": "0.3.8",<br />
"nodecore_starttime": 1541471711,<br />
"wallet_cache_sync_height": 148816<br />
}<br />
</pre><br />
<br />
<br />
<br />
=== gettransaction === <br />
<br />
<pre><br />
gettransaction <txId> [searchLength]<br />
Gets information regarding provided TxID<br />
</pre><br />
<br />
=== getwallettransactions ===<br />
<br />
This requires the wallet cache be up to date (run getstateinfo to see how far along wallet cache is caught up). If you just imported a new wallet, it may take some time to rebuild that cache.<br />
<br />
<pre><br />
getwallettransactions <address> [type]<br />
Writes transaction history for an address to a local file. This could take a while.<br />
</pre><br />
<br />
See also: [[NodeCore_CommandLine#refreshwalletcache]] --> rebuilds the cache<br />
<br />
Example:<br />
<br />
<pre><br />
getwallettransactions V4m6JbAs8VaEa3wwemJPgsPRY8ETdk<br />
Append to file: C:\outputs\V4m6JbAs8VaEa3wwemJPgsPRY8ETdk.csv<br />
Got page 1 with 100 rows, appended to file<br />
Got page 2 with 93 rows, appended to file<br />
"Wrote 193 wallet transactions to file C:\\outputs\V4m6JbAs8VaEa3wwemJPgsPRY8ETdk.csv"<br />
</pre><br />
<br />
=== importprivatekey ===<br />
<br />
See also: dumpprivatekey<br />
<br />
<pre><br />
importprivatekey <privateKey><br />
Imports the provided private key into NodeCore<br />
</pre><br />
<br />
=== importwallet ===<br />
<br />
Import a NodeCore wallet backup from the provided location. Expects an exact wallet file.<br />
<br />
Run getbalance before and after the importwallet command to see the impact. Note that importwallet merges the addresses into the existing wallet, it does NOT overwrite them. If nodecore has wallet with address A, and one runs the importwallet command with a wallet.dat file containing B and C, then the final nodecore addresses from getbalance will show A, B, and C.<br />
<br />
See: [[NodeCore_CommandLine#backupwallet]], [[NodeCore_File_Structure]]<br />
<br />
Syntax<br />
<pre><br />
importwallet <sourceLocation><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
importwallet C:\MyBackups\wallet_backup.dat<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== listbannedminers ===<br />
<br />
<pre><br />
listbannedminers<br />
Returns a list of UCP clients that are currently banned<br />
</pre><br />
<br />
=== listbannedpeers ===<br />
Lists banned peers<br />
<pre><br />
(VBK_CLI rpc (127.0.0.1:10500)) > listbannedpeers<br />
listbannedpeers<br />
{<br />
"banned_peers": []<br />
}<br />
</pre><br />
<br />
<br />
=== listallowed ===<br />
<br />
Returns a list of allowed whitelist addresses<br />
<br />
<pre><br />
listallowed<br />
</pre><br />
<br />
=== lockwallet ===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
lockwallet<br />
Disables the temporary unlock on the NodeCore wallet<br />
</pre><br />
<br />
=== makeunsignedmultisigtx ===<br />
<br />
<pre><br />
makeunsignedmultisigtx <sourceAddress> <amount> <destinationAddress> [transactionFee] [signatureIndex]<br />
(Generates an unsigned multisig transaction)<br />
</pre><br />
<br />
=== refreshwalletcache ===<br />
<br />
See also: [[NodeCore_CommandLine#getwallettransactions]]<br />
<br />
<pre><br />
refreshwalletcache<br />
Rescans the blockchain for transactions belonging to imported wallets<br />
</pre><br />
<br />
=== removeallowed ===<br />
<br />
<pre><br />
removeallowed <address><br />
Remove allowed addresses<br />
</pre><br />
<br />
=== removenode ===<br />
<br />
Removes the peer address from the configuration<br />
<br />
Syntax<br />
<pre><br />
removenode <peer><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
removenode 93.130.33.180:10500<br />
<br />
#output (also run getpeerinfo to see the node removed)<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== restartpoolwebserver ===<br />
<br />
<pre><br />
restartpoolwebserver<br />
Restarts the built-in pool web server<br />
</pre><br />
<br />
=== send ===<br />
<br />
Send coins to the specified address. Will automatically pick a source address that has sufficient coins.<br />
<br />
Can return multiple Transactions if pulling from multiple addresses.<br />
<br />
Syntax<br />
<pre><br />
send <amount> <destinationAddress> [sourceAddress]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#send 1000 coins to address "VE2TkS4er4JeZJRnPkSKUdSeaAew5E"<br />
send 1000 VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
<br />
#returns the VBK transaction ID<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {<br />
"txids": [<br />
"76796500882C927FF057BDA528C94BE883A06A1B6430655067ACF51F09A6E376",<br />
"79AC6FFE176F068BBB0F5B4F79A2FD1AA92925CA9310FEC58236E220804B58DF"<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== setdefaultaddress ===<br />
<br />
Sets a new default address. This is what will show up when running getinfo<br />
<br />
<pre><br />
setdefaultaddress <address><br />
(Sets the default address of a NodeCore instance)<br />
</pre><br />
<br />
=== settxfee ===<br />
<br />
Sets the transaction fee per byte. You can view the transaction fee by running getinfo<br />
<br />
Syntax<br />
<pre><br />
settxfee <transactionFee><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#Set the transaction fee<br />
settxfee 0.00001000<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== signhexmessage ===<br />
<br />
<pre><br />
signhexmessage <address> <message><br />
(Signs a hex-encoded message with the addresses private key)<br />
</pre><br />
<br />
<br />
=== sigindex ===<br />
<br />
Return the signature index for the specified address<br />
<br />
Syntax<br />
<pre><br />
sigindex [address]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get the signature index<br />
sigindex VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {<br />
"addresses": [<br />
{<br />
"pool_index": -1,<br />
"address": "VE2TkS4er4JeZJRnPkSKUdSeaAew5E",<br />
"blockchain_index": -1<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== signmessage ===<br />
<br />
Signs a message with the addresses private key<br />
<br />
Syntax<br />
<pre><br />
signmessage <address> <message><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#sign a message, infer the private key from the address<br />
signmessage VDonzX9vwXxcL9BapJWkhnBiyAX6ia ThisIsSomeText<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": "MEYCIQDDxExDiIGkjxrs20cl5RhlbHo5MEgSdub+MmdEE5d21AIhAJk7alAVUAuH/+j3/PuUY7BEuLtH4vIjAFwvGEaLdexh",<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== startpool ===<br />
<br />
Starts the built-in pool service in NodeCore.<br />
<br />
Requires permissions.<br />
<br />
Syntax<br />
<pre><br />
startpool <type><br />
(Starts the built-in pool service in NodeCore)<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#start the UCP pool on an instance<br />
<br />
#CPU<br />
startpool CPU<br />
<br />
#GPU<br />
startpool GPU<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== startsolopool ===<br />
<br />
<pre><br />
startsolopool [address]<br />
Starts the built-in pool service in NodeCore in solo mode<br />
</pre><br />
<br />
=== stopnodecore ===<br />
<br />
Gracefully stops the connected instance of NodeCore. Very useful for remote instances.<br />
<br />
An alternative is to CTRL+C NodeCore.<br />
<br />
=== stoppool ===<br />
<br />
Stops the built-in pool service in NodeCore<br />
<br />
Syntax<br />
<pre><br />
stoppool<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
stoppool<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== submitmultisigtx ===<br />
<br />
[[How_to_Submit_Multisig_Tx]]<br />
<br />
<br />
=== troubleshootpopbyaddress ===<br />
<br />
<pre><br />
Command: Troubleshoot PoP By Address<br />
<br />
troubleshootpopbyaddress <onlyFailures> [searchLength] [address]<br />
(Returns a troubleshooting report of the PoP transaction(s) matching the provided address in the specified history)<br />
<br />
Example:<br />
troubleshootpopbyaddress true 1000 VHPgy7kUNtkKFLdx3CyB6rAyHAhd7n<br />
<br />
</pre><br />
<br />
=== unlockwallet===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
Command: Unlock Wallet<br />
<br />
unlockwallet<br />
Temporarily unlocks the NodeCore wallet<br />
</pre><br />
<br />
=== validateaddress ===<br />
<br />
Returns details about an address if it's valid<br />
<br />
Syntax<br />
<pre><br />
validateaddress <address><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#Check a specific address<br />
validateaddress VazUQm9TaPmbhTWEi6FYUUPp28Eynq<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"is_remote": false,<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29"<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre></div>Leonardhttps://wiki.veriblock.org/index.php?title=NodeCore_CommandLine&diff=2313NodeCore CommandLine2019-10-14T06:54:14Z<p>Leonard: Changed ports in examples to 10500 because this is the default and for conformity (10500 is already used in other examples)</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
The NodeCore CommandLine (i.e. NC_CLI) can access an instance of NodeCore.<br />
<br />
To run the NC_CLI, click on the nodecore-cli.bat (for windows) or nodecore-cli (for linux/mac).<br />
<br />
Initially NC_CLI is not connected, so run the connect command to connect to a local instance (this will require running NodeCore (see: [[HowTo_run_NodeCore]]):<br />
<br />
<pre><br />
connect 127.0.0.1:10500<br />
</pre><br />
<br />
One can also auto-connect by passing the host:port via the command line, for example in windows:<br />
<pre><br />
nodecore-cli.bat -connect 127.0.0.1:10500<br />
</pre><br />
<br />
=== Script with command file ===<br />
<br />
Given an input.txt file, this will read each line of the input file as a command:<br />
<br />
<pre><br />
connect 127.0.0.1:10500<br />
getinfo<br />
quit<br />
</pre><br />
<br />
LINUX<br />
<br />
<pre><br />
#using pipe | instead of input redirection <<br />
cat input.txt | ./nodecore-cli<br />
</pre><br />
<br />
WINDOWS<br />
<pre><br />
#from powershell<br />
./nodecore-cli < input.txt<br />
</pre><br />
<br />
=== Write output to file ===<br />
<br />
Add the -o <myFile> to write the output to a JSON file:<br />
<br />
<pre><br />
getinfo -o myData.json<br />
</pre><br />
<br />
== Commands: Not Connected ==<br />
<br />
When first started, the command line is not connected.<br />
<br />
=== clear ===<br />
<br />
Standard command, clears the screen<br />
<br />
=== connect ===<br />
<br />
Connects to an instance of nodecore via gRPC, on port 10500.<br />
<br />
If connected to a node, then many other commands are available.<br />
<br />
Syntax:<br />
<br />
<pre><br />
connect <peer><br />
</pre><br />
<br />
Examples:<br />
<br />
<pre><br />
#connect to an instance<br />
connect 77.46.106.162:10500<br />
<br />
</pre><br />
<br />
=== help ===<br />
<br />
Standard help command.<br />
<br />
Syntax:<br />
<br />
<pre><br />
help [command]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#returns list of available commands<br />
help<br />
<br />
#returns info for a specific command<br />
help connect<br />
<br />
</pre><br />
<br />
=== quit ===<br />
<br />
Standard quit command, exits the console<br />
<br />
== Commands: Connected ==<br />
<br />
Once the CLI is connected to a NodeCore instance, then there are many other commands that can be run.<br />
<br />
<br />
=== addallowed ===<br />
<br />
Adds an IP to the whitelist. See: [[NodeCore_Networking]]. See command [[NodeCore_CommandLine#clearallowed]]<br />
<br />
Syntax<br />
<pre><br />
addallowed <address><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
addallowed 33.33.33.33<br />
<br />
# This will update [[nodecore.properties]] file:<br />
# rpc.whitelist.addresses=33.33.33.33<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== addnode ===<br />
<br />
Add a peer node to the local configuration and connect. After adding a node, you should see it when running getpeerinfo,<br />
<br />
Syntax<br />
<pre><br />
addnode <peer><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
addnode 93.130.33.180:7501<br />
<br />
#output (also run getpeerinfo to see the node added)<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== backupwallet ===<br />
<br />
Backup the wallet of the NodeCore instance to the given folder. Copies multiple wallet-related files. Takes either a folder, or a specific file.<br />
<br />
See: [[NodeCore_CommandLine#importwallet]], [[NodeCore_File_Structure]]<br />
<br />
Syntax<br />
<pre><br />
backupwallet <targetLocation><br />
</pre><br />
<br />
Example: Folder<br />
<br />
<pre><br />
# input A<br />
backupwallet C:\Temp\myFolder<br />
<br />
#copies <br />
# wallet_backup.dat<br />
# walletconfig_backup.dat<br />
<br />
</pre><br />
<br />
Example: File<br />
<br />
<pre><br />
# input A<br />
backupwallet C:\Temp\myFolder\wallet.dat<br />
<br />
#copies <br />
# wallet.dat <br />
# walletconfig.dat<br />
<br />
</pre><br />
<br />
=== clearallowed ===<br />
<br />
Clears the list of allowed addresses. See command [[NodeCore_CommandLine#addallowed]].<br />
<br />
Syntax<br />
<pre><br />
clearallowed<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
clearallowed<br />
<br />
# This will update [[nodecore.properties]] file:<br />
# rpc.whitelist.addresses=<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== clearbannedpeers ===<br />
<br />
Removes banned peers<br />
<br />
<pre><br />
(VBK_CLI rpc (127.0.0.1:10500)) > clearbannedpeers<br />
clearbannedpeers<br />
{}<br />
<br />
200 success (47.27 ms)<br />
</pre><br />
<br />
=== clearpoolbans ===<br />
<br />
<pre><br />
clearpoolbans<br />
Clears the list of pool connections that have been banned<br />
</pre><br />
<br />
=== decryptwallet ===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
decryptwallet<br />
Decrypts the wallet loaded in NodeCore<br />
</pre><br />
<br />
=== disconnect ===<br />
<br />
Simply disconnects from the current NodeCore instance<br />
<br />
=== drainaddress ===<br />
<br />
<pre><br />
drainaddress <sourceAddress> <destinationAddress><br />
Fully drain all VBK from one address to another. The result of sourceAddress will be zero.<br />
</pre><br />
<br />
=== dumpprivatekey ===<br />
<br />
See also: importprivatekey<br />
<br />
<pre><br />
dumpprivatekey <address><br />
Gets private key for an address<br />
</pre><br />
<br />
=== encryptwallet ===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
encryptwallet<br />
Encrypts the wallet loaded in NodeCore with a passphrase<br />
</pre><br />
<br />
=== generatemultisigaddress ===<br />
<br />
<pre><br />
generatemultisigaddress <csvaddresses> <signatureThreshold><br />
(Generates a multisig address from the provided standard addresses)<br />
</pre><br />
<br />
=== getblocktemplate ===<br />
<br />
Returns a block template along with candidate transactions<br />
<br />
Syntax<br />
<pre><br />
getblocktemplate [mode] [capabilities]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
getblocktemplate<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"target": -7236281451971613363,<br />
"size_limit": 1232896,<br />
"block_height": 37625,<br />
"coinbase_value": 500000000000,<br />
"minimum_timestamp": 1516502622,<br />
"current_timestamp": 1516503768,<br />
"previous_block_hash": "00000002F22575136B63F90BBAB423CC1241C0ED8EA6FB40",<br />
"mutable": [<br />
"timestamp",<br />
"transactions"<br />
],<br />
"transactions": [<br />
{<br />
"fee": 121,<br />
"weight": 221,<br />
"required": true,<br />
"transaction_id": "2EB013AC6B62D192FD0EA3D8DBB757BB8D4F6008BC3A17846A42CBB629F27D58",<br />
"transaction": {<br />
"type": "signed",<br />
"signed": {<br />
"signature": "304402202F8DDB95B57F536C5317B19C63BDBF41314BBEB9C8A02484DCF09C9069FB2F6F022077902BDC9CDE23BA9FFD6256E9DF57BB37D9D21EF6D793F8B2A2959789A60110",<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29",<br />
"signature_index": 27,<br />
"transaction": {<br />
"size": 56,<br />
"txid": "2EB013AC6B62D192FD0EA3D8DBB757BB8D4F6008BC3A17846A42CBB629F27D58",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VEP6ZjXby6Ska22bb4fcrirL4Dj2Vo",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
}<br />
},<br />
"depends": []<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
<br />
=== getbalance===<br />
Find the balance for a given address<br />
<br />
Syntax<br />
<pre><br />
getbalance [address]<br />
</pre><br />
<br />
Case 1: Specific address<br />
<pre><br />
#input<br />
getbalance VEYtYxYUJY3MinMa7oyC7vjdGBLrfV<br />
<br />
#output<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"confirmed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 992331<br />
}<br />
],<br />
"unconfimed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 0<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
Case 2: All addresses<br />
<br />
<pre><br />
#input<br />
getbalance<br />
<br />
#output<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"confirmed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 992331<br />
},<br />
{<br />
"address": "VCGeXVDjH9EHv8zkGmh6VwL5mHXfpm",<br />
"amount": 0<br />
}<br />
],<br />
"unconfimed": [<br />
{<br />
"address": "VEYtYxYUJY3MinMa7oyC7vjdGBLrfV",<br />
"amount": 0<br />
},<br />
{<br />
"address": "VC4YViRdJuiiZw8VSMZMBaUUXBzr8v",<br />
"amount": 0<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
<br />
=== getbalanceunlockschedule ===<br />
<br />
Shows the schedule for unlocking coins.<br />
<br />
<pre><br />
getbalanceunlockschedule<br />
[<br />
{<br />
"address": "V7t4RfqkdJedmH3DG8EPdF6tnG6jdJ",<br />
"totalBalance": "733.74304500",<br />
"unlockedBalance": "733.74304500",<br />
"lockedBalance": "0.00000000",<br />
"schedule": []<br />
}<br />
]<br />
</pre><br />
<br />
=== getblockfromindex ===<br />
<br />
Returns the block for the specified block number<br />
<br />
Syntax<br />
<pre><br />
getblockfromindex <blockNumber><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get info for block 30000<br />
getblockfromindex 30000<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"blocks": [<br />
{<br />
"coinbaseReward": 1000000000,<br />
"transactionFees": 0,<br />
"size": 0,<br />
"raw": "CLDqARDu+t7SBRoYAAABzlcP6/yCPKGucmMsLyg5lpSry1lAIhgAAAOgOclPMbNBFhGVm/qG/Hamtlw3HtYpRgAAAAAAAAAwhsm43/v/////AToWaVLnTYcGoeUPflsiB8rJOoy/viPRGkIk0000003815F944BD02E2AA76E69E7DFBD493D689ADE032ACaICU69wD",<br />
"number": 30000,<br />
"timestamp": 1515699566,<br />
"hash": "000001CE570FEBFC823CA1AE72632C2F28399694ABCB5940",<br />
"previous_hash": "000003A039C94F31B3411611959BFA86FC76A6B65C371ED6",<br />
"difficulty": 70,<br />
"winning_nonce": -1142020986,<br />
"miner_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"ledgerHash": "D34D34D34DFCD7917DE38043D36136000EFA13AF44EC31410F8F770FAF3D003134DF6002",<br />
"bitcoin_block_headers": [],<br />
"transactions": []<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== getblockchains ===<br />
<br />
Returns blockchain information<br />
<br />
Syntax<br />
<pre><br />
getblockchains<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get info about the current blockchain<br />
getblockchains<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"best_length": 37530,<br />
"longest_length": 37530<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== getblockfromhash ===<br />
<br />
Returns the block for the specified hash<br />
<br />
Syntax<br />
<pre><br />
getblockfromhash <blockHash><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get block given specific hash<br />
getblockfromhash 0000000B1F90DED765A69641F9840568839BCA0DB02EF126<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"blocks": [<br />
{<br />
"coinbaseReward": 1000000000,<br />
"transactionFees": 0,<br />
"size": 0,<br />
"raw": "CKulAhCcxI7TBRoYAAAACx+Q3tdlppZB+YQFaIObyg2wLvEmIhgAAAAQSRpa2pkGjaMFF0g+7uedXcOynIopfQcAAAAAAAAwof3QwP//////AToWaVLnTYcGoeUPflsiB8rJOoy/viPRGkIk0000003815F944BD02E2AA76E69E7DFBD493D689ADE032ACaICU69wD",<br />
"number": 37547,<br />
"timestamp": 1516479004,<br />
"hash": "0000000B1F90DED765A69641F9840568839BCA0DB02EF126",<br />
"previous_hash": "00000010491A5ADA99068DA30517483EEEE79D5DC3B29C8A",<br />
"difficulty": 1917,<br />
"winning_nonce": -132890975,<br />
"miner_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"ledgerHash": "D34D34D34DFCD7917DE38043D36136000EFA13AF44EC31410F8F770FAF3D003134DF6002",<br />
"bitcoin_block_headers": [],<br />
"transactions": []<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== getdiagnosticinfo ===<br />
<br />
<pre><br />
Returns diagnostic info about the NodeCore instance<br />
</pre><br />
<br />
<br />
=== gethistory ===<br />
<br />
Returns transaction history for specified address or the default if not.<br />
<br />
Syntax<br />
<pre><br />
gethistory [address]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#Get history for a specific address<br />
gethistory VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": [<br />
{<br />
"balance": 2000,<br />
"blocks_mined": 0,<br />
"transactions": [<br />
{<br />
"type": "signed",<br />
"signed": {<br />
"signature": "3046022100E786556F3693541F6D059165903F261D8971E6DC92316457FA5381C039E3D8F4022100A08D4B8838053B48474ECABE9EF340E83D8A3A330A814316EA75958D510A1B76",<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29",<br />
"signature_index": 25,<br />
"transaction": {<br />
"size": 56,<br />
"txid": "B6C62ADB8CFAC18FBAC5F9F5BD3E828249E176A64C71445BD443752C8635787D",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VE2TkS4er4JeZJRnPkSKUdSeaAew5E",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
}<br />
},<br />
{<br />
"type": "signed",<br />
"signed": {<br />
"signature": "3044022042C19F6CC85D64E9D87583011D020D232A056DBDAAECA0499BD711AFF72B87540220010A9D4F7BFC7CF4F3202FC8774542ECFBE94CC1B4876DAB9EFC1CE586959073",<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29",<br />
"signature_index": 26,<br />
"transaction": {<br />
"size": 56,<br />
"txid": "7BA24151FA9A8D59D009B952BC259E3228FFE753526C38F8F1C4703EFFA8C115",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VE2TkS4er4JeZJRnPkSKUdSeaAew5E",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
}<br />
}<br />
]<br />
}<br />
],<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== getinfo ===<br />
<br />
Returns general information about this node and the presently-known blockchain<br />
<br />
Syntax<br />
<pre><br />
getinfo<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
getinfo<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"default_address": {<br />
"address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"amount": 187457753607875<br />
},<br />
"estimated_hash_rate": 6,<br />
"number_of_blocks": 37532,<br />
"transaction_fee": "0.00000801",<br />
"last_block": {<br />
"coinbaseReward": 1000000000,<br />
"transactionFees": 0,<br />
"size": 0,<br />
"raw": "CJulAhCLoo7TBRoYAAAAKxIj2rocYAtCHvclu0nOg6mEdUFFIhgAAAAV+9oXWONJpFXwDTd3aUIEabXUJJ8pfQcAAAAAAAAw6q+nsvr/////AToWaVLnTYcGoeUPflsiB8rJOoy/viPRGkIk0000003815F944BD02E2AA76E69E7DFBD493D689ADE032ACaICU69wD",<br />
"number": 37531,<br />
"timestamp": 1516474635,<br />
"hash": "0000002B1223DABA1C600B421EF725BB49CE83A984754145",<br />
"previous_hash": "00000015FBDA1758E349A455F00D377769420469B5D4249F",<br />
"difficulty": 1917,<br />
"winning_nonce": -1505110038,<br />
"miner_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"ledgerHash": "D34D34D34DFCD7917DE38043D36136000EFA13AF44EC31410F8F770FAF3D003134DF6002",<br />
"bitcoin_block_headers": [],<br />
"transactions": []<br />
},<br />
"difficulty": 1917<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== getlastbitcoinblock ===<br />
<br />
Returns the last bitcoin block.<br />
<br />
Syntax<br />
<pre><br />
getlastbitcoinblock<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getlastbitcoinblock<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": "00000020F3E15A9E8C0D18957E6E048311B85014F54EDD6FDB27442809C9A64C00000000324227DB35ECF6AC8E35C403366C84BCBA613F3A8F5C67DA3B40E302731A1BD8A90EA35AFFFF001D6887AE1E",<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== getnewaddress ===<br />
<br />
Creates a new address from the wallet<br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getnewaddress<br />
<br />
#output<br />
rpc (77.46.106.162:10500) > {<br />
"payload": "VCGeXVDjH9EHv8zkGmh6VwL5mHXfpm",<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
Create multiple addresses at once<br />
<br />
<pre><br />
getnewaddress [count]<br />
Gets {count} new address from the wallet (default: 1)<br />
</pre><br />
<br />
<br />
=== getpeerinfo ===<br />
Returns a list of connected peers<br />
<br />
Syntax<br />
<pre><br />
getpeerinfo <br />
</pre><br />
<br />
Examples:<br />
<pre><br />
rpc (127.0.0.1:10500) > {<br />
"payload": {<br />
"configured_endpoints": [<br />
{<br />
"address": "93.130.33.180",<br />
"port": 6500<br />
},<br />
{<br />
"address": "77.46.106.162",<br />
"port": 6500<br />
}<br />
],<br />
"connected": [<br />
{<br />
"address": "77.46.106.162",<br />
"port": 6500,<br />
"application": "VeriBlock NodeCore v0.1.0-rc.28",<br />
"protocol_version": 1,<br />
"platform": "Windows Server 2016",<br />
"start_timestamp": 1520633272<br />
}<br />
],<br />
"disconnected": [],<br />
"candidates": [<br />
{<br />
"address": "23.96.176.247",<br />
"port": 6500,<br />
"application": "VeriBlock NodeCore v0.1.0-rc.28",<br />
"protocol_version": 1,<br />
"platform": "Linux",<br />
"start_timestamp": 1520634269<br />
},<br />
{<br />
"address": "13.95.160.234",<br />
"port": 6500,<br />
"application": "VeriBlock NodeCore v0.1.0-rc.24",<br />
"protocol_version": 1,<br />
"platform": "Linux",<br />
"start_timestamp": 1520625288<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
<br />
=== getpendingtransactions ===<br />
<br />
Returns the serialized mempool transactions. Returns nothing if there are no transactions.<br />
<br />
Syntax<br />
<pre><br />
getpendingtransactions<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#First send some coins (to ensure there is a transaction), then check for pending transactions.<br />
send 1000 VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
getpendingtransactions<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": [<br />
{<br />
"size": 56,<br />
"txid": "2EB013AC6B62D192FD0EA3D8DBB757BB8D4F6008BC3A17846A42CBB629F27D58",<br />
"data": "",<br />
"type": "standard",<br />
"fee": 121,<br />
"source_amount": 1121,<br />
"merkle_path": "",<br />
"source_address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"bitcoin_transaction": "",<br />
"bitcoin_block_header": "",<br />
"endorsed_block_header": "",<br />
"outputs": [<br />
{<br />
"address": "VEP6ZjXby6Ska22bb4fcrirL4Dj2Vo",<br />
"amount": 1000<br />
}<br />
]<br />
}<br />
],<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== getpoolinfo ===<br />
<br />
Shows pool info if running a pool.<br />
<br />
<pre><br />
getpoolinfo<br />
{<br />
"running": true,<br />
"configuration": {<br />
"solo": false,<br />
"type": "GPU",<br />
"pool_target": "00000000ffffffffffffffffffffffffffffffffffffffff",<br />
"pool_address": "V4upDbv4ne6f88Pr8h5oHdok9Ezzzz",<br />
"operator_address": "V4cP4AfoSomxYHfnCDN8tuWFstrgdw",<br />
"operator_fee": 0.01,<br />
"coinbase_comment": "myPoolCommentHere"<br />
},<br />
"stats": {<br />
"current_round": 4536,<br />
"mining_block_number": 55855,<br />
"last_block_number": 55854,<br />
"recent_hash_rate": "772.66 GH/s"<br />
}<br />
}<br />
</pre><br />
<br />
<br />
=== getpop ===<br />
<br />
<pre><br />
getpop [block]<br />
Gets the data VeriBlock wants Proof-of-Proof published to Bitcoin<br />
</pre><br />
<br />
=== getpopendorsementsinfo ===<br />
<br />
Returns transaction history for specified address or the default if not.<br />
<br />
<pre><br />
getpopendorsementsinfo <address> [searchLength]<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getpopendorsementsinfo V34RwWk5CEp5uE8L4SSpJWcwN29dKu<br />
<br />
#output<br />
"payload": [<br />
{<br />
"miner_address": "V34RwWk5CEp5uE8L4SSpJWcwN29dKu",<br />
"endorsed_veriblock_block_hash": "0000000330089FE0A8335AEF138265D7F9A7E9EFC251001A",<br />
"contained_in_veriblock_block_hash": "00000003028BD9FD9A3FD188BF2D70A4B99FC8BB43EC9786",<br />
"veriblock_transaction_id": "E9E18AFB9212EC873B5D1E7A6AFE7727AF8D5FCC07C9CAA4DD39662C5C8EB1D2",<br />
"bitcoin_transaction": "0100000001497856D96BCC107D844DE83F711A30101AAD1BF2EF68213CAAE72225C8E65A08000000006B4830450221009AD5105F19A1A03D48E69860659BEBAF456DF4A80D0A047C8A0F67C020A230C502203F6EFC440B2BC177A6CA91914E8CD881D4D60E496AC22AFE6704E9DA1DA9480D0121025EA042772B22B46E924C1EAFF3D24F369501D615ECF4063C2C6C97C820C107C7FFFFFFFF0208413900000000001976A914E9C0E8D5D4C74F427A4836C8E6E3A582E761958588AC0000000000000000536A4C50000000010000000019E1492ECF1943299294D1B72AB25E56AD2A5BDA0C28A9D3E1299F501DA61E9FE2081CE3DEAD8DFFDD6041125ADA3E9A044AE83904116460217C8C3562659235A15C85F155CA620C00000000",<br />
"bitcoin_transaction_id": "1CA7C540AF39C6D11F40569AA549AA716B12AAF052A57D521ED41049C12A97B7",<br />
"bitcoin_block_header": "00000020605C4627C7168F21B41CECF20DC8C4AC0C7F32C8B9CF186ACF00000000000000C232B26F9AFCCFDDCA7819A9FBF7B146FEC2B17E88968ADD318CD74279C878138540DA5A9B03031A4CDDF632",<br />
"bitcoin_block_header_hash": "0000000000000107EB54ED752020E978BBAC7504659EC1745A61A1905E40B66F",<br />
"reward": "28.00000000",<br />
"finalized": true<br />
},<br />
<br />
</pre><br />
<br />
=== getprotectedchildren ===<br />
<br />
Returns the children protected by PoP transactions in a particular VeriBlock block identified by the provided block hash.<br />
<br />
The paradigm is "A parent protects children"<br />
<br />
See: [[NodeCore_CommandLine#getprotectingparents]]<br />
<br />
Syntax<br />
<pre><br />
getprotectedchildren <blockhash> [searchLength]<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getprotectedchildren 00000001176E53EA4CB9872910F9E567C6DC4B09C01DBB6B 10000<br />
<br />
#output<br />
"payload": [<br />
{<br />
"miner_address": "V34RwWk5CEp5uE8L4SSpJWcwN29dKu",<br />
"endorsed_veriblock_block_hash": "00000000EBDFF3806FEFC22799E75FD36C3935F7FA36AA53",<br />
"contained_in_veriblock_block_hash": "00000001176E53EA4CB9872910F9E567C6DC4B09C01DBB6B",<br />
"veriblock_transaction_id": "E25E8ECFFF3A3DB843167C066AC052AE42BE44EB528934EEE6ED8CF5219A17C3",<br />
"bitcoin_transaction": "020000000129F1343830462940EC71F9A041FA3FF3FCBC87360AD891F1F93FDFC19E030E63010000006A473044022017ACFF98378B2865981C9E2D4D79AF27005B4FE4843EC7811BAEC12F0C40189602203087F1B456E6A7E794AE67A369D3214CEEC2AE0923AE9D73084FC7B25C474BBF0121029787960F4CE284F40F1C8953E2F8DDFC5E664088580588153E5FC7513AC88C7DFFFFFFFF020000000000000000536A4C500000000100000002666994A2AFEF035F53D0048991648A8304839BF07B1C3A9F5CE2071B1EE66E039F8E3477A2FD940FC87CE7A45ACE5178045F55BE585CA12F217C8C3562659235A15C85F155CA620CC0270900000000001976A914ABA57562278E5D543E33A20E5AE1B8427B51AD0988AC00000000",<br />
"bitcoin_transaction_id": "840AD8CB3D5A64979220FA9CE9BE302FF644D294E0186CD14C876BE7B54C87E8",<br />
"bitcoin_block_header": "00000020F0055E0D2B1D78409650AE4C23D9501EBDF3AA00D03B50014D0000000000000089ABCEA79221A9BCFF8BA8DF17719C23AB399D6B171CC5A2199878D76AB859C6B552CE5A9B03031ADD59C1A0",<br />
"bitcoin_block_header_hash": "000000000000017CC389D86556814B198A4B9673E5D55CC846A6853B0C283279",<br />
"reward": "28.00000000",<br />
"finalized": true<br />
</pre><br />
<br />
=== getprotectingparents ===<br />
<br />
Returns the pop endorsement information of parents protecting the provided block hash.<br />
<br />
The paradigm is "A child can be protected by mulitple parents"<br />
<br />
See: [[NodeCore_CommandLine#getprotectedchildren]]<br />
<br />
Syntax<br />
<pre><br />
getprotectingparents <blockhash> [searchLength]<br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
getprotectingparents 00000000EBDFF3806FEFC22799E75FD36C3935F7FA36AA53 10000<br />
<br />
#output<br />
"payload": [<br />
{<br />
"miner_address": "V34RwWk5CEp5uE8L4SSpJWcwN29dKu",<br />
"endorsed_veriblock_block_hash": "00000000EBDFF3806FEFC22799E75FD36C3935F7FA36AA53",<br />
"contained_in_veriblock_block_hash": "00000001176E53EA4CB9872910F9E567C6DC4B09C01DBB6B",<br />
"veriblock_transaction_id": "E25E8ECFFF3A3DB843167C066AC052AE42BE44EB528934EEE6ED8CF5219A17C3",<br />
"bitcoin_transaction": "020000000129F1343830462940EC71F9A041FA3FF3FCBC87360AD891F1F93FDFC19E030E63010000006A473044022017ACFF98378B2865981C9E2D4D79AF27005B4FE4843EC7811BAEC12F0C40189602203087F1B456E6A7E794AE67A369D3214CEEC2AE0923AE9D73084FC7B25C474BBF0121029787960F4CE284F40F1C8953E2F8DDFC5E664088580588153E5FC7513AC88C7DFFFFFFFF020000000000000000536A4C500000000100000002666994A2AFEF035F53D0048991648A8304839BF07B1C3A9F5CE2071B1EE66E039F8E3477A2FD940FC87CE7A45ACE5178045F55BE585CA12F217C8C3562659235A15C85F155CA620CC0270900000000001976A914ABA57562278E5D543E33A20E5AE1B8427B51AD0988AC00000000",<br />
"bitcoin_transaction_id": "840AD8CB3D5A64979220FA9CE9BE302FF644D294E0186CD14C876BE7B54C87E8",<br />
"bitcoin_block_header": "00000020F0055E0D2B1D78409650AE4C23D9501EBDF3AA00D03B50014D0000000000000089ABCEA79221A9BCFF8BA8DF17719C23AB399D6B171CC5A2199878D76AB859C6B552CE5A9B03031ADD59C1A0",<br />
"bitcoin_block_header_hash": "000000000000017CC389D86556814B198A4B9673E5D55CC846A6853B0C283279",<br />
"reward": "28.00000000",<br />
"finalized": true<br />
},<br />
<br />
</pre><br />
<br />
=== getstateinfo ===<br />
<br />
<pre><br />
getstateinfo<br />
Returns blockchain, operating, and network state information<br />
</pre><br />
<br />
Example:<br />
<br />
<pre><br />
getstateinfo<br />
{<br />
"blockchain_state": "LOADED",<br />
"operating_state": "RUNNING",<br />
"network_state": "CONNECTED",<br />
"connected_peer_count": 8,<br />
"current_sync_peer": "",<br />
"network_height": 148816,<br />
"local_blockchain_height": 148816,<br />
"network_version": "TestNet",<br />
"data_directory": "",<br />
"program_version": "0.3.8",<br />
"nodecore_starttime": 1541471711,<br />
"wallet_cache_sync_height": 148816<br />
}<br />
</pre><br />
<br />
<br />
<br />
=== gettransaction === <br />
<br />
<pre><br />
gettransaction <txId> [searchLength]<br />
Gets information regarding provided TxID<br />
</pre><br />
<br />
=== getwallettransactions ===<br />
<br />
This requires the wallet cache be up to date (run getstateinfo to see how far along wallet cache is caught up). If you just imported a new wallet, it may take some time to rebuild that cache.<br />
<br />
<pre><br />
getwallettransactions <address> [type]<br />
Writes transaction history for an address to a local file. This could take a while.<br />
</pre><br />
<br />
See also: [[NodeCore_CommandLine#refreshwalletcache]] --> rebuilds the cache<br />
<br />
Example:<br />
<br />
<pre><br />
getwallettransactions V4m6JbAs8VaEa3wwemJPgsPRY8ETdk<br />
Append to file: C:\outputs\V4m6JbAs8VaEa3wwemJPgsPRY8ETdk.csv<br />
Got page 1 with 100 rows, appended to file<br />
Got page 2 with 93 rows, appended to file<br />
"Wrote 193 wallet transactions to file C:\\outputs\V4m6JbAs8VaEa3wwemJPgsPRY8ETdk.csv"<br />
</pre><br />
<br />
=== importprivatekey ===<br />
<br />
See also: dumpprivatekey<br />
<br />
<pre><br />
importprivatekey <privateKey><br />
Imports the provided private key into NodeCore<br />
</pre><br />
<br />
=== importwallet ===<br />
<br />
Import a NodeCore wallet backup from the provided location. Expects an exact wallet file.<br />
<br />
Run getbalance before and after the importwallet command to see the impact. Note that importwallet merges the addresses into the existing wallet, it does NOT overwrite them. If nodecore has wallet with address A, and one runs the importwallet command with a wallet.dat file containing B and C, then the final nodecore addresses from getbalance will show A, B, and C.<br />
<br />
See: [[NodeCore_CommandLine#backupwallet]], [[NodeCore_File_Structure]]<br />
<br />
Syntax<br />
<pre><br />
importwallet <sourceLocation><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
importwallet C:\MyBackups\wallet_backup.dat<br />
<br />
#output<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== listbannedminers ===<br />
<br />
<pre><br />
listbannedminers<br />
Returns a list of UCP clients that are currently banned<br />
</pre><br />
<br />
=== listbannedpeers ===<br />
Lists banned peers<br />
<pre><br />
(VBK_CLI rpc (127.0.0.1:10500)) > listbannedpeers<br />
listbannedpeers<br />
{<br />
"banned_peers": []<br />
}<br />
</pre><br />
<br />
<br />
=== listallowed ===<br />
<br />
Returns a list of allowed whitelist addresses<br />
<br />
<pre><br />
listallowed<br />
</pre><br />
<br />
=== lockwallet ===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
lockwallet<br />
Disables the temporary unlock on the NodeCore wallet<br />
</pre><br />
<br />
=== makeunsignedmultisigtx ===<br />
<br />
<pre><br />
makeunsignedmultisigtx <sourceAddress> <amount> <destinationAddress> [transactionFee] [signatureIndex]<br />
(Generates an unsigned multisig transaction)<br />
</pre><br />
<br />
=== refreshwalletcache ===<br />
<br />
See also: [[NodeCore_CommandLine#getwallettransactions]]<br />
<br />
<pre><br />
refreshwalletcache<br />
Rescans the blockchain for transactions belonging to imported wallets<br />
</pre><br />
<br />
=== removeallowed ===<br />
<br />
<pre><br />
removeallowed <address><br />
Remove allowed addresses<br />
</pre><br />
<br />
=== removenode ===<br />
<br />
Removes the peer address from the configuration<br />
<br />
Syntax<br />
<pre><br />
removenode <peer><br />
</pre><br />
<br />
Example<br />
<br />
<pre><br />
# input<br />
removenode 93.130.33.180:10500<br />
<br />
#output (also run getpeerinfo to see the node removed)<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
</pre><br />
<br />
=== restartpoolwebserver ===<br />
<br />
<pre><br />
restartpoolwebserver<br />
Restarts the built-in pool web server<br />
</pre><br />
<br />
=== send ===<br />
<br />
Send coins to the specified address. Will automatically pick a source address that has sufficient coins.<br />
<br />
Can return multiple Transactions if pulling from multiple addresses.<br />
<br />
Syntax<br />
<pre><br />
send <amount> <destinationAddress> [sourceAddress]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#send 1000 coins to address "VE2TkS4er4JeZJRnPkSKUdSeaAew5E"<br />
send 1000 VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
<br />
#returns the VBK transaction ID<br />
rpc (127.0.0.1:10501) > {<br />
"payload": {<br />
"txids": [<br />
"76796500882C927FF057BDA528C94BE883A06A1B6430655067ACF51F09A6E376",<br />
"79AC6FFE176F068BBB0F5B4F79A2FD1AA92925CA9310FEC58236E220804B58DF"<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== setdefaultaddress ===<br />
<br />
Sets a new default address. This is what will show up when running getinfo<br />
<br />
<pre><br />
setdefaultaddress <address><br />
(Sets the default address of a NodeCore instance)<br />
</pre><br />
<br />
=== settxfee ===<br />
<br />
Sets the transaction fee per byte. You can view the transaction fee by running getinfo<br />
<br />
Syntax<br />
<pre><br />
settxfee <transactionFee><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#Set the transaction fee<br />
settxfee 0.00001000<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== signhexmessage ===<br />
<br />
<pre><br />
signhexmessage <address> <message><br />
(Signs a hex-encoded message with the addresses private key)<br />
</pre><br />
<br />
<br />
=== sigindex ===<br />
<br />
Return the signature index for the specified address<br />
<br />
Syntax<br />
<pre><br />
sigindex [address]<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#get the signature index<br />
sigindex VE2TkS4er4JeZJRnPkSKUdSeaAew5E<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {<br />
"addresses": [<br />
{<br />
"pool_index": -1,<br />
"address": "VE2TkS4er4JeZJRnPkSKUdSeaAew5E",<br />
"blockchain_index": -1<br />
}<br />
]<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
<br />
</pre><br />
<br />
=== signmessage ===<br />
<br />
Signs a message with the addresses private key<br />
<br />
Syntax<br />
<pre><br />
signmessage <address> <message><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#sign a message, infer the private key from the address<br />
signmessage VDonzX9vwXxcL9BapJWkhnBiyAX6ia ThisIsSomeText<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": "MEYCIQDDxExDiIGkjxrs20cl5RhlbHo5MEgSdub+MmdEE5d21AIhAJk7alAVUAuH/+j3/PuUY7BEuLtH4vIjAFwvGEaLdexh",<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== startpool ===<br />
<br />
Starts the built-in pool service in NodeCore.<br />
<br />
Requires permissions.<br />
<br />
Syntax<br />
<pre><br />
startpool <type><br />
(Starts the built-in pool service in NodeCore)<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#start the UCP pool on an instance<br />
<br />
#CPU<br />
startpool CPU<br />
<br />
#GPU<br />
startpool GPU<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== startsolopool ===<br />
<br />
<pre><br />
startsolopool [address]<br />
Starts the built-in pool service in NodeCore in solo mode<br />
</pre><br />
<br />
=== stopnodecore ===<br />
<br />
Gracefully stops the connected instance of NodeCore. Very useful for remote instances.<br />
<br />
An alternative is to CTRL+C NodeCore.<br />
<br />
=== stoppool ===<br />
<br />
Stops the built-in pool service in NodeCore<br />
<br />
Syntax<br />
<pre><br />
stoppool<br />
</pre><br />
<br />
Examples:<br />
<pre><br />
stoppool<br />
<br />
#returns info for a specific command<br />
rpc (127.0.0.1:10500) > {<br />
"payload": {},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre><br />
<br />
=== submitmultisigtx ===<br />
<br />
[[How_to_Submit_Multisig_Tx]]<br />
<br />
<br />
=== troubleshootpopbyaddress ===<br />
<br />
<pre><br />
Command: Troubleshoot PoP By Address<br />
<br />
troubleshootpopbyaddress <onlyFailures> [searchLength] [address]<br />
(Returns a troubleshooting report of the PoP transaction(s) matching the provided address in the specified history)<br />
<br />
Example:<br />
troubleshootpopbyaddress true 1000 VHPgy7kUNtkKFLdx3CyB6rAyHAhd7n<br />
<br />
</pre><br />
<br />
=== unlockwallet===<br />
<br />
See: [[Wallet_Encryption]]<br />
<br />
<pre><br />
Command: Unlock Wallet<br />
<br />
unlockwallet<br />
Temporarily unlocks the NodeCore wallet<br />
</pre><br />
<br />
=== validateaddress ===<br />
<br />
Returns details about an address if it's valid<br />
<br />
Syntax<br />
<pre><br />
validateaddress <address><br />
</pre><br />
<br />
Examples:<br />
<pre><br />
#Check a specific address<br />
validateaddress VazUQm9TaPmbhTWEi6FYUUPp28Eynq<br />
<br />
#returns info for a specific command<br />
rpc (77.46.106.162:10500) > {<br />
"payload": {<br />
"address": "VazUQm9TaPmbhTWEi6FYUUPp28Eynq",<br />
"is_remote": false,<br />
"public_key": "3056301006072A8648CE3D020106052B8104000A034200042704DEA2E9BDB74133E298C3AAD8E76588E48AED614674869380B959BB49DF69E8DAA1B7EF4E14240952C2BB082C89FB54A528D6502F8934E1BDA95F651F8D29"<br />
},<br />
"success": true,<br />
"messages": []<br />
}<br />
<br />
</pre></div>Leonardhttps://wiki.veriblock.org/index.php?title=NodeCore_HTTP_API&diff=2260NodeCore HTTP API2019-08-02T05:36:09Z<p>Leonard: /* Making a Request */</p>
<hr />
<div>See: [[Developer_Guide]], [[GRPC]]<br />
<br />
== Overview ==<br />
<br />
NodeCore v0.4.5 introduces an HTTP API to supplement the existing gRPC Admin API. All methods currently available in the gRPC API are also available in the HTTP API.<br />
<br />
== Usage ==<br />
<br />
By default, the HTTP API is bound to 127.0.0.1:10600. Assuming the defaults are left as is, documentation of the API methods and request/response types can be found at [http://localhost:10600/api/docs http://localhost:10600/api/docs].<br />
<br />
The API follows the [https://www.jsonrpc.org/specification JSON-RPC 2.0 Specification]. All API requests are made to [http://localhost:10600/api http://localhost:10600/api]. Both request and response will use the '''application/json''' content type.<br />
<br />
=== Making a Request ===<br />
<br />
In accordance with the JSON-RPC specification, there is a standard request object format:<br />
<br />
<pre>{<br />
"jsonrpc": "2.0",<br />
"method": "getblocks",<br />
"params": {...},<br />
"id": 1<br />
}</pre><br />
<br />
* '''jsonrpc''': Always "2.0" value<br />
* '''method''': The RPC method name to invoke. Reference the internal API documentation at [http://localhost:10600/api/docs#core.Admin http://localhost:10600/api/docs#core.Admin] for the list of methods available.<br />
* '''params''': The RPC method-specific request parameters. The internal API documentation describes the request objects for each method.<br />
* '''id''': A string or number determined by the client to uniquely identify the request. This same id will be used in the response.<br />
<br />
Example getinfo<br />
<br />
<pre>{<br />
"jsonrpc": "2.0",<br />
"method": "getinfo",<br />
"params": {},<br />
"id": 1<br />
}</pre><br />
<br />
Example getblocks<br />
<br />
<pre>{<br />
"jsonrpc": "2.0",<br />
"method": "getblocks",<br />
"params": {<br />
"searchLength": 2000,<br />
"filters": [{index: 349601}]<br />
}</pre><br />
<br />
=== Responses ===<br />
<br />
The standard response object format:<br />
<br />
<pre>{<br />
"jsonrpc": "2.0",<br />
"result": {...},<br />
"id": 1<br />
}</pre><br />
<br />
* '''jsonrpc''': Always "2.0" value<br />
* '''result''': The RPC method-specific response object. The internal API documentation describes the response objects for each method.<br />
* '''id''': The exact string or number supplied by the client in the request object.<br />
<br />
=== Configuration ===<br />
<br />
The IP address and port to which the HTTP API is bound can be configured by modifying the ''nodecore.properties'' file. The default values are:<br />
<br />
<pre>http.api.bind.address = 127.0.0.1<br />
http.api.bind.port = 10600</pre><br />
<br />
=== Security ===<br />
<br />
If the '''rpc.security.password.enabled''' property in the ''nodecore.properties'' file is set to to '''true''', requests to the HTTP API will require the additional header '''X-VBK-RPC-PASSWORD''' to be set. The value of this header corresponds to the password defined in the property '''rpc.security.password''' in ''nodecore.properties''.</div>Leonardhttps://wiki.veriblock.org/index.php?title=NodeCore_HTTP_API&diff=2259NodeCore HTTP API2019-08-02T05:21:58Z<p>Leonard: /* Usage */</p>
<hr />
<div>See: [[Developer_Guide]], [[GRPC]]<br />
<br />
== Overview ==<br />
<br />
NodeCore v0.4.5 introduces an HTTP API to supplement the existing gRPC Admin API. All methods currently available in the gRPC API are also available in the HTTP API.<br />
<br />
== Usage ==<br />
<br />
By default, the HTTP API is bound to 127.0.0.1:10600. Assuming the defaults are left as is, documentation of the API methods and request/response types can be found at [http://localhost:10600/api/docs http://localhost:10600/api/docs].<br />
<br />
The API follows the [https://www.jsonrpc.org/specification JSON-RPC 2.0 Specification]. All API requests are made to [http://localhost:10600/api http://localhost:10600/api]. Both request and response will use the '''application/json''' content type.<br />
<br />
=== Making a Request ===<br />
<br />
In accordance with the JSON-RPC specification, there is a standard request object format:<br />
<br />
<pre>{<br />
"jsonrpc": "2.0",<br />
"method": "getblocks",<br />
"params": {...},<br />
"id": 1<br />
}</pre><br />
<br />
* '''jsonrpc''': Always "2.0" value<br />
* '''method''': The RPC method name to invoke. Reference the internal API documentation at [http://localhost:10600/api/docs#core.Admin http://localhost:10600/api/docs#core.Admin] for the list of methods available.<br />
* '''params''': The RPC method-specific request parameters. The internal API documentation describes the request objects for each method.<br />
* '''id''': A string or number determined by the client to uniquely identify the request. This same id will be used in the response.<br />
<br />
=== Responses ===<br />
<br />
The standard response object format:<br />
<br />
<pre>{<br />
"jsonrpc": "2.0",<br />
"result": {...},<br />
"id": 1<br />
}</pre><br />
<br />
* '''jsonrpc''': Always "2.0" value<br />
* '''result''': The RPC method-specific response object. The internal API documentation describes the response objects for each method.<br />
* '''id''': The exact string or number supplied by the client in the request object.<br />
<br />
=== Configuration ===<br />
<br />
The IP address and port to which the HTTP API is bound can be configured by modifying the ''nodecore.properties'' file. The default values are:<br />
<br />
<pre>http.api.bind.address = 127.0.0.1<br />
http.api.bind.port = 10600</pre><br />
<br />
=== Security ===<br />
<br />
If the '''rpc.security.password.enabled''' property in the ''nodecore.properties'' file is set to to '''true''', requests to the HTTP API will require the additional header '''X-VBK-RPC-PASSWORD''' to be set. The value of this header corresponds to the password defined in the property '''rpc.security.password''' in ''nodecore.properties''.</div>Leonardhttps://wiki.veriblock.org/index.php?title=PoP_Miner_API&diff=2258PoP Miner API2019-07-29T08:08:29Z<p>Leonard: /* GET /api/miner */</p>
<hr />
<div><languages/><br />
<br />
<translate><br />
<br />
<br />
<!--T:1--><br />
== Introduction ==<br />
<br />
The VeriBlock PoP Mining software has an embedded HTTP API that makes available some basic functionality for third-party integrations. By default, this HTTP API is bound to 127.0.0.1:8600. Both the host address and port can be configured in the '''ncpop.properties''' file via the properties: ''http.api.address'' and ''http.api.port'', respectively. If running multiple miners on a single machine, each miner will need at least the port configured uniquely or it will be unable to start the embedded HTTP server.<br />
<br />
Any requests requiring a message body should be formatted as JSON, and conversely all responses will be formatted as JSON as well.<br />
<br />
<br />
NOTE: This requires 0.3.12-rc.5 of the PoP Miner CLI or higher.<br />
<br />
Sample client to call PoP API: https://github.com/VeriBlock/samples/tree/master/pop/pop-api-client/csharp/PoPClient<br />
<br />
<!--T:2--><br />
=== Setup the API ===<br />
<br />
# [OPTIONAL] In "ncpop.properties", configure the http.api.address and http.api.port. If not configured, by default these will be 127.0.0.1:8600<br />
# Start the PoP Miner. See: https://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner<br />
# Ensure the PoP Miner is ready to mine. If the PoP Miner cannot run the "mine" command, then the API will not run the "mine" command either.<br />
<br />
<!--T:2--><br />
== API Documentation ==<br />
<br />
<!--T:3--><br />
=== GET /api/config ===<br />
<br />
Lists the effective configuration values. Same as running '''listconfig''' from the command-line. The response will be formatted as a JSON object in which each property name represents the configuration name and the property value represents the configuration value.<br />
<br />
<!--T:4--><br />
==== Response ====<br />
<br />
<nowiki><br />
{<br />
"auto.mine.round1": "false",<br />
"pop.cron.schedule": "",<br />
"bitcoin.fee.max": "8000",<br />
"bitcoin.fee.perkb": "20000",<br />
"http.api.port": "8600",<br />
"bitcoin.minrelayfee.enabled": "false",<br />
"nodecore.rpc.password": "",<br />
"nodecore.rpc.ssl": "false",<br />
"nodecore.rpc.cert.chain.path": "",<br />
"http.api.address": "127.0.0.1",<br />
"bitcoin.network": "mainnet",<br />
"nodecore.rpc.host": "127.0.0.1",<br />
"pop.action.timeout": "90",<br />
"nodecore.rpc.port": "10501",<br />
"auto.mine.round4": "false",<br />
"auto.mine.round3": "false",<br />
"auto.mine.round2": "false"<br />
}</nowiki><br />
<br />
=== PUT /api/config ===<br />
<br />
Updates a single configuration value. Same as running '''setconfig''' from the command-line.<br />
<br />
==== Request ====<br />
<br />
Request properties:<br />
<br />
{| class="wikitable"<br />
! style="text-align:left;"| Property<br />
! style="text-align:left;"| Constraint<br />
! style="text-align:left;"| Data Type<br />
! style="text-align:left;"| Description<br />
|-<br />
|key<br />
|Required<br />
|String<br />
|Represents the name of a configuration property to set. Possible values are listed under GET /api/config.<br />
|-<br />
|value<br />
|Required<br />
|String<br />
|Represents the value to be set for a given configuration property. The value should be a string but must be convertible to the appropriate type for that configuration property. (E.g. "auto.mine.round1" must have a value of "true" or "false")<br />
|}<br />
<br />
<nowiki><br />
{<br />
"key": "auto.mine.round4",<br />
"value": "true"<br />
}</nowiki><br />
<br />
==== Response ====<br />
<br />
A successful request will return a 200 OK status code response with the following body:<br />
<nowiki><br />
[<br />
{}<br />
]</nowiki><br />
<br />
An unsuccessful action will return a 500 Server Error status code with some explanation for the failure in the body:<br />
<nowiki><br />
[<br />
{<br />
"details": [<br />
"Property 'pop.action.timeout' requires a positive integer value representing the number of seconds to wait before timing out."<br />
]<br />
}<br />
]</nowiki><br />
<br />
=== GET /api/miner ===<br />
<br />
Lists several miner properties, like the BTC address and amount, and VBK address.<br />
<br />
The very first time this is called, if the 'y' acknowledgement hasn't been accepted yet, it will also list the wallet seeds.<br />
<br />
NOTE: pass in '-skipAck' from the command line on startup to bypass the 'y' acknowledgement and therefore automate a fully new instance<br />
<br />
==== Response ====<br />
<br />
<pre><br />
{<br />
"minerAddress": "V9uC3ywS12qW4ESD9783eZXVU3voMo",<br />
"bitcoinAddress": "1CRb4b5u2AYdaoovgV9aQWV3kSt9x66rJq",<br />
"bitcoinBalance": 0,<br />
"walletSeed": [<br />
"1548958861",<br />
"cave",<br />
"conduct",<br />
"pottery"<br />
]<br />
}<br />
</pre><br />
<br />
=== GET /api/operations ===<br />
<br />
Lists the current running operations. Same as running '''listoperations''' from the command-line.<br />
<br />
==== Response ====<br />
<br />
<pre><br />
[<br />
{<br />
"operationId": "ce3c3e8b",<br />
"endorsedBlockNumber": 22,<br />
"state": "RUNNING",<br />
"action": "Waiting for transaction to be included in Bitcoin block",<br />
"message": ""<br />
},<br />
{<br />
"operationId": "736be6e4",<br />
"endorsedBlockNumber": 22,<br />
"state": "RUNNING",<br />
"action": "Waiting for transaction to be included in Bitcoin block",<br />
"message": ""<br />
}<br />
]<br />
</pre><br />
<br />
=== GET /api/operations/:id ===<br />
<br />
Gets the details of the specified operation. Same as running '''getoperation''' from the command-line. ''':id''' is to be substituted with an actual operation ID, e.g. GET /api/operations/797b3b15<br />
<br />
==== Response ====<br />
<br />
<nowiki>{<br />
"operationId": "ce3c3e8b",<br />
"status": "RUNNING",<br />
"currentAction": "WAIT",<br />
"miningInstruction": {<br />
"publicationData": [<br />
...<br />
],<br />
"endorsedBlockHeader": [<br />
...<br />
],<br />
"lastBitcoinBlock": [<br />
...<br />
],<br />
"minerAddress": [<br />
...<br />
],<br />
"endorsedBlockContextHeaders": [<br />
[<br />
...<br />
]<br />
]<br />
},<br />
"transaction": [<br />
...<br />
],<br />
"submittedTransactionId": "2897ba47dfed819879ebe3c5cdbb17e56fcc15d49e3cb42331d2c683b949aeb3",<br />
"merklePath": "",<br />
"detail": "",<br />
"popTransactionId": ""<br />
}</nowiki><br />
<br />
=== POST /api/mine ===<br />
<br />
Begins a new mining operation. Same as running '''mine''' from the command-line.<br />
<br />
==== Request ====<br />
<br />
Request properties:<br />
<br />
{| class="wikitable"<br />
! style="text-align:left;"| Property<br />
! style="text-align:left;"| Constraint<br />
! style="text-align:left;"| Data Type<br />
! style="text-align:left;"| Description<br />
|-<br />
|block<br />
|Optional<br />
|Integer<br />
|Represents a specific block number to endorse in this mining operation.<br />
|}<br />
<br />
<nowiki><br />
{<br />
"block": 32040<br />
}</nowiki><br />
<br />
By not specifying a block number the most recent VeriBlock block will be endorsed. An empty JSON object must be sent in the body:<br />
<br />
<nowiki>{}</nowiki><br />
<br />
==== Response ====<br />
<br />
If the miner is able to successfully begin a new operation a 200 OK response will be return with the following body:<br />
<br />
<nowiki>{<br />
"operationId": "c692ed9e",<br />
"failed": false,<br />
"messages": [<br />
{<br />
"code": "V201",<br />
"message": "Mining operation started",<br />
"details": [<br />
"To view details, run command: getoperation c692ed9e"<br />
],<br />
"error": false<br />
}<br />
]<br />
}</nowiki><br />
<br />
If the miner is unable to begin a 200 OK response will be returned, but will contain the following body:<br />
<br />
<nowiki>{<br />
"failed": true,<br />
"messages": [<br />
{<br />
"code": "V412",<br />
"message": "Miner is not ready",<br />
"details": [<br />
"Waiting for connection to NodeCore",<br />
"Bitcoin blockchain is not downloaded",<br />
"Bitcoin service is not ready"<br />
],<br />
"error": true<br />
}<br />
]<br />
}</nowiki><br />
<br />
</translate></div>Leonardhttps://wiki.veriblock.org/index.php?title=PoW_vs_PoP_Mining&diff=2256PoW vs PoP Mining2019-07-14T05:11:29Z<p>Leonard: </p>
<hr />
<div><languages/><br />
<translate><br />
<!--T:1--><br />
See: [[Main_Page]]<br />
<br />
<!--T:2--><br />
__TOC__<br />
<br />
== Overview == <!--T:3--><br />
<br />
<!--T:4--><br />
Blockchain stats:<br />
* Total supply = 2.1B --> this applies to both TestNet and MainNet<br />
* A new block is expected every 30 seconds.<br />
* The total block reward is 165 VBK. This is split 50-50 among PoW and PoP<br />
* Halving period: Every 4 years; 210000 * 20 = 4,200,000 blocks<br />
<br />
<!--T:5--><br />
There are two types of VeriBlock mining:<br />
<br />
<!--T:6--><br />
{| class="wikitable"<br />
! <br />
! Proof-of-Work<br />
! Proof-of-Proof<br />
|-<br />
| Abbreviation<br />
| PoW<br />
| PoP<br />
|-<br />
| Purpose<br />
| Adds the next block<br />
| Secures a block to Bitcoin<br />
New Protocol<br />
See: [[PoP_Transaction_LifeCycle]]<br />
|-<br />
| How to run<br />
| [[HowTo_run_PoW_Miner]]<br />
| [[HowTo_run_PoP_Miner]]<br />
|-<br />
| Reward<br />
| 82.5 (Split among pool that won the block)<br />
| Average of 82.5 (Split among other miners)<br />
|-<br />
| Reward Coin Type<br />
| VBK<br />
| VBK<br />
|-<br />
| Limited by?<br />
| Processing power (Hardware like CPU, GPU) and electricity spent.<br />
You could run many PoW miners to get more hashes.<br />
| BTC for transaction fees.<br />
You'd likely have just 1 PoP miner, but feed it more BTC to do more PoP transactions<br />
|-<br />
| Payout<br />
| Shortly after block confirmed<br />
| In 500 VBK blocks<br />
|-<br />
| Requirs BTC to run?<br />
| No<br />
| Yes<br />
|-<br />
| Pool Mining<br />
| Yes (see: [[HowTo_run_and_connect_to_PoW_Miner_pool]])<br />
| No<br />
|-<br />
| Interactive<br />
| No<br />
| Yes<br />
|-<br />
| Can mine with GPU?<br />
| Yes<br />
| No<br />
|}<br />
<br />
<br />
=== TestNet Sunrise ===<br />
<br />
{| class="wikitable"<br />
! <br />
! Proof-of-Work<br />
! Proof-of-Proof<br />
|-<br />
| Reward<br />
| 43.75 (Split among pool that won the block)<br />
| Average of 43.75 (Split among other miners)<br />
|}<br />
<br />
=== MainNet ===<br />
<br />
{| class="wikitable"<br />
! <br />
! Proof-of-Work<br />
! Proof-of-Proof<br />
|-<br />
| Reward<br />
| 82.5 (Split among pool that won the block)<br />
| Average of 82.5 (Split among other miners)<br />
|}<br />
<br />
== FAQ == <!--T:7--><br />
<br />
=== Should I mine both PoW and PoP? === <!--T:8--><br />
<br />
<!--T:9--><br />
There is opportunity in both forms; individual miners can determine which is best for their situation.<br />
</translate></div>Leonardhttps://wiki.veriblock.org/index.php?title=Community_FAQ&diff=2224Community FAQ2019-05-31T10:51:13Z<p>Leonard: /* When will MainNet be available */</p>
<hr />
<div><languages/><br />
<br />
<translate><br />
<br />
<br />
<!--T:1--><br />
See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
<!--T:2--><br />
Common questions from telegram<br />
<br />
Link: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
<!--T:3--><br />
== Launch Questions ==<br />
=== When will MainNet be available ===<br />
MainNet Launch Date = Monday, March 25 at 10am EDT (2pm UTC).<br />
<br />
== Mining ==<br />
<br />
=== Is miner CPU or GPU ===<br />
<br />
Yes, there is both a CPU and GPU: [[HowTo_run_PoW_Miner]]<br />
<br />
However given the GPU is much much faster for PoW mining... CPU users encouraged to PoP mine instead of PoW mine.<br />
<br />
=== What algorithm do you use? ===<br />
<br />
vBlake, which is a custom version of BLAKE2b we created.<br />
<br />
=== Is it ASIC resistant? ===<br />
<br />
Is is intentionally not ASIC resistant (although there are not any ASICs yet since it's a new algorithm).<br />
<br />
== How to get started ==<br />
<br />
=== Where to get software ===<br />
Download the software on github: https://github.com/VeriBlock/nodecore-releases<br />
<br />
=== Can I mine the coin now? ===<br />
Yes, but we currently only have testnet. See: [[Mining_Sunrise_Phase]]<br />
<br />
<!--T:5--><br />
== General ==<br />
<br />
=== How long does it take to get a block? ===<br />
<br />
About 30 seconds. See: [[PoW_vs_PoP_Mining]]<br />
<br />
=== Is VeriBlock a fork of some other similar-sounding coin (Veri___) ===<br />
<br />
No. VeriBlock is a brand new coin.<br />
<br />
<br />
=== Can I upload my log file somewhere? ===<br />
<br />
Yes, create a new issue on https://github.com/VeriBlock/nodecore-releases/issues. There is a file-size limit enforced by github, but you should be able to attach log files.<br />
<br />
</translate></div>Leonardhttps://wiki.veriblock.org/index.php?title=Community_Resource_Contributions&diff=2217Community Resource Contributions2019-05-09T14:31:25Z<p>Leonard: /* Calculator */</p>
<hr />
<div><languages/><br />
<br />
<translate><br />
<br />
<br />
<!--T:1--><br />
See: [[Main_Page]]<br />
<br />
<!--T:8--><br />
__TOC__ <br />
<br />
== Overview == <!--T:2--><br />
<br />
<!--T:9--><br />
This page is an incomplete list of various websites, tools, and other services built and maintained by the VeriBlock community.<br />
<br />
<!--T:10--><br />
Thanks to everyone who has contributed to these projects! If you don't see your project on the list, please jump on telegram (https://web.telegram.org/#/im?p=@VeriBlock) and share your idea!<br />
<br />
== Pool Resources == <!--T:3--><br />
<br />
=== KernelPanick Pool Statistics === <!--T:11--><br />
Courtesy of KernelPanick<br />
<br />
<!--T:12--><br />
https://veriblock.turbomypc.com/<br />
<br />
<!--T:13--><br />
[[File:Community_KP_1.png|600px]]<br />
<br />
=== Powershell script to ping pool response times === <!--T:14--><br />
<br />
<!--T:15--><br />
Courtesy of KernelPanick<br />
<br />
<!--T:16--><br />
https://gist.github.com/gsxryan/13390725dcadf08b727dc3571743ae0a<br />
<br />
=== Calculator ===<br />
<br />
https://vbk.dabpool.com/vbk-mining-calculator.html<br />
<br />
https://www.coincalculators.io/coin.aspx?crypto=veriblock-mining-calculator<br />
<br />
== GPU Miner Resources == <!--T:4--><br />
<br />
=== Preset GPU Miner script and readme === <!--T:17--><br />
<br />
<!--T:18--><br />
Courtesy of M K (@Owletek)<br />
<br />
<!--T:19--><br />
DISCLAIMER: This is an unofficial community contributon. The contents of this link may change at any time<br />
<br />
<!--T:20--><br />
Updated link: <br />
<br />
<!--T:21--><br />
http://www.vbpool.eu/files/Nvidia-CUDA-preset-miner.zip<br />
<br />
<br />
<!--T:22--><br />
[[File:Mk_miner_1.png|400px]]<br />
<br />
<!--T:23--><br />
(Old link: https://drive.google.com/open?id=14vxeaNsL640YirIl8BWZw0Yrah4HF9Rv, https://drive.google.com/file/d/1kTajp4gZDZOWEbDxtlT-kk1sbqkiRQzO/view?usp=sharing)<br />
<br />
== Tutorials == <!--T:5--><br />
<br />
=== Wallet === <!--T:24--><br />
* How to install the gui-wallet<br />
** https://www.youtube.com/watch?v=8xBUnHYIV_8&feature=youtu.be<br />
** Author: focanis#1122<br />
* Wallet<br />
** https://youtu.be/AG-CrGa8jik<br />
** Author: Martin Kuchar#7906<br />
<br />
=== Miner === <!--T:6--><br />
<br />
<!--T:25--><br />
* Arabic video to explain how to mine in nividia<br />
** https://youtu.be/f4TvH1knqwU<br />
** Author: focanis#1122<br />
* Miner<br />
** https://youtu.be/uifB-GcKlZs <br />
** Author: Martin Kuchar#7906<br />
* Miner and wallet import<br />
** Author: IMineBlocks#0910<br />
** https://www.youtube.com/watch?v=Uh5sgtcp15g<br />
<br />
== Other == <!--T:26--><br />
<br />
=== NC quick start install scripts === <!--T:7--><br />
<br />
<!--T:27--><br />
DISCLAIMER: These are community scripts<br />
<br />
<!--T:28--><br />
* Linux (OvercookedPanda) --> https://github.com/overcookedpanda/veriblock-scripts/blob/master/vbkinstall.sh<br />
* Windows (KernelPanick) --> https://gist.github.com/gsxryan/20795e55d1e8ef079e42062656cc7eea<br />
<br />
=== NC Upgrade script for windows === <!--T:29--><br />
<br />
<!--T:30--><br />
Courtesy of KernelPanick<br />
<br />
<!--T:31--><br />
https://gist.github.com/gsxryan/6da7fab06e038817a400cb09c0e6cdcf<br />
<br />
</translate></div>Leonardhttps://wiki.veriblock.org/index.php?title=Community_Resource_Contributions&diff=2216Community Resource Contributions2019-05-09T14:30:45Z<p>Leonard: /* Calculator */</p>
<hr />
<div><languages/><br />
<br />
<translate><br />
<br />
<br />
<!--T:1--><br />
See: [[Main_Page]]<br />
<br />
<!--T:8--><br />
__TOC__ <br />
<br />
== Overview == <!--T:2--><br />
<br />
<!--T:9--><br />
This page is an incomplete list of various websites, tools, and other services built and maintained by the VeriBlock community.<br />
<br />
<!--T:10--><br />
Thanks to everyone who has contributed to these projects! If you don't see your project on the list, please jump on telegram (https://web.telegram.org/#/im?p=@VeriBlock) and share your idea!<br />
<br />
== Pool Resources == <!--T:3--><br />
<br />
=== KernelPanick Pool Statistics === <!--T:11--><br />
Courtesy of KernelPanick<br />
<br />
<!--T:12--><br />
https://veriblock.turbomypc.com/<br />
<br />
<!--T:13--><br />
[[File:Community_KP_1.png|600px]]<br />
<br />
=== Powershell script to ping pool response times === <!--T:14--><br />
<br />
<!--T:15--><br />
Courtesy of KernelPanick<br />
<br />
<!--T:16--><br />
https://gist.github.com/gsxryan/13390725dcadf08b727dc3571743ae0a<br />
<br />
=== Calculator ===<br />
<br />
https://vbk.dabpool.com/vbk-mining-calculator.html<br />
https://www.coincalculators.io/coin.aspx?crypto=veriblock-mining-calculator<br />
<br />
== GPU Miner Resources == <!--T:4--><br />
<br />
=== Preset GPU Miner script and readme === <!--T:17--><br />
<br />
<!--T:18--><br />
Courtesy of M K (@Owletek)<br />
<br />
<!--T:19--><br />
DISCLAIMER: This is an unofficial community contributon. The contents of this link may change at any time<br />
<br />
<!--T:20--><br />
Updated link: <br />
<br />
<!--T:21--><br />
http://www.vbpool.eu/files/Nvidia-CUDA-preset-miner.zip<br />
<br />
<br />
<!--T:22--><br />
[[File:Mk_miner_1.png|400px]]<br />
<br />
<!--T:23--><br />
(Old link: https://drive.google.com/open?id=14vxeaNsL640YirIl8BWZw0Yrah4HF9Rv, https://drive.google.com/file/d/1kTajp4gZDZOWEbDxtlT-kk1sbqkiRQzO/view?usp=sharing)<br />
<br />
== Tutorials == <!--T:5--><br />
<br />
=== Wallet === <!--T:24--><br />
* How to install the gui-wallet<br />
** https://www.youtube.com/watch?v=8xBUnHYIV_8&feature=youtu.be<br />
** Author: focanis#1122<br />
* Wallet<br />
** https://youtu.be/AG-CrGa8jik<br />
** Author: Martin Kuchar#7906<br />
<br />
=== Miner === <!--T:6--><br />
<br />
<!--T:25--><br />
* Arabic video to explain how to mine in nividia<br />
** https://youtu.be/f4TvH1knqwU<br />
** Author: focanis#1122<br />
* Miner<br />
** https://youtu.be/uifB-GcKlZs <br />
** Author: Martin Kuchar#7906<br />
* Miner and wallet import<br />
** Author: IMineBlocks#0910<br />
** https://www.youtube.com/watch?v=Uh5sgtcp15g<br />
<br />
== Other == <!--T:26--><br />
<br />
=== NC quick start install scripts === <!--T:7--><br />
<br />
<!--T:27--><br />
DISCLAIMER: These are community scripts<br />
<br />
<!--T:28--><br />
* Linux (OvercookedPanda) --> https://github.com/overcookedpanda/veriblock-scripts/blob/master/vbkinstall.sh<br />
* Windows (KernelPanick) --> https://gist.github.com/gsxryan/20795e55d1e8ef079e42062656cc7eea<br />
<br />
=== NC Upgrade script for windows === <!--T:29--><br />
<br />
<!--T:30--><br />
Courtesy of KernelPanick<br />
<br />
<!--T:31--><br />
https://gist.github.com/gsxryan/6da7fab06e038817a400cb09c0e6cdcf<br />
<br />
</translate></div>Leonardhttps://wiki.veriblock.org/index.php?title=Nodecore.properties&diff=2201Nodecore.properties2019-05-02T08:53:24Z<p>Leonard: Changed, because with the previous value one pays an extreme amount of VBK as fee.</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
These are the parameters from the nodecore.properties file. They are used by NodeCore. The file is located in the bin folder. If it does not exist, then NodeCore will create it.<br />
<br />
<pre><br />
# The NodeCore network to participate in.<br />
# Required: Yes<br />
# Default value: testnet<br />
# Valid values: testnet<br />
network=testnet<br />
<br />
# Set to the public IP address for this node<br />
# Required: No<br />
# Default value: None<br />
peer.publish.address=<br />
<br />
# Indicates whether a random selection of peers from a bootstrapping pool should be used if no peers are configured<br />
# Required: Yes<br />
# Default value: true<br />
# Valid values: true | false<br />
peer.bootstrap.enabled=true<br />
<br />
# The bootstrapping pool of nodes. Comma-separated list of address:port. User should not modify<br />
# Required: Yes<br />
# Default value: 78.46.106.162:6500,94.130.33.180:6500,173.199.119.135:6500,144.202.49.232:6500,45.32.207.123:6500,207.148.85.146:6500,45.77.8.173:6500,207.148.122.103:6500<br />
# Valid values: comma-separated list of IP address:port, see default value for example.<br />
peer.bootstrap.hosts=78.46.106.162:6500,94.130.33.180:6500,173.199.119.135:6500,144.202.49.232:6500,45.32.207.123:6500,207.148.85.146:6500,45.77.8.173:6500,207.148.122.103:6500<br />
<br />
# The peers this node will attempt to connect with. Comma-separated list of address:port.<br />
# Required: No (If bootstrapping is turned on, this value will be automatically populated)<br />
# Default value: None<br />
# Valid values: comma-separated list of IP address:port<br />
peer.external.hosts=<br />
<br />
# The IP address to bind to for peer to peer communications<br />
# Required: Yes<br />
# Default value: 0.0.0.0<br />
# Valid values: A valid IP address bound to this node's network card<br />
peer.bind.address=0.0.0.0<br />
<br />
# The network port to bind to for peer to peer communication. Generally, user should not modify.<br />
# Required: No<br />
# Default value: 6500 (for TestNet)<br />
# Valid values: A valid network port between 1024-49151<br />
peer.bind.port=<br />
<br />
# The minimum number of peers with whom this node should attempt to establish connections<br />
# Required: Yes<br />
# Default value: 8<br />
# Valid values: An integer greater than 0<br />
peer.min.count=8<br />
<br />
# The maximum number of peers with whom this node may establish connections<br />
# Required: Yes<br />
# Default value: 500<br />
# Valid values: An integer greater than 0<br />
peer.max.count=500<br />
<br />
# A value indicating whether to include system OS version and Java runtime version as part of peer announce<br />
# Required: Yes<br />
# Default value: false<br />
# Valid values: true | false<br />
peer.share.platform=false<br />
<br />
# A value indicating whether peers should rebroadcast this node's information when asked for its peer table<br />
# Required: Yes<br />
# Default value: true<br />
# Valid values: true | false<br />
peer.share.myAddress=true<br />
<br />
# The IP address to bind to for RPC communications<br />
# Required: Yes<br />
# Default value: 127.0.0.1<br />
# Valid values: A valid IP address bound to this node's network card<br />
rpc.bind.address=127.0.0.1<br />
<br />
# The network port to bind to for RPC communication. Generally, user should not modify.<br />
# Required: No<br />
# Default value: 10501 (for TestNet)<br />
# Valid values: A valid network port between 1024-49151<br />
rpc.bind.port=10501<br />
<br />
# The maximum number of RPC requests before rate-limiting occurs. Generally, user should not modify.<br />
# Required: Yes<br />
# Default value: 100<br />
# Valid values: An integer greater than 0<br />
rpc.rate.limit=100<br />
<br />
# A list of addresses or address masks that are allowed to connect to the RPC endpoint.<br />
# Required: No<br />
# Default value: 127.0.0.1 (local connections only)<br />
# Valid values: Comma-separated list of [IP Address, e.g. 192.168.1.1] | [Wildcard IP Address, e.g. 192.168.1.*] | [CIDR, e.g. 192.168.0.0/16]<br />
rpc.whitelist.addresses=<br />
<br />
# The IP address to bind to for mining pool web stats. Generally, user should not modify.<br />
# Required: Yes<br />
# Default value: 127.0.0.1<br />
# Valid values: A valid IP address bound to this node's network card<br />
pool.stats.bind.address=127.0.0.1<br />
<br />
# The network port to bind to for mining pool web stats. Generally, user should not modify.<br />
# Required: Yes<br />
# Default value: 8500<br />
# Valid values: A valid network port between 1024-49151<br />
pool.stats.bind.port=8500<br />
<br />
# The IP address to bind to for Universal Communication Protocol (UCP), used by mining pool. Generally, user should not modify.<br />
# Required: Yes<br />
# Default value: 127.0.0.1<br />
# Valid values: A valid IP address bound to this node's network card<br />
ucp.mining.bind.address=127.0.0.1<br />
<br />
# The network port to bind to for Universal Communication Protocol (UCP). Generally, user should not modify.<br />
# Required: Yes<br />
# Default value: 8501<br />
# Valid values: A valid network port between 1024-49151<br />
ucp.mining.bind.port=8501<br />
<br />
rpc.security.mode=None<br />
rpc.security.cert.chain.path=server.crt<br />
rpc.security.client.cert.chain.path=<br />
rpc.security.private.key.path=server.pem<br />
rpc.security.password=<br />
rpc.security.password.enabled=false<br />
<br />
transaction.fee=0.00001000<br />
<br />
blockchain.search.length=2016<br />
</pre></div>Leonardhttps://wiki.veriblock.org/index.php?title=Bounties&diff=2187Bounties2019-04-19T16:21:20Z<p>Leonard: /* Fast Vanity Address Generator */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Bounties are to help the community and make the ecosystem better.<br />
<br />
See Discord for logistics details. See: [[Social_Links]]<br />
<br />
== Open Bounties ==<br />
<br />
<br />
=== Write Demo GRPC Client for Python or Node.js ===<br />
<br />
NodeCore has a grpc API.<br />
<br />
We would like to add a sample for python and node.js to help the community developers. <br />
<br />
This should at least show how to call common NodeCore grpc commands, including utilities to display addresses (Base58 encoded string), VBK amounts (convert from atomic long to formatted string with 8 decimals), and transactions/hashes (Hex).<br />
<br />
There is a sample C# client: https://github.com/VeriBlock/VeriBlock.Demo.Rpc.Client<br />
<br />
Code would be hosted here: https://github.com/VeriBlock/samples<br />
<br />
=== Fast Vanity Address Generator ===<br />
<br />
With the open sourcing of VeriBlock utilities, we want to make a faster vanity address generator.<br />
<br />
VeriBlock utilities here:<br />
https://github.com/VeriBlock/nodecore/tree/master/veriblock-core/src/main/java/org/veriblock/core<br />
<br />
Bounty amount TBD, we will be generous and fair.<br />
There are also many people in the community who will be appreciative.<br />
<br />
Criteria:<br />
1. Must be open-sourced on github.<br />
2. Judges for functional use and speed listed on Discord.<br />
<br />
This is intended as a fun and engaging community project.<br />
<br />
If multiple submissions, we will look at first-come and quality. Ultimately we will try to do the right thing.<br />
<br />
FYI, we had released a previous generator that wrapped the java code, but it could be made much faster:<br />
https://github.com/VeriBlock/nodecore-releases/releases/download/v0.1.1-tools/makeaddress-0.1.2.zip</div>Leonardhttps://wiki.veriblock.org/index.php?title=FPGA_Mining&diff=2182FPGA Mining2019-04-19T06:08:54Z<p>Leonard: </p>
<hr />
<div>__TOC__<br />
<br />
== Introduction ==<br />
The Proof-of-Work algorithm used by VeriBlock (vBlake) was designed to facilitate decentralization at every stage of the natural progression of mining hardware (CPU->GPU->FPGA->ASIC). The simplicity of the vBlake algorithm ensures that single developers or small development teams can produce near-optimal miners for any given hardware class, rather than allowing a single team or company make a massive breakthrough in the implementation and be the sole supplier of competitive miners. <br />
<br />
Additionally, the algorithm is small enough to fit onto low-cost consumer grade FPGAs, rather than requiring expensive high-end chips. This allows hobbyist miners to mine VeriBlock in a cost-competitive way with large-scale mining operations. There are also plans to open-source an RTL implementation of vBlake in the near future to allow FPGA developers to easily add vBlake support to more FPGAs.<br />
<br />
== Pool Software ==<br />
The built-in pool software included in VeriBlock's NodeCore software has a higher-difficulty setting to accomodate FPGA mining, see: [[HowTo_run_and_connect_to_PoW_Miner_pool#FPGA_Pools]]<br />
<br />
== Available FPGA Miners and Bitstreams ==<br />
Bitstreams for BCU/VCU1525 cards are available from [https://fpga.guide/en/whitefire/ whitefire] as well as from [https://miner.all-mine.co/ Allmine].<br />
<br />
Additionally, the [https://www.hashaltcoin.com/en/miners Blackminer F1 and F1-single (and likely F1+)] support vBlake, as well as their upcoming entry-level [https://www.hashaltcoin.com/en/batches/14 F1 Mini].<br />
<br />
== FAQ ==<br />
<br />
=== Is VeriBlock FPGA resistant? ===<br />
<br />
No.<br />
<br />
VeriBlock welcomes the most hashing power to secure the blockchain, and FPGAs are inevitable. Much like we are not "GPU resistant", we are also not "FPGA" resistant.</div>Leonard