An open API service indexing awesome lists of open source software.

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.

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


MultiChain PoC Architecture

## 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


Desktop main version


Mobile menu


Initial users


Request list


Decision list

## 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))