Home
Softono

Hlf1.4 Supply Chain

Open source JavaScript
45
Stars
27
Forks
14
Issues
2
Watchers
3 years
Last Commit

 About Hlf1.4 Supply Chain

Supply chain proof of concept in Hyperledger Fabric. Network with four companies and a specific chaincode exposed as rest API

Platforms

Web Self-hosted

Languages

JavaScript

Links

Need Help Installing Hlf1.4 Supply Chain?

We provide expert installation service for this software. Our team will install, configure, and secure Hlf1.4 Supply Chain on your server. plans start at just $30.

Hlf1.4 Supply Chain

View on GitHub

hlf1.4-supply-chain

Supply chain proof of concept in Hyperledger Fabric. Network with four companies and a specific chaincode exposed as rest API

More info in Medium tutorials

Installation instructions

  1. Install Hyperledger fabric dependencies: https://hyperledger-fabric.readthedocs.io/en/release-1.4/prereqs.html

  2. 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

  5. Go to hlf1.4-supply-chain

  6. 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/<TunaId>' \
  --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/<SushiId>' \
  --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/<SushiId>' \
 --header 'content-type: application/json' \