Difference between revisions of "HowTo Mine BTCSQ"

From Veriblock Wiki
Jump to: navigation, search
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
See: [[VAIF]]
 
See: [[VAIF]]
  
'''vBTC is currently in Alpha, and will change. This page is for testing purposes.'''
+
'''vBTC is currently in the Gamma release phase, and will change. This page is for testing purposes.'''
  
 
__toc__
 
__toc__
Line 8: Line 8:
 
vBTC is the reference implementation for Bitcoin-based blockchains utilizing VeriBlock's Proof-of-Proof technology.
 
vBTC is the reference implementation for Bitcoin-based blockchains utilizing VeriBlock's Proof-of-Proof technology.
  
Below, you will find the steps needed to download and run the vBTC Alpha daemon.   
+
Below, you will find the steps needed to download and run the vBTC daemon.   
  
 
Please note, all coins associated with this network are without value, and are for testing purposes only.
 
Please note, all coins associated with this network are without value, and are for testing purposes only.
Line 14: Line 14:
 
In the current implementation, we are using tVBK (testnet) to PoP mine (testnet) vBTC.  vBTC inherits security from the VeriBlock TestNet, and VeriBlock TestNet inherits security from Bitcoin Testnet.
 
In the current implementation, we are using tVBK (testnet) to PoP mine (testnet) vBTC.  vBTC inherits security from the VeriBlock TestNet, and VeriBlock TestNet inherits security from Bitcoin Testnet.
  
'''In order to PoP mine ALL 3 of the following are required to stay open and running:'''<br>
+
'''In order to PoP mine both of the following are required to stay open and running:'''<br>
'''1) NodeCore'''<br>
+
'''1) vBitcoin'''<br>
'''2) vBitcoin'''<br>
+
'''2) Altchain PoP Miner'''<br>
'''3) Altchain PoP Miner'''<br>
 
  
 
=== Prerequisites: ===
 
=== Prerequisites: ===
Line 24: Line 23:
  
 
== Download Packages for Windows x64 ==
 
== Download Packages for Windows x64 ==
 +
 +
Here: https://mirror.veriblock.org/vBTC-release.gamma-27c4d63.zip
  
 
Package contains:
 
Package contains:
  
=== vBitcoin Beta Daemon ===
+
=== vBitcoin Gamma Daemon ===
 
* vbitcoin-qt.exe
 
* vbitcoin-qt.exe
 
* vbitcoind.exe
 
* vbitcoind.exe
Line 36: Line 37:
  
 
=== vbitcoin.conf location ===
 
=== vbitcoin.conf location ===
Located within the '''vBTC-alpha-<version>/data''' directory.
+
Located within the '''vBTC-release.gamma-<version>/data''' directory.
  
===NodeCore 0.4.9===
+
===Altchain PoP Miner 0.4.11===
===Altchain PoP Miner 0.4.9===
 
  
 
== Configuration and First Run ==
 
== Configuration and First Run ==
 
=== NodeCore ===
 
 
# Sync TestNet
 
## While you could sync from block 0, the fastest way is using the bootstrap downloader:
 
## Inside the nodecore folder, double click '''download_testnet_bootstrap.bat''' and it will download the latest TestNet bootstrap and place it in the nodecore/bin/testnet folder.
 
# Once the bootstrap-downloader has finished, you can close the window and double click '''bin/nodecore.bat''' to start NodeCore in testnet mode.
 
  
 
=== vBTC ===
 
=== vBTC ===
Line 63: Line 56:
 
==== Edit application.conf ====
 
==== Edit application.conf ====
  
After unzipping the package, it can be found in '''altchain-pop-miner-0.4.9-<version>/bin/application.conf'''
+
After unzipping the package, it can be found in '''altchain-pop-miner-0.4.11-<version>/bin/application.conf'''
  
 
Open application.conf, and update the '''payoutAddress''' to match the newly generated vBitcoin address to receive rewards.<p>  NOTE: If you changed the vBitcoin RPC username or password, or if you are running a VeriBlock TestNet node on another machine you will want to update those fields as well.<p>
 
