Difference between revisions of "HowTo Integrate NodeCore with a Service"

From Veriblock Wiki
Jump to: navigation, search
(Created page with "See: Developer Guide This article assumes familiarity with NodeCore, namely you can run a full node, NC_CLI, etc.. __TOC__ == Overview == NodeCore can be integrated in...")
 
 
(One intermediate revision by the same user not shown)
Line 9: Line 9:
 
NodeCore can be integrated into other applications. This page offers prescriptive guidance
 
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 GRPC API.
+
The easiest development path is to run a full node and expose functionality through the API (GRPC or HTTP).
  
 
See [[NodeCore Operations]]
 
See [[NodeCore Operations]]
  
== Connect to NodeCore via gRPC ==
+
== Connect to NodeCore ==
  
External services can connect to NodeCore via grpc. This allows automation for almost any command available in the [[NodeCore CommandLine]], such as viewing blocks or sending transactions.
+
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.
 
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 ==
 
== Configure NodeCore ==
Line 76: Line 84:
  
 
See: [[Developer Guide]] for code samples, environments, and a list of specifications.
 
See: [[Developer Guide]] for code samples, environments, and a list of specifications.
 +
 +
See: [[Offline_Wallet_CLI]] for an offline wallet CLI

Latest revision as of 19:53, 20 June 2019

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