Difference between revisions of "HowTo Mine BTCSQ"
(31 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | See: [[ | + | See: [[BTCSQ]], [[Altchain_List]], [[Altchain_PoP_Miner]], [[PoW_Pools_BTCSQ]], [[VAIF]] |
− | + | Bitcoin Squared (BTCSQ), formerly codename "vBTC" | |
__toc__ | __toc__ | ||
Line 19: | Line 19: | ||
'''3) Altchain PoP Miner'''<br> | '''3) Altchain PoP Miner'''<br> | ||
− | === Prerequisites | + | === Prerequisites === |
It is recommended to have 4 cpu cores and 16GB of RAM to run all 3 applications. (NodeCore, APM, vBitcoin daemon) | It is recommended to have 4 cpu cores and 16GB of RAM to run all 3 applications. (NodeCore, APM, vBitcoin daemon) | ||
Currently, VeriBlock TestNet requires a minimum of 6GB of space to sync. 10+ GB free space recommended. | Currently, VeriBlock TestNet requires a minimum of 6GB of space to sync. 10+ GB free space recommended. | ||
+ | |||
+ | ==== Linux ==== | ||
+ | |||
+ | These libraries may already be installed. But if you get error like "Error while loading shared libraries: libboost_filesystem.so.1.71.0: cannot open shared object file: No such file or directory", then run: | ||
+ | |||
+ | <pre> | ||
+ | sudo apt-get update. | ||
+ | sudo apt-get install libdb++-dev build-essential libtool autotools-dev automake pkg-config bsdmainutils ccache python3 python3-pip python3-setuptools python-setuptools. | ||
+ | sudo apt-get install libevent-dev python3-zmq python3-dev libboost. | ||
+ | </pre> | ||
====64-bit Java==== | ====64-bit Java==== | ||
Line 30: | Line 40: | ||
== Download Packages for Linux == | == Download Packages for Linux == | ||
− | + | [[BTCSQ#Get_Package]] | |
== Download Packages for Windows x64 == | == Download Packages for Windows x64 == | ||
− | + | [[BTCSQ#Get_Package]] | |
Package contains: | Package contains: | ||
Line 49: | Line 59: | ||
Located within the '''vBTC-release.0.4-<version>/data''' directory. | Located within the '''vBTC-release.0.4-<version>/data''' directory. | ||
− | ===NodeCore 0.4. | + | ===NodeCore 0.4.13-rc.1=== |
− | ===Altchain PoP Miner 0.4. | + | ===Altchain PoP Miner 0.4.13-rc.1=== |
== Configuration and First Run == | == Configuration and First Run == | ||
Line 103: | Line 113: | ||
password: "BETATeSt!" | password: "BETATeSt!" | ||
} | } | ||
− | payoutInterval: | + | payoutInterval: 150 |
extraConfig: { | extraConfig: { | ||
daemonConnectionTimeout: 20000 | daemonConnectionTimeout: 20000 | ||
Line 129: | Line 139: | ||
</pre> | </pre> | ||
− | == How To PoP Mine | + | == How To PoP Mine BTCSQ == |
=== Run getdebuginfo to check if APM is ready === | === Run getdebuginfo to check if APM is ready === | ||
Line 247: | Line 257: | ||
</pre> | </pre> | ||
− | == How To PoW Mine | + | == How To PoW Mine BTCSQ == |
One can proof-of-work mine via the stratum pool. | One can proof-of-work mine via the stratum pool. | ||
Line 253: | Line 263: | ||
There is a stratum implementation and running pool. | There is a stratum implementation and running pool. | ||
− | Pool: | + | Note: This pool is setup for '''CPU''' and '''GPU''' mining. |
+ | |||
+ | ===CPU Miner Binaries:=== | ||
+ | |||
+ | Linux: https://mirror1.veriblock.org/btcsq-minerd | ||
+ | |||
+ | Windows: https://mirror1.veriblock.org/btcsq-minerd.exe | ||
+ | |||
+ | ===CPU Miner Start String Examples:=== | ||
+ | |||
+ | Linux: | ||
+ | <pre>./btcsq-minerd -o 'stratum+tcp://testnet.pool.vbtc.veriblock.org:3333' -u <legacy_address> -p x -a sha256d</pre> | ||
+ | |||
+ | Windows: | ||
+ | <pre>btcsq-minerd.exe -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x -a sha256d</pre> | ||
+ | |||
+ | To use this pool you will need to generate a legacy address using the command: | ||
+ | <pre>vbitcoin-cli getnewaddress "mining" legacy</pre> | ||
+ | |||
+ | Pool: https://testnet.pool.vbtc.veriblock.org/ | ||
Detailed instructions: https://github.com/VeriBlock/vbk-ri-stratum-pool | Detailed instructions: https://github.com/VeriBlock/vbk-ri-stratum-pool | ||
+ | |||
+ | ===GPU Miner Binaries:=== | ||
+ | |||
+ | Windows: https://github.com/tpruvot/ccminer/releases/tag/2.3.1-tpruvot | ||
+ | |||
+ | ===GPU Miner Compilation (Ubuntu 20.04)=== | ||
+ | |||
+ | <pre> | ||
+ | sudo apt-get install libcurl4-openssl-dev libssl-dev libjansson-dev automake autotools-dev build-essential | ||
+ | git clone https://github.com/VeriBlock/ccminer-btcsq | ||
+ | cd ccminer-btcsq | ||
+ | ./build.sh | ||
+ | </pre> | ||
+ | |||
+ | ===GPU Miner Start String Examples:=== | ||
+ | |||
+ | Linux: | ||
+ | <pre>./ccminer -a sha256d -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x</pre> | ||
+ | |||
+ | Windows: | ||
+ | <pre>ccminer.exe -a sha256d -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x</pre> | ||
+ | |||
+ | See: [[PoW_Pools_BTCSQ]] | ||
== How to upgrade == | == How to upgrade == | ||
Line 279: | Line 331: | ||
# Shut down old vBTC | # Shut down old vBTC | ||
+ | # Copy '''testnet3''' directory from old package folder into the '''data/''' folder of the new package. | ||
# Start new vBTC | # Start new vBTC | ||
Line 284: | Line 337: | ||
Note: It may take some time to resync the network. (There are known issues to optimize this). | Note: It may take some time to resync the network. (There are known issues to optimize this). | ||
+ | |||
+ | == How To Compile BTCSQ == | ||
+ | |||
+ | BTCSQ is based on BTC, and so it should be very similar to compile. | ||
+ | |||
+ | Please refer to https://github.com/VeriBlock/vbk-ri-btc/blob/release/0.4/doc/build-unix.md for manually building the application. | ||
+ | |||
+ | == Troubleshooting == | ||
+ | |||
+ | In case where altchain daemon height is stuck while the network height is moving, try clean re-sync of the BTCSQ daemon (deleting all the block data and starting the daemon again) | ||
== Appendix == | == Appendix == | ||
Line 292: | Line 355: | ||
** vBTC - https://github.com/VeriBlock/vbk-ri-btc | ** vBTC - https://github.com/VeriBlock/vbk-ri-btc | ||
** 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/ | + | ** APM - https://github.com/VeriBlock/nodecore/tree/master/pop-miners/altchain-pop-miner |
* How to run APM - [[Altchain_PoP_Miner]] | * How to run APM - [[Altchain_PoP_Miner]] | ||
* Explorers | * Explorers | ||
Line 301: | Line 364: | ||
** 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 | ||
+ | ** TODO: [[HowTo_Mine_vBTC]], [[Join_vBTC_Testnet]] |
Latest revision as of 16:13, 14 April 2022
See: BTCSQ, Altchain_List, Altchain_PoP_Miner, PoW_Pools_BTCSQ, VAIF
Bitcoin Squared (BTCSQ), formerly codename "vBTC"
Contents
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 ALL 3 of the following are required to stay open and running:
1) NodeCore
2) vBitcoin
3) Altchain PoP Miner
Prerequisites
It is recommended to have 4 cpu cores and 16GB of RAM to run all 3 applications. (NodeCore, APM, vBitcoin daemon)
Currently, VeriBlock TestNet requires a minimum of 6GB of space to sync. 10+ GB free space recommended.
Linux
These libraries may already be installed. But if you get error like "Error while loading shared libraries: libboost_filesystem.so.1.71.0: cannot open shared object file: No such file or directory", then run:
sudo apt-get update. sudo apt-get install libdb++-dev build-essential libtool autotools-dev automake pkg-config bsdmainutils ccache python3 python3-pip python3-setuptools python-setuptools. sudo apt-get install libevent-dev python3-zmq python3-dev libboost.
64-bit Java
Tested using AdoptOpenJDK 8, 11, & 14 with HotSpot JVM. https://adoptopenjdk.net/
Download Packages for Linux
Download Packages for Windows x64
Package contains:
vBitcoin 0.4 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.0.4-<version>/data directory.
NodeCore 0.4.13-rc.1
Altchain PoP Miner 0.4.13-rc.1
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
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
Generate Reward Address
APM (Altchain PoP Miner)
Edit application.conf
After unzipping the package, it can be found in altchain-pop-miner-0.4.12-<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:
miner { network: testnet feePerByte: 1000 maxFee: 10000000 api.port: 8080 connectDirectlyTo: ["localhost"] } securityInheriting { vbtc: { // This can be set to [1,2,3,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: "BETATeSt!" } payoutInterval: 150 extraConfig: { daemonConnectionTimeout: 20000 } } }
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.12-<version>/bin/ directory.
Funding APM Wallet
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 BTCSQ
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.0.4-888de8e\\altchain-pop-miner-0.4.12-rc.3\\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/
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 PoW Mine BTCSQ
One can proof-of-work mine via the stratum pool.
There is a stratum implementation and running pool.
Note: This pool is setup for CPU and GPU mining.
CPU Miner Binaries:
Linux: https://mirror1.veriblock.org/btcsq-minerd
Windows: https://mirror1.veriblock.org/btcsq-minerd.exe
CPU Miner Start String Examples:
Linux:
./btcsq-minerd -o 'stratum+tcp://testnet.pool.vbtc.veriblock.org:3333' -u <legacy_address> -p x -a sha256d
Windows:
btcsq-minerd.exe -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x -a sha256d
To use this pool you will need to generate a legacy address using the command:
vbitcoin-cli getnewaddress "mining" legacy
Pool: https://testnet.pool.vbtc.veriblock.org/
Detailed instructions: https://github.com/VeriBlock/vbk-ri-stratum-pool
GPU Miner Binaries:
Windows: https://github.com/tpruvot/ccminer/releases/tag/2.3.1-tpruvot
GPU Miner Compilation (Ubuntu 20.04)
sudo apt-get install libcurl4-openssl-dev libssl-dev libjansson-dev automake autotools-dev build-essential git clone https://github.com/VeriBlock/ccminer-btcsq cd ccminer-btcsq ./build.sh
GPU Miner Start String Examples:
Linux:
./ccminer -a sha256d -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x
Windows:
ccminer.exe -a sha256d -o stratum+tcp://testnet.pool.vbtc.veriblock.org:3333 -u <legacy_address> -p x
See: PoW_Pools_BTCSQ
How to upgrade
If you are already pop mining vBTC, then upgrading is relatively easy.
Get latest package. This will have 3 separate applications:
- APM
- NodeCore
- 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
- Shut down old APM
- Copy these files to new APM /bin folder:
- application.conf
- vbk-testnet.wallet --> this has your tVBK for sending altchain pop transactions
- Start new APM
Upgrade vBTC Daemon
- Shut down old vBTC
- Copy testnet3 directory from old package folder into the data/ folder of the new package.
- 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).
How To Compile BTCSQ
BTCSQ is based on BTC, and so it should be very similar to compile.
Please refer to https://github.com/VeriBlock/vbk-ri-btc/blob/release/0.4/doc/build-unix.md for manually building the application.
Troubleshooting
In case where altchain daemon height is stuck while the network height is moving, try clean re-sync of the BTCSQ daemon (deleting all the block data and starting the daemon again)
Appendix
Helpful Links
- Github repos
- How to run APM - Altchain_PoP_Miner
- Explorers
- vBTC explorer - https://testnet.explore.vbtc.veriblock.org
- VBK TestNet explorer - https://testnet.explore.veriblock.org/altchain-details/3860170
- Background Information