Open application.conf, and update the '''payoutAddress''' to match the newly generated vBitcoin address to receive rewards.<p>  NOTE: If you changed the vBitcoin RPC username or password, or if you are running a VeriBlock TestNet node on another machine you will want to update those fields as well.<p>
Line 82: Line 75:
 
     auth: {
 
     auth: {
 
       username: "vbitcoin"
 
       username: "vbitcoin"
       password: "AlPhATeSt!"
+
       password: "GAMMATeSt!"
 
     }
 
     }
     payoutInterval: 50
+
     payoutDelay: 50
 
     // Uncomment if you want verbose request logging
 
     // Uncomment if you want verbose request logging
 
     #extraConfig: {
 
     #extraConfig: {
Line 102: Line 95:
 
https://vbk.bitspill.net
 
https://vbk.bitspill.net
  
==== Wait for NodeCore Synchronization ====
+
==== Wait for SPV Synchronization ====
 
Once the wallet is funded you will need to wait for NodeCore to synchronize with the VeriBlock TestNet network if it is not already.
 
Once the wallet is funded you will need to wait for NodeCore to synchronize with the VeriBlock TestNet network if it is not already.
 
<pre>
 
<pre>
2020-06-03 18:29:09 nc-poll INFO NodeCoreNetwork - The connected NodeCore is not synchronized, Local Block: 569652, Network Block: 569648, Block Difference: 4, waiting until it synchronizes...
+
2020-11-02 12:40:54 nc-poll   INFO  VeriBlockNetwork - SPV is not synchronized: 963230 blocks left (LocalHeight=30399 NetworkHeight=993629 InitialBlockDownload=false)
2020-06-03 18:29:21 nc-poll INFO AltchainPoPMiner - The connected NodeCore is synchronized
+
2020-11-02 12:40:54 nc-poll   INFO AltchainPoPMiner - SPV is not ready
 +
 
 
</pre>
 
</pre>
  
Line 115: Line 109:
  
 
<pre>
 
<pre>
>getdebuginfo
+
> getdebuginfo
 +
getdebuginfo
 
Running several checks, this may take a few moments...
 
Running several checks, this may take a few moments...
SUCCESS - NodeCore connection: Connected
+
{
SUCCESS - NodeCore synchronization status: Synchronized
+
  "information": [
SUCCESS - vBitcoin connection: Connected
+
    "SUCCESS - SPV connection: Connected",
SUCCESS - vBitcoin synchronization status: Synchronized
+
    "SUCCESS - SPV synchronization status: Synchronized 0 blocks left (LocalHeight=993821 NetworkHeight=993821 InitialBlockDownload=false)",
SUCCESS - The PoP wallet contains sufficient funds
+
    "SUCCESS - vBitcoin connection: Connected to http://localhost:18332",
 +
    "SUCCESS - vBitcoin configured network: vBitcoin & APM are running on the same configured network (testnet)",
 +
    "SUCCESS - vBitcoin synchronization status: Synchronized 0 blocks left (LocalHeight=7128 NetworkHeight=7128 InitialBlockDownload=false)",
 +
    "SUCCESS - vBitcoin payoutAddress: 'tb1qtmtcd6y398n7tdxafscah0x9yg5ffprpum20y4' is configured",
 +
    "SUCCESS - vBitcoin configuration for autoMineRounds is valid",
 +
    "SUCCESS - The tVBK PoP wallet contains sufficient funds, current balance: 9.99506000 tVBK"
 +
  ],
 +
  "diagnosticInfo": {
 +
    "user_language": "en",
 +
    "java_runtime_name": "OpenJDK Runtime Environment",
 +
    "sun_boot_library_path": "C:\\Program Files\\AdoptOpenJDK\\jdk-14.0.2.12-hotspot\\bin",
 +
    "java_runtime_version": "14.0.2+12",
 +
    "java_specification_version": "14",
 +
    "os_name": "Windows 10",
 +
    "os_arch": "amd64",
 +
    "os_version": "10.0",
 +
    "memory_total_gb": "2.21 GB",
 +
    "memory_max_gb": "3.98 GB",
 +
    "processor_count": "12",
 +
    "processor_type": "Intel64 Family 6 Model 63 Stepping 2, GenuineIntel",
 +
    "working_directory": "C:\\Users\\User\\Desktop\\vBTC-release.gamma-27c4d63\\altchain-pop-miner-0.4.11-dev.93\\bin",
 +
    "datetime_now_utc": "2020-11-02 14:18:51.593-0600"
 +
  }
 +
}
 +
