Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ialberquilla/hlf1.4-supply-chain
Supply chain proof of concept in Hyperledger Fabric. Network with four companies and a specific chaincode exposed as rest API
https://github.com/ialberquilla/hlf1.4-supply-chain
api-rest blockchain dlt expressjs hyperledger-fabric nodejs supply-chain
Last synced: 5 days ago
JSON representation
Supply chain proof of concept in Hyperledger Fabric. Network with four companies and a specific chaincode exposed as rest API
- Host: GitHub
- URL: https://github.com/ialberquilla/hlf1.4-supply-chain
- Owner: ialberquilla
- Created: 2019-11-19T17:49:41.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T17:55:08.000Z (almost 2 years ago)
- Last Synced: 2024-08-01T22:04:14.862Z (3 months ago)
- Topics: api-rest, blockchain, dlt, expressjs, hyperledger-fabric, nodejs, supply-chain
- Language: JavaScript
- Homepage:
- Size: 293 KB
- Stars: 40
- Watchers: 3
- Forks: 27
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- Awesome-Hyperledger-Fabric - hlf1.4-supply-chain - 基于 fabric 1.4 的供应链概念性验证示例【英文】 (示例 / 供应链)
- awesome-hyperledger-fabric - Supply chain - Supply chain PoC App with four organizations exposing a Rest API created in Hyperledger Fabric. (Apps / Open source)
README
# hlf1.4-supply-chain
Supply chain proof of concept in Hyperledger Fabric. Network with four companies and a specific chaincode exposed as rest APIMore info in Medium tutorials
* [English](https://medium.com/coinmonks/creating-a-hyperledger-fabric-network-from-scratch-part-i-designing-the-network-23d803bbdb61)
* [Spanish](https://medium.com/@ialberquilla/creando-una-red-hyperledger-fabric-desde-cero-96314117e633)# Installation instructions
1. Install Hyperledger fabric dependencies:
https://hyperledger-fabric.readthedocs.io/en/release-1.4/prereqs.html2. Donwload fabric binaries and samples:
`curl -sSL http://bit.ly/2ysbOFE | bash -s 1.4.3`3. Go to fabric samples:
`cd fabric-samples`4. Download the template:
`git clone https://github.com/ialberquilla/hlf1.4-supply-chain`6. Go to
`hlf1.4-supply-chain`5. Install node-js dependencies
`./network.sh install`# Start the network
1. Generate the crypto material and start the network
`./network.sh start`
This will create the crypto material for all the orgs, start the network and register it's admins and users. Then will start the API at localhost:3000# Re-start the API server
`npm start`# Stop the network
`./network.sh stop`# API Doc
**AddTuna**
----
Add new Tuna to the blockchain network* **URL**
`/api/addTuna`
* **Method:**
`POST`* **Data Params**
```
"id":integer,
"latitude":string,
"longitude":string,
"length":integer,
"weight":integer
```* **Success Response:**
```
{
"status":"OK - Transaction has been submitted",
"txid":"7f485a8c3a3c7f982aed76e3b20a0ad0fb4cbf174fbeabc792969a30a3383499"
}
```
* **Sample Call:**```
curl --request POST \
--url http://localhost:3000/api/addTuna \
--header 'content-type: application/json' \
--data '{
"id":10001,
"latitude":"43.3623",
"longitude":"8.4115",
"length":34,
"weight":50
}'
```
**getTuna**
----
Get Tuna from the blockchain with the actual status* **URL**
`/api/getTuna/:id`
* **Method:**
`GET`* **URL Params**
`"id":integer`* **Success Response:**
```
{
"result": {
"id": integer
"latitude": string
"longitude": string
"length": integer
"weight": integer
}
}
```
* **Sample Call:**```
curl --request GET \
--url 'http://localhost:3000/api/getTuna/' \
--header 'content-type: application/json' \
```**setPosition**
----
Sets the position (latitude and longitud) for the specified id, could be sushiId or TunaId* **URL**
`/api/getTuna/setPosition`
* **Method:**
`POST`* **Data Params**
```
"id":10001,
"latitude":"43.3623",
"longitude":"8.4115"
```* **Success Response:**
```
{
status":"OK - Transaction has been submitted",
"txid":"7f485a8c3a3c7f982aed76e3b20a0ad0fb4cbf174fbeabc792969a30a3383499"
}
```
* **Sample Call:**```
curl --request POST \
--url http://localhost:3000/api/setPosition \
--header 'content-type: application/json' \
--data '{
"id":10001,
"latitude":"43.3623",
"longitude":"8.4115"
}'
```**addSushi**
----
Add new Sushi to the blockchain network with the related TunaId* **URL**
`/api/getTuna/addSushi`
* **Method:**
`POST`* **Data Params**
```
"id":integer,
"latitude":string,
"longitude":string,
"type":string,
"tunaId":integer
```
* **Success Response:**
```
{
status":"OK - Transaction has been submitted",
"txid":"7f485a8c3a3c7f982aed76e3b20a0ad0fb4cbf174fbeabc792969a30a3383499"
}
```
* **Sample Call:**```
curl --request POST \
--url http://localhost:3000/api/addSushi \
--header 'content-type: application/json' \
--data '{
"id":200001,
"latitude":"42.5987",
"longitude":"5.5671",
"type":"sashimi",
"tunaId":10001
}'
```**getSushi**
----
Get sushi from the blockchain with the actual status* **URL**
`/api/getSushi/:id`
* **Method:**
`GET`* **URL Params**
`"id":integer`* **Success Response:**
```
{
"result": {
"id":"200001",
"latitude":"42.5987",
"longitude":"5.5671",
"type":"sashimi",
"tunaId":10001
}'
}
```
* **Sample Call:**
```
curl --request GET \
--url 'http://localhost:3000/api/getSushi/' \
--header 'content-type: application/json' \
```**getSushiHistory**
----
Get sushi history, from the TunaId that started the supply-chain, getting all the history positions, until the sushi is delivered, with the sushi history too* **URL**
`/api/getHistorySushi/:id`
* **Method:**
`GET`* **URL Params**
`"id":integer`* **Success Response:**
```
{
"historySushi": [
{
"id": "200001",
"latitude":"42.5987",
"longitude":"5.5671",
"type": "sashimi",
"tunaId": 10004
},
{
"id": "200001",
"latitude":"43.3623",
"longitude":"8.4115",
"type": "sashimi",
"tunaId": 10004
}
],
"historyTuna": [
{
"id": "10004",
"latitude":"43.3623",
"longitude":"8.4115",
"length": 34,
"weight": 50
}
]
}
```
* **Sample Call:**
```
curl --request GET \
--url 'http://localhost:3000/api/getHistorySushi/' \
--header 'content-type: application/json' \
```