HowTo Integrate NodeCore with a Service
See: Developer Guide
This article assumes familiarity with NodeCore, namely you can run a full node, NC_CLI, etc..
Contents
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).
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
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