Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ruisiang/fabric-network-simple
A simplified wrapper for fabric-network
https://github.com/ruisiang/fabric-network-simple
Last synced: 3 days ago
JSON representation
A simplified wrapper for fabric-network
- Host: GitHub
- URL: https://github.com/ruisiang/fabric-network-simple
- Owner: RuiSiang
- License: mit
- Created: 2020-09-04T05:14:34.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T17:59:29.000Z (almost 2 years ago)
- Last Synced: 2024-09-21T11:31:09.128Z (6 days ago)
- Language: TypeScript
- Homepage:
- Size: 93.8 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fabric-network-simple
![](https://github.com/RuiSiang/fabric-network-simple/workflows/Node.js%20CI/badge.svg)A simplified wrapper for fabric-network. Typescript usage is recommended for auto config checks.
## Installation
```
npm install fabric-network-simple
yarn add fabric-network-simple
```##Include
```typescript
import fabricNetworkSimple from "fabric-network-simple";
```## Configuration
fabric-network-simple reads configurations from a config object as an argument in function initGateway
Example Configuration
```typescript
const config: fabricNetworkSimple.config = {
channelName: "test-channel",
contractName: "test-contract",
connectionProfile: {
name: "Network",
version: "1.1",
channels: {
"test-channel": {
orderers: ["orderer.example.com"],
peers: ["peer0.org1.example.com", "peer0.org2.example.com"],
},
},
organizations: {
Org1: {
mspid: "Org1MSP",
peers: ["peer0.org1.example.com"],
certificateAuthorities: ["ca-org1"],
},
Org2: {
mspid: "Org2MSP",
peers: ["peer0.org2.example.com"],
certificateAuthorities: ["ca-org2"],
},
},
orderers: {
"orderer.example.com": {
url: "grpcs://localhost:7050",
grpcOptions: {
"ssl-target-name-override": "orderer.example.com",
},
tlsCACerts: {
path:
"test/ordererOrganizations/example.com/orderers/orderer.example.com/tlscacerts/example.com-cert.pem",
},
},
},
peers: {
"peer0.org1.example.com": {
url: "grpcs://localhost:7051",
grpcOptions: {
"ssl-target-name-override": "peer0.org1.example.com",
},
tlsCACerts: {
path:
"test/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tlscacerts/org1.example.com-cert.pem",
},
},
"peer0.org2.example.com": {
url: "grpcs://localhost:8051",
grpcOptions: {
"ssl-target-name-override": "peer0.org2.example.com",
},
tlsCACerts: {
path:
"test/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tlscacerts/org2.example.com-cert.pem",
},
},
},
},
identity: {
mspid: 'Org1MSP',
certificate: '-----BEGIN CERTIFICATE-----\nMIIB9DCCAZugAwIBAgIQX6iGazkZVMAKUvWR+bX//DAKBggqhkjOPQQDAjBbMQsw\nCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZy\nYW5jaXNjbzENMAsGA1UEChMEb3JnMTEQMA4GA1UEAxMHY2Eub3JnMTAeFw0yMDA4\nMTQwNzI0MDBaFw0zMDA4MTIwNzI0MDBaME8xCzAJBgNVBAYTAlVTMRMwEQYDVQQI\nEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQDDApB\nZG1pbkBvcmcxMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEywRWLrKHCeMACzKq\noaktPkjczbxAA+zqS5AVlKQUVwAmiUaNF/cQHnjdHeDNNYZAAaUwRY8xnxP4DJRT\n7g5GT6NNMEswDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwKwYDVR0jBCQw\nIoAg2ZieZeymeQE20xuqymU3R0kMoRUnUO+ic3TqcVW0ZWEwCgYIKoZIzj0EAwID\nRwAwRAIgbBhgPWUo8pnOZhODSjsKqzaP8jxLv3G+3hG/v32b7OICIELn9dQ3ua0Y\nOf6Q2XKcXvI/6BFXEMJzJkCv52MKTjKl\n-----END CERTIFICATE-----\n',
privateKey: '-----BEGIN PRIVATE KEY-----\r\nMIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgpiKVKhRCAhxWB5of\r\n64AOB7741SQPNARB2Ob12Ag7TDOhRANCAATLBFYusocJ4wALMqqhqS0+SNzNvEAD\r\n7OpLkBWUpBRXACaJRo0X9xAeeN0d4M01hkABpTBFjzGfE/gMlFPuDkZP\r\n-----END PRIVATE KEY-----\r\n',
},
settings: {
enableDiscovery: true,
asLocalhost: true,
}
```## Usage
Say we have a query function "set", and invoke function "get" that gets/sets a number to a variable on the chaincode
```typescript
//constructor
const fabricNetwork =
new fabricNetworkSimple(
config //config object, see example config section
);//sets variable to 5
const invokeResult =
await fabricNetwork.invokeChaincode(
'set', //chaincode method
[5], //arguments
{} //transient data
);
//gets variable from ledger
const queryResult =
await fabricNetwork.queryChaincode(
'get', //chaincode method
[] //arguments
);
console.log('queryResult'); //prints 5
```