200 success (17.17 ms)
 
</pre>
 
</pre>
  
Line 162: Line 181:
 
|-
 
|-
 
| Altchain
 
| Altchain
| Test B (Test B)
+
| vBTC
 
|-
 
|-
 
| Identifier
 
| Identifier
Line 206: Line 225:
 
If you are already pop mining vBTC, then upgrading is relatively easy.
 
If you are already pop mining vBTC, then upgrading is relatively easy.
  
Get latest package. This will have 3 separate applications:
+
Get latest package. This will have 2 separate applications:
 
* APM
 
* APM
* NodeCore (needed by APM)
 
 
* vBTC daemon
 
* vBTC daemon
  
Line 220: Line 238:
 
## vbk-testnet.wallet --> this has your tVBK for sending altchain pop transactions
 
## vbk-testnet.wallet --> this has your tVBK for sending altchain pop transactions
 
# Start new APM
 
# Start new APM
 
=== Upgrade NodeCore ===
 
 
Use standard operations to upgrade NodeCore. This assumes you already have the blockchain downloaded and your property file set:
 
 
# Stop old NodeCore
 
# Move bin/testnet folder to new NodeCore
 
# Copy bin/nodecore.properties to new NodeCore
 
# Your folder structure will look similar to:
 
## /bin
 
### /testnet
 
### nodecore
 
### nodecore.bat
 
### nodecore.properties
 
# Restart new NodeCore
 
 
See for detail: [[HowTo_run_NodeCore#How_to_upgrade_NodeCore_and_keep_your_wallet]]
 
  
 
=== Upgrade vBTC Daemon ===
 
=== Upgrade vBTC Daemon ===
Line 256: Line 257:
 
** C++ altchain library - https://github.com/VeriBlock/alt-integration-cpp
 
** C++ altchain library - https://github.com/VeriBlock/alt-integration-cpp
 
** APM - https://github.com/VeriBlock/nodecore/tree/develop/altchain-pop-miner
 
** APM - https://github.com/VeriBlock/nodecore/tree/develop/altchain-pop-miner
* NodeCore daemon - [[HowTo_run_NodeCore]]
 
 
* How to run APM - [[Altchain_PoP_Miner]]
 
* How to run APM - [[Altchain_PoP_Miner]]
* VBK TestNet explorer - https://testnet.explore.veriblock.org/altchain-details/3860170
+
* Explorers
 +
** vBTC explorer - https://testnet.explore.vbtc.veriblock.org
 +
** VBK TestNet explorer - https://testnet.explore.veriblock.org/altchain-details/3860170
 
* Background Information
 
* Background Information
 
** https://wiki.veriblock.org/index.php/Altchain_PoP_Lifecycle
 
** https://wiki.veriblock.org/index.php/Altchain_PoP_Lifecycle
 
** https://wiki.veriblock.org/index.php/VeriBlock_and_Proof-of-Proof_FAQ
 
** https://wiki.veriblock.org/index.php/VeriBlock_and_Proof-of-Proof_FAQ
 
** https://wiki.veriblock.org/index.php/How_VeriBlock_PoP_BFI_Protects_Altchains
 
** https://wiki.veriblock.org/index.php/How_VeriBlock_PoP_BFI_Protects_Altchains

Revision as of 20:20, 2 November 2020

See: VAIF

vBTC is currently in the Gamma release phase, and will change. This page is for testing purposes.

Overview

vBTC is the reference implementation for Bitcoin-based blockchains utilizing VeriBlock's Proof-of-Proof technology.

Below, you will find the steps needed to download and run the vBTC daemon.

Please note, all coins associated with this network are without value, and are for testing purposes only.

In the current implementation, we are using tVBK (testnet) to PoP mine (testnet) vBTC. vBTC inherits security from the VeriBlock TestNet, and VeriBlock TestNet inherits security from Bitcoin Testnet.

In order to PoP mine both of the following are required to stay open and running:
1) vBitcoin
2) Altchain PoP Miner

