Difference between revisions of "HowTo Integrate NodeCore with a Service"
VeriBlockTim (talk | contribs) (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...") |
VeriBlockTim (talk | contribs) |
||
(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 | + | 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 | + | == 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..
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
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