HowTo PoP vBTC

From Veriblock Wiki
Jump to: navigation, search

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