Prerequisites:

64-bit Java

Tested using AdoptOpenJDK 8, 11, & 14 with HotSpot JVM. https://adoptopenjdk.net/

Download Packages for Windows x64

Here: https://mirror.veriblock.org/vBTC-release.gamma-27c4d63.zip

Package contains:

vBitcoin Gamma Daemon

  • vbitcoin-qt.exe
  • vbitcoind.exe
  • vbitcoin-cli.exe
  • vbitcoin-tx.exe
  • vbitcoin-wallet.exe
  • vbitcoin.conf

vbitcoin.conf location

Located within the vBTC-release.gamma-<version>/data directory.

Altchain PoP Miner 0.4.11

Configuration and First Run

vBTC

Running vBitcoin QT Wallet

Double click the start-vbitcoin-qt.bat file to launch the QT Wallet using the data directory, instead of the default %appdata%\vBitcoin

vBitcoin Initial Start

Generate Reward Address

vBitcoin getnewaddress

APM (Altchain PoP Miner)

Edit application.conf

After unzipping the package, it can be found in altchain-pop-miner-0.4.11-<version>/bin/application.conf

Open application.conf, and update the payoutAddress to match the newly generated vBitcoin address to receive rewards.

NOTE: If you changed the vBitcoin RPC username or password, or if you are running a VeriBlock TestNet node on another machine you will want to update those fields as well.

Sample Config:

