HowTo Integrate NodeCore with a Service

From VeriBlock Wiki
Jump to: navigation, search

See: Developer Guide

This article assumes familiarity with NodeCore, namely you can run a full node, NC_CLI, etc..

Overview

NodeCore can be integrated into other applications. This page offers prescriptive guidance

The easiest development path is to run a full node and expose functionality through the API (GRPC or HTTP).

See NodeCore Operations

Connect to NodeCore

External services can connect to NodeCore via grpc or http. This allows automation for almost any command available in the NodeCore CommandLine, such as viewing blocks or sending transactions.

GRPC

See: GRPC for details and code samples to connect via GRPC.

HTTP

Available in NodeCore 0.4.5 or greater.

See: NodeCore_HTTP_API

Configure NodeCore

When running an application node, you may want to configure several options:

  • Enabled remote connections via IP whitelisting
  • Specify peer connections via max count of peers and which peers
#NodeCore Configuration

#allow grpc connectivity via whitelisting
rpc.bind.address=0.0.0.0
rpc.whitelist.addresses=111.111.111.111,111.111.111.111

#limit the max peers
peer.max.count=12

#disable bootstrap peers
peer.bootstrap.enabled=false
peer.external.hosts=111.111.111.111\:7500,111.111.111.111\:7500

See: nodecore.properties

Securing NodeCore

There are multiple layers of security:

Security Feature Description See More
IP WhiteListing The client's IP must be whitelisted in order to connect to a remote node NodeCore Networking
Wallet encryption A wallet file is encrypted. This can be managed through grpc commands Wallet Encryption
Multisig addresses The wallet takes multiple signatures, so the system remains safe despite a compromised wallet How to Submit Multisig Tx
Offline address creation A wallet can be created without any network connectivity https://github.com/VeriBlock/offline-wallet-cli
gRPC password (with TLS) The GRPC connection has a password, and the communication channel is encryped NodeCore_Networking#Passwords

Helpful Links

See: Developer Guide for code samples, environments, and a list of specifications.

See: Offline_Wallet_CLI for an offline wallet CLI