blockchain-multichain
blockchain-multichain copied to clipboard
Application for proposals using blockchain with MultiChain.
Private Blockchain (private DLT) using MultiChain
Application for proposals using blockchain with MultiChain.
Check out our blog if you want to learn more:
Architecture overview
Repo info
-
multichain-app
- Angular 6 client application -
multichain-cli
- example test scenario and execute this by MultiChain CLI -
multichain-cluster
- blockchain infrastructure -
multichain-server
- Java & Spring Boot & MultiChain Java API
Architecture
Our solution consists of 5 services:
-
multichain-master
- multichain seed node -
multichain-slave
- multichain 2nd node -
multichain-explorer
- multichain 3rd node with UI for browsing blockchain -
multichain-server
- application backend (Spring Boot + in-memory database) -
multichain-app
- application frontend (Angular 6 served by nginx)
Use case
Your organization wants to implement an internal system for submitting different types of applications (for example: request for new equipment).
Each request must be approved by the manager.
Requests should be indisputable and immutable.
Example request and decision structure:
Request {userId, managerId, creationTime, requestContent}
Decision {managerId, Request, decisionResult, decisionTime}
JSON:
{
"userId": "",
"managerId": "",
"creationTime": "",
"requestContent": ""
}
{
"managerId": "",
"Request": {
{
"userId": "",
"managerId": "",
"creationTime": "",
"requestContent": ""
}
},
"decisionResult": "",
"decisionTime": ""
}
Local development
Remember that MultiChainJavaAPI
(using to connect with MultiChain
) is not available in Maven Central Repository so you must build this library locally based on installation instruction in README.
Deployment & running
Each service is packaged as a separate container.
To run whole system you can use docker
+ docker-compose
.
Docker Compose
Prerequisites: local docker & docker-compose
To run application you simply execute command:
run.sh
Services are started with tty attached to current terminal.
To stop application just press:
Ctrl+C
Screens
DOCS
License
This project is released under the Apache 2.0 license (see LICENSE)