https://github.com/asc-lab/blockchain-multichain
Application for proposals using blockchain with MultiChain.
https://github.com/asc-lab/blockchain-multichain
angular angular6 blockchain blockchain-demo distributed-ledger distributed-ledger-technology dlt docker java java8 kubernetes multichain multichain-java private-dlt
Last synced: 28 days ago
JSON representation
Application for proposals using blockchain with MultiChain.
- Host: GitHub
- URL: https://github.com/asc-lab/blockchain-multichain
- Owner: asc-lab
- License: apache-2.0
- Created: 2018-07-16T07:31:09.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-09T09:52:52.000Z (over 6 years ago)
- Last Synced: 2025-04-01T22:46:53.396Z (about 2 months ago)
- Topics: angular, angular6, blockchain, blockchain-demo, distributed-ledger, distributed-ledger-technology, dlt, docker, java, java8, kubernetes, multichain, multichain-java, private-dlt
- Language: Java
- Size: 510 KB
- Stars: 18
- Watchers: 3
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Private Blockchain (private DLT) using MultiChain
Application for proposals using blockchain with MultiChain. \
\
Check out our blog if you want to learn more:
- [Java and Blockchain – how to combine these two in business application?](https://asc.altkom.pl/en/blog/java-and-blockchain/)## 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](https://github.com/SimplyUb/MultiChainJavaAPI/blob/master/README.md#installation).
## 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
* [Getting started](https://www.multichain.com/getting-started/)
* [JAVA API](https://github.com/MultiChain/multichain)
* [MultiChain - base presentation](https://www.slideshare.net/coinspark/multichain-private-multicurrency-blockchain-platform)
* [MultiChain 2 nodes on one Windows](https://www.multichain.com/qa/9888/is-it-possible-to-create-two-nodes-on-a-single-system)## License
This project is released under the Apache 2.0 license (see [LICENSE](LICENSE))