https://wiki.veriblock.org/api.php?action=feedcontributions&user=TimStall&feedformat=atomVeriblock Wiki - User contributions [en]2024-03-29T13:53:32ZUser contributionsMediaWiki 1.33.1https://wiki.veriblock.org/index.php?title=Main_Page&diff=691Main Page2018-10-02T14:43:56Z<p>TimStall: </p>
<hr />
<div><br />
<br />
<br />
<!-- LEFT COLUMN --><br />
{| id="mp-upper" style="width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;"<br />
| class="MainPageBG" style="width:55%; border:1px solid #235fa6; background:#f5faff; vertical-align:top; color:#000;" |<br />
{| id="mp-left" style="vertical-align:top; background:#f5faff;width:100%;"<br />
! style="padding:2px;" | <h2 id="mp-tfa-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">VeriBlock</h2><br />
|-<br />
| style="color:#000; padding:2px 5px 5px;" | Welcome to the VeriBlock community wiki. See the official VeriBlock community website at: https://VeriBlock.org.<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Getting Started</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" |<br />
*[[Getting Started]]<br />
*[[FAQ]]<br />
*[[Altcoin Add VeriBlock]]<br />
*[[Network Health]]<br />
*More coming soon...<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Blockchain Architecture</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" |<br />
*[[Address]]<br />
*[[Block]]<br />
*[[Consensus]]<br />
*[[Ledger]]<br />
*More coming soon...<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Contributing</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
* [[Contribute To VeriBlock]]<br />
* [[Community Resource Contributions]]<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Development</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
* [[Demo Code]]<br />
* [[Dashboard API]]<br />
* Coming soon... (opensourced on github)<br />
|-<br />
<br />
|}<br />
| style="border:1px solid transparent;" |<br />
<br />
<!-- RIGHT COLUMN --><br />
| class="MainPageBG" style="width:45%; border:1px solid #235fa6; background:#f5faff; vertical-align:top;"|<br />
{| id="mp-right" style="width:100%; vertical-align:top; background:#f5faff;"<br />
! style="padding:2px" | <h2 id="mp-otd-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Communities</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
*[[Social Links]]<br />
*[[Telegram FAQ]]<br />
*[[Mining Sunrise Phase]], [[Mining High Noon]]<br />
*[[Bounty List]], [[Bounty Process]]<br />
*[[Community Announcements]]<br />
|-<br />
! style="padding:2px" | <h2 id="mp-otd-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Mining</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
*[[How to Mine VeriBlock]]<br />
*[[PoW vs PoP Mining]]<br />
*[[HowTo run PoW_Miner]]<br />
** [[HowTo run PoW CPU Miner]]<br />
** [[HowTo run PoW GPU Miner]]<br />
* [[List of mining pools testnet]]<br />
*[[HowTo run PoP Miner]], [[PoP Miner Rewards]]<br />
*[[HowTo run and connect to PoW Miner pool]]<br />
|-<br />
{| id="mp-right" style="width:100%; vertical-align:top; background:#f5faff;"<br />
! style="padding:2px" | <h2 id="mp-otd-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Technology</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
Reference:<br />
* [https://www.veriblock.com/wp-content/uploads/2017/09/PoP-White-Paper.pdf Proof-of-Proof WhitePaper]<br />
* [[NodeCore CommandLine]]<br />
* [[PoP Miner CommandLine]]<br />
* [[nodecore.properties]] config file<br />
* [[NodeCore File Structure]]<br />
* [[NodeCore Networking]]<br />
* [[PoP Transaction LifeCycle]]<br />
* [[TestNet]]<br />
How to:<br />
*[[HowTo connect NC CLI to remote NodeCore instance]]<br />
*[[HowTo run NodeCore]], [[NodeCore Operations]]<br />
<br />
|-<br />
|}<br />
|}<br />
<br />
<br />
__NOTOC__</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_and_connect_to_PoW_Miner_pool&diff=690HowTo run and connect to PoW Miner pool2018-10-01T16:02:12Z<p>TimStall: /* 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 />
[[File:Pool_1b.png|600px]]<br />
<br />
== Setup a Pool ==<br />
<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<br />
ucp.mining.bind.address=0.0.0.0<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 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 --reload<br />
</pre><br />
<br />
=== Choose a CPU or GPU pool ===<br />
<br />
A pool can be either CPU or GPU. Simply pass in the type to the command line:<br />
<br />
<pre><br />
#CPU<br />
startpool CPU<br />
<br />
#GPU<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 the Pool Fee ===<br />
<br />
Set these 2 nodecore.property values, and then restart nodecore:<br />
<br />
<pre><br />
pool.operator.fee -> Decimal value between 0 and 1, representing a percentage, i.e. 0.01 = 1%<br />
pool.operator.address the address that should receive the operator fee<br />
</pre><br />
<br />
== Connect to an Existing Pool ==<br />
<br />
# Run the PoW Miner<br />
# Specify thread count to mine on<br />
# Connect to the IP and port provided by the pool owner (Note that pools generally want to maximize users, to pools binding to 0.0.0.0 allow connections from any IP)<br />
# Enter the address to mine to (run getinfo from the [[NodeCore_CommandLine]])<br />
<br />
You can see pool results 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 />
Breakign 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 />
== 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 />
=== What is the difference between a CPU vs. GPU pool? ===<br />
<br />
CPU and GPU should connect to different pools.<br />
<br />
On a high-end GPU, the GPU miner is roughly 400 times faster than the CPU miner on a high-end CPU.<br />
<br />
In order to accommodate both types of mining, we have two different modes for the pool software which either accept shares at an appropriate difficulty for CPU miners, or an appropriate difficulty for GPU miners. Solo pools do not have to do this, because they can simply allow shares at any difficulty to be submitted, as the number of shares submitted by a particular miner is not relevant to payouts (since all payouts go to one address).<br />
<br />
The pool software when running in GPU mode will accept shares that represent roughly 4.26 GH of mining, and in CPU mode will accept shares that represent roughly 16.7 MH of mining. <br />
If mining on a public pool (a pool where other people are also mining), please ensure that the pool is running in the appropriate mode for your miner.<br />
<br />
=== How do I know if I'm connecting to a CPU or GPU pool? ===<br />
<br />
NodeCore pool should clearly tell. If it does not, ask the pool operator to upgrade NodeCore.<br />
<br />
For example, this is a CPU pool:<br />
<br />
[[File:Pool_html_CPU.png|600px]]<br />
<br />
GPU pool should say "GPU".<br />
<br />
[[File:Pool_html_GPU.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 />
=== 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 />
== 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 miner connects to port 8501<br />
111.194.224.159:8501<br />
</pre></div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_and_connect_to_PoW_Miner_pool&diff=689HowTo run and connect to PoW Miner pool2018-10-01T15:50:59Z<p>TimStall: /* Set the auto-restart option */</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 />
[[File:Pool_1b.png|600px]]<br />
<br />
== Setup a Pool ==<br />
<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<br />
ucp.mining.bind.address=0.0.0.0<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 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 --reload<br />
</pre><br />
<br />
=== Choose a CPU or GPU pool ===<br />
<br />
A pool can be either CPU or GPU. Simply pass in the type to the command line:<br />
<br />
<pre><br />
#CPU<br />
startpool CPU<br />
<br />
#GPU<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 the Pool Fee ===<br />
<br />
Set these 2 nodecore.property values, and then restart nodecore:<br />
<br />
<pre><br />
pool.operator.fee -> Decimal value between 0 and 1, representing a percentage, i.e. 0.01 = 1%<br />
pool.operator.address the address that should receive the operator fee<br />
</pre><br />
<br />
== Connect to an Existing Pool ==<br />
<br />
# Run the PoW Miner<br />
# Specify thread count to mine on<br />
# Connect to the IP and port provided by the pool owner (Note that pools generally want to maximize users, to pools binding to 0.0.0.0 allow connections from any IP)<br />
# Enter the address to mine to (run getinfo from the [[NodeCore_CommandLine]])<br />
<br />
You can see pool results 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 />
<pre><br />
http://testnet-pool-gpu.veriblock.org:8500/api/summary<br />
<br />
{<br />
"poolAddress": "V6fxAd4uvUi1N6TcM7K2TGqQvHamrf",<br />
"currentRound": "1999",<br />
"poolMiningBlock": "2996",<br />
"miningOnTopOfBlock": "000000000010D487ED53F7E21CF0D878C786B6D711438CB5",<br />
"blockchainHeight": "2995",<br />
"nodeCoreStartTime": "1536996531",<br />
"programVersion": "0.3.1",<br />
"poolType": "GPU",<br />
"isPoolOk": "true",<br />
"statusMessage": "poolMiningBlock 2996 is in sync with blockchainHeight 2995"<br />
}<br />
<br />
</pre><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 />
=== What is the difference between a CPU vs. GPU pool? ===<br />
<br />
CPU and GPU should connect to different pools.<br />
<br />
On a high-end GPU, the GPU miner is roughly 400 times faster than the CPU miner on a high-end CPU.<br />
<br />
In order to accommodate both types of mining, we have two different modes for the pool software which either accept shares at an appropriate difficulty for CPU miners, or an appropriate difficulty for GPU miners. Solo pools do not have to do this, because they can simply allow shares at any difficulty to be submitted, as the number of shares submitted by a particular miner is not relevant to payouts (since all payouts go to one address).<br />
<br />
The pool software when running in GPU mode will accept shares that represent roughly 4.26 GH of mining, and in CPU mode will accept shares that represent roughly 16.7 MH of mining. <br />
If mining on a public pool (a pool where other people are also mining), please ensure that the pool is running in the appropriate mode for your miner.<br />
<br />
=== How do I know if I'm connecting to a CPU or GPU pool? ===<br />
<br />
NodeCore pool should clearly tell. If it does not, ask the pool operator to upgrade NodeCore.<br />
<br />
For example, this is a CPU pool:<br />
<br />
[[File:Pool_html_CPU.png|600px]]<br />
<br />
GPU pool should say "GPU".<br />
<br />
[[File:Pool_html_GPU.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 />
=== 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 />
== 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 miner connects to port 8501<br />
111.194.224.159:8501<br />
</pre></div>TimStallhttps://wiki.veriblock.org/index.php?title=PoP_Miner_Rewards&diff=688PoP Miner Rewards2018-10-01T13:36:59Z<p>TimStall: </p>
<hr />
<div>See: [[HowTo_run_PoP_Miner]], [[PoP_Reward_Summary]]<br />
<br />
__TOC__<br />
<br />
== TLDR ==<br />
<br />
See: [[PoP_Reward_Summary]] for general guidelines on how PoP rewards work. This article is more technical about getting rewards with the PoP Miner.<br />
<br />
Here's a good process for anyone who wants to PoP Mine:<br />
# Get a syncing version of NodeCore first (obviously a big deal, hence we're very focused on the low-memory version)<br />
# Run the PoP miner with a high-enough fee, checking the BTC block explorer. You want "Time until confirm" to be < 30 minutes.<br />
## Run a single instance<br />
## First try the "mine" command before automating with a cron job<br />
## Try a low frequency like mining every 5 minutes (rapid mining may cause a deadlock on the local miner)<br />
# Let PoP run for 5 hours (it takes time for 500 tVBK blocks)<br />
# Check viewrecentrewards <br />
If after that, still no reward --> please send log files<br />
<br />
== Overview ==<br />
<br />
This is a high-level overview of how PoP rewards work. This page answers "if you do X, you have a good chance of getting greater-than-zero reward." It does not try to predict exactly what the reward would be, or the exact BTC needed for that reward (as this is due to constantly changing market forces and issues with the BTC difficulty adjustment algorithm that appear roughly once a month). The exact mechanics are not linear, and there is some luck involved (particularly during abnormal conditions on the BTC network, which happen occasionally).<br />
<br />
First, read [[HowTo_run_PoP_Miner]] to see the basic operations of the PoP Miner.<br />
<br />
PoP Mining works by:<br />
# Encapsulating an "endorsement" of a VeriBlock block in a Bitcoin transaction, submitting it to the BTC network, and waiting for it to be included in a BTC block<br />
# Submitting a "Proof-of-Proof" (PoP) transaction to NodeCore that proves your Bitcoin transaction was included in the BTC blockchain<br />
# Receiving a reward for your PoP transaction, which is paid out 500 blocks after the VeriBlock block you endorsed<br />
<br />
There are several variables involved in a successful mine and reward payout:<br />
* The most important factor is the timeliness of your Bitcoin transaction's inclusion in the Bitcoin blockchain. A Bitcoin transaction that is included in the first possible block is always rewarded the best. The reward tails off sharply for inclusion in subsequent blocks and eventually has no value at all.<br />
* '''The control mechanism the miner has over this timeliness factor is the Bitcoin transaction fee. The higher the fee (per byte) paid, the more likely the transaction will be included sooner.'''<br />
* The PoP reward is for the block that was endorsed, which is generally the most recent block on the VeriBlock network at the time when you began a PoP mining cycle (not the block the proof-of-proof transaction appears in). The total PoP reward is split between all the endorsements. Therefore, the more endorsements of a given block, the lower the reward per endorsement will be.<br />
<br />
Make sure to set your ncpop.properties file (these are example numbers, actual numbers will vary), and restart the PoP miner after saving your changes:<br />
<br />
<pre><br />
#A safety stop-gap. This is the absolute maximum total fee you are willing to pay for a Bitcoin transaction<br />
#An average PoP transaction is ~285 bytes, multiply 'bitcoin.fee.perbyte' x 285. Your bitcoin.fee.max value must be at least this much.<br />
#Measured in satoshis<br />
bitcoin.fee.max=300000<br />
<br />
#Something high enough to win (increase this if your BTC transactions are appearing "unconfirmed" on a block explorer after a new BTC block occurs)<br />
#Measured in satoshis<br />
bitcoin.fee.perbyte=1000<br />
</pre><br />
<br />
== What should the BTC Tx fee be? ==<br />
<br />
There is not an exact answer. Some game theory and risk is involved, and as other PoP miners increase their per-byte fee, the per-byte fee you will need to pay to compete with them will increase accordingly. Also note that a high BTC fee does not ''guarantee'' inclusion in the next BTC block; random factors like a BTC miner's refresh time, network latency, etc. can also play a small role. <br />
<br />
There is a spectrum of fees:<br />
<br />
{| class="wikitable"<br />
! BTC Fee/Byte<br />
! Spend BTC?<br />
! Win VBK?<br />
! Comment<br />
|-<br />
| Too low<br />
| No<br />
| No<br />
| Nothing happens: BTC transaction doesn't get on BTC blockchain, fee not spent, no PoP earned.<br />
|-<br />
| '''Danger Zone'''<br />
| Yes<br />
| No<br />
| Spend BTC but no PoP reward! If BTC transaction is too delayed then there is no PoP reward.<br />
|-<br />
| Border line<br />
| Yes<br />
| Yes<br />
| Fee may or may not be high enough to make it into first Bitcoin block, but does make it into a subsequent block. PoP reward is reduced.<br />
|-<br />
| Sufficient fee<br />
| Yes<br />
| Yes<br />
| A higher BTC fee usually means the BTC transaction is accepted more quickly, which leads to a higher PoP reward<br />
|}<br />
<br />
<br />
Check what the recent BTC fees are on a blockchain explorer. Take for example the following PoP transaction on tBTC (testnet BTC): https://www.blocktrail.com/tBTC/tx/8dbba547dd15907c5eb4757bfa061c7a62b900a020557fde60b19b6e2967cf7d. The Fee / KB is 0.00498592, so divide by 1000 to get the fee per byte: 0.000000499 (or 499 testnet-satoshis per byte). The miner who sent this PoP transaction had the setting 'bitcoin.fee.perbyte = 499' or 'bitcoin.fee.perbyte = 500' in their ncpop.properties file. Consider increasing or decreasing that value given your risk threshold and your observations of other PoP transactions on the tBTC network and their corresponding per-byte fees.<br />
<br />
https://www.blocktrail.com/tBTC<br />
<br />
[[File:Popreward 1.png|600px]]<br />
<br />
== Common reward questions ==<br />
<br />
=== How can I see my reward? ===<br />
<br />
In the PoP Miner, run the command '''viewrecentrewards'''<br />
<br />
Also run '''listoperations''' to view the current running operations and their status.<br />
<br />
=== I mined PoP, but saw no reward ===<br />
<br />
PoP is rewarded 500 blocks after the endorsed block. At an average of 30 seconds per block, this is about 4.5 hours. So first understand that rewards won't come for ~4.5 hours after your mine operation.<br />
<br />
# Make sure that your NodeCore instance is in sync with the latest block --> you should be able to run NC_CLI getinfo on your NodeCore instance.<br />
# Ensure that a BTC was submitted by the miner (if no transaction was submitted, there are likely other factors to address)<br />
# Make sure that your Bitcoin transaction has actually been confirmed in a block<br />
# Try to determine the timeliness of your BTC's transaction's inclusion. The BLOCKTRAIL BTC explorer, for example, includes a field '''Time until confirmed''' on the transaction detail that is a helpful gauge of timeliness.<br />
# If you are seeing PoP mining failures, check your PoP miner logs for suspect lines, see: [[#Log Troubleshooting]]<br />
# If still not seeing a reward, jump on our telegram channel or submit a github issue.<br />
<br />
=== My transaction is on BTC blockchain, but I got no reward ===<br />
<br />
Even if the PoP Transaction is on BTC, it may be in the "danger zone" where it took too long to be rewarded.<br />
<br />
If the "Time until confirmed" is > 20 minutes, there is risk of not getting rewarded. <br />
<br />
The way to increase chance of reward is to increase BTC transaction fee such that it is in an earlier block.<br />
<br />
[[File:Popreward_3.png|600px]]<br />
<br />
=== The status shows "Done", but I did not see a reward yet ===<br />
<br />
"Done" is a good sign, it means it made it through the mining life cycle.<br />
<br />
Similar to PoW mining, "Done" means there is nothing left for the Miner to do.<br />
<br />
Check the PoP command: viewrecentrewards ([[HowTo_run_PoP_Miner#viewrecentrewards]]) to see reward status at this point.<br />
<br />
A reward could be coming, or it is possible due to other reasons listed, that the mining operation finished without reward.<br />
<br />
=== I still do not see a reward ===<br />
<br />
If everything else is covered, then this should be a rare situation.<br />
<br />
Do not run multiple instances of the same executable<br />
<br />
Do not mine too frequently<br />
<br />
If the same log shows two mining operations kicked off at the exact same time - something is probably wrong - try running a single instance with one 'mine' command.<br />
<br />
<pre><br />
2018-08-15 10:00:00 INFO [miner] ... [aaaa7e51] Mining operation is now: RUNNING<br />
2018-08-15 10:00:00 INFO [miner] ... [bbbb85c1] Mining operation is now: RUNNING<br />
</pre><br />
<br />
=== Is my PoP Transaction on the BTC network? ===<br />
<br />
If you PoP mine, you should relatively quickly (within minutes) see an output like so:<br />
<br />
<pre><br />
INFO: Received pending tx '9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa', pending balance: '2.906723 BTC'<br />
...<br />
MINER: [2aaef35f] Submitted Bitcoin transaction: 9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa<br />
MINER: [2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
</pre><br />
<br />
And you should be able to see that on any BTC block explorer (this example uses BTC testnet), such as:<br />
<br />
https://www.blocktrail.com/tBTC/tx/9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa<br />
<br />
=== Who is winning PoP? ===<br />
<br />
This is publicly available from the Explorer.<br />
<br />
Looking at the "PoP payouts for this block protecting other blocks" section, one can see the addresses and block for which rewards were paid out:<br />
<br />
[[File:Popreward_2.png|400px]]<br />
<br />
== Avoid these common problems ==<br />
<br />
* If the BTC is too low, then the BTC transaction will not be accepted, and there will be no PoP reward<br />
* If the PoP Miner is not connected to a synced version of NodeCore, then the PoP transaction is not guaranteed to go through<br />
* Submitting a chain of 20+ unconfirmed transactions. As each new Bitcoin transaction consumes an unspent transaction output, you can only submit so many in a row without confirmation before peers reject the transactions outright. This manifests generally in two scenarios:<br />
** Submit too many transactions inside a Bitcoin block interval. If a normal Bitcoin block time is 10 minutes, and you submit more than 20+ transactions in that window, you'll be unable to continue submitting new transactions until some of your transactions eventually confirm.<br />
** Submit transactions with too low a fee that they just are not getting confirmed and a backlog accumulates. Again, if you reach 20+ transactions without confirming, you'll be unable to submit further.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== Standard Troubleshooting Process ===<br />
<br />
If you still cannot see PoP rewards, please follow these steps:<br />
<br />
<pre><br />
1. Run single instance of PoP Miner<br />
2. Run single mine command<br />
3. Give it a high BTC fee (high enough to ensure it's on BTC block explorer with confirm time < 10 minutes)<br />
4. Is there a PoP transaction ID?<br />
5. Does it go through all 9 phases listed here (note the whole process may take 5 hours): https://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner#PoP_Mining_Lifecycle. (If not, what was the last phase)?<br />
6. Can you send the specific BTC transaction ID and PoP Id, along with the PoP Log file?<br />
</pre><br />
<br />
<br />
<br />
=== Log Troubleshooting ===<br />
The PoP miner produces two log files.<br />
'''bitcoinj.nodecore-pop.log''' logs the behavior of BitcoinJ--the underlying SPV-level wallet library that the PoP miner uses to communicate with the Bitcoin network.<br />
'''veriblock.nodecore-pop.log''' logs the behavior of the PoP miner itself--activities like running a new mining command, statuses returned from BitcoinJ about the state of a transaction, info about connectivity to NodeCore, etc.<br />
<br />
If you are not receiving PoP rewards and have already set your fees at market-competitive rates as explained above, look for common errors.<br />
<br />
<br />
=== bitcoinj.nodecore-pop.log ===<br />
<br />
==== Received Reject: tx (txid) for reason 'too-long-mempool-chain' (64) ====<br />
<br />
'''Explanation:''' You have performed too many PoP transactions (generally >20) in a row without any getting confirmed by the BTC network (due to low fee and/or too-fast PoP mining rate), and the BTC network is temporarily rejecting any additional PoP transactions from you until some of your previous PoP transactions on BTC are confirmed.<br />
<br />
'''Troubleshooting steps:''' Try increasing your PoP miner's configured fee (see [[Overview]] for an example of how to do so) and/or decreasing the frequency at which you PoP mine (generally not recommended more frequently than once every 3 minutes per PoP miner instance)<br />
<br />
<br />
==== Waiting for 10 peers required for broadcast, we have 7 ... ====<br />
<br />
'''Explanation:''' The BitcoinJ library is having difficulty connecting to enough available peers to confirm that your PoP transactions are properly propagating across the network<br />
<br />
'''Troubleshooting steps:''' Try lowering the aggression of any firewall between the PoP miner and the internet, check the BitcoinJ logs for any indication of repeated connection failures to peers, and try restarting the PoP miner.<br />
<br />
<br />
==== Did not find block (block hash) in endorsed block context headers ====<br />
<br />
'''Explanation:''' BitcoinJ is having difficulty in getting all of the requisite context block headers to allow the VeriBlock blockchain to validate the PoP transaction in question. This is usually the result of the difficulty bomb in BTC being exploited (which resets the mining difficulty to 1 and results in several orders of magnitude more BTC blocks per unit time than expected).<br />
<br />
'''Troubleshooting steps:''' Check a popular BTC block explorer like [https://www.blocktrail.com/tBTC] and look at the block times. If blocks are coming in at a rate faster than roughly once every minute, then the extreme block time is likely the culprit (and you may need to wait a day for it to adjust if several subsequent PoP mining operations also fail). If blocks are coming in at a normal pace, then try closing the PoP miner, deleting the <br />
bitcoin-pop-testnet.spvchain file, restarting the PoP miner, and attempting to mine again.</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=687HowTo run PoP Miner2018-10-01T13:32:57Z<p>TimStall: /* FAQ */</p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]], [[PoP_Reward_Summary]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. The PoP Miner requires BTC for Bitcoin MainNet (not tBTC)<br />
2. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
Currently during the "High Noon" Phase (Starting Sept 13, 2018...), the PoP Miner mines to BTC MainNet, and requires BTC.<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| mainnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=mainnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin wallet, this contains your BTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== Does the PoP Miner require BTC or tBTC? ===<br />
<br />
BTC.<br />
<br />
Previously the TestNet PoP Miner required tBTC (testnet BTC) during the "Mining Sunrise" phase.<br />
<br />
After VBK MainNet launch, the VBK TestNet PoP Miner will again use BTC TestNet (tBTC), and the VBK MainNet PoP Miner will use BTC.<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-*.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For mainnet, acquire Bitcoin via normal means.<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
See: [[PoP_Miner_CommandLine]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=686HowTo run PoP Miner2018-10-01T13:30:48Z<p>TimStall: </p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]], [[PoP_Reward_Summary]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. The PoP Miner requires BTC for Bitcoin MainNet (not tBTC)<br />
2. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
Currently during the "High Noon" Phase (Starting Sept 13, 2018...), the PoP Miner mines to BTC MainNet, and requires BTC.<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| mainnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=mainnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin wallet, this contains your BTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-*.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For mainnet, acquire Bitcoin via normal means.<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
See: [[PoP_Miner_CommandLine]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=685HowTo run PoP Miner2018-10-01T13:29:51Z<p>TimStall: </p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]], [[PoP_Reward_Summary]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
Currently during the "High Noon" Phase (Starting Sept 13, 2018...), the PoP Miner mines to BTC MainNet, and requires BTC.<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| mainnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=mainnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin wallet, this contains your BTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-*.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For mainnet, acquire Bitcoin via normal means.<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
See: [[PoP_Miner_CommandLine]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=684HowTo run PoP Miner2018-10-01T13:20:19Z<p>TimStall: </p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]], [[PoP_Reward_Summary]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
If you have zero balance, then open up a testnet wallet (or go to a BTC Testnet faucet) and send coins to the PoP BTC address (in this case "mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk")<br />
<br />
Get Bitcoin testnet coins from a faucet. Running PoP on VeriBlock testnet requires a small amount of testnet Bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets. Send Bitcoin from the faucet to the PoP BTC address (in this example: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk).<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| testnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=testnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin testnet wallet, this contains your BTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-testnet.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
See: [[PoP_Miner_CommandLine]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=683List of mining pools testnet2018-10-01T13:08:26Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 173.208.214.230:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy)<br />
|-<br />
| 46.36.36.173:8501<br />
| http://mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 209.222.99.218:8501<br />
| http://vbk-pool.leafpool.com<br />
| CryptoMinerOS's pool (port 8500 hidden by proxy)<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=PoP_Miner_Rewards&diff=682PoP Miner Rewards2018-09-27T16:49:33Z<p>TimStall: /* TLDR */</p>
<hr />
<div>See: [[HowTo_run_PoP_Miner]], [[PoP_Reward_Summary]]<br />
<br />
__TOC__<br />
<br />
== TLDR ==<br />
<br />
See: [[PoP_Reward_Summary]] for general guidelines on how PoP rewards work. This article is more technical about getting rewards with the PoP Miner.<br />
<br />
Here's a good process for anyone who wants to PoP Mine:<br />
# Get a syncing version of NodeCore first (obviously a big deal, hence we're very focused on the low-memory version)<br />
# Run the PoP miner with a high-enough fee, checking the tBTC block explorer. You want "Time until confirm" to be < 30 minutes.<br />
## Run a single instance<br />
## First try the "mine" command before automating with a cron job<br />
## Try a low frequency like mining every 5 minutes (rapid mining may cause a deadlock on the local miner)<br />
# Let PoP run for 5 hours (it takes time for 500 tVBK blocks)<br />
# Check viewrecentrewards <br />
If after that, still no reward --> please send log files<br />
<br />
== Overview ==<br />
<br />
This is a high-level overview of how PoP rewards work. This page answers "if you do X, you have a good chance of getting greater-than-zero reward." It does not try to predict exactly what the reward would be, or the exact tBTC needed for that reward (as this is due to constantly changing market forces and issues with the tBTC difficulty adjustment algorithm that appear roughly once a month). The exact mechanics are not linear, and there is some luck involved (particularly during abnormal conditions on the tBTC network, which happen occasionally).<br />
<br />
First, read [[HowTo_run_PoP_Miner]] to see the basic operations of the PoP Miner.<br />
<br />
PoP Mining works by:<br />
# Encapsulating an "endorsement" of a VeriBlock block in a testnet Bitcoin transaction, submitting it to the tBTC network, and waiting for it to be included in a tBTC block<br />
# Submitting a "Proof-of-Proof" (PoP) transaction to NodeCore that proves your Bitcoin transaction was included in the tBTC blockchain<br />
# Receiving a reward for your PoP transaction, which is paid out 500 blocks after the VeriBlock block you endorsed<br />
<br />
There are several variables involved in a successful mine and reward payout:<br />
* The most important factor is the timeliness of your Bitcoin transaction's inclusion in the Bitcoin blockchain. A Bitcoin transaction that is included in the first possible block is always rewarded the best. The reward tails off sharply for inclusion in subsequent blocks and eventually has no value at all.<br />
* '''The control mechanism the miner has over this timeliness factor is the Bitcoin transaction fee. The higher the fee (per byte) paid, the more likely the transaction will be included sooner.'''<br />
* The PoP reward is for the block that was endorsed, which is generally the most recent block on the VeriBlock network at the time when you began a PoP mining cycle (not the block the proof-of-proof transaction appears in). The total PoP reward is split between all the endorsements. Therefore, the more endorsements of a given block, the lower the reward per endorsement will be.<br />
<br />
Make sure to set your ncpop.properties file (these are example numbers, actual numbers will vary), and restart the PoP miner after saving your changes:<br />
<br />
<pre><br />
#A safety stop-gap. This is the absolute maximum total fee you are willing to pay for a Bitcoin transaction<br />
#An average PoP transaction is ~285 bytes, multiply 'bitcoin.fee.perbyte' x 285. Your bitcoin.fee.max value must be at least this much.<br />
#Measured in satoshis<br />
bitcoin.fee.max=300000<br />
<br />
#Something high enough to win (increase this if your tBTC transactions are appearing "unconfirmed" on a block explorer after a new tBTC block occurs)<br />
#Measured in satoshis<br />
bitcoin.fee.perbyte=1000<br />
</pre><br />
<br />
== What should the tBTC Tx fee be? ==<br />
<br />
There is not an exact answer. Some game theory and risk is involved, and as other PoP miners increase their per-byte fee, the per-byte fee you will need to pay to compete with them will increase accordingly. Also note that a high tBTC fee does not ''guarantee'' inclusion in the next tBTC block; random factors like a tBTC miner's refresh time, network latency, etc. can also play a small role. <br />
<br />
There is a spectrum of fees:<br />
<br />
{| class="wikitable"<br />
! tBTC Fee/Byte<br />
! Spend tBTC?<br />
! Win VBK?<br />
! Comment<br />
|-<br />
| Too low<br />
| No<br />
| No<br />
| Nothing happens: BTC transaction doesn't get on BTC blockchain, fee not spent, no PoP earned.<br />
|-<br />
| '''Danger Zone'''<br />
| Yes<br />
| No<br />
| Spend tBTC but no PoP reward! If BTC transaction is too delayed then there is no PoP reward.<br />
|-<br />
| Border line<br />
| Yes<br />
| Yes<br />
| Fee may or may not be high enough to make it into first Bitcoin block, but does make it into a subsequent block. PoP reward is reduced.<br />
|-<br />
| Sufficient fee<br />
| Yes<br />
| Yes<br />
| A higher tBTC fee usually means the BTC transaction is accepted more quickly, which leads to a higher PoP reward<br />
|}<br />
<br />
<br />
Check what the recent tBTC fees are on a blockchain explorer. Take for example the following PoP transaction on tBTC: https://www.blocktrail.com/tBTC/tx/8dbba547dd15907c5eb4757bfa061c7a62b900a020557fde60b19b6e2967cf7d. The Fee / KB is 0.00498592, so divide by 1000 to get the fee per byte: 0.000000499 (or 499 testnet-satoshis per byte). The miner who sent this PoP transaction had the setting 'bitcoin.fee.perbyte = 499' or 'bitcoin.fee.perbyte = 500' in their ncpop.properties file. Consider increasing or decreasing that value given your risk threshold and your observations of other PoP transactions on the tBTC network and their corresponding per-byte fees.<br />
<br />
https://www.blocktrail.com/tBTC<br />
<br />
[[File:Popreward 1.png|600px]]<br />
<br />
== Common reward questions ==<br />
<br />
=== How can I see my reward? ===<br />
<br />
In the PoP Miner, run the command '''viewrecentrewards'''<br />
<br />
Also run '''listoperations''' to view the current running operations and their status.<br />
<br />
=== I mined PoP, but saw no reward ===<br />
<br />
PoP is rewarded 500 blocks after the endorsed block. At an average of 30 seconds per block, this is about 4.5 hours. So first understand that rewards won't come for ~4.5 hours after your mine operation.<br />
<br />
# Make sure that your NodeCore instance is in sync with the latest block --> you should be able to run NC_CLI getinfo on your NodeCore instance.<br />
# Ensure that a tBTC was submitted by the miner (if no transaction was submitted, there are likely other factors to address)<br />
# Make sure that your Bitcoin transaction has actually been confirmed in a block<br />
# Try to determine the timeliness of your tBTC's transaction's inclusion. The BLOCKTRAIL tBTC explorer, for example, includes a field '''Time until confirmed''' on the transaction detail that is a helpful gauge of timeliness.<br />
# If you are seeing PoP mining failures, check your PoP miner logs for suspect lines, see: [[#Log Troubleshooting]]<br />
# If still not seeing a reward, jump on our telegram channel or submit a github issue.<br />
<br />
=== My transaction is on BTC blockchain, but I got no reward ===<br />
<br />
Even if the PoP Transaction is on BTC, it may be in the "danger zone" where it took too long to be rewarded.<br />
<br />
If the "Time until confirmed" is > 20 minutes, there is risk of not getting rewarded. <br />
<br />
The way to increase chance of reward is to increase tBTC transaction fee such that it is in an earlier block.<br />
<br />
[[File:Popreward_3.png|600px]]<br />
<br />
=== The status shows "Done", but I did not see a reward yet ===<br />
<br />
"Done" is a good sign, it means it made it through the mining life cycle.<br />
<br />
Similar to PoW mining, "Done" means there is nothing left for the Miner to do.<br />
<br />
Check the PoP command: viewrecentrewards ([[HowTo_run_PoP_Miner#viewrecentrewards]]) to see reward status at this point.<br />
<br />
A reward could be coming, or it is possible due to other reasons listed, that the mining operation finished without reward.<br />
<br />
=== I still do not see a reward ===<br />
<br />
If everything else is covered, then this should be a rare situation.<br />
<br />
Do not run multiple instances of the same executable<br />
<br />
Do not mine too frequently<br />
<br />
If the same log shows two mining operations kicked off at the exact same time - something is probably wrong - try running a single instance with one 'mine' command.<br />
<br />
<pre><br />
2018-08-15 10:00:00 INFO [miner] ... [aaaa7e51] Mining operation is now: RUNNING<br />
2018-08-15 10:00:00 INFO [miner] ... [bbbb85c1] Mining operation is now: RUNNING<br />
</pre><br />
<br />
=== Is my PoP Transaction on tBTC testnet? ===<br />
<br />
If you PoP mine, you should relatively quickly (within minutes) see an output like so:<br />
<br />
<pre><br />
INFO: Received pending tx '9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa', pending balance: '2.906723 BTC'<br />
...<br />
MINER: [2aaef35f] Submitted Bitcoin transaction: 9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa<br />
MINER: [2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
</pre><br />
<br />
And you should be able to see that on any tBTC block explorer, such as:<br />
<br />
https://www.blocktrail.com/tBTC/tx/9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa<br />
<br />
=== Who is winning PoP? ===<br />
<br />
This is publicly available from the Explorer.<br />
<br />
Looking at the "PoP payouts for this block protecting other blocks" section, one can see the addresses and block for which rewards were paid out:<br />
<br />
[[File:Popreward_2.png|400px]]<br />
<br />
== Avoid these common problems ==<br />
<br />
* If the tBTC is too low, then the tBTC transaction will not be accepted, and there will be no PoP reward<br />
* If the PoP Miner is not connected to a synced version of NodeCore, then the PoP transaction is not guaranteed to go through<br />
* Submitting a chain of 20+ unconfirmed transactions. As each new Bitcoin transaction consumes an unspent transaction output, you can only submit so many in a row without confirmation before peers reject the transactions outright. This manifests generally in two scenarios:<br />
** Submit too many transactions inside a Bitcoin block interval. If a normal Bitcoin block time is 10 minutes, and you submit more than 20+ transactions in that window, you'll be unable to continue submitting new transactions until some of your transactions eventually confirm.<br />
** Submit transactions with too low a fee that they just are not getting confirmed and a backlog accumulates. Again, if you reach 20+ transactions without confirming, you'll be unable to submit further.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== Standard Troubleshooting Process ===<br />
<br />
If you still cannot see PoP rewards, please follow these steps:<br />
<br />
<pre><br />
1. Run single instance of PoP Miner<br />
2. Run single mine command<br />
3. Give it a high tBTC fee (high enough to ensure it's on tBTC block explorer with confirm time < 10 minutes)<br />
4. Is there a PoP transaction ID?<br />
5. Does it go through all 9 phases listed here (note the whole process may take 5 hours): https://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner#PoP_Mining_Lifecycle. (If not, what was the last phase)?<br />
6. Can you send the specific tBTC transaction ID and PoP Id, along with the PoP Log file?<br />
</pre><br />
<br />
<br />
<br />
=== Log Troubleshooting ===<br />
The PoP miner produces two log files.<br />
'''bitcoinj.nodecore-pop.log''' logs the behavior of BitcoinJ--the underlying SPV-level wallet library that the PoP miner uses to communicate with the Bitcoin network.<br />
'''veriblock.nodecore-pop.log''' logs the behavior of the PoP miner itself--activities like running a new mining command, statuses returned from BitcoinJ about the state of a transaction, info about connectivity to NodeCore, etc.<br />
<br />
If you are not receiving PoP rewards and have already set your fees at market-competitive rates as explained above, look for common errors.<br />
<br />
<br />
=== bitcoinj.nodecore-pop.log ===<br />
<br />
==== Received Reject: tx (txid) for reason 'too-long-mempool-chain' (64) ====<br />
<br />
'''Explanation:''' You have performed too many PoP transactions (generally >20) in a row without any getting confirmed by the tBTC network (due to low fee and/or too-fast PoP mining rate), and the tBTC network is temporarily rejecting any additional PoP transactions from you until some of your previous PoP transactions on tBTC are confirmed.<br />
<br />
'''Troubleshooting steps:''' Try increasing your PoP miner's configured fee (see [[Overview]] for an example of how to do so) and/or decreasing the frequency at which you PoP mine (generally not recommended more frequently than once every 3 minutes per PoP miner instance)<br />
<br />
<br />
==== Waiting for 10 peers required for broadcast, we have 7 ... ====<br />
<br />
'''Explanation:''' The BitcoinJ library is having difficulty connecting to enough available peers to confirm that your PoP transactions are properly propagating across the network<br />
<br />
'''Troubleshooting steps:''' Try lowering the aggression of any firewall between the PoP miner and the internet, check the BitcoinJ logs for any indication of repeated connection failures to peers, and try restarting the PoP miner.<br />
<br />
<br />
==== Did not find block (block hash) in endorsed block context headers ====<br />
<br />
'''Explanation:''' BitcoinJ is having difficulty in getting all of the requisite context block headers to allow the VeriBlock blockchain to validate the PoP transaction in question. This is usually the result of the difficulty bomb in tBTC being exploited (which resets the mining difficulty to 1 and results in several orders of magnitude more tBTC blocks per unit time than expected).<br />
<br />
'''Troubleshooting steps:''' Check a popular tBTC block explorer like [https://www.blocktrail.com/tBTC] and look at the block times. If blocks are coming in at a rate faster than roughly once every minute, then the extreme block time is likely the culprit (and you may need to wait a day for it to adjust if several subsequent PoP mining operations also fail). If blocks are coming in at a normal pace, then try closing the PoP miner, deleting the <br />
bitcoin-pop-testnet.spvchain file, restarting the PoP miner, and attempting to mine again.</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=681HowTo run PoP Miner2018-09-27T16:48:40Z<p>TimStall: </p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]], [[PoP_Reward_Summary]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
If you have zero balance, then open up a testnet wallet (or go to a BTC Testnet faucet) and send coins to the PoP BTC address (in this case "mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk")<br />
<br />
Get Bitcoin testnet coins from a faucet. Running PoP on VeriBlock testnet requires a small amount of testnet Bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets. Send Bitcoin from the faucet to the PoP BTC address (in this example: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk).<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| testnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=testnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin testnet wallet, this contains your tBTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-testnet.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
See: [[PoP_Miner_CommandLine]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=PoP_Reward_Summary&diff=680PoP Reward Summary2018-09-27T16:48:18Z<p>TimStall: Created page with "See: PoP_Miner_Rewards __TOC__ == Overview == PoP Mining puts data on the BTC Mainnet, and requires a quantity of BTC to cover the associated transaction fees. A PoP re..."</p>
<hr />
<div>See: [[PoP_Miner_Rewards]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
PoP Mining puts data on the BTC Mainnet, and requires a quantity of BTC to cover the associated transaction fees.<br />
<br />
A PoP reward is paid out 500 blocks after the block which is secured by a PoP transaction.<br />
<br />
The reward process is not linear; there are several dimensions to the incentivization structure behind the system:<br />
<br />
* Secured block position (and how important that block is to PoP security)<br />
* Speed of publication in the Bitcoin blockchain<br />
* Number of PoP transactions submitted per block<br />
* Difficulty based on prior PoP publication quantity<br />
<br />
== Rules ==<br />
=== Reward levels === <br />
<br />
Different block positions pay different rewards.<br />
<br />
Every 20th block (so blocks 0, 20, 40, ...) is a "keystone" (which has higher value to the security of the consensus protocol), and pays roughly 3x the normal reward. Therefore miners have high incentive to secure these blocks.<br />
<br />
Between the keystones there are three reward levels, (blocks 1, 4, 7, 10, 13, 16, and 19 at level one, blocks 2, 5, 8, 11, 14, and 17 at level two, and blocks 3, 6, 9, 12, 15, and 18 at level three). These reward levels are all generally within 10% of each other, with level three being the highest.<br />
<br />
=== Speed in the next BTC block ===<br />
<br />
The sooner a PoP Transaction is included in BTC (relative to other PoP transactions securing the same block) the more useful it is, therefore the higher the payout will be. For example, if the first PoP transaction securing VBK block 'n' is in BTC block 'm', all other PoP transactions for block 'n' will be compared based on their timeliness relative to BTC 'm'.<br />
<br />
All else equal, higher BTC transaction fees will get a transaction included sooner. Therefore in general higher BTC fees will result in higher PoP rewards (up to the threshold where additional fees provide no additional assistance in getting into the next BTC block).<br />
<br />
=== Number of PoP transactions ===<br />
<br />
Normally the reward would be split among all transactions. The more transactions, the more it is split among, the lower an individual transaction.<br />
<br />
=== Number of PoP miners ===<br />
<br />
Reward is split among PoP miners (by address) - in general the more miners (or the more PoP transactions miners are doing), the less any miner receives for a single PoP transaction. This is analogous to hashrate; the higher the combined hashrate of all miners is, the lower the expected reward-per-hash. <br />
<br />
=== Difficulty based on prior PoP payouts ===<br />
<br />
The average PoP reward spread across many blocks will be 43.75. If previous blocks had less than 43.75 (such as 0), then future blocks will have greater reward such that it averages out.<br />
<br />
=== Cap per individual transaction ===<br />
<br />
There are thresholds (based on recent PoP history) such that the most a transaction can get is "X", even if no other PoP transactions occur for that particular block. Therefore it may merit a single PoP Miner to perform multiple pop transactions securing a single block in order to earn a "unlock" a larger share of the block reward.</div>TimStallhttps://wiki.veriblock.org/index.php?title=PoP_Miner_Rewards&diff=679PoP Miner Rewards2018-09-27T16:47:43Z<p>TimStall: </p>
<hr />
<div>See: [[HowTo_run_PoP_Miner]], [[PoP_Reward_Summary]]<br />
<br />
__TOC__<br />
<br />
== TLDR ==<br />
<br />
Here's a good process for anyone who wants to PoP Mine:<br />
# Get a syncing version of NodeCore first (obviously a big deal, hence we're very focused on the low-memory version)<br />
# Run the PoP miner with a high-enough fee, checking the tBTC block explorer. You want "Time until confirm" to be < 30 minutes.<br />
## Run a single instance<br />
## First try the "mine" command before automating with a cron job<br />
## Try a low frequency like mining every 5 minutes (rapid mining may cause a deadlock on the local miner)<br />
# Let PoP run for 5 hours (it takes time for 500 tVBK blocks)<br />
# Check viewrecentrewards <br />
If after that, still no reward --> please send log files<br />
<br />
== Overview ==<br />
<br />
This is a high-level overview of how PoP rewards work. This page answers "if you do X, you have a good chance of getting greater-than-zero reward." It does not try to predict exactly what the reward would be, or the exact tBTC needed for that reward (as this is due to constantly changing market forces and issues with the tBTC difficulty adjustment algorithm that appear roughly once a month). The exact mechanics are not linear, and there is some luck involved (particularly during abnormal conditions on the tBTC network, which happen occasionally).<br />
<br />
First, read [[HowTo_run_PoP_Miner]] to see the basic operations of the PoP Miner.<br />
<br />
PoP Mining works by:<br />
# Encapsulating an "endorsement" of a VeriBlock block in a testnet Bitcoin transaction, submitting it to the tBTC network, and waiting for it to be included in a tBTC block<br />
# Submitting a "Proof-of-Proof" (PoP) transaction to NodeCore that proves your Bitcoin transaction was included in the tBTC blockchain<br />
# Receiving a reward for your PoP transaction, which is paid out 500 blocks after the VeriBlock block you endorsed<br />
<br />
There are several variables involved in a successful mine and reward payout:<br />
* The most important factor is the timeliness of your Bitcoin transaction's inclusion in the Bitcoin blockchain. A Bitcoin transaction that is included in the first possible block is always rewarded the best. The reward tails off sharply for inclusion in subsequent blocks and eventually has no value at all.<br />
* '''The control mechanism the miner has over this timeliness factor is the Bitcoin transaction fee. The higher the fee (per byte) paid, the more likely the transaction will be included sooner.'''<br />
* The PoP reward is for the block that was endorsed, which is generally the most recent block on the VeriBlock network at the time when you began a PoP mining cycle (not the block the proof-of-proof transaction appears in). The total PoP reward is split between all the endorsements. Therefore, the more endorsements of a given block, the lower the reward per endorsement will be.<br />
<br />
Make sure to set your ncpop.properties file (these are example numbers, actual numbers will vary), and restart the PoP miner after saving your changes:<br />
<br />
<pre><br />
#A safety stop-gap. This is the absolute maximum total fee you are willing to pay for a Bitcoin transaction<br />
#An average PoP transaction is ~285 bytes, multiply 'bitcoin.fee.perbyte' x 285. Your bitcoin.fee.max value must be at least this much.<br />
#Measured in satoshis<br />
bitcoin.fee.max=300000<br />
<br />
#Something high enough to win (increase this if your tBTC transactions are appearing "unconfirmed" on a block explorer after a new tBTC block occurs)<br />
#Measured in satoshis<br />
bitcoin.fee.perbyte=1000<br />
</pre><br />
<br />
== What should the tBTC Tx fee be? ==<br />
<br />
There is not an exact answer. Some game theory and risk is involved, and as other PoP miners increase their per-byte fee, the per-byte fee you will need to pay to compete with them will increase accordingly. Also note that a high tBTC fee does not ''guarantee'' inclusion in the next tBTC block; random factors like a tBTC miner's refresh time, network latency, etc. can also play a small role. <br />
<br />
There is a spectrum of fees:<br />
<br />
{| class="wikitable"<br />
! tBTC Fee/Byte<br />
! Spend tBTC?<br />
! Win VBK?<br />
! Comment<br />
|-<br />
| Too low<br />
| No<br />
| No<br />
| Nothing happens: BTC transaction doesn't get on BTC blockchain, fee not spent, no PoP earned.<br />
|-<br />
| '''Danger Zone'''<br />
| Yes<br />
| No<br />
| Spend tBTC but no PoP reward! If BTC transaction is too delayed then there is no PoP reward.<br />
|-<br />
| Border line<br />
| Yes<br />
| Yes<br />
| Fee may or may not be high enough to make it into first Bitcoin block, but does make it into a subsequent block. PoP reward is reduced.<br />
|-<br />
| Sufficient fee<br />
| Yes<br />
| Yes<br />
| A higher tBTC fee usually means the BTC transaction is accepted more quickly, which leads to a higher PoP reward<br />
|}<br />
<br />
<br />
Check what the recent tBTC fees are on a blockchain explorer. Take for example the following PoP transaction on tBTC: https://www.blocktrail.com/tBTC/tx/8dbba547dd15907c5eb4757bfa061c7a62b900a020557fde60b19b6e2967cf7d. The Fee / KB is 0.00498592, so divide by 1000 to get the fee per byte: 0.000000499 (or 499 testnet-satoshis per byte). The miner who sent this PoP transaction had the setting 'bitcoin.fee.perbyte = 499' or 'bitcoin.fee.perbyte = 500' in their ncpop.properties file. Consider increasing or decreasing that value given your risk threshold and your observations of other PoP transactions on the tBTC network and their corresponding per-byte fees.<br />
<br />
https://www.blocktrail.com/tBTC<br />
<br />
[[File:Popreward 1.png|600px]]<br />
<br />
== Common reward questions ==<br />
<br />
=== How can I see my reward? ===<br />
<br />
In the PoP Miner, run the command '''viewrecentrewards'''<br />
<br />
Also run '''listoperations''' to view the current running operations and their status.<br />
<br />
=== I mined PoP, but saw no reward ===<br />
<br />
PoP is rewarded 500 blocks after the endorsed block. At an average of 30 seconds per block, this is about 4.5 hours. So first understand that rewards won't come for ~4.5 hours after your mine operation.<br />
<br />
# Make sure that your NodeCore instance is in sync with the latest block --> you should be able to run NC_CLI getinfo on your NodeCore instance.<br />
# Ensure that a tBTC was submitted by the miner (if no transaction was submitted, there are likely other factors to address)<br />
# Make sure that your Bitcoin transaction has actually been confirmed in a block<br />
# Try to determine the timeliness of your tBTC's transaction's inclusion. The BLOCKTRAIL tBTC explorer, for example, includes a field '''Time until confirmed''' on the transaction detail that is a helpful gauge of timeliness.<br />
# If you are seeing PoP mining failures, check your PoP miner logs for suspect lines, see: [[#Log Troubleshooting]]<br />
# If still not seeing a reward, jump on our telegram channel or submit a github issue.<br />
<br />
=== My transaction is on BTC blockchain, but I got no reward ===<br />
<br />
Even if the PoP Transaction is on BTC, it may be in the "danger zone" where it took too long to be rewarded.<br />
<br />
If the "Time until confirmed" is > 20 minutes, there is risk of not getting rewarded. <br />
<br />
The way to increase chance of reward is to increase tBTC transaction fee such that it is in an earlier block.<br />
<br />
[[File:Popreward_3.png|600px]]<br />
<br />
=== The status shows "Done", but I did not see a reward yet ===<br />
<br />
"Done" is a good sign, it means it made it through the mining life cycle.<br />
<br />
Similar to PoW mining, "Done" means there is nothing left for the Miner to do.<br />
<br />
Check the PoP command: viewrecentrewards ([[HowTo_run_PoP_Miner#viewrecentrewards]]) to see reward status at this point.<br />
<br />
A reward could be coming, or it is possible due to other reasons listed, that the mining operation finished without reward.<br />
<br />
=== I still do not see a reward ===<br />
<br />
If everything else is covered, then this should be a rare situation.<br />
<br />
Do not run multiple instances of the same executable<br />
<br />
Do not mine too frequently<br />
<br />
If the same log shows two mining operations kicked off at the exact same time - something is probably wrong - try running a single instance with one 'mine' command.<br />
<br />
<pre><br />
2018-08-15 10:00:00 INFO [miner] ... [aaaa7e51] Mining operation is now: RUNNING<br />
2018-08-15 10:00:00 INFO [miner] ... [bbbb85c1] Mining operation is now: RUNNING<br />
</pre><br />
<br />
=== Is my PoP Transaction on tBTC testnet? ===<br />
<br />
If you PoP mine, you should relatively quickly (within minutes) see an output like so:<br />
<br />
<pre><br />
INFO: Received pending tx '9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa', pending balance: '2.906723 BTC'<br />
...<br />
MINER: [2aaef35f] Submitted Bitcoin transaction: 9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa<br />
MINER: [2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
</pre><br />
<br />
And you should be able to see that on any tBTC block explorer, such as:<br />
<br />
https://www.blocktrail.com/tBTC/tx/9268a8e9890993a81ac035c6ea8f69d0ad059b09078a73a7b4bb86514a5858aa<br />
<br />
=== Who is winning PoP? ===<br />
<br />
This is publicly available from the Explorer.<br />
<br />
Looking at the "PoP payouts for this block protecting other blocks" section, one can see the addresses and block for which rewards were paid out:<br />
<br />
[[File:Popreward_2.png|400px]]<br />
<br />
== Avoid these common problems ==<br />
<br />
* If the tBTC is too low, then the tBTC transaction will not be accepted, and there will be no PoP reward<br />
* If the PoP Miner is not connected to a synced version of NodeCore, then the PoP transaction is not guaranteed to go through<br />
* Submitting a chain of 20+ unconfirmed transactions. As each new Bitcoin transaction consumes an unspent transaction output, you can only submit so many in a row without confirmation before peers reject the transactions outright. This manifests generally in two scenarios:<br />
** Submit too many transactions inside a Bitcoin block interval. If a normal Bitcoin block time is 10 minutes, and you submit more than 20+ transactions in that window, you'll be unable to continue submitting new transactions until some of your transactions eventually confirm.<br />
** Submit transactions with too low a fee that they just are not getting confirmed and a backlog accumulates. Again, if you reach 20+ transactions without confirming, you'll be unable to submit further.<br />
<br />
<br />
== Troubleshooting ==<br />
<br />
=== Standard Troubleshooting Process ===<br />
<br />
If you still cannot see PoP rewards, please follow these steps:<br />
<br />
<pre><br />
1. Run single instance of PoP Miner<br />
2. Run single mine command<br />
3. Give it a high tBTC fee (high enough to ensure it's on tBTC block explorer with confirm time < 10 minutes)<br />
4. Is there a PoP transaction ID?<br />
5. Does it go through all 9 phases listed here (note the whole process may take 5 hours): https://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner#PoP_Mining_Lifecycle. (If not, what was the last phase)?<br />
6. Can you send the specific tBTC transaction ID and PoP Id, along with the PoP Log file?<br />
</pre><br />
<br />
<br />
<br />
=== Log Troubleshooting ===<br />
The PoP miner produces two log files.<br />
'''bitcoinj.nodecore-pop.log''' logs the behavior of BitcoinJ--the underlying SPV-level wallet library that the PoP miner uses to communicate with the Bitcoin network.<br />
'''veriblock.nodecore-pop.log''' logs the behavior of the PoP miner itself--activities like running a new mining command, statuses returned from BitcoinJ about the state of a transaction, info about connectivity to NodeCore, etc.<br />
<br />
If you are not receiving PoP rewards and have already set your fees at market-competitive rates as explained above, look for common errors.<br />
<br />
<br />
=== bitcoinj.nodecore-pop.log ===<br />
<br />
==== Received Reject: tx (txid) for reason 'too-long-mempool-chain' (64) ====<br />
<br />
'''Explanation:''' You have performed too many PoP transactions (generally >20) in a row without any getting confirmed by the tBTC network (due to low fee and/or too-fast PoP mining rate), and the tBTC network is temporarily rejecting any additional PoP transactions from you until some of your previous PoP transactions on tBTC are confirmed.<br />
<br />
'''Troubleshooting steps:''' Try increasing your PoP miner's configured fee (see [[Overview]] for an example of how to do so) and/or decreasing the frequency at which you PoP mine (generally not recommended more frequently than once every 3 minutes per PoP miner instance)<br />
<br />
<br />
==== Waiting for 10 peers required for broadcast, we have 7 ... ====<br />
<br />
'''Explanation:''' The BitcoinJ library is having difficulty connecting to enough available peers to confirm that your PoP transactions are properly propagating across the network<br />
<br />
'''Troubleshooting steps:''' Try lowering the aggression of any firewall between the PoP miner and the internet, check the BitcoinJ logs for any indication of repeated connection failures to peers, and try restarting the PoP miner.<br />
<br />
<br />
==== Did not find block (block hash) in endorsed block context headers ====<br />
<br />
'''Explanation:''' BitcoinJ is having difficulty in getting all of the requisite context block headers to allow the VeriBlock blockchain to validate the PoP transaction in question. This is usually the result of the difficulty bomb in tBTC being exploited (which resets the mining difficulty to 1 and results in several orders of magnitude more tBTC blocks per unit time than expected).<br />
<br />
'''Troubleshooting steps:''' Check a popular tBTC block explorer like [https://www.blocktrail.com/tBTC] and look at the block times. If blocks are coming in at a rate faster than roughly once every minute, then the extreme block time is likely the culprit (and you may need to wait a day for it to adjust if several subsequent PoP mining operations also fail). If blocks are coming in at a normal pace, then try closing the PoP miner, deleting the <br />
bitcoin-pop-testnet.spvchain file, restarting the PoP miner, and attempting to mine again.</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=678HowTo run PoP Miner2018-09-26T13:30:55Z<p>TimStall: /* Command Line Reference */</p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
If you have zero balance, then open up a testnet wallet (or go to a BTC Testnet faucet) and send coins to the PoP BTC address (in this case "mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk")<br />
<br />
Get Bitcoin testnet coins from a faucet. Running PoP on VeriBlock testnet requires a small amount of testnet Bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets. Send Bitcoin from the faucet to the PoP BTC address (in this example: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk).<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| testnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=testnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin testnet wallet, this contains your tBTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-testnet.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
See: [[PoP_Miner_CommandLine]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=PoP_Miner_CommandLine&diff=677PoP Miner CommandLine2018-09-26T13:30:17Z<p>TimStall: </p>
<hr />
<div>See: [[Main_Page]], [[HowTo_run_PoP_Miner#Status_Codes]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
<br />
== Commands ==<br />
<br />
=== clear ===<br />
<br />
=== exit ===<br />
<br />
=== getoperation ===<br />
<br />
<pre><br />
getoperation <id><br />
</pre><br />
<br />
=== getpopendorsementinfo ===<br />
<br />
Returns information regarding PoP endorsements for a given address<br />
<br />
=== help ===<br />
<br />
=== listconfig ===<br />
<br />
Lists the current configuration properties and values<br />
<br />
=== listoperations ===<br />
<br />
=== mine ===<br />
<br />
Begins a proof of proof mining operation<br />
<br />
This requires a NodeCore instance running and Bitcoin in the PoP Wallet address.<br />
<br />
<pre><br />
mine [blockNumber]<br />
</pre><br />
<br />
=== quit ===<br />
<br />
=== resetwallet ===<br />
<br />
NOT IMPLEMENTED YET, will be added in the future<br />
<br />
Resets the Bitcoin wallet, marking it for resync.<br />
<br />
<pre><br />
INFO: (2018-08-31 07:58:27) [V200] Success<br />
Wallet reset. Delete *.spvchain and restart.<br />
</pre><br />
<br />
=== resubmit ===<br />
<br />
<pre><br />
resubmit <id><br />
</pre><br />
<br />
Resubmits an operation<br />
<br />
If you get an error like so, then try the resubmit command:<br />
<br />
<pre><br />
Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
=== setconfig ===<br />
<br />
<pre><br />
setconfig <key> <value><br />
</pre><br />
<br />
=== showbitcoinaddress ===<br />
<br />
Displays the current address for receiving Bitcoin<br />
<br />
=== showbitcoinbalance ===<br />
<br />
=== showmineraddress ===<br />
<br />
Returns the NodeCore VeriBlock miner address. This is the address that will receive a reward once the PoP transaction is finalized in 250 blocks.<br />
<br />
=== viewrecentrewards ===<br />
<br />
Rewards are awarded at a known block. Prior to that block, this will try to guess the amount:<br />
<br />
<pre><br />
{endorsed_block: 89612, projected_reward: 0.03168883, paid_in_block: 90112}<br />
</pre><br />
<br />
After that block it can tell the exact reward:<br />
<br />
<pre><br />
{endorsed_block: 89612, reward: 0.03168976, paid_in_block: 90112}<br />
</pre><br />
<br />
=== withdrawbitcointoaddress ===<br />
<br />
<pre><br />
withdrawbitcointoaddress <address> <amount><br />
</pre><br />
<br />
Sends a Bitcoin amount to a given address. Withdraws bitcoin from the PoP BTC wallet.</div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=676List of mining pools testnet2018-09-26T13:22:41Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 117.50.57.184:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy)<br />
|-<br />
| 46.36.36.173:8501<br />
| http://mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 209.222.99.218:8501<br />
| http://vbk-pool.leafpool.com<br />
| CryptoMinerOS's pool (port 8500 hidden by proxy)<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=Bounty_List&diff=675Bounty List2018-09-26T13:13:03Z<p>TimStall: /* List of CLOSED (Won) Bounties */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
See also: [[Bounty_Process]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Per the process described here [[Bounty_Process]], VeriBlock will send out VBK coins for various bounties.<br />
<br />
This program will start on date '''Wed, July 11, 2018'''.<br />
<br />
It runs on 0.2 of NodeCore, to be released July 11, 2018.<br />
<br />
The list of bounties is below. The rewards for open bounties may be adjusted.<br />
<br />
This list may change:<br />
* New types of bounties could be added<br />
* Existing bounties may be repeated - if a bounty is closed (and awarded) on week 1, it could be re-opened on week 2 to encourage new participants to try.<br />
<br />
Send an email to '''bounty@veriblock.com''' with:<br />
# '''The BountyID in the subject header'''<br />
# The bounty<br />
# Your solution<br />
# Any other relevant details<br />
<br />
== List of OPEN Bounties ==<br />
<br />
For comparison: the total block reward is 175 VBK, for an expected 30-second block.<br />
<br />
=== 20,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 3000.1<br />
| 20000<br />
| Steal funds from the address _____ (TBD).<br />
| TODO<br />
| Show the address that the funds were sent to<br />
|-<br />
|}<br />
<br />
=== 10,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 2000.1<br />
| 10,000<br />
| Write a value-added utility based off the NodeCore API<br />
| See https://github.com/VeriBlock/demo-rpc-client<br />
| Put code on github (could be private repo, but VeriBlock bounty moderator must have access to review code). After N days, hackathon is closed, and community will vote on winners.<br />
|-<br />
|}<br />
<br />
=== 5000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 1003.1<br />
| 5000<br />
| Be the first public pool operator to collect 40 different addresses over 10 rounds<br />
| <br />
| Send email with IP to connect to<br />
|}<br />
<br />
=== Other VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 4001.1<br />
| TBD<br />
| Provide a cool meme that helps the VeriBlock Community<br />
| Could be multiple instances of this bounty. Moderator will use discretion.<br />
| Send idea to bounty@veriblock.com. There may be some community vote/filtering to decide final winners. TBD.<br />
|}<br />
<br />
== List of Pending Bounties (these are likely won, so focus on other bounties) ==<br />
<br />
These very likely have been won, and we are verifying. We're adding this section so that folks know to focus on other bounties.<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|}<br />
<br />
<br />
<br />
== List of CLOSED (Won) Bounties ==<br />
<br />
{| class="wikitable"<br />
! Date Submitted<br />
! BountyID<br />
! Reward<br />
! Description<br />
! Address<br />
! Proof<br />
|-<br />
| 2018-07-11 11:41 EST<br />
| 1008.1<br />
| 5000<br />
| Be the first to add 50+ peers<br />
| V5gmnXEQKA6HfQqKyB2NUk9Gn4yFEx<br />
| Sent list of peers<br />
|-<br />
| 2018-07-11 17:26 EST<br />
| 1007.1<br />
| 5000<br />
| Be the first to create block hash starting with 9 zeros. <br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8<br />
| Occured in block 78, TX: 0000000005C3E9E9C01DF36ED18C46EFDA318C011980D35F <br />
|-<br />
| 2018-07-12 16:01 EST<br />
| 1002.1<br />
| 5000<br />
| Be the first to add 100 PoP Transactions to Bitcoin TestNet <br />
| VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
| https://testnet.explore.veriblock.org/address/VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
|-<br />
| 2018-07-13 04:32 EST<br />
| 1004.1<br />
| 5000<br />
| Be the first to send 100 transactions (total) to 100 different addresses<br />
| VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTv<br />
| https://testnet.explore.veriblock.org/address/VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTvs<br />
|-<br />
| 2018-07-15 16:45 EST<br />
| 1006.1<br />
| 5000<br />
| Be the first to create an TX with "000", "ABC", "BEE", "DAD", or "FAB" in the TxID.<br />
| V2epguygNg9ze2qCmjS467LaJAUpso<br />
| 4F7507B4FF80E566DADC93DA45124BDE263857626D5C821E3BE8D59C282CF377<br />
|-<br />
| 2018-07-13 14:51 EST<br />
| 1005.1<br />
| 5000<br />
| Be the first to run NodeCore for 72 straight hours.<br />
| VFPiN4TkDq684u8HAqr7gEgQm4jwGF<br />
| Zip up the log file and send<br />
|-<br />
| 2018-07-11 12:38 EST<br />
| 1001.1<br />
| 5000<br />
| Be the first to PoW Mine 10000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-12 02:24 EST<br />
| 1001.2<br />
| 5000<br />
| Be the first to PoW Mine 20000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-13 10:05 EST<br />
| 1001.3<br />
| 5000<br />
| Be the first to PoW Mine 50000+ VBK testnet coins in a solo pool<br />
| V2C86eV6xi1uPykYPNnP8nWwu9GJxf<br />
| <br />
|-<br />
| 2018-07-17 07:34 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Linux)<br />
| V7J7GNRuJcy2ibRm3jcMF4o6KBFa6D<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|-<br />
| 2018-08-02 10:46 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Windows)<br />
| V3BTUNkHCYFZJQz7wUcKuksAu5uDXz<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|}<br />
<br />
== Leader board ==<br />
<br />
{| class="wikitable"<br />
! Date<br />
! Name<br />
! BountyID<br />
! Reward<br />
! Address<br />
! Proof<br />
|-<br />
| <br />
|<br />
| <br />
| <br />
| <br />
| <br />
|}<br />
<br />
== FAQ ==<br />
<br />
=== How will bounties be awarded? ===<br />
<br />
Please see: [[Bounty_Process]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=Network_Health&diff=674Network Health2018-09-24T21:06:43Z<p>TimStall: </p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
See the dynamic dashboard here: https://testnet.explore.veriblock.org/health<br />
<br />
[[File:Dashboard_network_health_1.png|600px]]<br />
<br />
==Other links==<br />
* Join telegram announcements: https://t.me/veriblockupdates<br />
* BlockExplorer = https://testnet.explore.veriblock.org<br />
* GitHub issues = https://github.com/VeriBlock/nodecore-releases/issues<br />
* [[Community_Announcements]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=Network_Health&diff=673Network Health2018-09-24T21:06:11Z<p>TimStall: </p>
<hr />
<div>See: [[Main page]]<br />
<br />
See the dynamic dashboard here: https://testnet.explore.veriblock.org/health<br />
<br />
[[File:Dashboard_network_health_1.png|600px]]<br />
<br />
==Other links==<br />
* Join telegram announcements: https://t.me/veriblockupdates<br />
* BlockExplorer = https://testnet.explore.veriblock.org<br />
* GitHub issues = https://github.com/VeriBlock/nodecore-releases/issues<br />
* [[Community_Announcements]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=File:Dashboard_network_health_1.png&diff=672File:Dashboard network health 1.png2018-09-24T21:05:25Z<p>TimStall: </p>
<hr />
<div></div>TimStallhttps://wiki.veriblock.org/index.php?title=Community_Resource_Contributions&diff=671Community Resource Contributions2018-09-19T22:19:27Z<p>TimStall: /* NC Upgrade script for windows */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__ <br />
<br />
== Overview ==<br />
<br />
This page is an incomplete list of various websites, tools, and other services built and maintained by the VeriBlock community.<br />
<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 />
== Resources ==<br />
<br />
=== KernelPanick Pool Statistics ===<br />
Courtesy of KernelPanick<br />
<br />
https://veriblock.turbomypc.com/<br />
<br />
[[File:Community_KP_1.png|600px]]<br />
<br />
=== J Smith Pool Summary Dashboard ===<br />
Courtesy of J Smith <br />
<br />
http://vb-pool-explorer.curecoin.net/<br />
<br />
[[File:Community_JSmith_1.png|400px]]<br />
<br />
=== NC Upgrade script for windows ===<br />
\<br />
Courtesy of KernelPanick<br />
<br />
https://gist.github.com/gsxryan/6da7fab06e038817a400cb09c0e6cdcf<br />
<br />
=== Powershell script to ping pool response times ===<br />
<br />
Courtesy of KernelPanick<br />
<br />
https://gist.github.com/gsxryan/13390725dcadf08b727dc3571743ae0a</div>TimStallhttps://wiki.veriblock.org/index.php?title=Network_Health&diff=670Network Health2018-09-19T22:12:07Z<p>TimStall: /* Status */</p>
<hr />
<div>See: [[Main page]]<br />
<br />
<br />
===Status===<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Feature<br />
! Drilldown<br />
! Comment<br />
|-<br />
| [[File:Status_green.png|48px]]<br />
| Block Explorer up<br />
| https://testnet.explore.veriblock.org<br />
| <br />
|-<br />
| [[File:Status_green.png|48px]]<br />
| Dev GPU Pool up<br />
| http://testnet-pool-gpu.veriblock.org:8500/<br />
| <br />
|-<br />
| [[File:Status_green.png|48px]]<br />
| Bootstrap nodes in sync<br />
| coming soon...<br />
| <br />
|-<br />
| [[File:Status_green.png|48px]]<br />
| Peers of bootstrap nodes in sync<br />
| coming soon...<br />
| <br />
|-<br />
| [[File:Status_green.png|48px]]<br />
| Community pools up<br />
| [[List_of_mining_pools_testnet]]<br />
| <br />
|}<br />
<br />
==Top current known issues==<br />
* Pool Operators are occasionally behind<br />
* PoP Miner not showing recent rewards<br />
<br />
==Other links==<br />
* Join telegram announcements: https://t.me/veriblockupdates<br />
* BlockExplorer = https://testnet.explore.veriblock.org<br />
* GitHub issues = https://github.com/VeriBlock/nodecore-releases/issues<br />
* [[Community_Announcements]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=Community_Resource_Contributions&diff=669Community Resource Contributions2018-09-19T22:09:35Z<p>TimStall: /* NC Upgrade script for windows */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__ <br />
<br />
== Overview ==<br />
<br />
This page is an incomplete list of various websites, tools, and other services built and maintained by the VeriBlock community.<br />
<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 />
== Resources ==<br />
<br />
=== KernelPanick Pool Statistics ===<br />
Courtesy of KernelPanick<br />
<br />
https://veriblock.turbomypc.com/<br />
<br />
[[File:Community_KP_1.png|600px]]<br />
<br />
=== J Smith Pool Summary Dashboard ===<br />
Courtesy of J Smith <br />
<br />
http://vb-pool-explorer.curecoin.net/<br />
<br />
[[File:Community_JSmith_1.png|400px]]<br />
<br />
=== NC Upgrade script for windows ===<br />
<br />
https://gist.github.com/gsxryan/6da7fab06e038817a400cb09c0e6cdcf<br />
<br />
Courtesy of KernelPanick<br />
<br />
=== Powershell script to ping pool response times ===<br />
<br />
Courtesy of KernelPanick<br />
<br />
https://gist.github.com/gsxryan/13390725dcadf08b727dc3571743ae0a</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=668HowTo run PoP Miner2018-09-18T16:55:59Z<p>TimStall: /* Updates to PoP for High Noon */</p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
If you have zero balance, then open up a testnet wallet (or go to a BTC Testnet faucet) and send coins to the PoP BTC address (in this case "mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk")<br />
<br />
Get Bitcoin testnet coins from a faucet. Running PoP on VeriBlock testnet requires a small amount of testnet Bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets. Send Bitcoin from the faucet to the PoP BTC address (in this example: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk).<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| testnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=testnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin testnet wallet, this contains your tBTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-testnet.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
<br />
=== clear ===<br />
<br />
=== exit ===<br />
<br />
=== getoperation ===<br />
<br />
<pre><br />
getoperation <id><br />
</pre><br />
<br />
=== getpopendorsementinfo ===<br />
<br />
=== help ===<br />
<br />
=== listconfig ===<br />
<br />
=== listoperations ===<br />
<br />
=== mine ===<br />
<br />
<pre><br />
mine [blockNumber]<br />
</pre><br />
<br />
=== quit ===<br />
<br />
=== resetwallet ===<br />
<br />
NOT IMPLEMENTED YET, will be added in the future<br />
<br />
Resets the Bitcoin wallet, marking it for resync.<br />
<br />
<pre><br />
INFO: (2018-08-31 07:58:27) [V200] Success<br />
Wallet reset. Delete *.spvchain and restart.<br />
</pre><br />
<br />
=== resubmit ===<br />
<br />
<pre><br />
resubmit <id><br />
</pre><br />
<br />
=== setconfig ===<br />
<br />
<pre><br />
setconfig <key> <value><br />
</pre><br />
<br />
=== showbitcoinaddress ===<br />
<br />
=== showbitcoinbalance ===<br />
<br />
=== showmineraddress ===<br />
<br />
=== viewrecentrewards ===<br />
<br />
Rewards are awarded at a known block. Prior to that block, this will try to guess the amount:<br />
<br />
<pre><br />
{endorsed_block: 89612, projected_reward: 0.03168883, paid_in_block: 90112}<br />
</pre><br />
<br />
After that block it can tell the exact reward:<br />
<br />
<pre><br />
{endorsed_block: 89612, reward: 0.03168976, paid_in_block: 90112}<br />
</pre><br />
<br />
=== withdrawbitcointoaddress ===<br />
<br />
<pre><br />
withdrawbitcointoaddress <address> <amount><br />
</pre></div>TimStallhttps://wiki.veriblock.org/index.php?title=Mining_High_Noon&diff=667Mining High Noon2018-09-18T16:55:39Z<p>TimStall: /* PoP Miner Update for High Noon */</p>
<hr />
<div>See: [[Main_Page]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Initial message on Telegram, 9/13/2018 <br />
<br />
<pre><br />
ANNOUNCEMENT: Mining Sunrise Ending Thursday September 13th at block 176000. Mining High Noon Starting Sept 14, Friday, 1pm EST<br />
<br />
After a very valuable 2 months of testing (involving over 29,000,000 PoP transactions on tBTC which paid fees in excess of 100,000 tBTC), we will be ending our Mining Sunrise phase and moving into our next phase: "Mining High Noon," prior to our MainNet launch. A big thank you to the tBTC community and faucets for the high PoP load.<br />
<br />
VeriBlock Testnet will be reset with a new genesis block, with all balances being moved over.<br />
- All balances as of block 176000 will be moved over. <br />
- We anticipate this block to occur around Thursday Sept 13th between noon and 3pm EST. Mining Sunrise effectively ends as of this block.<br />
- From this time, until "Mining High Noon" is kicked off, essentially mining will be down.<br />
<br />
Mining High Noon will kick off on Sept 14, Friday, 1pm EST.<br />
<br />
PoP will now mine to BTC MainNet, it will no longer mine to BTC testnet. This means it will take real BTC to mine for PoP.<br />
<br />
We appreciate the valuable testing that Bitcoin testnet has enabled us to do, and look forward to giving back to the Bitcoin testnet community to keep this amazing resource available for other projects of all types in the future.<br />
<br />
A new 0.3.0 release will be shipped on Github, and everyone will need to upgrade. An upgrade should involve just downloading the latest NodeCore, importing/copying over your previous wallet, and running. As the blockchain will be reset, there will be no bootstrapping file or 170,000+ blocks to sync.<br />
<br />
FAQ<br />
Q: Can I still use my accrued tBTC to PoP after block 175500 (500 blocks before the 176000 official end, because PoP takes 500 blocks for payout to finalize)?<br />
A: No. We suggest you donate any tBTC back to a BTC TestNet fountain.<br />
<br />
Q: Can I still mine on VeriBlock TestNet after block 176000 and prior to High Noon?<br />
A: Short answer: No.<br />
Long answer: As the VeriBlock Mining Sunrise network is decentralized, we will not (and can not) take it down. As a result, mining will still technically work, but coins mined or transferred in those blocks will not be moved over, so best to save your hashing power and effort, and donate your tBTC back to one of the fountains.<br />
</pre><br />
<br />
== Timeline ==<br />
<br />
* '''Sept 13''', at block 176000 --> "Mining Sunrise" ends. All balances as of block 176000 will be moved over<br />
* '''Sept 14''', Friday, 1pm EST --> "Mining High Noon" starts<br />
* MainNet Launch --> TBD<br />
<br />
== Updates ==<br />
<br />
===PoP Miner Update for High Noon===<br />
The initial 0.3.0 of PoP Miner has two important issues:<br />
<br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes.<br />
This is due to limitations with Bitcoin mainnet's treatment of transactions with OP_RETURN outputs, each instance of the PoP miner can only perform one PoP transaction per Bitcoin block. This means that, on average, you will be able to perform one PoP transaction every 10 minutes. Wait until the current operation reports a successful completion before performing another PoP transaction.<br />
<br />
2. The automated PoP scheduler is temporarily disabled as a safety precaution.<br />
As this is now real bitcoin, we do not want folks accidentally popping too frequently with a "danger zone" fee and lose their BTC. We will add the scheduler back in after a few days.<br />
<br />
Per #2, this has been re-enabled on 9/18.<br />
<br />
== FAQ ==<br />
<br />
===How do I see my moved balance in 0.3.0?===<br />
Balances should automatically be moved over.<br />
<br />
You should be able to see the balance on the explorer (https://testnet.explore.veriblock.org).<br />
<br />
You can also copy/import your wallet into 0.3.0, and run NC_CLI getbalance - just as if you were upgrading to the next version.</div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=666List of mining pools testnet2018-09-16T20:19:32Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 69.30.206.194:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy)<br />
|-<br />
| 46.36.36.173:8501<br />
| http://mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 209.222.99.218:8501<br />
| http://vbk-pool.leafpool.com<br />
| CryptoMinerOS's pool (port 8500 hidden by proxy)<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=NodeCore_Networking&diff=665NodeCore Networking2018-09-16T00:34:31Z<p>TimStall: /* Overview */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
These are the default ports and connection protocols used by NodeCore.<br />
<br />
{| class="wikitable"<br />
! Port (MainNet)<br />
! Port (TestNet)<br />
! Protocol<br />
! Users<br />
! Security<br />
! Comments<br />
|-<br />
| 10500<br />
| 1050'''1'''<br />
| Admin RPC (gRPC)<br />
| Wallet or CommandLine<br />
| IP Whitelisting, SSL/TLS Channel, Passwords<br />
| Hosted on trusted machine (usually local or intranet) with NodeCore instance. Access to local wallet, so highly secure.<br />
|-<br />
| 8501<br />
| 8501<br />
| UCP (raw socket)<br />
| Thin clients, miners<br />
| <br />
| Used for PoW mining pool (and in future, SPV-like clients)<br />
|-<br />
| 8500<br />
| 8500<br />
| HTTP<br />
| Pool Miners<br />
| <br />
| Displays a web page showing pool status (recent share submissions on a per-address basis)<br />
|-<br />
| 7500<br />
| 750'''1'''<br />
| P2P RPC<br />
| Other NodeCore instances<br />
| IP Blacklisting<br />
| Connect to other VeriBlock NodeCore instances<br />
|}<br />
<br />
== Admin RPC (port 10500) ==<br />
<br />
=== IP Whitelisting ===<br />
<br />
For a NodeCore instance, IP Whitelisting allows explicitly adding IPs such that only remote clients on that list can connect to your VeriBlock NodeCore instance.<br />
<br />
1. In nodecore.properties, change the admin endpoint to bind to 0.0.0.0 and add a whitelist entry for your IP address. <br />
<br />
Note that NodeCore expects IPv4, such as: http://whatismyip.host<br />
<br />
<pre><br />
#no longer directly bound to local host<br />
rpc.bind.address=0.0.0.0<br />
<br />
#allow the specified IP to connect<br />
rpc.whitelist.addresses = 98.213.111.91<br />
</pre><br />
<br />
Note that the whitelist entry is a CSV list. It can be a:<br />
* single IP address, e.g. 193.168.1.1<br />
* "wildcard" IP, e.g. 193.168.*.* (which would be all IP's in the 192.168 range)<br />
* CIDR representation, e.g. 193.168.0.0/16<br />
<br />
2. If there is a firewall between the VeriBlock NodeCore instance and the device(s) you wish to allow access to, then open port 10500. <br />
<br />
This will vary depending on your operating system. Here is an example for a RHEL-based linux distro (example is CentOS 7):<br />
<br />
<pre><br />
firewall-cmd --permanent --add-port=10500/tcp<br />
firewall-cmd --reload<br />
</pre><br />
<br />
3. Restart NodeCore.<br />
<br />
=== Passwords ===<br />
<br />
To secure the RPC connection, you will either need to provide your own X509 certificate and private key, or use scripts/openssl-cert-gen.(sh|ps1) to generate the required certs and private keys. Once you have your certificates, you can configure the security mode and certificate paths<br />
<br />
<pre><br />
rpc.security.mode = ServerTls<br />
rpc.security.cert.chain.path = scripts/certs/server.crt<br />
rpc.security.private.key.path = scripts/certs/server.pem<br />
</pre><br />
<br />
The first time NodeCore runs, it will create a random RPC password and update the nodecore.properties file. To change this password, just modify your nodecore.properties file<br />
<br />
<pre><br />
rpc.security.password=rpcpass123<br />
</pre><br />
<br />
There will also be the following property added to your props file, which you will need to set to true to enforce the password authentication (disabled by default):<br />
<br />
<pre><br />
rpc.security.password.enabled=true<br />
</pre><br />
<br />
If you completely remove the password property, nodecore will generate a new random password when it starts.<br />
<br />
To configure nodecore-cli to connect to your secured nodecore instance, see: [[HowTo_connect_NC_CLI_to_remote_NodeCore_instance]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoW_GPU_Miner&diff=664HowTo run PoW GPU Miner2018-09-16T00:33:20Z<p>TimStall: </p>
<hr />
<div>See: [[HowTo_run_PoW_Miner]]<br />
<br />
<pre><br />
The GPU miner has been open-sourced:<br />
<br />
https://github.com/VeriBlock/nodecore-pow-cuda-miner<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Get the GPU Miner here: https://github.com/VeriBlock/nodecore-releases/releases/download/v0.2.0/nodecore-pow-cuda-0.2.0_windows.zip<br />
<br />
The GPU miner is much much faster than the the CPU miner. However, it requires a NVidia GPU card to run.<br />
<br />
For testnet, the GPU Miner is initially throttled to produce shares only ~0.4% of the time (which makes GPUs competitive with CPUs on testnet). The final version will not be throttled, and will produce shares at full capacity.<br />
<br />
== Prerequisites ==<br />
<br />
The GPU Miner requires an NVidia card (9xx, 10xx, Titan X, Titan XP, Titan V, or corresponding Quadro/Tesla).<br />
<br />
It requires a recent version of the NVidia display drivers. It should work on any driver >=391.25, but driver version 397.64 is recommended (download from here: https://www.geforce.com/drivers).<br />
<br />
== Steps to run ==<br />
<br />
=== Linux ===<br />
<br />
# unzip veriblock-nodecore-pow-cuda-0.2.7_1_16_linux.zip<br />
# cd veriblock-nodecore-pow-cuda-0.2.7_1_16_linux<br />
# chmod a+x nodecore_pow_cuda<br />
# (and in a screen session or something else): ./nodecore_pow_cuda -o 127.0.0.1:8501 -u YOUR_ADDRESS_HERE -d 0<br />
# (changing -d 0 to -d 1, etc. for multiple cards, one instance per card)<br />
<br />
=== Windows ===<br />
<br />
Setup:<br />
<br />
Download and unzip: veriblock-nodecore-pow-cuda-0.2.9_1_16_windows.zip<br />
<br />
This contains a detailed README.txt. Please read, as it answers many initial questions. From the instructions in the readme.txt, pick which version you'll run (such as "nvml\cpu_shares\release\sm_50").<br />
<br />
Update the run.bat (using Notepad, Notepad++, or some other basic text editor) to contain your address (such as V5bLSbCqj9VzQR3MNANqL13YC2tUep) rather than the dummy placeholder.<br />
<br />
<pre><br />
VeriBlock.Miner.PoW.exe -o 127.0.0.1:8501 -u V5bLSbCqj9VzQR3MNANqL13YC2tUep -d 0<br />
</pre><br />
<br />
Run:<br />
# Run NodeCore, catch up to the most recent block (See: [[HowTo_run_NodeCore]])<br />
# Run NC_CLI and run the "startpool" command (See: [[NodeCore_CommandLine#startpool]])<br />
# In a specific folder via instructions in the readme (such as "nodecore-cudapow\nvml\gpu_shares\release\sm_52"), execute "run.bat"<br />
## If that crashes, then follow the readme instructions to pick another folder. Note: If repeated crashes occur, please submit a Github issue at https://github.com/VeriBlock/nodecore-releases/issues including your OS version (Windows 7, 8, 8.1, 10...), and any other information you deem to be relevant (run as administrator, etc.).<br />
<br />
Upon first running, several startup outputs will appear:<br />
<br />
[[File:GPU_Miner_run_1.png|600px]]<br />
<br />
Then it will switch to a new screen showing the shared being submitted. The text here is updated in-place, it is not continually appended like a log file.<br />
<br />
[[File:GPU_Miner_run_2.png|600px]]<br />
<br />
== Help Section ==<br />
<br />
<pre><br />
There is a help screen, lets you disable/enable logging and verbose output with command-line options, and lets you tweak performance variables (threads per block and blocksize).<br />
Required Arguments:<br />
-o <poolAddress> The pool address to mine to in the format host:port<br />
-u <username> The username (often an address) used at the pool<br />
Optional Arguments:<br />
-p <password> The miner/worker password to use on the pool<br />
-d <deviceNum> The ordinal of the device to use (default 0)<br />
-tpb <threadPerBlock> The threads per block to use with the Blake kernel (default 1024)<br />
-bs <blockSize> The blocksize to use with the vBlake kernel (default 512)<br />
-l <enableLogging> Whether to log to a file (default true)<br />
-v <enableVerboseOutput> Whether to enable verbose output for debugging (default false)<br />
<br />
Example command line:<br />
VeriBlock-NodeCore-PoW-CUDA -u VHT36jJyoVFN7ap5Gu77Crua2BMv5j -o 94.130.64.18:8501 -l false<br />
</pre><br />
<br />
== FAQ ==<br />
<br />
=== Does the GPU miner accept domain names? ===<br />
<br />
As of 7/13/2018 - no. It requires an IP address, such as:<br />
<br />
<pre><br />
NodeCore-PoW-CUDA -o 176.9.36.106:8501 -u YOUR_VBK_ADDRESS_HERE -d 0<br />
</pre><br />
<br />
=== Is there a Linux version? ===<br />
<br />
As of 7/11/2018 - not yet. But there will be.<br />
<br />
===Does the GPU miner make the CPU miner obsolete?===<br />
In one sense yes... as the GPU miner may be 100x faster than a CPU miner. However, the CPU miner still serves as a reference implementation. It can still join a pool and can submit shares.<br />
<br />
=== What does the file structure mean? ===<br />
<br />
There are many different versions of the miner available, which is explained in the README. Overall, three choices must be made:<br />
<br />
'''1.) NVML, yes/no?'''<br />
NVML allows the program to query lots of device-specific information (clock speed, memory speed, temperature), as well as detailed information regarding your current NVidia driver. Try NVML software first, and if it fails try the non-NVML equivalent.<br />
<br />
'''2.) CPU_SHARES vs GPU_SHARES?'''<br />
The CPU_SHARES version of the GPU miner submits shares at the same difficulty as the CPU miner. Because it is several orders of magnitude faster than the CPU miner, it finds these shares incredibly often. If you want to mine as fast as possible on a CPU-dominated testnet, you will need to run the CPU_SHARES version. However, if you want to see the true performance of the GPU miner in it's "natural habitat" (pool software the GPU-miner-level shares being served normally), run the GPU_SHARES version. '''In other words, the GPU_SHARES version reflects real-world mainnet performance of the GPU miner, but the CPU_MINER submits many "low difficulty" shares which is in-line with the current CPU-dominated behavior of VeriBlock NodeCore Testnet.'''<br />
<br />
'''3.) Benchmark or Release?'''<br />
The benchmark version of the software will allow you "mine" even if it cannot connect to a pool. Normally, mining software should not mine unless it can submit the results of mining ("shares") back to the pool and get rewarded. However, some users may wish to run the miner in isolation to test performance, without having to run an instance of NodeCore (of find a public pool). '''In short, if you are looking to mine VeriBlock testnet coins, use the release version. If you are interested in testing out the performance of particular hardware without actually attempting real mining, use the benchmarking software.'''<br />
<br />
The file structure of the CUDA GPU miner is:<br />
* no_nvml<br />
** cpu_shares<br />
*** benchmark<br />
**** sm_50<br />
***** cudart64_91.dll<br />
***** run.bat<br />
***** VeriBlock.Miner.PoW.exe<br />
**** sm_52<br />
**** sm_60<br />
**** sm_61<br />
**** sm_70<br />
*** release<br />
** gpu_shares<br />
*** ...<br />
* nvml<br />
** ...<br />
* README.txt<br />
<br />
=== Can the GPU run on a CPU pool? ===<br />
<br />
See also: [[HowTo_run_and_connect_to_PoW_Miner_pool#What_is_the_difference_between_a_CPU_vs._GPU_pool.3F]]<br />
<br />
[[File:mining_compatability_chart.png|600px]]<br />
<br />
== Readme.txt ==<br />
<br />
This is copied from the readme.txt for convenience:<br />
<br />
<pre><br />
The VeriBlock CUDA GPU miner requires a compatible (9xx, 10xx, Titan X, Titan XP, Titan V, or corresponding Quadro/Tesla) NVidia card, as well as a minimum NVidia driver version of 391.35. The miner can only be compiled against the CUDA 9.1 toolkit, as previous CUDA versions had errors with PTX addition carry.<br />
<br />
<br />
The GPU miner is run using a .bat file (or can be run directly from the command line). If running from the command line, make sure the required .dll files are present in your working directory.<br />
<br />
<br />
This miner currently only mines on one GPU at a time. If you wish to mine on multiple GPUs simultaneously, you can run multiple instances of the miner (with a different -d flag set for each). By default, the miner mines on GPU 0.<br />
<br />
<br />
-------------------------------------------------------------------------------------<br />
| If unsure which version to choose (details below), the most sure-fire one is: |<br />
| no_nvml/cpu_shares/release/sm_50 |<br />
-------------------------------------------------------------------------------------<br />
<br />
There are many different versions of the miner available:<br />
<br />
First-level choice (don't know? choose "no_nvml"):<br />
nvml: If on, uses the NVML library to query the current statistics of your device (clock speed, memory, temperature)<br />
no_nvml: Does not attempt to query device stats.<br />
<br />
Second-level choice (don't know? choose "cpu_shares"):<br />
cpu_shares: Shares are submitted at the same difficulty as the CPU miner does (2^24)<br />
gpu_shares: Shares are submitted at the GPU difficulty (2^32) **NOTE: A known display bug causes the gpu versions to still show 2^24 as the share difficulty in the logs, this can be ignored!** ALSO NOTE: this version will mine far less than expected as long as the difficulty stays below an equivalent 2^32 share target!<br />
<br />
Third-level choice (don't know? choose "release"):<br />
release: This version will only run when a pool connection is available, and will exit if the pool disconnects<br />
benchmark: This version will attempt to connect to a pool, but if a pool is unavailable, it will mine with dummy header data, allowing benchmarking without requiring a pool<br />
<br />
Fourth-level choice (don't know? choose "sm_50"):<br />
sm_50: For: 750 Ti, 750, 950M, 960M, 930M, 8xxM, M10, K1200, K2200, K620, M2000M, M1000M, M6500M, K620M, M10 GPUs<br />
sm_52: For: Titan X, 980 Ti, 980, 970, 960, 950, 980M, 970M, 965M, M6000, M5000, M4000, M2000, M5500, M5000M, M4000M, M3000M, M4, M40, M6, M60<br />
sm_60: GP100, P100<br />
sm_61: Titan Xp, Titan X, GTX 1080 Ti, 1080, 1070 Ti, 1070, 1060, 1050 GTX 1050, P6000, P5000, P4000, P2000, P1000, P600, P400, P5000M, P4000M, P3000M, P40, P6, P4<br />
sm_70: Titan V, V100<br />
**Note: you can also use a version lower than that of your device, for example a 1080 Ti can use sm_50, sm_52, sm_60, and sm_61! You can try out different versions if you would like.**<br />
<br />
<br />
Once traversing the appropriate folders to get to the version of the miner you wish to run, please edit the .bat file (input your own address, and optionally a different pool address if you are not solo-mining locally). In order to solo-mine, you will need a running instance of NodeCore, and will need to have typed "startpool" in the CLI to start the pool service. If you are mining to a pool operated by a third party, they will provide the appropriate connection (host, port, etc.).<br />
<br />
<br />
A log file "cuda-miner.log" will be created when you run the GPU miner. If you have any issues with the GPU miner, please check that for information regarding the issue (and include relevant parts of the log if you submit a bug report or ask for help with troubleshooting).<br />
<br />
<br />
FAQ:<br />
1.) Does it support Linux?<br />
The code itself does support Linux, but only Windows binaries are being provided at the moment. At launch, instructions for compiling and running on Ubuntu will be available.<br />
<br />
2.) Why does it flash?<br />
The code clears the terminal and re-prints it on each update.<br />
<br />
3.) Why does the cpu_shares version flash far more than the gpu_shares version?<br />
The cpu_shares version of the miner allows 256x the number of shares to be returned from the GPU as the gpu_shares version, and so it updates far more often.<br />
<br />
4.) Why does the cpu_shares version find more shares than the gpu_shares version?<br />
In PoW mining, the goal is to find a header for which the hash falls below a given target. Shares are solutions which fall below a higher target (and are thus found more often, and only very few shares are valid block solutions). The current pool implementation in NodeCore serves shares that are appropriate for CPU miners. If a GPU miner were to only search for gpu-difficulty shares on a pool serving CPU shares, it would be throwing away a lot of shares that the pool would accept as valid (and compensate the miner for). The gpu_shares version only searches for shares that are 256x more difficult than the CPU miner.<br />
<br />
5.) Why does the cpu_shares version have a lower hashrate?<br />
The cpu_shares version finds far more valid shares, and must return these from the GPU back to the system (and eventually, submit them back to the pool). This constant interruption means that the GPU is not fully utilized, but instead spends significant time idle while valid CPU-difficulty shares are copied back to the host system. Optimziations could be made to avoid this problem, but by the time GPU miners will need to run at their full speed, they will be mining to pools which share GPU-difficulty shares, making this problem irrelevant.<br />
<br />
6.) Why does the gpu_shares version seem to earn far less than the cpu_shares version?<br />
The gpu_shares version only submits shares that are at a difficulty 256x higher than that of CPU shares. As long as the network difficulty is less than a single GPU share, the gpu_shares version of the miner is throwing away perfectly good results.<br />
<br />
7.) Is this version throttled?<br />
Yes, this version only produces shares ~0.4% of the time (which makes GPUs competitive with CPUs on testnet). This has been done to avoid significant difficulty swings on testnet, and to allow CPU miners to also participate in the testnet (mine coins to send around, etc.). Our final version will not be neutered.<br />
<br />
8.) I keep getting "cudaDeviceSynchronize returned error code 4 after launching grindNonces!"?<br />
This is generally associated with the miner requesting too many resources. Check whether other processes are running and using a significant portion of the GPU's resources. Also note that the startup parameters in the mining software are set to cater to cards normally purchased for mining, and so mid-range to low-range cards (like the GTX 1050, GTX 1030, GTX 950) may have insufficient resources. We may provide builds in the future with less aggressive launch parameters to target these cards.<br />
<br />
<br />
<br />
</pre><br />
<br />
== Troubleshooting ==<br />
<br />
=== Check the log file ===<br />
<br />
The GPU miner outputs to a log file, such as "cuda-miner.log". If you encounter errors, this log file should have information to help troubleshoot.<br />
<br />
<br />
=== Graphics Card is not working ===<br />
<br />
Ensure that your system has an NVidia GPU card. If this is Windows (only Windows is supported for the initial CUDA miner release), you should be able to see NVidia in your Device Manager, and open up the NVidia Control Panel (an item in "Control Panel"). If you cannot open the "NVidia Control Panel", and it does not have at least a GTX 9xx or 10xx GPU (or Titan, Quadro, or Tesla card utilizing the Maxwell, Pascal, or Volta architecture) with driver version 397... then solve that first before proceeding.<br />
<br />
If you get any of the following errors, then most likely your driver does not meet the criteria mentioned above.<br />
<br />
<pre><br />
addKernel launch failed: no kernel image is available for execution on the device<br />
grindNonces failed!<br />
</pre><br />
<br />
<pre><br />
CUDA encountered an error while setting the device to 0: 35<br />
Last error: CUDA driver version is insufficient for CUDA runtime version<br />
cudaSetDevice failed! Do you have a CUDA-capable GPU installed?grindNonces failed!<br />
</pre><br />
<br />
=== The GPU miner does not show up on a pool ===<br />
<br />
Make sure you can connect to the pool with the CPU Miner. If you cannot connect with the CPU miner, then it is probably a network/connectivity issue.<br />
<br />
If you can connect with the CPU miner but not the GPU miner, then it may be a setting on the GPU Miner. <br />
<br />
* For TestNet (on throttled version) --> make sure you run a "CPU_Share" version<br />
* For MainNet (on unthrottled version) --> make sure you run a "GPU_Shares " version<br />
<br />
== Appendix ==<br />
<br />
TODO</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_PoP_Miner&diff=663HowTo run PoP Miner2018-09-15T20:43:30Z<p>TimStall: </p>
<hr />
<div><br />
See: [[Main_Page]], [[PoP_Miner_CommandLine]], [[PoP_Transaction_LifeCycle]], [[PoP_Miner_Rewards]]<br />
<br />
== Updates to PoP for High Noon ==<br />
<br />
See: [[Mining_High_Noon#PoP_Miner_Update_for_High_Noon]]<br />
<br />
<pre><br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes<br />
2. The automated PoP scheduler is temporarily disabled as a safety precaution<br />
</pre><br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Proof-of-Proof (PoP) mining is what ultimately creates the payload to put in Bitcoin's OP_RETURN, and thereby allows an altchain to have Bitcoin-level security through VeriBlock. It is different than Proof-of-Work mining, which collects valid transactions into a block and adds that block to the blockchain.<br />
<br />
== Prerequisites ==<br />
<br />
* Send Bitcoins to your local PoP Miner's Bitcoin wallet<br />
* Run local NodeCore instance<br />
<br />
==Run the PoP Miner==<br />
<br />
Successful PoP Mining will look something like so:<br />
<br />
Initially load everything:<br />
<br />
[[File:PoP_mine_1.png|600px]]<br />
<br />
Run the "mine" command:<br />
<br />
[[File:PoP_mine_2.png|600px]]<br />
<br />
=== Setup ===<br />
<br />
Note: If you are having trouble running nodecore-pop on Linux, you may need to make nodecore-pop executable: chmod a+x nodecore-pop<br />
<br />
Run a local instance of NodeCore<br />
<br />
Unzip nodecore-pop-*.zip<br />
In the bin folder, if you're using Windows then run nodecore-pop.bat, if you're using Linux or macOS then run nodecore-pop<br />
<br />
Wait a few seconds for the PoP Miner to start up. You should see something like:<br />
<br />
<pre><br />
===[ NodeCore Proof-of-Proof Miner v0.1.3 ]===<br />
<br />
INFO: Connecting to NodeCore at 127.0.0.1:10501<br />
WARN: PoP Miner: NOT READY (Could not connect to NodeCore)<br />
WARN: PoP Miner: NOT READY (Bitcoin blockchain is not downloaded)<br />
WARN: PoP Miner: NOT READY (Bitcoin service is not ready)<br />
SUCCESS: Bitcoin blockchain finished downloading<br />
INFO: Wallet loaded, current balance: 0.0 BTC<br />
INFO: Send coins to: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk<br />
SUCCESS: Bitcoin service is ready<br />
SUCCESS: PoP Miner: READY<br />
><br />
</pre><br />
<br />
Type "help" to see a list of all available commands:<br />
<br />
<pre><br />
> help<br />
<br />
Commands:<br />
getoperation <id><br />
getpopendorsementinfo <address><br />
help [command]<br />
listconfig<br />
listoperations<br />
mine<br />
quit<br />
resubmit <id><br />
sendbitcointoaddress <address> <amount><br />
setconfig <key> <value><br />
showbitcoinaddress<br />
showbitcoinbalance<br />
</pre><br />
<br />
If you have zero balance, then open up a testnet wallet (or go to a BTC Testnet faucet) and send coins to the PoP BTC address (in this case "mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk")<br />
<br />
Get Bitcoin testnet coins from a faucet. Running PoP on VeriBlock testnet requires a small amount of testnet Bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets. Send Bitcoin from the faucet to the PoP BTC address (in this example: mit5BbeUcper58ozwbMJCxs9hWAZfRKcWk).<br />
<br />
Before mining, you should be able to run showbitcoinbalance and see a positive balance<br />
<pre><br />
> showbitcoinbalance<br />
Bitcoin Balance: 0.049292 BTC<br />
</pre><br />
<br />
=== Mine ===<br />
<br />
Simply run the "mine" command<br />
<br />
<pre><br />
> mine<br />
2018-04-18 12:29:22.215 [15dabd68] Mining operation is now: STARTED<br />
2018-04-18 12:29:22.219 [15dabd68] Mining operation current action: Ready<br />
2018-04-18 12:29:22.221 [15dabd68] Mining operation is now: RUNNING<br />
<br />
*** COMMAND RESULT ***<br />
* INFO: [V201] Mining operation started<br />
* To view details, run command: getoperation 15dabd68<br />
**********************<br />
<br />
2018-04-18 12:29:22.226 [15dabd68] Mining operation current action: Getting PoP publication data<br />
2018-04-18 12:29:22.239 [15dabd68] Received PoP mining instructions, publishing data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
2018-04-18 12:29:22.242 [15dabd68] Mining operation current action: Creating Bitcoin transaction containing PoP publication data<br />
INFO: Received tx '9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4', new balance: '0.048938 BTC'<br />
2018-04-18 12:29:23.937 [15dabd68] Signed Bitcoin transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
2018-04-18 12:29:23.938 [15dabd68] Submitted Bitcoin transaction: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
2018-04-18 12:29:23.940 [15dabd68] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
><br />
</pre><br />
<br />
This will show:<br />
* Bitcoin transaction (can see this on a block explorer, such as: https://www.blocktrail.com/tBTC/tx/9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4)<br />
* The 80-byte PoP Payload that will be put in the OP_RETURN<br />
<br />
There can be multiple PoP Transactions at once, therefore each is given an in-session identifier, in this case "[15dabd68]". This is a temporary session ID. Ultimately the PoP Transaction will be on the VBK blockchain, and have a VBK Transaction ID.<br />
<br />
=== View Status of Mining ===<br />
<br />
While PoP Mining is very quick to start, it does take several confirmations on the BTC blockchain, and 500 confirmations on the VBK blockchain for payout. You can run getoperation on a session ID to see its current status:<br />
<br />
<pre><br />
> getoperation 15dabd68<br />
<br />
PoP Mining Operation: 15dabd68<br />
Status: RUNNING<br />
Current Action: CONFIRM<br />
PoP Publication Data: 00000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C<br />
Transaction: 0100000001CFFE10EBBF7B9C30372DE738B845BFEDD533B13324ABC6E2AEFA1C79089A810E010000006A4730440220754348272F33F380D34A3E82D2005752AD6BE672EFD070AF830DD2A162D64FD00220279DFCF6849DD1712793A96B3EA0A03B0C206B58BD8B15D12DF55DE425B039CB012103086A1756BA928FE5644BE7ED595C37A72D4BD6E09A518CCA9A9A80165C351E9DFFFFFFFF0268AC4A00000000001976A914EACAE5B5B6643640FD906791F511694E0BA9AF3088AC0000000000000000536A4C5000000001000000035D489E6E78F3C759BDDE71EEFB20D97A58A616B1187B6C2B666B827A2C53DCF3B766520B169C3AD22AC941C65AD77B46044AE83955448F00217C8C3562659235A15C85F155CA620C00000000<br />
Transaction ID: 9fb8d3f61826031749e89b6e0b940cf3a265a247691c4399ee5951d3945f15d4<br />
Block Header of Proof: 00000020D22D248064ECA9D9717DDF2C532CD3681E10B1F97462FC7A6101000000000000B3503C8DF213CC4AE02D0C96D5101DBFA85C0C7A950F1684D97DB9296F3A8C65AB80D75AFFFF001D6295F16F<br />
Context Headers:<br />
000000205D98FA5CE3BB7F40BDC6B74C3A3A0334EC29F4B7FB9850882A14CF9900000000FE7CB67E7E84491F9B2C9BDD08731343EBDE6E1B08E64E18265A70D55FB4F7DCF47BD75A9B03031A171C327000<br />
Merkle Path: 45:D4155F94D35159EE99431C6947A265A2F30C940B6E9BE84917032618F6D3B89F:D329F111C3FCE934C19827AEAB26C9DF22E1B21A219D2914429E7DB21A187DDD:0FB383E342468E76A9E16A27E3D1DA30268AC18F6A00B9032F5C6DD5B2D026A5:C53007F949B828F7A961BD353D1CD8C494F9EBB51816020D2AC27C27F597ADBA:B3D0436C782D545E4158CC5DD713184C3BE887CE18835561BFE34DAD3E33BE65:7605554A73E2A45ED8337A3778CE9CD66B5507EF32C7511C436DAC7BAAE2D0D9:B02952E115B2D21E1E437EF3AAD263A2323D922F10E60456BC97BE2E4227F415:3F6A1039A0C31A5A7E969F7286C476E94FBA511ED75B3D1A307E4430C23770FB:50C511B2D7C76006E4E6DD3C83CAF1C895A2943F1BFCBA4455A2BD106F97CAE8<br />
Alternate Blocks:<br />
><br />
<br />
</pre><br />
<br />
== PoP Mining Lifecycle ==<br />
<br />
Current Actions<br />
<br />
The WAIT and CONFIRM may take a while. Other steps should be fast.<br />
<br />
Once the PoP Miner is done, there is nothing more for it to do, check [[HowTo_run_PoP_Miner#viewrecentrewards]] to see about rewards.<br />
<br />
{| class="wikitable"<br />
! Action<br />
! Duration<br />
! Description<br />
|-<br />
| READY<br />
| <br />
| Operation has been initialized and is ready to start<br />
|-<br />
| PUBLICATION_DATA<br />
| <br />
| Getting the publication data from NodeCore<br />
|-<br />
| TRANSACTION<br />
| <br />
| Composing and submitting the Bitcoin transaction containing the PoP publication data<br />
|-<br />
| WAIT<br />
| "a while"<br />
| Waiting and listening for new Bitcoin blocks that include the transaction<br />
|-<br />
| PROOF<br />
| <br />
| Validating the merkle path of the transaction in the block<br />
|-<br />
| CONTEXT<br />
| <br />
| Accumulating Bitcoin block headers to provide enough context to NodeCore to maintain an unbroken SPV view of the Bitcoin blockchain<br />
|-<br />
| SUBMIT<br />
| <br />
| Submitting all required proofs of the Bitcoin transaction to NodeCore (NodeCore adds a PoP transaction to mempool)<br />
|-<br />
| CONFIRM<br />
| maybe several hours<br />
| Waiting and listening for new Bitcoin blocks and transaction to confirm 20 times. Handles resubmission of PoP transaction to NodeCore if the Bitcoin blockchain should fork and previous block is no longer in the main branch.<br />
|-<br />
| DONE<br />
| <br />
| Done with mining. Check [[HowTo_run_PoP_Miner#viewrecentrewards]] for upcoming rewards<br />
|}<br />
<br />
<br />
Expect this kind of flow in the log:<br />
<br />
Note the the PoP Id (2aaef35f) given to each step.<br />
<br />
<pre><br />
Expect this flow:<br />
[2aaef35f] Mining operation current action: Waiting for transaction to be included in Bitcoin block<br />
[2aaef35f] Transaction seen in block<br />
[2aaef35f] Setting block header of proof<br />
[2aaef35f] Found transaction in Bitcoin block with header: <br />
[2aaef35f] Mining operation current action: Proving transaction included in Bitcoin block<br />
[2aaef35f] Found Merkle path to transaction: <br />
[2aaef35f] Mining operation current action: Building Bitcoin context<br />
[2aaef35f] Added 3 context headers<br />
...<br />
[2aaef35f] Mining operation current action: Submitting completed PoP transaction<br />
[2aaef35f] Submitted PoP transaction: B9BC44D4E77CD5EE1E6B05B8154453EB436CC516C1DC9B9D3E22208AA2E3BC2E<br />
[2aaef35f] Mining operation current action: Confirming Bitcoin transaction<br />
[2aaef35f] New block added, checking confidence<br />
[2aaef35f] Mining operation current action: Done<br />
[2aaef35f] Mining operation is now: COMPLETE<br />
</pre><br />
<br />
== Reference ==<br />
<br />
=== ncpop.properties Reference ===<br />
<br />
These properties can be set in the ncpop.properties file (in bin folder, located next to nodecore-pop.bat). If this file does not exist, then you can create it.<br />
<br />
These can also be seen from running the "listconfig" command, and set with the "setconfig" command.<br />
<br />
{| class="wikitable"<br />
! Config Key<br />
! Default Value<br />
! Comment<br />
|-<br />
| bitcoin.network<br />
| testnet<br />
| <br />
|-<br />
| bitcoin.fee.max<br />
| 80000<br />
| <br />
|-<br />
| bitcoin.fee.perbyte<br />
| 200<br />
| <br />
|-<br />
| nodecore.rpc.host<br />
| 127.0.0.1<br />
| <br />
|-<br />
| nodecore.rpc.port<br />
| 10501<br />
| <br />
|-<br />
| nodecore.rpc.ssl<br />
| false<br />
| <br />
|-<br />
| nodecore.rpc.password<br />
| <br />
| <br />
|-<br />
| nodecore.rpc.cert.chain.path<br />
| <br />
| <br />
|}<br />
<br />
Sample '''ncpop.properties''' (if the file doesn't exist, you can create it)<br />
<br />
<pre><br />
#NodeCore PoP Miner Configuration<br />
#<br />
#Default configuration values are below. Uncomment to override.<br />
#<br />
#bitcoin.fee.max=80000<br />
#bitcoin.fee.perbyte=200<br />
#bitcoin.network=testnet<br />
#nodecore.rpc.host=127.0.0.1<br />
#nodecore.rpc.port=10501<br />
#nodecore.rpc.ssl=false<br />
#pop.action.timeout=90<br />
#<br />
#Cron expressions can be built using an online tool, such as http://www.cronmaker.com/<br />
#Below is an example that runs a mine operation at :00 and :30 of every hour<br />
#<br />
#pop.cron.schedule=0 0/30 * * * ?<br />
#<br />
</pre><br />
<br />
=== PoP Application Status Codes ===<br />
<br />
Status of the PoP Miner<br />
<br />
{| class="wikitable"<br />
! Status<br />
! Description<br />
|-<br />
| STARTED<br />
| <br />
|-<br />
| RUNNING<br />
| Will most often see this state<br />
|-<br />
| COMPLETE<br />
| <br />
|-<br />
| FAILED<br />
| <br />
|}<br />
<br />
<br />
=== PoP Files ===<br />
<br />
These are files within the \bin folder:<br />
<br />
* bitcoinj.nodecore-pop.log - log file for BitcoinJ<br />
* bitcoin-pop-testnet.spvchain<br />
* bitcoin-pop-testnet.wallet --> Bitcoin testnet wallet, this contains your tBTC!<br />
* ncpop.properties<br />
* nodecore-pop --> start PoP Miner on linux<br />
* nodecore-pop.bat --> start PoP Miner on windows<br />
* veriblock.nodecore-pop.log --> log file for PoP. If you have errors with PoP mining, keep this file for troubleshooting<br />
<br />
== FAQ ==<br />
<br />
=== How can I see my PoP rewards? ===<br />
<br />
See: [[PoP_Miner_Rewards]]<br />
<br />
=== Do I need to run a full Bitcoin node? ===<br />
No. The PoP Miner uses the BitcoinJ library and embeds a bitcoin wallet, such that one does NOT need to run a full node to do PoP Mining.<br />
<br />
=== Does the Bitcoin I send to my PoP Wallet need to be confirmed? ===<br />
No. If the Bitcoin transaction with the deposit ends up being reverted, then the PoP transaction that depends on it just fails.<br />
<br />
This also has the benefit of allowing PoP Mining immediately after a BTC deposit, without waiting for several confirmations.<br />
<br />
=== How do I set the BTC transaction fee? ===<br />
<br />
For "what should the BTC fee be", check: [[PoP_Miner_Rewards#What_should_the_tBTC_Tx_fee_be.3F]]. This section explains how to set the fee.<br />
<br />
Either set it in the ncpop.properties file:<br />
<br />
<pre><br />
bitcoin.fee.max=800000<br />
bitcoin.fee.perbyte=2000<br />
</pre><br />
<br />
Or set it via the 'setconfig' command:<br />
<br />
<pre><br />
setconfig bitcoin.fee.perbyte 2000<br />
setconfig bitcoin.fee.max 800000<br />
</pre><br />
<br />
Note: Make sure to also set 'bitcoin.fee.max'. That is a safety cap in case many BTC transactions were involved. An average transaction may be around 300 bytes, so normally bitcoin.fee.max = 300 x bitcoin.fee.perbyte.<br />
<br />
You can see the current fee by running the 'listconfig' command ([[HowTo_run_PoP_Miner#listconfig]])<br />
<br />
=== How to set up a cron schedule for mining ===<br />
<br />
Properties file is:<br />
<br />
<pre><br />
pop.cron.schedule=0 0/30 * * * ?<br />
</pre><br />
<br />
Checkout http://www.cronmaker.com/ for help building the expression<br />
<br />
=== Can I run multiple PoP Miners? ===<br />
<br />
For most people you should not need to. Whereas a PoW Miner (either GPU or CPU) is limited by Hardware and processing power and electricity - i.e. run 10 PoW miners for 10x more likely chance of getting a reward - a PoP miner is limited by BTC for the transaction fee.<br />
<br />
It will be easier for someone to manage a single instance of the PoP miner, but mine more frequently by constantly feeding it BTC for the TX fees.<br />
<br />
BUT... if you do want to run multiple instances: <br />
<br />
* Option A: You'll need to put them in separate folders on the machine and use different BitcoinJ wallets. '''Do not run the multiple instances of the same executable with the same wallet'''. Each copy will have it's own set of files: [[HowTo_run_PoP_Miner#PoP_Files]]<br />
* Option B: You can also run multiple instances on different machines, all pointed to the same remote NodeCore instance by setting the ncpop.properties 'nodecore.rpc.host=<remote_IP_Here>' (also see [[https://wiki.veriblock.org/index.php?title=NodeCore_Networking]] to set up NodeCore to accept connections from the remote PoP miner)<br />
<br />
=== Can I import a previous BTC wallet? ===<br />
<br />
Yes, just copy bin\bitcoin-pop-testnet.wallet.<br />
<br />
This will carry over the BTC balance.<br />
<br />
== Troubleshooting ==<br />
<br />
=== "PoP Miner not ready" warning ===<br />
<br />
{| class="wikitable"<br />
! Warning<br />
! Solution<br />
|-<br />
| PoP wallet does not contain sufficient funds<br />
| Send Bitcoins to your PoP BTC wallet address. Run commands showbitcoinbalance (it should be greater than zero), and sendbitcointoaddress.<br />
|-<br />
| Could not connect to NodeCore<br />
| Ensure an instance of NodeCore is running, and you could connect to it from the NC_CLI and run getinfo<br />
|-<br />
| Bitcoin blockchain is not downloaded<br />
| Ensure the ncpop.properties file has a line for bitcoin.network=testnet, and wait for the blockchain to download. There should be a message like "Blockchain downloading: 95%".<br />
|-<br />
| Bitcoin service is not ready<br />
| Check the other warnings. There should be a message like "SUCCESS: Bitcoin service is ready".<br />
|}<br />
<br />
=== I do not have any bitcoin ===<br />
<br />
For testnet, use a faucet to get test bitcoin. You can find a list of popular Bitcoin testnet faucets here: https://en.bitcoin.it/wiki/Testnet#Faucets.<br />
<br />
=== Mining operation action took longer than expected. Operation can be resubmitted. ===<br />
<br />
If you get an error, then try running the resubmit command: [[PoP_Miner_CommandLine#resubmit]]<br />
<br />
<pre><br />
ERROR: Mining operation action took longer than expected. Operation can be resubmitted.<br />
</pre><br />
<br />
PoP Transaction must complete within a certain period of time to remain relevant, and hence it times out. For example, if there's an abnormally high amount of context headers, that may cause a timeout.<br />
<br />
===Why does the BTC address change each time I run the showAddress command?===<br />
<br />
Bitcoin addresses are just a representation of the public key from a public/private key pair. We generate new key pairs every time you run the `showAddress` command. The PoP Miner manages these addresses for you, so you don't have to worry about them. As a privacy best practice, it's best to always use a new address (key pair) every time you receive a payment. The reason the PoP miner (or any Bitcoin wallet) generates a new address each time you receive a payment is for privacy reasons only, because if you use the same address for many transactions, the peers you traded with will be able to identify which other transactions you were involved in, and your identity will be easier to tie to the address. [Credit: A sentence or two for this answer may come from an unknown tech source]<br />
<br />
<br />
=== Failed to get PoP publication data from NodeCore ===<br />
<br />
This kind of error implies that NodeCore is not ready. <br />
<br />
Try to connect to the NC instance with the NC_CLI and run getinfo:<br />
<br />
<pre><br />
Failed to get PoP publication data from NodeCore: Status{code=DEADLINE_EXCEEDED, description=deadline exceeded after 14999412514ns, cause=null}<br />
</pre><br />
<br />
Can you run NC_CLI getinfo?<br />
<br />
* Yes --> Then try to repeat the PoP miner operation.<br />
* No --> Troubleshoot NodeCore [[HowTo_run_NodeCore]]<br />
<br />
== Command Line Reference ==<br />
<br />
=== clear ===<br />
<br />
=== exit ===<br />
<br />
=== getoperation ===<br />
<br />
<pre><br />
getoperation <id><br />
</pre><br />
<br />
=== getpopendorsementinfo ===<br />
<br />
=== help ===<br />
<br />
=== listconfig ===<br />
<br />
=== listoperations ===<br />
<br />
=== mine ===<br />
<br />
<pre><br />
mine [blockNumber]<br />
</pre><br />
<br />
=== quit ===<br />
<br />
=== resetwallet ===<br />
<br />
NOT IMPLEMENTED YET, will be added in the future<br />
<br />
Resets the Bitcoin wallet, marking it for resync.<br />
<br />
<pre><br />
INFO: (2018-08-31 07:58:27) [V200] Success<br />
Wallet reset. Delete *.spvchain and restart.<br />
</pre><br />
<br />
=== resubmit ===<br />
<br />
<pre><br />
resubmit <id><br />
</pre><br />
<br />
=== setconfig ===<br />
<br />
<pre><br />
setconfig <key> <value><br />
</pre><br />
<br />
=== showbitcoinaddress ===<br />
<br />
=== showbitcoinbalance ===<br />
<br />
=== showmineraddress ===<br />
<br />
=== viewrecentrewards ===<br />
<br />
Rewards are awarded at a known block. Prior to that block, this will try to guess the amount:<br />
<br />
<pre><br />
{endorsed_block: 89612, projected_reward: 0.03168883, paid_in_block: 90112}<br />
</pre><br />
<br />
After that block it can tell the exact reward:<br />
<br />
<pre><br />
{endorsed_block: 89612, reward: 0.03168976, paid_in_block: 90112}<br />
</pre><br />
<br />
=== withdrawbitcointoaddress ===<br />
<br />
<pre><br />
withdrawbitcointoaddress <address> <amount><br />
</pre></div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=662List of mining pools testnet2018-09-15T17:57:13Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 69.30.206.194:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy)<br />
|-<br />
| 46.36.36.173:8501<br />
| http://mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 209.222.99.218:8501<br />
| http://vbk-pool.leafpool.com<br />
| CryptoMinerOS's pool (port 8500 hidden by proxy)<br />
|-<br />
| 18.191.190.247:8501<br />
| http://18.191.190.247:8500<br />
| Obi Wan's pool<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=HowTo_run_and_connect_to_PoW_Miner_pool&diff=661HowTo run and connect to PoW Miner pool2018-09-15T16:07:47Z<p>TimStall: /* FAQ */</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 />
[[File:Pool_1b.png|600px]]<br />
<br />
== Setup a Pool ==<br />
<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<br />
ucp.mining.bind.address=0.0.0.0<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 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 --reload<br />
</pre><br />
<br />
=== Choose a CPU or GPU pool ===<br />
<br />
A pool can be either CPU or GPU. Simply pass in the type to the command line:<br />
<br />
<pre><br />
#CPU<br />
startpool CPU<br />
<br />
#GPU<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 />
== Connect to an Existing Pool ==<br />
<br />
# Run the PoW Miner<br />
# Specify thread count to mine on<br />
# Connect to the IP and port provided by the pool owner (Note that pools generally want to maximize users, to pools binding to 0.0.0.0 allow connections from any IP)<br />
# Enter the address to mine to (run getinfo from the [[NodeCore_CommandLine]])<br />
<br />
You can see pool results 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 />
<pre><br />
http://testnet-pool-gpu.veriblock.org:8500/api/summary<br />
<br />
{<br />
"poolAddress": "V6fxAd4uvUi1N6TcM7K2TGqQvHamrf",<br />
"currentRound": "1999",<br />
"poolMiningBlock": "2996",<br />
"miningOnTopOfBlock": "000000000010D487ED53F7E21CF0D878C786B6D711438CB5",<br />
"blockchainHeight": "2995",<br />
"nodeCoreStartTime": "1536996531",<br />
"programVersion": "0.3.1",<br />
"poolType": "GPU",<br />
"isPoolOk": "true",<br />
"statusMessage": "poolMiningBlock 2996 is in sync with blockchainHeight 2995"<br />
}<br />
<br />
</pre><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 />
=== What is the difference between a CPU vs. GPU pool? ===<br />
<br />
CPU and GPU should connect to different pools.<br />
<br />
On a high-end GPU, the GPU miner is roughly 400 times faster than the CPU miner on a high-end CPU.<br />
<br />
In order to accommodate both types of mining, we have two different modes for the pool software which either accept shares at an appropriate difficulty for CPU miners, or an appropriate difficulty for GPU miners. Solo pools do not have to do this, because they can simply allow shares at any difficulty to be submitted, as the number of shares submitted by a particular miner is not relevant to payouts (since all payouts go to one address).<br />
<br />
The pool software when running in GPU mode will accept shares that represent roughly 4.26 GH of mining, and in CPU mode will accept shares that represent roughly 16.7 MH of mining. <br />
If mining on a public pool (a pool where other people are also mining), please ensure that the pool is running in the appropriate mode for your miner.<br />
<br />
=== How do I know if I'm connecting to a CPU or GPU pool? ===<br />
<br />
NodeCore pool should clearly tell. If it does not, ask the pool operator to upgrade NodeCore.<br />
<br />
For example, this is a CPU pool:<br />
<br />
[[File:Pool_html_CPU.png|600px]]<br />
<br />
GPU pool should say "GPU".<br />
<br />
[[File:Pool_html_GPU.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 />
=== 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 />
== 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 miner connects to port 8501<br />
111.194.224.159:8501<br />
</pre></div>TimStallhttps://wiki.veriblock.org/index.php?title=File:Pool_address_highlight.png&diff=660File:Pool address highlight.png2018-09-15T16:06:57Z<p>TimStall: </p>
<hr />
<div></div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=659List of mining pools testnet2018-09-15T03:12:21Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 69.30.206.194:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy)<br />
|-<br />
| 46.36.36.173:8501<br />
| http://mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 209.222.99.218:8501<br />
| http://vbk-pool.leafpool.com<br />
| CryptoMinerOS's pool (port 8500 hidden by proxy)<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=658List of mining pools testnet2018-09-15T03:12:09Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 69.30.206.194:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy)<br />
|-<br />
| 46.36.36.173:8501<br />
| http://mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 209.222.99.218:8501<br />
| http://vbk-pool.leafpool.com (port 8500 hidden by proxy)<br />
| CryptoMinerOS's pool<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=657List of mining pools testnet2018-09-14T21:30:34Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 69.30.206.194:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy - just click the url)<br />
|-<br />
| 46.36.36.173:8501<br />
| http://mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=656List of mining pools testnet2018-09-14T21:29:42Z<p>TimStall: /* GPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 69.30.206.194:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy - just click the url)<br />
|-<br />
| 46.36.36.173:8501<br />
| mamix.hukot.net:8500<br />
| Solder's pool<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=Mining_High_Noon&diff=655Mining High Noon2018-09-14T16:31:12Z<p>TimStall: </p>
<hr />
<div>See: [[Main_Page]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Initial message on Telegram, 9/13/2018 <br />
<br />
<pre><br />
ANNOUNCEMENT: Mining Sunrise Ending Thursday September 13th at block 176000. Mining High Noon Starting Sept 14, Friday, 1pm EST<br />
<br />
After a very valuable 2 months of testing (involving over 29,000,000 PoP transactions on tBTC which paid fees in excess of 100,000 tBTC), we will be ending our Mining Sunrise phase and moving into our next phase: "Mining High Noon," prior to our MainNet launch. A big thank you to the tBTC community and faucets for the high PoP load.<br />
<br />
VeriBlock Testnet will be reset with a new genesis block, with all balances being moved over.<br />
- All balances as of block 176000 will be moved over. <br />
- We anticipate this block to occur around Thursday Sept 13th between noon and 3pm EST. Mining Sunrise effectively ends as of this block.<br />
- From this time, until "Mining High Noon" is kicked off, essentially mining will be down.<br />
<br />
Mining High Noon will kick off on Sept 14, Friday, 1pm EST.<br />
<br />
PoP will now mine to BTC MainNet, it will no longer mine to BTC testnet. This means it will take real BTC to mine for PoP.<br />
<br />
We appreciate the valuable testing that Bitcoin testnet has enabled us to do, and look forward to giving back to the Bitcoin testnet community to keep this amazing resource available for other projects of all types in the future.<br />
<br />
A new 0.3.0 release will be shipped on Github, and everyone will need to upgrade. An upgrade should involve just downloading the latest NodeCore, importing/copying over your previous wallet, and running. As the blockchain will be reset, there will be no bootstrapping file or 170,000+ blocks to sync.<br />
<br />
FAQ<br />
Q: Can I still use my accrued tBTC to PoP after block 175500 (500 blocks before the 176000 official end, because PoP takes 500 blocks for payout to finalize)?<br />
A: No. We suggest you donate any tBTC back to a BTC TestNet fountain.<br />
<br />
Q: Can I still mine on VeriBlock TestNet after block 176000 and prior to High Noon?<br />
A: Short answer: No.<br />
Long answer: As the VeriBlock Mining Sunrise network is decentralized, we will not (and can not) take it down. As a result, mining will still technically work, but coins mined or transferred in those blocks will not be moved over, so best to save your hashing power and effort, and donate your tBTC back to one of the fountains.<br />
</pre><br />
<br />
== Timeline ==<br />
<br />
* '''Sept 13''', at block 176000 --> "Mining Sunrise" ends. All balances as of block 176000 will be moved over<br />
* '''Sept 14''', Friday, 1pm EST --> "Mining High Noon" starts<br />
* MainNet Launch --> TBD<br />
<br />
== Updates ==<br />
<br />
===PoP Miner Update for High Noon===<br />
The initial 0.3.0 of PoP Miner has two important issues:<br />
<br />
1. It is recommended for a single PoP Miner to at most PoP once per 10 minutes.<br />
This is due to limitations with Bitcoin mainnet's treatment of transactions with OP_RETURN outputs, each instance of the PoP miner can only perform one PoP transaction per Bitcoin block. This means that, on average, you will be able to perform one PoP transaction every 10 minutes. Wait until the current operation reports a successful completion before performing another PoP transaction.<br />
<br />
2. The automated PoP scheduler is temporarily disabled as a safety precaution.<br />
As this is now real bitcoin, we do not want folks accidentally popping too frequently with a "danger zone" fee and lose their BTC. We will add the scheduler back in after a few days.<br />
<br />
<br />
== FAQ ==<br />
<br />
===How do I see my moved balance in 0.3.0?===<br />
Balances should automatically be moved over.<br />
<br />
You should be able to see the balance on the explorer (https://testnet.explore.veriblock.org).<br />
<br />
You can also copy/import your wallet into 0.3.0, and run NC_CLI getbalance - just as if you were upgrading to the next version.</div>TimStallhttps://wiki.veriblock.org/index.php?title=TestNet&diff=654TestNet2018-09-14T15:57:23Z<p>TimStall: /* List of Nodes */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
== tVBK vs. VBK ==<br />
<br />
The official MainNet VeriBlock symbol will be '''VBK'''<br />
<br />
The official TestNet VeriBlock symbol will be '''tVBK'''<br />
<br />
They are separate things, so they have separate labels.<br />
<br />
== List of Nodes ==<br />
<br />
<pre><br />
NodeCore will automatically pick random bootstrapping nodes from this list. One could also automatically set via the nodecore.properties file:<br />
peer.bootstrap.hosts=<some_ip>:7501,<some_ip>:7501<br />
</pre><br />
<br />
<br />
Asia Nodes<br />
<br />
{| class="wikitable"<br />
! Location<br />
! IP<br />
|-<br />
| Japan<br />
| 45.77.10.158<br />
|-<br />
| Japan<br />
| 45.77.8.186<br />
|-<br />
| Japan<br />
| 207.148.109.252<br />
|-<br />
| Japan<br />
| 45.76.110.188<br />
|-<br />
| Singapore<br />
| 45.77.40.251<br />
|-<br />
| Singapore<br />
| 66.42.62.240<br />
|-<br />
| Singapore<br />
| 45.32.107.87<br />
|-<br />
| Singapore<br />
| 207.148.120.200<br />
|}<br />
<br />
<br />
Additional Bootstrapping Nodes... yeah it's a big stash in a datacenter in Europe<br />
<br />
{| class="wikitable"<br />
! Location<br />
! IP<br />
|-<br />
| Europe<br />
| 94.130.222.180<br />
|-<br />
| Europe<br />
| 94.130.238.197<br />
|-<br />
| Europe<br />
| 94.130.238.198<br />
|-<br />
| Europe<br />
| 94.130.238.199<br />
|-<br />
| Europe<br />
| 94.130.238.201<br />
|-<br />
| Europe<br />
| 94.130.239.46<br />
|-<br />
| Europe<br />
| 94.130.239.45<br />
|-<br />
| Europe<br />
| 94.130.239.44<br />
|-<br />
| Europe<br />
| 94.130.239.43<br />
|-<br />
| Europe<br />
| 94.130.239.42<br />
|-<br />
| Europe<br />
| 94.130.64.158<br />
|-<br />
| Europe<br />
| 88.198.62.163<br />
|-<br />
| Europe<br />
| 94.130.33.230<br />
|-<br />
| Europe<br />
| 94.130.222.60<br />
|-<br />
| Europe<br />
| 94.130.237.119<br />
|-<br />
| Europe<br />
| 94.130.237.185<br />
|-<br />
| Europe<br />
| 148.251.7.69<br />
|-<br />
| Europe<br />
| 94.130.88.172<br />
|-<br />
| Europe<br />
| 148.251.42.76<br />
|-<br />
| Europe<br />
| 88.99.249.217<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=Community_Resource_Contributions&diff=653Community Resource Contributions2018-09-13T12:31:03Z<p>TimStall: /* Resources */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__ <br />
<br />
== Overview ==<br />
<br />
This page is an incomplete list of various websites, tools, and other services built and maintained by the VeriBlock community.<br />
<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 />
== Resources ==<br />
<br />
=== KernelPanick Pool Statistics ===<br />
Courtesy of KernelPanick<br />
<br />
https://veriblock.turbomypc.com/<br />
<br />
[[File:Community_KP_1.png|600px]]<br />
<br />
=== J Smith Pool Summary Dashboard ===<br />
Courtesy of J Smith <br />
<br />
http://vb-pool-explorer.curecoin.net/<br />
<br />
[[File:Community_JSmith_1.png|400px]]<br />
<br />
=== NC Upgrade script for windows ===<br />
<br />
https://gist.github.com/gsxryan/6da7fab06e038817a400cb09c0e6cdcf<br />
<br />
Courtesy of KernelPanick</div>TimStallhttps://wiki.veriblock.org/index.php?title=Mining_Sunrise_Phase&diff=652Mining Sunrise Phase2018-09-13T12:28:37Z<p>TimStall: </p>
<hr />
<div>See: [[Main_Page]], [[Mining_High_Noon]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
UPDATE: This phase ends 9/13, and transitions to a new phase [[Mining_High_Noon]]<br />
<br />
Initial message on Telegram, 6/29/2018 [minor updates since]:<br />
<br />
<pre><br />
Hello Everyone. Thanks for your support and interest in the project. It's end of Q2, and we have a very exciting announcement to make.<br />
<br />
We will reset TestNet in 12 days, on Wednesday, July 11 at 10am EST.<br />
This will start a "Mining Sunrise" period that will last until the official MainNet launch.<br />
<br />
1. During this "Mining Sunrise" period - from the TestNet reset and until MainNet launch - the address and balance for any non-zero balance on TestNet will be carried over to MainNet. This will work for NodeCore version 0.2 and greater (current release is 0.1.7 - so when 0.2 is released on July 12 you'll want to upgrade to that). Therefore mining will be essentially live on TestNet during this period, and after this period Mining will be live on MainNet.<br />
<br />
2. To engage our community, we will start a bounty program, with rewards given in tVBK coins. Details of the bounty program will be released shortly.<br />
<br />
3. A UI wallet will be released.<br />
<br />
The purpose of this reset and honoring mining and bounties is to further engage the community before the final MainNet launch. Therefore to include CPU miners, the GPU miner will still be throttled.<br />
<br />
Initially GPU mining will be throttled, however we encourage CPU miners to seek a pool. At some point in the near future, an unthrottled GPU miner will be released.<br />
<br />
MainNet will be launched some weeks after the TestNet reset.<br />
Like other blockchains, MainNet will run side-by-side with TestNet. <br />
Addresses and balances will be carried over from TestNet to MainNet, TestNet will be reset and relegated to purely a TestNet network.<br />
This will end the "Mining Sunrise" period.<br />
<br />
Code will be open-sourced after MainNet.<br />
<br />
Get your miners and wallets ready!<br />
<br />
Thank you,<br />
Justin and Max<br />
</pre><br />
<br />
== Timeline ==<br />
<br />
* '''June 29th''' - Announcement made, start preparing!<br />
* TBD - initial list of bounties made public so that people can start preparing<br />
* '''July 11''' - "Mining Sunrise" Period starts<br />
** Version 0.2 of code available on github<br />
** Mining on testnet will have addresses with a balance carried over to MainNet (will require version 0.2)<br />
** Bounty program starts (details to be announced)<br />
** GPU miner still throttled to give miners a chance<br />
* '''TBD - MainNet Launch'''<br />
** Like other blockchains, MainNet will run side-by-side with TestNet.<br />
** TestNet will be reset and relegated to purely a TestNet network.<br />
** Code is open-sourced<br />
** GPU miner is unthrottled by now (an unthrottled version may be released early)<br />
<br />
== FAQ ==<br />
<br />
=== How will mining work on TestNet during this period? ===<br />
<br />
The address and balance for any non-zero balance on TestNet will be carried over to MainNet.<br />
<br />
Such mining will be done with version 0.2 or greater, and only during this "Mining Sunrise" period.<br />
<br />
=== Do VeriBlock TestNet Coins Contain Value? ===<br />
<br />
Normally the whole point of a TestNet is that the coins do not have value.<br />
<br />
When VeriBlock does launch MainNet, that will be the case with VeriBlock too.<br />
<br />
Strictly speaking, the coins themselves on TestNet - even during this "Sunrise" period, do not have value.<br />
<br />
What will happen is that upon MainNet launch, all TestNet addresses with non-zero balances will be awarded their corresponding TestNet balances at the time of launch.<br />
<br />
Therefore coins that are mined during the "Sunrise" period (where they do not have value because it is still a TestNet) will appear on MainNet launch.</div>TimStallhttps://wiki.veriblock.org/index.php?title=Mining_High_Noon&diff=651Mining High Noon2018-09-13T12:27:46Z<p>TimStall: /* Overview */</p>
<hr />
<div>See: [[Main_Page]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Initial message on Telegram, 9/13/2018 <br />
<br />
<pre><br />
ANNOUNCEMENT: Mining Sunrise Ending Thursday September 13th at block 176000. Mining High Noon Starting Sept 14, Friday, 1pm EST<br />
<br />
After a very valuable 2 months of testing (involving over 29,000,000 PoP transactions on tBTC which paid fees in excess of 100,000 tBTC), we will be ending our Mining Sunrise phase and moving into our next phase: "Mining High Noon," prior to our MainNet launch. A big thank you to the tBTC community and faucets for the high PoP load.<br />
<br />
VeriBlock Testnet will be reset with a new genesis block, with all balances being moved over.<br />
- All balances as of block 176000 will be moved over. <br />
- We anticipate this block to occur around Thursday Sept 13th between noon and 3pm EST. Mining Sunrise effectively ends as of this block.<br />
- From this time, until "Mining High Noon" is kicked off, essentially mining will be down.<br />
<br />
Mining High Noon will kick off on Sept 14, Friday, 1pm EST.<br />
<br />
PoP will now mine to BTC MainNet, it will no longer mine to BTC testnet. This means it will take real BTC to mine for PoP.<br />
<br />
We appreciate the valuable testing that Bitcoin testnet has enabled us to do, and look forward to giving back to the Bitcoin testnet community to keep this amazing resource available for other projects of all types in the future.<br />
<br />
A new 0.3.0 release will be shipped on Github, and everyone will need to upgrade. An upgrade should involve just downloading the latest NodeCore, importing/copying over your previous wallet, and running. As the blockchain will be reset, there will be no bootstrapping file or 170,000+ blocks to sync.<br />
<br />
FAQ<br />
Q: Can I still use my accrued tBTC to PoP after block 175500 (500 blocks before the 176000 official end, because PoP takes 500 blocks for payout to finalize)?<br />
A: No. We suggest you donate any tBTC back to a BTC TestNet fountain.<br />
<br />
Q: Can I still mine on VeriBlock TestNet after block 176000 and prior to High Noon?<br />
A: Short answer: No.<br />
Long answer: As the VeriBlock Mining Sunrise network is decentralized, we will not (and can not) take it down. As a result, mining will still technically work, but coins mined or transferred in those blocks will not be moved over, so best to save your hashing power and effort, and donate your tBTC back to one of the fountains.<br />
</pre><br />
<br />
== Timeline ==<br />
<br />
* '''Sept 13''', at block 176000 --> "Mining Sunrise" ends. All balances as of block 176000 will be moved over<br />
* '''Sept 14''', Friday, 1pm EST --> "Mining High Noon" starts<br />
* MainNet Launch --> TBD</div>TimStallhttps://wiki.veriblock.org/index.php?title=Mining_High_Noon&diff=650Mining High Noon2018-09-13T12:25:36Z<p>TimStall: Created page with "See: Main_Page, Mining_Sunrise_Phase __TOC__ == Overview == Initial message on Telegram, 9/13/2018 <pre> ANNOUNCEMENT: Mining Sunrise Ending Thursday September 13..."</p>
<hr />
<div>See: [[Main_Page]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Initial message on Telegram, 9/13/2018 <br />
<br />
<pre><br />
ANNOUNCEMENT: Mining Sunrise Ending Thursday September 13th at block 176000. Mining High Noon Starting Sept 14, Friday, 1pm EST<br />
<br />
After a very valuable 2 months of testing (involving over 29,000,000 PoP transactions on tBTC which paid fees in excess of 100,000 tBTC), we will be ending our Mining Sunrise phase and moving into our next phase: "Mining High Noon," prior to our MainNet launch. A big thank you to the tBTC community and faucets for the high PoP load.<br />
<br />
VeriBlock Testnet will be reset with a new genesis block, with all balances being moved over.<br />
- All balances as of block 176000 will be moved over. <br />
- We anticipate this block to occur around Thursday Sept 13th between noon and 3pm EST. Mining Sunrise effectively ends as of this block.<br />
- From this time, until "Mining High Noon" is kicked off, essentially mining will be down.<br />
<br />
Mining High Noon will kick off on Sept 14, Friday, 1pm EST.<br />
<br />
PoP will now mine to BTC MainNet, it will no longer mine to BTC testnet. This means it will take real BTC to mine for PoP.<br />
<br />
We appreciate the valuable testing that Bitcoin testnet has enabled us to do, and look forward to giving back to the Bitcoin testnet community to keep this amazing resource available for other projects of all types in the future.<br />
<br />
A new 0.3.0 release will be shipped on Github, and everyone will need to upgrade. An upgrade should involve just downloading the latest NodeCore, importing/copying over your previous wallet, and running. As the blockchain will be reset, there will be no bootstrapping file or 170,000+ blocks to sync.<br />
<br />
FAQ<br />
Q: Can I still use my accrued tBTC to PoP after block 175500 (500 blocks before the 176000 official end, because PoP takes 500 blocks for payout to finalize)?<br />
A: No. We suggest you donate any tBTC back to a BTC TestNet fountain.<br />
<br />
Q: Can I still mine on VeriBlock TestNet after block 176000 and prior to High Noon?<br />
A: Short answer: No.<br />
Long answer: As the VeriBlock Mining Sunrise network is decentralized, we will not (and can not) take it down. As a result, mining will still technically work, but coins mined or transferred in those blocks will not be moved over, so best to save your hashing power and effort, and donate your tBTC back to one of the fountains.<br />
</pre></div>TimStallhttps://wiki.veriblock.org/index.php?title=Main_Page&diff=649Main Page2018-09-13T12:24:39Z<p>TimStall: </p>
<hr />
<div><br />
<br />
<br />
<!-- LEFT COLUMN --><br />
{| id="mp-upper" style="width: 100%; margin:6px 0 0 0; background:none; border-spacing: 0px;"<br />
| class="MainPageBG" style="width:55%; border:1px solid #235fa6; background:#f5faff; vertical-align:top; color:#000;" |<br />
{| id="mp-left" style="vertical-align:top; background:#f5faff;width:100%;"<br />
! style="padding:2px;" | <h2 id="mp-tfa-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">VeriBlock</h2><br />
|-<br />
| style="color:#000; padding:2px 5px 5px;" | Welcome to the VeriBlock community wiki. See the official VeriBlock community website at: https://VeriBlock.org.<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Getting Started</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" |<br />
*[[Getting_Started]]<br />
*[[FAQ]]<br />
*[[Altcoin_Add_VeriBlock]]<br />
*[[Network_Health]]<br />
*More coming soon...<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Blockchain Architecture</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" |<br />
*[[Address]]<br />
*[[Block]]<br />
*[[Consensus]]<br />
*[[Ledger]]<br />
*More coming soon...<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Contributing</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
* [[Contribute_To_VeriBlock]]<br />
* [[Community_Resource_Contributions]]<br />
|-<br />
! style="padding:2px" | <h2 id="mp-dyk-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Development</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
* [[Demo_Code]]<br />
* [[Dashboard_API]]<br />
* Coming soon... (opensourced on github)<br />
|-<br />
<br />
|}<br />
| style="border:1px solid transparent;" |<br />
<br />
<!-- RIGHT COLUMN --><br />
| class="MainPageBG" style="width:45%; border:1px solid #235fa6; background:#f5faff; vertical-align:top;"|<br />
{| id="mp-right" style="width:100%; vertical-align:top; background:#f5faff;"<br />
! style="padding:2px" | <h2 id="mp-otd-h2" style="margin:3px; background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Communities</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
*[[Social_Links]]<br />
*[[Telegram_FAQ]]<br />
*[[Mining_Sunrise_Phase]], [[Mining_High_Noon]]<br />
*[[Bounty_List]], [[Bounty_Process]]<br />
*[[Community_Announcements]]<br />
|-<br />
! style="padding:2px" | <h2 id="mp-otd-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Mining</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
*[[How_to_Mine_VeriBlock]]<br />
*[[PoW vs PoP Mining]]<br />
*[[HowTo_run_PoW_Miner]]<br />
** [[HowTo_run_PoW_CPU_Miner]]<br />
** [[HowTo_run_PoW_GPU_Miner]]<br />
* [[List_of_mining_pools_testnet]]<br />
*[[HowTo_run_PoP_Miner]], [[PoP_Miner_Rewards]]<br />
*[[HowTo_run_and_connect_to_PoW_Miner_pool]]<br />
|-<br />
{| id="mp-right" style="width:100%; vertical-align:top; background:#f5faff;"<br />
! style="padding:2px" | <h2 id="mp-otd-h2" style="background:#235fa6; font-size:150%; font-weight:normal; border:1px solid #0d437a; text-align:left; color:#fff; padding:0.2em 0.4em;">Technology</h2><br />
|-<br />
| style="color:#000;padding:2px 5px 5px" | <br />
Reference:<br />
* [https://www.veriblock.com/wp-content/uploads/2017/09/PoP-White-Paper.pdf Proof-of-Proof WhitePaper]<br />
* [[NodeCore_CommandLine]]<br />
* [[PoP_Miner_CommandLine]]<br />
* [[nodecore.properties]] config file<br />
* [[NodeCore_File_Structure]]<br />
* [[NodeCore_Networking]]<br />
* [[PoP_Transaction_LifeCycle]]<br />
* [[TestNet]]<br />
How to:<br />
*[[HowTo_connect_NC_CLI_to_remote_NodeCore_instance]]<br />
*[[HowTo_run_NodeCore]], [[NodeCore_Operations]]<br />
<br />
|-<br />
|}<br />
|}<br />
<br />
<br />
__NOTOC__</div>TimStallhttps://wiki.veriblock.org/index.php?title=List_of_mining_pools_testnet&diff=648List of mining pools testnet2018-09-11T21:13:02Z<p>TimStall: /* CPU Pools */</p>
<hr />
<div>See: [[How_to_Mine_VeriBlock]], [[HowTo_run_and_connect_to_PoW_Miner_pool]]<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 at: https://web.telegram.org/#/im?p=@VeriBlock<br />
<br />
DISCLAIMER: These are external community-hosted nodecore instances. They are not official bootstrapping nodes for [[TestNet]]. 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 />
Pools confirmed migrated to the latest NodeCore:<br />
<br />
== GPU Pools ==<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| 69.30.206.194:8501<br />
| http://pool.veriblock.cc:8500<br />
| Jack Yin<br />
|-<br />
| 142.93.126.114:8501<br />
| http://vb-gpu.curecoin.net:8500<br />
| curecoin<br />
|-<br />
| 193.30.122.242:8501<br />
| http://veriblock.jptpool.com<br />
| JPT Pool (port 8500 hidden by proxy - just click the url)<br />
|-<br />
| 94.130.64.18:8501<br />
| http://testnet-pool-gpu.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}<br />
<br />
== CPU Pools ==<br />
<br />
Most PoW mining is now on GPU pools. Dev still runs a CPU pool for reference/test purposes.<br />
<br />
{| class="wikitable"<br />
! Miner Connects to<br />
! Url for webpage<br />
! Comment<br />
|-<br />
| testnet-pool.veriblock.org:8501<br />
| http://testnet-pool.veriblock.org:8500<br />
| VeriBlock reference pool<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=Bounty_List&diff=647Bounty List2018-09-11T03:13:29Z<p>TimStall: /* 10,000 VBK bounties */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
See also: [[Bounty_Process]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Per the process described here [[Bounty_Process]], VeriBlock will send out VBK coins for various bounties.<br />
<br />
This program will start on date '''Wed, July 11, 2018'''.<br />
<br />
It runs on 0.2 of NodeCore, to be released July 11, 2018.<br />
<br />
The list of bounties is below. The rewards for open bounties may be adjusted.<br />
<br />
This list may change:<br />
* New types of bounties could be added<br />
* Existing bounties may be repeated - if a bounty is closed (and awarded) on week 1, it could be re-opened on week 2 to encourage new participants to try.<br />
<br />
Send an email to '''bounty@veriblock.com''' with:<br />
# '''The BountyID in the subject header'''<br />
# The bounty<br />
# Your solution<br />
# Any other relevant details<br />
<br />
== List of OPEN Bounties ==<br />
<br />
For comparison: the total block reward is 175 VBK, for an expected 30-second block.<br />
<br />
=== 20,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 3000.1<br />
| 20000<br />
| Steal funds from the address _____ (TBD).<br />
| TODO<br />
| Show the address that the funds were sent to<br />
|-<br />
|}<br />
<br />
=== 10,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 2000.1<br />
| 10,000<br />
| Write a value-added utility based off the NodeCore API<br />
| See https://github.com/VeriBlock/demo-rpc-client<br />
| Put code on github (could be private repo, but VeriBlock bounty moderator must have access to review code). After N days, hackathon is closed, and community will vote on winners.<br />
|-<br />
|}<br />
<br />
=== 5000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 1003.1<br />
| 5000<br />
| Be the first public pool operator to collect 40 different addresses over 10 rounds<br />
| <br />
| Send email with IP to connect to<br />
|}<br />
<br />
=== Other VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 4001.1<br />
| TBD<br />
| Provide a cool meme that helps the VeriBlock Community<br />
| Could be multiple instances of this bounty. Moderator will use discretion.<br />
| Send idea to bounty@veriblock.com. There may be some community vote/filtering to decide final winners. TBD.<br />
|}<br />
<br />
== List of Pending Bounties (these are likely won, so focus on other bounties) ==<br />
<br />
These very likely have been won, and we are verifying. We're adding this section so that folks know to focus on other bounties.<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|}<br />
<br />
<br />
<br />
== List of CLOSED (Won) Bounties ==<br />
<br />
{| class="wikitable"<br />
! Date Submitted<br />
! BountyID<br />
! Reward<br />
! Description<br />
! Address<br />
! Proof<br />
|-<br />
| 2018-07-11 11:41 EST<br />
| 1008.1<br />
| 5000<br />
| Be the first to add 50+ peers<br />
| V5gmnXEQKA6HfQqKyB2NUk9Gn4yFEx<br />
| Sent list of peers<br />
|-<br />
| 2018-07-11 17:26 EST<br />
| 1007.1<br />
| 5000<br />
| Be the first to create block hash starting with 9 zeros. <br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8<br />
| Occured in block 78, TX: 0000000005C3E9E9C01DF36ED18C46EFDA318C011980D35F <br />
|-<br />
| 2018-07-12 16:01 EST<br />
| 1002.1<br />
| 5000<br />
| Be the first to add 100 PoP Transactions to Bitcoin TestNet <br />
| VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
| https://testnet.explore.veriblock.org/address/VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
|-<br />
| 2018-07-13 04:32 EST<br />
| 1004.1<br />
| 5000<br />
| Be the first to send 100 transactions (total) to 100 different addresses<br />
| VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTv<br />
| https://testnet.explore.veriblock.org/address/VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTvs<br />
|-<br />
| 2018-07-15 16:45 EST<br />
| 1006.1<br />
| 5000<br />
| Be the first to create an TX with "000", "ABC", "BEE", "DAD", or "FAB" in the TxID.<br />
| V2epguygNg9ze2qCmjS467LaJAUpso<br />
| 4F7507B4FF80E566DADC93DA45124BDE263857626D5C821E3BE8D59C282CF377<br />
|-<br />
| 2018-07-13 14:51 EST<br />
| 1005.1<br />
| 5000<br />
| Be the first to run NodeCore for 72 straight hours.<br />
| VFPiN4TkDq684u8HAqr7gEgQm4jwGF<br />
| Zip up the log file and send<br />
|-<br />
| 2018-07-11 12:38 EST<br />
| 1001.1<br />
| 5000<br />
| Be the first to PoW Mine 10000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-12 02:24 EST<br />
| 1001.2<br />
| 5000<br />
| Be the first to PoW Mine 20000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-13 10:05 EST<br />
| 1001.3<br />
| 5000<br />
| Be the first to PoW Mine 50000+ VBK testnet coins in a solo pool<br />
| V2C86eV6xi1uPykYPNnP8nWwu9GJxf<br />
| <br />
|-<br />
| 2018-07-17 07:34 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Linux)<br />
| TBD<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|-<br />
| 2018-08-02 10:46 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Windows)<br />
| TBD<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|}<br />
<br />
== Leader board ==<br />
<br />
{| class="wikitable"<br />
! Date<br />
! Name<br />
! BountyID<br />
! Reward<br />
! Address<br />
! Proof<br />
|-<br />
| <br />
|<br />
| <br />
| <br />
| <br />
| <br />
|}<br />
<br />
== FAQ ==<br />
<br />
=== How will bounties be awarded? ===<br />
<br />
Please see: [[Bounty_Process]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=Bounty_List&diff=646Bounty List2018-09-11T03:13:04Z<p>TimStall: /* 5000 VBK bounties */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
See also: [[Bounty_Process]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Per the process described here [[Bounty_Process]], VeriBlock will send out VBK coins for various bounties.<br />
<br />
This program will start on date '''Wed, July 11, 2018'''.<br />
<br />
It runs on 0.2 of NodeCore, to be released July 11, 2018.<br />
<br />
The list of bounties is below. The rewards for open bounties may be adjusted.<br />
<br />
This list may change:<br />
* New types of bounties could be added<br />
* Existing bounties may be repeated - if a bounty is closed (and awarded) on week 1, it could be re-opened on week 2 to encourage new participants to try.<br />
<br />
Send an email to '''bounty@veriblock.com''' with:<br />
# '''The BountyID in the subject header'''<br />
# The bounty<br />
# Your solution<br />
# Any other relevant details<br />
<br />
== List of OPEN Bounties ==<br />
<br />
For comparison: the total block reward is 175 VBK, for an expected 30-second block.<br />
<br />
=== 20,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 3000.1<br />
| 20000<br />
| Steal funds from the address _____ (TBD).<br />
| TODO<br />
| Show the address that the funds were sent to<br />
|-<br />
|}<br />
<br />
=== 10,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 2000.1<br />
| 10,000<br />
| Write a value-added utility based off the NodeCore API<br />
| See https://github.com/VeriBlock/demo-rpc-client<br />
| Put code on github (could be private repo, but VeriBlock bounty moderator must have access to review code). After N days, hackathon is closed, and community will vote on winners.<br />
|-<br />
| 2000.1<br />
| TBD<br />
| Submit "something of interest." Want to get feedback on things we won't even think to ask.<br />
| Bounty moderator will triage reward amount<br />
| Send idea to bounty@veriblock.com<br />
|-<br />
|}<br />
<br />
=== 5000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 1003.1<br />
| 5000<br />
| Be the first public pool operator to collect 40 different addresses over 10 rounds<br />
| <br />
| Send email with IP to connect to<br />
|}<br />
<br />
=== Other VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 4001.1<br />
| TBD<br />
| Provide a cool meme that helps the VeriBlock Community<br />
| Could be multiple instances of this bounty. Moderator will use discretion.<br />
| Send idea to bounty@veriblock.com. There may be some community vote/filtering to decide final winners. TBD.<br />
|}<br />
<br />
== List of Pending Bounties (these are likely won, so focus on other bounties) ==<br />
<br />
These very likely have been won, and we are verifying. We're adding this section so that folks know to focus on other bounties.<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|}<br />
<br />
<br />
<br />
== List of CLOSED (Won) Bounties ==<br />
<br />
{| class="wikitable"<br />
! Date Submitted<br />
! BountyID<br />
! Reward<br />
! Description<br />
! Address<br />
! Proof<br />
|-<br />
| 2018-07-11 11:41 EST<br />
| 1008.1<br />
| 5000<br />
| Be the first to add 50+ peers<br />
| V5gmnXEQKA6HfQqKyB2NUk9Gn4yFEx<br />
| Sent list of peers<br />
|-<br />
| 2018-07-11 17:26 EST<br />
| 1007.1<br />
| 5000<br />
| Be the first to create block hash starting with 9 zeros. <br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8<br />
| Occured in block 78, TX: 0000000005C3E9E9C01DF36ED18C46EFDA318C011980D35F <br />
|-<br />
| 2018-07-12 16:01 EST<br />
| 1002.1<br />
| 5000<br />
| Be the first to add 100 PoP Transactions to Bitcoin TestNet <br />
| VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
| https://testnet.explore.veriblock.org/address/VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
|-<br />
| 2018-07-13 04:32 EST<br />
| 1004.1<br />
| 5000<br />
| Be the first to send 100 transactions (total) to 100 different addresses<br />
| VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTv<br />
| https://testnet.explore.veriblock.org/address/VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTvs<br />
|-<br />
| 2018-07-15 16:45 EST<br />
| 1006.1<br />
| 5000<br />
| Be the first to create an TX with "000", "ABC", "BEE", "DAD", or "FAB" in the TxID.<br />
| V2epguygNg9ze2qCmjS467LaJAUpso<br />
| 4F7507B4FF80E566DADC93DA45124BDE263857626D5C821E3BE8D59C282CF377<br />
|-<br />
| 2018-07-13 14:51 EST<br />
| 1005.1<br />
| 5000<br />
| Be the first to run NodeCore for 72 straight hours.<br />
| VFPiN4TkDq684u8HAqr7gEgQm4jwGF<br />
| Zip up the log file and send<br />
|-<br />
| 2018-07-11 12:38 EST<br />
| 1001.1<br />
| 5000<br />
| Be the first to PoW Mine 10000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-12 02:24 EST<br />
| 1001.2<br />
| 5000<br />
| Be the first to PoW Mine 20000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-13 10:05 EST<br />
| 1001.3<br />
| 5000<br />
| Be the first to PoW Mine 50000+ VBK testnet coins in a solo pool<br />
| V2C86eV6xi1uPykYPNnP8nWwu9GJxf<br />
| <br />
|-<br />
| 2018-07-17 07:34 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Linux)<br />
| TBD<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|-<br />
| 2018-08-02 10:46 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Windows)<br />
| TBD<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|}<br />
<br />
== Leader board ==<br />
<br />
{| class="wikitable"<br />
! Date<br />
! Name<br />
! BountyID<br />
! Reward<br />
! Address<br />
! Proof<br />
|-<br />
| <br />
|<br />
| <br />
| <br />
| <br />
| <br />
|}<br />
<br />
== FAQ ==<br />
<br />
=== How will bounties be awarded? ===<br />
<br />
Please see: [[Bounty_Process]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=Bounty_List&diff=645Bounty List2018-09-11T02:47:11Z<p>TimStall: /* List of CLOSED (Won) Bounties */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
See also: [[Bounty_Process]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Per the process described here [[Bounty_Process]], VeriBlock will send out VBK coins for various bounties.<br />
<br />
This program will start on date '''Wed, July 11, 2018'''.<br />
<br />
It runs on 0.2 of NodeCore, to be released July 11, 2018.<br />
<br />
The list of bounties is below. The rewards for open bounties may be adjusted.<br />
<br />
This list may change:<br />
* New types of bounties could be added<br />
* Existing bounties may be repeated - if a bounty is closed (and awarded) on week 1, it could be re-opened on week 2 to encourage new participants to try.<br />
<br />
Send an email to '''bounty@veriblock.com''' with:<br />
# '''The BountyID in the subject header'''<br />
# The bounty<br />
# Your solution<br />
# Any other relevant details<br />
<br />
== List of OPEN Bounties ==<br />
<br />
For comparison: the total block reward is 175 VBK, for an expected 30-second block.<br />
<br />
=== 20,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 3000.1<br />
| 20000<br />
| Steal funds from the address _____ (TBD).<br />
| TODO<br />
| Show the address that the funds were sent to<br />
|-<br />
|}<br />
<br />
=== 10,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 2000.1<br />
| 10,000<br />
| Write a value-added utility based off the NodeCore API<br />
| See https://github.com/VeriBlock/demo-rpc-client<br />
| Put code on github (could be private repo, but VeriBlock bounty moderator must have access to review code). After N days, hackathon is closed, and community will vote on winners.<br />
|-<br />
| 2000.1<br />
| TBD<br />
| Submit "something of interest." Want to get feedback on things we won't even think to ask.<br />
| Bounty moderator will triage reward amount<br />
| Send idea to bounty@veriblock.com<br />
|-<br />
|}<br />
<br />
=== 5000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 1003.1<br />
| 5000<br />
| Be the first public pool operator to collect 40 different addresses over 10 rounds<br />
| <br />
| Send email with IP to connect to<br />
|-<br />
| 1500.1<br />
| 5000<br />
| Submit "something of interest"<br />
| Want to get feedback on things we won't even think to ask<br />
| Send idea to bounty@veriblock.com<br />
|}<br />
<br />
=== Other VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 4001.1<br />
| TBD<br />
| Provide a cool meme that helps the VeriBlock Community<br />
| Could be multiple instances of this bounty. Moderator will use discretion.<br />
| Send idea to bounty@veriblock.com. There may be some community vote/filtering to decide final winners. TBD.<br />
|}<br />
<br />
== List of Pending Bounties (these are likely won, so focus on other bounties) ==<br />
<br />
These very likely have been won, and we are verifying. We're adding this section so that folks know to focus on other bounties.<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|}<br />
<br />
<br />
<br />
== List of CLOSED (Won) Bounties ==<br />
<br />
{| class="wikitable"<br />
! Date Submitted<br />
! BountyID<br />
! Reward<br />
! Description<br />
! Address<br />
! Proof<br />
|-<br />
| 2018-07-11 11:41 EST<br />
| 1008.1<br />
| 5000<br />
| Be the first to add 50+ peers<br />
| V5gmnXEQKA6HfQqKyB2NUk9Gn4yFEx<br />
| Sent list of peers<br />
|-<br />
| 2018-07-11 17:26 EST<br />
| 1007.1<br />
| 5000<br />
| Be the first to create block hash starting with 9 zeros. <br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8<br />
| Occured in block 78, TX: 0000000005C3E9E9C01DF36ED18C46EFDA318C011980D35F <br />
|-<br />
| 2018-07-12 16:01 EST<br />
| 1002.1<br />
| 5000<br />
| Be the first to add 100 PoP Transactions to Bitcoin TestNet <br />
| VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
| https://testnet.explore.veriblock.org/address/VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
|-<br />
| 2018-07-13 04:32 EST<br />
| 1004.1<br />
| 5000<br />
| Be the first to send 100 transactions (total) to 100 different addresses<br />
| VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTv<br />
| https://testnet.explore.veriblock.org/address/VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTvs<br />
|-<br />
| 2018-07-15 16:45 EST<br />
| 1006.1<br />
| 5000<br />
| Be the first to create an TX with "000", "ABC", "BEE", "DAD", or "FAB" in the TxID.<br />
| V2epguygNg9ze2qCmjS467LaJAUpso<br />
| 4F7507B4FF80E566DADC93DA45124BDE263857626D5C821E3BE8D59C282CF377<br />
|-<br />
| 2018-07-13 14:51 EST<br />
| 1005.1<br />
| 5000<br />
| Be the first to run NodeCore for 72 straight hours.<br />
| VFPiN4TkDq684u8HAqr7gEgQm4jwGF<br />
| Zip up the log file and send<br />
|-<br />
| 2018-07-11 12:38 EST<br />
| 1001.1<br />
| 5000<br />
| Be the first to PoW Mine 10000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-12 02:24 EST<br />
| 1001.2<br />
| 5000<br />
| Be the first to PoW Mine 20000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-13 10:05 EST<br />
| 1001.3<br />
| 5000<br />
| Be the first to PoW Mine 50000+ VBK testnet coins in a solo pool<br />
| V2C86eV6xi1uPykYPNnP8nWwu9GJxf<br />
| <br />
|-<br />
| 2018-07-17 07:34 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Linux)<br />
| TBD<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|-<br />
| 2018-08-02 10:46 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Windows)<br />
| TBD<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|}<br />
<br />
== Leader board ==<br />
<br />
{| class="wikitable"<br />
! Date<br />
! Name<br />
! BountyID<br />
! Reward<br />
! Address<br />
! Proof<br />
|-<br />
| <br />
|<br />
| <br />
| <br />
| <br />
| <br />
|}<br />
<br />
== FAQ ==<br />
<br />
=== How will bounties be awarded? ===<br />
<br />
Please see: [[Bounty_Process]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=Bounty_List&diff=644Bounty List2018-09-11T02:46:29Z<p>TimStall: /* Other VBK bounties */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
See also: [[Bounty_Process]], [[Mining_Sunrise_Phase]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
Per the process described here [[Bounty_Process]], VeriBlock will send out VBK coins for various bounties.<br />
<br />
This program will start on date '''Wed, July 11, 2018'''.<br />
<br />
It runs on 0.2 of NodeCore, to be released July 11, 2018.<br />
<br />
The list of bounties is below. The rewards for open bounties may be adjusted.<br />
<br />
This list may change:<br />
* New types of bounties could be added<br />
* Existing bounties may be repeated - if a bounty is closed (and awarded) on week 1, it could be re-opened on week 2 to encourage new participants to try.<br />
<br />
Send an email to '''bounty@veriblock.com''' with:<br />
# '''The BountyID in the subject header'''<br />
# The bounty<br />
# Your solution<br />
# Any other relevant details<br />
<br />
== List of OPEN Bounties ==<br />
<br />
For comparison: the total block reward is 175 VBK, for an expected 30-second block.<br />
<br />
=== 20,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 3000.1<br />
| 20000<br />
| Steal funds from the address _____ (TBD).<br />
| TODO<br />
| Show the address that the funds were sent to<br />
|-<br />
|}<br />
<br />
=== 10,000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 2000.1<br />
| 10,000<br />
| Write a value-added utility based off the NodeCore API<br />
| See https://github.com/VeriBlock/demo-rpc-client<br />
| Put code on github (could be private repo, but VeriBlock bounty moderator must have access to review code). After N days, hackathon is closed, and community will vote on winners.<br />
|-<br />
| 2000.1<br />
| TBD<br />
| Submit "something of interest." Want to get feedback on things we won't even think to ask.<br />
| Bounty moderator will triage reward amount<br />
| Send idea to bounty@veriblock.com<br />
|-<br />
|}<br />
<br />
=== 5000 VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 1003.1<br />
| 5000<br />
| Be the first public pool operator to collect 40 different addresses over 10 rounds<br />
| <br />
| Send email with IP to connect to<br />
|-<br />
| 1500.1<br />
| 5000<br />
| Submit "something of interest"<br />
| Want to get feedback on things we won't even think to ask<br />
| Send idea to bounty@veriblock.com<br />
|}<br />
<br />
=== Other VBK bounties ===<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|-<br />
| 4001.1<br />
| TBD<br />
| Provide a cool meme that helps the VeriBlock Community<br />
| Could be multiple instances of this bounty. Moderator will use discretion.<br />
| Send idea to bounty@veriblock.com. There may be some community vote/filtering to decide final winners. TBD.<br />
|}<br />
<br />
== List of Pending Bounties (these are likely won, so focus on other bounties) ==<br />
<br />
These very likely have been won, and we are verifying. We're adding this section so that folks know to focus on other bounties.<br />
<br />
{| class="wikitable"<br />
! BountyID<br />
! Award (VBK)<br />
! Description<br />
! More Detail<br />
! How to Verify<br />
|}<br />
<br />
<br />
<br />
== List of CLOSED (Won) Bounties ==<br />
<br />
{| class="wikitable"<br />
! Date Submitted<br />
! BountyID<br />
! Reward<br />
! Description<br />
! Address<br />
! Proof<br />
|-<br />
| 2018-07-11 11:41 EST<br />
| 1008.1<br />
| 5000<br />
| Be the first to add 50+ peers<br />
| V5gmnXEQKA6HfQqKyB2NUk9Gn4yFEx<br />
| Sent list of peers<br />
|-<br />
| 2018-07-11 17:26 EST<br />
| 1007.1<br />
| 5000<br />
| Be the first to create block hash starting with 9 zeros. <br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8<br />
| Occured in block 78, TX: 0000000005C3E9E9C01DF36ED18C46EFDA318C011980D35F <br />
|-<br />
| 2018-07-12 16:01 EST<br />
| 1002.1<br />
| 5000<br />
| Be the first to add 100 PoP Transactions to Bitcoin TestNet <br />
| VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
| https://testnet.explore.veriblock.org/address/VFGYqoxfTz5rBD9aWjvgKZrDWFbRkh<br />
|-<br />
| 2018-07-13 04:32 EST<br />
| 1004.1<br />
| 5000<br />
| Be the first to send 100 transactions (total) to 100 different addresses<br />
| VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTv<br />
| https://testnet.explore.veriblock.org/address/VJ9WmEmo6i6wUdqQ2Z7iNxwfsCSrTvs<br />
|-<br />
| 2018-07-15 16:45 EST<br />
| 1006.1<br />
| 5000<br />
| Be the first to create an TX with "000", "ABC", "BEE", "DAD", or "FAB" in the TxID.<br />
| V2epguygNg9ze2qCmjS467LaJAUpso<br />
| 4F7507B4FF80E566DADC93DA45124BDE263857626D5C821E3BE8D59C282CF377<br />
|-<br />
| 2018-07-13 14:51 EST<br />
| 1005.1<br />
| 5000<br />
| Be the first to run NodeCore for 72 straight hours.<br />
| VFPiN4TkDq684u8HAqr7gEgQm4jwGF<br />
| Zip up the log file and send<br />
|-<br />
| 2018-07-11 12:38 EST<br />
| 1001.1<br />
| 5000<br />
| Be the first to PoW Mine 10000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-12 02:24 EST<br />
| 1001.2<br />
| 5000<br />
| Be the first to PoW Mine 20000+ VBK testnet coins in a solo pool<br />
| V2SxFzwDFYn5VuLFWLvRrQLdyB4Ed8, V6WMY7kWEf97FAzAMERaWZ6wp6HGf4<br />
| <br />
|-<br />
| 2018-07-13 10:05 EST<br />
| 1001.3<br />
| 5000<br />
| Be the first to PoW Mine 50000+ VBK testnet coins in a solo pool<br />
| V2C86eV6xi1uPykYPNnP8nWwu9GJxf<br />
| <br />
|-<br />
| 2018-07-17 07:34 EST<br />
| 4002.2<br />
| 2500<br />
| Write a NodeCore migrations script (Linux)<br />
| TBD<br />
| See: [[Bounty_4002]], Share script on telegram, get others to verify that they can use it, send script as email attachment to bounty@veriblock.com<br />
|}<br />
<br />
== Leader board ==<br />
<br />
{| class="wikitable"<br />
! Date<br />
! Name<br />
! BountyID<br />
! Reward<br />
! Address<br />
! Proof<br />
|-<br />
| <br />
|<br />
| <br />
| <br />
| <br />
| <br />
|}<br />
<br />
== FAQ ==<br />
<br />
=== How will bounties be awarded? ===<br />
<br />
Please see: [[Bounty_Process]]</div>TimStallhttps://wiki.veriblock.org/index.php?title=TestNet&diff=643TestNet2018-09-10T21:55:33Z<p>TimStall: </p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
== tVBK vs. VBK ==<br />
<br />
The official MainNet VeriBlock symbol will be '''VBK'''<br />
<br />
The official TestNet VeriBlock symbol will be '''tVBK'''<br />
<br />
They are separate things, so they have separate labels.<br />
<br />
== List of Nodes ==<br />
<br />
<pre><br />
NodeCore will automatically pick random bootstrapping nodes from this list. One could also automatically set via the nodecore.properties file:<br />
peer.bootstrap.hosts=<some_ip>:7501,<some_ip>:7501<br />
</pre><br />
<br />
<br />
TestNet is spread across these geographically distributed nodes.<br />
<br />
{| class="wikitable"<br />
! Location<br />
! IP<br />
|-<br />
| Atlanta<br />
| 23.111.152.218<br />
|-<br />
| Los Angeles<br />
| 66.165.231.186<br />
|-<br />
| New York City<br />
| 66.165.247.170<br />
|-<br />
| Germany<br />
| 78.46.106.162<br />
|-<br />
| Europe<br />
| 176.9.30.210<br />
|-<br />
| Europe<br />
| 176.9.99.83 <br />
|}<br />
<br />
Additional Asia Nodes<br />
<br />
{| class="wikitable"<br />
! Location<br />
! IP<br />
|-<br />
| Japan<br />
| 45.77.10.158<br />
|-<br />
| Japan<br />
| 45.77.8.186<br />
|-<br />
| Japan<br />
| 207.148.109.252<br />
|-<br />
| Japan<br />
| 45.76.110.188<br />
|-<br />
| Singapore<br />
| 45.77.40.251<br />
|-<br />
| Singapore<br />
| 66.42.62.240<br />
|-<br />
| Singapore<br />
| 45.32.107.87<br />
|-<br />
| Singapore<br />
| 207.148.120.200<br />
|}<br />
<br />
<br />
Additional Bootstrapping Nodes... yeah it's a big stash in a datacenter in Europe<br />
<br />
{| class="wikitable"<br />
! Location<br />
! IP<br />
|-<br />
| Europe<br />
| 94.130.222.180<br />
|-<br />
| Europe<br />
| 94.130.238.197<br />
|-<br />
| Europe<br />
| 94.130.238.198<br />
|-<br />
| Europe<br />
| 94.130.238.199<br />
|-<br />
| Europe<br />
| 94.130.238.201<br />
|-<br />
| Europe<br />
| 94.130.239.46<br />
|-<br />
| Europe<br />
| 94.130.239.45<br />
|-<br />
| Europe<br />
| 94.130.239.44<br />
|-<br />
| Europe<br />
| 94.130.239.43<br />
|-<br />
| Europe<br />
| 94.130.239.42<br />
|-<br />
| Europe<br />
| 94.130.64.158<br />
|-<br />
| Europe<br />
| 88.198.62.163<br />
|-<br />
| Europe<br />
| 94.130.33.230<br />
|-<br />
| Europe<br />
| 94.130.222.60<br />
|-<br />
| Europe<br />
| 94.130.237.119<br />
|-<br />
| Europe<br />
| 94.130.237.185<br />
|-<br />
| Europe<br />
| 148.251.7.69<br />
|-<br />
| Europe<br />
| 94.130.88.172<br />
|-<br />
| Europe<br />
| 148.251.42.76<br />
|-<br />
| Europe<br />
| 88.99.249.217<br />
|}</div>TimStallhttps://wiki.veriblock.org/index.php?title=NodeCore_Networking&diff=642NodeCore Networking2018-09-10T21:36:02Z<p>TimStall: /* Overview */</p>
<hr />
<div>See: [[Main_Page]]<br />
<br />
__TOC__<br />
<br />
== Overview ==<br />
<br />
These are the default ports and connection protocols used by NodeCore.<br />
<br />
{| class="wikitable"<br />
! Port (MainNet)<br />
! Port (TestNet)<br />
! Protocol<br />
! Users<br />
! Security<br />
! Comments<br />
|-<br />
| 10500<br />
| 1050'''1'''<br />
| Admin RPC (gRPC)<br />
| Wallet or CommandLine<br />
| IP Whitelisting, SSL/TLS Channel, Passwords<br />
| Hosted on trusted machine (usually local or intranet) with NodeCore instance. Access to local wallet, so highly secure.<br />
|-<br />
| 8501<br />
| 8501<br />
| UCP (raw socket)<br />
| Thin clients, miners<br />
| <br />
| Used for PoW mining pool (and in future, SPV-like clients)<br />
|-<br />
| 8500<br />
| 8500<br />
| HTTP<br />
| Pool Miners<br />
| <br />
| Displays a web page showing pool status (recent share submissions on a per-address basis)<br />
|-<br />
| 7500<br />
| 750'''1'''<br />
| P2P RPC (gRPC)<br />
| Other NodeCore instances<br />
| IP Blacklisting<br />
| Connect to other VeriBlock NodeCore instances<br />
|}<br />
<br />
== Admin RPC (port 10500) ==<br />
<br />
=== IP Whitelisting ===<br />
<br />
For a NodeCore instance, IP Whitelisting allows explicitly adding IPs such that only remote clients on that list can connect to your VeriBlock NodeCore instance.<br />
<br />
1. In nodecore.properties, change the admin endpoint to bind to 0.0.0.0 and add a whitelist entry for your IP address. <br />
<br />
Note that NodeCore expects IPv4, such as: http://whatismyip.host<br />
<br />
<pre><br />
#no longer directly bound to local host<br />
rpc.bind.address=0.0.0.0<br />
<br />
#allow the specified IP to connect<br />
rpc.whitelist.addresses = 98.213.111.91<br />
</pre><br />
<br />
Note that the whitelist entry is a CSV list. It can be a:<br />
* single IP address, e.g. 193.168.1.1<br />
* "wildcard" IP, e.g. 193.168.*.* (which would be all IP's in the 192.168 range)<br />
* CIDR representation, e.g. 193.168.0.0/16<br />
<br />
2. If there is a firewall between the VeriBlock NodeCore instance and the device(s) you wish to allow access to, then open port 10500. <br />
<br />
This will vary depending on your operating system. Here is an example for a RHEL-based linux distro (example is CentOS 7):<br />
<br />
<pre><br />
firewall-cmd --permanent --add-port=10500/tcp<br />
firewall-cmd --reload<br />
</pre><br />
<br />
3. Restart NodeCore.<br />
<br />
=== Passwords ===<br />
<br />
To secure the RPC connection, you will either need to provide your own X509 certificate and private key, or use scripts/openssl-cert-gen.(sh|ps1) to generate the required certs and private keys. Once you have your certificates, you can configure the security mode and certificate paths<br />
<br />
<pre><br />
rpc.security.mode = ServerTls<br />
rpc.security.cert.chain.path = scripts/certs/server.crt<br />
rpc.security.private.key.path = scripts/certs/server.pem<br />
</pre><br />
<br />
The first time NodeCore runs, it will create a random RPC password and update the nodecore.properties file. To change this password, just modify your nodecore.properties file<br />
<br />
<pre><br />
rpc.security.password=rpcpass123<br />
</pre><br />
<br />
There will also be the following property added to your props file, which you will need to set to true to enforce the password authentication (disabled by default):<br />
<br />
<pre><br />
rpc.security.password.enabled=true<br />
</pre><br />
<br />
If you completely remove the password property, nodecore will generate a new random password when it starts.<br />
<br />
To configure nodecore-cli to connect to your secured nodecore instance, see: [[HowTo_connect_NC_CLI_to_remote_NodeCore_instance]]</div>TimStall