Categorygithub.com/consensys/orchestrate
repositorypackage
21.12.9+incompatible
Repository: https://github.com/consensys/orchestrate.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Website Website Go Report Card

Orchestrate

Orchestrate is a blockchain Transaction Orchestration system that can operate multiple chains simultaneously. It provides production grade and agnostic mechanisms for transaction crafting, nonce management, transaction signing, transaction receipt listening, transaction receipt decoding, faucet and more.

Orchestrate is a microservices architecture composed of APIs & Workers. Workers communicate following publish-subscribe pattern using Apache Kafka as message broker.

Orchestrate is Plug & Play, a user only needs to send a business protobuf message to Orchestrate input topic, Orchestrate then manages the full lifecycle of the transaction from crafting the transaction to decoding event logs data.

Useful links

Run Orchestrate

Now launch Orchestrate service using docker-compose with the following command:

docker-compose up -d api tx-sender tx-listener

Orchestrate is connected to Quorum Key Manager(QKM) to perform every wallet actions (creation, importing, signing, etc...). In this case for QKM setup we are connecting to a local Hashicorp Vault Server which is enhanced with Quorum Hashicorp Vault Pluging to support private keys under hashicorp storage.

Build from source

Prerequisites

To build binary locally requires Go (version 1.16 or later) and C compiler.

Build

After downloading dependencies (ie go mod download) you can run following command to compile the binary

go build -o ./build/bin/orchestrate

Binary will be located in `./build/bin/orchestrate

Errors

Error codes are uint64 that maps to five hex character code

ClassSubclassHex CodeCodeDescription
01XXX010004096Indicate a warning operation
012XX012004608Faucet credit has been denied
013XXSent tx with invalid nonce
013014865Nonce too high
013024866Nonce too low
08XXX0800032768Failed connecting to an external service
081XX0810033024Connecting to Kafka
082XX0820033280Connecting to an HTTP service
083XX0830033536Connecting to Ethereum Node
085XX0850034048Connecting to Redis
086XX0860034304Connecting to Postgres
087XX0870034560Connecting to external services
09XXX0900036864Unauthorized operation
0900136865Invalid credentials
0900236866Operation not permitted
0AXXX0A00040960Feature is not supported
24XXX24000147456Invalid data state
242XX24200147968Conflicted with current data state
42XXX42000270336Failed to process input data
421XX42100270592Decoding a message
422XX42200270848Processing Solidity related data
42201270849Invalid Solidity method signature
42202270850Invalid arguments count provided
42203270851Invalid provided arguments
42204270852Invalid topics count in ABI event log
42205270853Invalid data in ABI event log
42300271104Data does not match expected format
42400271360Invalid provided parameter
BEXXXBE000778240Failed a Ethereum operation
BE001778241Nonce too low
BE002778242Invalid Nonce
C0XXXC0000786432Failed a cryptographic operation
C0001786433Invalid cryptographic signature
DBXXXDB000897024Failed data operation
DB1XXDB100897280Data constraint violated
DB101897281Resource with same unique index already existed
DB2XXDB200897536No data found
F0XXXF0000983040Invalid configuration
FFXXXFF0001044480Internal error
FF1XXFF1001044736Data is corrupted
FF2XXFF2001044992Dependency failure

License

Orchestrate is licensed under the BSL 1.1.

Please refer to the LICENSE file for a detailed description of the license.

Please contact [email protected] if you need to purchase a license for a production use-case.