Difference between revisions of "HowTo Setup vBFI"

From Veriblock Wiki
Jump to: navigation, search
Line 25: Line 25:
  
 
# Run a full nodecore instance: [[NodeCore_QuickStart]]
 
# Run a full nodecore instance: [[NodeCore_QuickStart]]
# Open up port 4567 for bfi
 
 
# Add file bfi.conf
 
# Add file bfi.conf
 
# In nodecore.properties, set bfi.enabled=true
 
# In nodecore.properties, set bfi.enabled=true
Line 32: Line 31:
  
 
'''bfi.conf'''
 
'''bfi.conf'''
 +
 +
Put this next to 'nodecore.properties' file:
  
 
<pre>
 
<pre>

Revision as of 15:08, 30 November 2021

See: Main_Page

Background

vBFI provides the equivalent number of bitcoin confirmations that a VeriBlock block has.

A 3rd Party requires a certain number of confirmations. In general, a higher number of confirmations corresponds to more security. But the tradeoff is longer wait times.

vBFI provides the best of both worlds:

  1. Less wait time: About 2 hours worth of wait time
  2. More security: Bitcoin level security

Useful links:

How to set up

vBFI is contained within NodeCore. It is an optional plugin, not run by default (to conserve resources).

It is available with 0.4.13-rc8 and later (TODO - this is a pre-release). Requires both NodeCore, and NodeCore CLI (older versions of NC_CLI may not return the new fields)

  1. Run a full nodecore instance: NodeCore_QuickStart
  2. Add file bfi.conf
  3. In nodecore.properties, set bfi.enabled=true

If you run getdiagnosticinfo, you will see this flag enabled.

bfi.conf

Put this next to 'nodecore.properties' file:

bfi {
    blockChainNetwork = mainnet
    nodeCoreRpcHost = "127.0.0.1:10500"
    httpApiBindPort = 4567
    httpApiNotificationsTest = true
    forkThreatThreshold = 2
    forkThreatRatioThreshold = 0.8
}

nodecore.properties

# Enable BFI
bfi.enabled=true

Get results

bitcoinConfirmations for each transaction

This is available per transaction via the bitcoinConfirmations field:

gettransactions 2AB3811FD0EDE3B3F89A50926B15AA4C0C2370A4467E6670635A19E5A1CD3AF3 5000

...
"bitcoinConfirmations": 4,
...

There is also a JavaScript sample to call the http api for gettransactions:

https://github.com/VeriBlock/nodecore-js/blob/master/packages/core/example/3_get_bfi_score.js

API results

Two supported APIs are:

#Summary ping that 
<instance>/api/ping

#detailed chain data
<instance>/api/chains

End-to-end example

If a transaction occurs in block 2713020, and the UI control shows that has "BTC+3", that is equivalent to "3 bitcoin confirmations".

For example, if a service required "3 bitcoin confirmations" worth of security to deposit a bitcoin... then that service would want "BTC+3".

Vbfi ui control.png

When checking the specific transaction, it would also show "BTC+3".

Gettx.png

Docker setup

version: '3'
services:
  nodecore:
    container_name: nodecore
    image: docker-internal.veriblock.com/nodecore:0.4.13-rc.8
    expose:
      - 7500 # p2p
      - 10500 # rpc
      - 10600 # api
      - 4567 # bfi
    ports:
      - "7501:7501"
      - "10500:10500"
      - "127.0.0.1:10600:10600"
      - "127.0.0.1:4567:4567"
    volumes:
      - /root/VeriBlock:/data:Z
    environment:
      - NODECORE_LOG_PATH=/data/logs/
      - NODECORE_LOG_LEVEL=INFO

^ In the above case configuration needs to be placed in /root/VeriBlock