securityInheriting {
  vbtc: {
    // Valid options are round 1, 2, or 4 (any combination) Round 4 indicates a Keystone. [1,2,4]
    autoMineRounds: [4]
    payoutAddress: "tb1qdvkkx4r824wcgu92acwn88wll929jxkwey5gsd"
    pluginKey: btc
    id: 3860170
    name: "vBitcoin"
    host: "http://localhost:18332"
    // Uncomment if your vBTC daemon is auth protected
    auth: {
      username: "vbitcoin"
      password: "GAMMATeSt!"
    }
    payoutDelay: 50
    // Uncomment if you want verbose request logging
    #extraConfig: {
    #  enableRequestLogging: true
    #}
  }

Start the APM

Once you have edited the application.conf file, please start the APM by double clicking altchain-pop-miner.bat within the altchain-pop-miner-0.4.9-<version>/bin/ directory.

Funding APM Wallet

APM Initial Start

When the APM starts, you will see a line similar to Send funds to the tVBK wallet V4xwrouY6UNtBEC9V8fmWaibd4taqz
You will want to fund this wallet with VeriBlock TestNet coins. You can get testnet coins from a faucet, such as bitspill's community faucet at:
https://vbk.bitspill.net

Wait for SPV Synchronization

Once the wallet is funded you will need to wait for NodeCore to synchronize with the VeriBlock TestNet network if it is not already.

2020-11-02 12:40:54 nc-poll    INFO  VeriBlockNetwork - SPV is not synchronized: 963230 blocks left (LocalHeight=30399 NetworkHeight=993629 InitialBlockDownload=false)
2020-11-02 12:40:54 nc-poll    INFO  AltchainPoPMiner - SPV is not ready

How To PoP Mine vBTC

Run getdebuginfo to check if APM is ready

This performs several checks, such that it can connect to both NodeCore and vBTC daemons, and has a VBK balance.

 > getdebuginfo
getdebuginfo
Running several checks, this may take a few moments...
{
  "information": [
    "SUCCESS - SPV connection: Connected",
    "SUCCESS - SPV synchronization status: Synchronized 0 blocks left (LocalHeight=993821 NetworkHeight=993821 InitialBlockDownload=false)",
    "SUCCESS - vBitcoin connection: Connected to http://localhost:18332",
    "SUCCESS - vBitcoin configured network: vBitcoin & APM are running on the same configured network (testnet)",
    "SUCCESS - vBitcoin synchronization status: Synchronized 0 blocks left (LocalHeight=7128 NetworkHeight=7128 InitialBlockDownload=false)",
    "SUCCESS - vBitcoin payoutAddress: 'tb1qtmtcd6y398n7tdxafscah0x9yg5ffprpum20y4' is configured",
    "SUCCESS - vBitcoin configuration for autoMineRounds is valid",
    "SUCCESS - The tVBK PoP wallet contains sufficient funds, current balance: 9.99506000 tVBK"
  ],
  "diagnosticInfo": {
    "user_language": "en",
    "java_runtime_name": "OpenJDK Runtime Environment",
    "sun_boot_library_path": "C:\\Program Files\\AdoptOpenJDK\\jdk-14.0.2.12-hotspot\\bin",
    "java_runtime_version": "14.0.2+12",
    "java_specification_version": "14",
    "os_name": "Windows 10",
    "os_arch": "amd64",
    "os_version": "10.0",
    "memory_total_gb": "2.21 GB",
    "memory_max_gb": "3.98 GB",
    "processor_count": "12",
    "processor_type": "Intel64 Family 6 Model 63 Stepping 2, GenuineIntel",
    "working_directory": "C:\\Users\\User\\Desktop\\vBTC-release.gamma-27c4d63\\altchain-pop-miner-0.4.11-dev.93\\bin",
    "datetime_now_utc": "2020-11-02 14:18:51.593-0600"
  }
}
200 success (17.17 ms)

Once vBitcoin and NodeCore have synchronized, and you have funded your tVBK wallet in the APM, you can type 'mine vbtc' to submit a PoP transaction.

You may need to wait for wallet funding:

2020-06-03 18:46:06 event-list INFO  TransactionMonitor        - Detected incoming VBK transaction: 844A9DFFFAA1F26CA413AD4354AC4844A90053BE31C03C894C049A1CD5739119
2020-06-03 18:46:06 event-list INFO  AltchainPoPMiner          - Current balance: 10.00000000 tVBK
2020-06-03 18:46:06 event-list INFO  AltchainPoPMiner          - Miner is ready!

Submit PoP Transaction

 > mine vbtc
mine vbtc
2020-06-03 18:47:16 main       INFO  AltchainPoPMiner          - Created operation [vbtc85541518] on chain vBitcoin
   INFO: (2020-06-03 18:47:16) [v200] Mining operation started
         Operation id: vbtc85541518
200 success (266.7 ms)
2020-06-03 18:47:16 pop-tasks- INFO  ApmTaskService            - [vbtc85541518] Getting the mining instruction...
2020-06-03 18:47:16 pop-tasks- INFO  BitcoinFamilyChain        - Retrieving mining instruction at height 53 from vBitcoin daemon at http://localhost:18332...
2020-06-03 18:47:16 pop-tasks- INFO  ApmTaskService            - [vbtc85541518] Successfully retrieved the mining instruction!
2020-06-03 18:47:16 pop-tasks- INFO  ApmTaskService            - [vbtc85541518] Submitting endorsement VBK transaction...
2020-06-03 18:47:16 pop-tasks- INFO  ApmTaskService            - [vbtc85541518] Successfully added the VBK transaction: D8A0D80B1C286B1C5B04CE6894C6BBDA0CFF23FA288D72F60DF7A48A58B66005!
2020-06-03 18:47:16 pop-tasks- INFO  ApmTaskService            - [vbtc85541518] Waiting for the transaction to be included in VeriBlock block...

Verify PoP Transaction on VBK TestNet Explorer

Transactions can be seen and verified at https://testnet.explore.veriblock.org/

https://testnet.explore.veriblock.org/tx/D8A0D80B1C286B1C5B04CE6894C6BBDA0CFF23FA288D72F60DF7A48A58B66005

The transaction information should match your payoutAddress you selected earlier:

Altchain Data Example
Altchain vBTC
Identifier 3860170
Endorsed Block Hash 000000076CF8E04E16DD28FAA5831041B56CD1AF46B80959586CD754C7091E2E
Endorsed Block Height 53
Reward Address tb1qdvkkx4r824wcgu92acwn88wll929jxkwey5gsd
First Previous Keystone 00000000142988A6E06E52DE0D57420D590E602D9E908731FD6AF7B09C2089B5
Second Previous Keystone 000000071279A847E7C1E633651CC54FDCCAD492E13052562DAF7E71714D5B7D

View PoP tx from start to finish

> getoperation vbtc366214b4
...
Operation workflow:
DONE      1. START                           Created APM operation id: vbtc366214b4
DONE      2. RETRIEVE_MINING_INSTRUCTION     Endorsed vBitcoin block height: 95
DONE      3. SUBMIT_ENDORSEMENT_TRANSACTION  tVBK endorsement transaction id: 43B8A911BCCF8B5D20E8D6374B22555CD1A1DD22B356461EDBDD23581900C660 (fee: 0.00248000)
DONE      4. CONFIRM_ENDORSEMENT_TRANSACTION
DONE      5. DETERMINE_BLOCK_OF_PROOF        tVBK Block of Proof: 0000000005E4E0F3A62A5FCD7852BE4EDBAC033E836B07A8 @ 583257
DONE      6. PROVE_ENDORSEMENT_TRANSACTION   Merkle path has been verified
DONE      7. WAIT_FOR_KEYSTONE_OF_PROOF      tVBK Keystone of Proof: 000000001A1EFAB5F9890DD4182D57DF53519F5BD8676E45
DONE      8. GET_VBK_PUBLICATIONS            Retrieved 14 VTBs
DONE      9. SUBMIT_POP_TRANSACTION          VTBs submitted to vBitcoin! vBitcoin PoP TxId: 0a3fcf3d4db23eee84c922dcd535b949ba9bb0bbf353012f8ca77128287d8640
DONE     10. WAIT_FOR_PAYOUT_BLOCK           Payout detected in vBitcoin block 145 to vBitcoin address tb1qps3s9t9kz9atl6m666t57ehzy849la08wshahy!
DONE     11. COMPLETED                       Paid amount: 47.20500000

How to upgrade

If you are already pop mining vBTC, then upgrading is relatively easy.

Get latest package. This will have 2 separate applications:

  • APM
  • vBTC daemon

Each part can be upgraded as needed. For example you may only want to upgrade to the new APM, and not change NC or vBTC.

Upgrade APM

  1. Shut down old APM
  2. Copy these files to new APM /bin folder:
    1. application.conf
    2. vbk-testnet.wallet --> this has your tVBK for sending altchain pop transactions
  3. Start new APM

Upgrade vBTC Daemon

  1. Shut down old vBTC
  2. Start new vBTC

Note: The new vBTC should have the same vbitcoin.conf and blockchain as before, therefore no need to update the conf or blockchain.

Note: It may take some time to resync the network. (There are known issues to optimize this).


Appendix

Helpful Links