Difference between revisions of "Obsolete Altchain Integration Service"

From Veriblock Wiki
Jump to: navigation, search
(Created page with "See: VAIF __TOC__ == Overview == Written as Java Library, also exposed as a service. == Used by == * Altchain Reference Implementation * Altchain PoP Miner (APM) * Al...")
 
Line 1: Line 1:
See: [[VAIF]]
+
See: [[VAIF]], [[Altchain_Integration_Service_API]]
  
 
__TOC__
 
__TOC__
Line 6: Line 6:
  
 
Written as Java Library, also exposed as a service.
 
Written as Java Library, also exposed as a service.
 +
 +
Source code: https://github.com/VeriBlock/alt-integration
  
 
== Used by ==
 
== Used by ==

Revision as of 15:47, 18 November 2019

See: VAIF, Altchain_Integration_Service_API

Overview

Written as Java Library, also exposed as a service.

Source code: https://github.com/VeriBlock/alt-integration

Used by

  • Altchain Reference Implementation
  • Altchain PoP Miner (APM)
  • Altchain Explorer
  • SPV

Design notes

Can be used as Java library for Java based projects. Can be used as a service from other languages. Library keeps the VeriBlock and Bitcoin SPV blocks in the SQLite database. Service classes are generated from the Protobuf scheme. Service communication channel is generated from the same Protobuf scheme using the GRPC plugin. Service is exposed on the TCP socket as a GRPC service. Clients should reuse the Protobuf scheme to autogenerate structures and communication classes. Java clients can use Service wrappers (see: https://github.com/VeriBlock/alt-integration/tree/master/alt-integration-adapter-java) to simplify calling the Service.

Starting the Service

  • Windows
alt-integration-grpc-service.bat
  • Linux
./alt-integration-grpc-service

Configuring the Service

Default configuration is in the $SERVICE$/conf/webservice-default.properties. Do not modify this file. Create $SERVICE$/conf/webservice.properties aside and put new config here. Use default properties as a reference. Restart Service to apply new config.

Generating code from the Protobuf

See: https://github.com/VeriBlock/alt-integration-proto

Connecting to the Service

Java:

ManagedChannel channel = NettyChannelBuilder.forAddress(apiHost, apiPort).usePlaintext().build();
VeriBlockSecurityProtoClient client = new VeriBlockSecurityProtoClient(channel);

See the sample client: https://github.com/VeriBlock/alt-integration/tree/master/alt-integration-grpc-client

VeriBlockSecurityProtoClient is a wrapper for the Integration Service Security API (Altchain_Integration_Service_API#Security_API). It is available in the Java adapters collection: https://github.com/VeriBlock/alt-integration/tree/master/alt-integration-adapter-java

C++:

VeriBlockServiceClient client = new VeriBlockServiceClient(grpc::CreateChannel("localhost:19012", grpc::InsecureChannelCredentials()));

VeriBlockServiceClient is a wrapper for the Integration Service Security API (Altchain_Integration_Service_API#Security_API).

Altchain Reference Implementation

See: Altchain_Reference

SPV

See: NodeCore-SPV

API

Full API is described as Protobuf scheme in the integration.proto file (see: https://github.com/VeriBlock/alt-integration-proto/blob/master/proto/integration.proto).

See: Altchain_Integration_Service_API