This is a sample decentralized service platform powered by gRPC, Ethereum, IPFS and Lightning Network.
Built for Codemotion Milan 2019: Protobuf all the things! End to end gRPC service architectures
- Decentralized service registry on the Ethereum blockchain
- gRPC clients and services
- Decentralized storage for gRPC service definitions on IPFS
npm installto get dependenciesnpm run networkto start a local Ethereum blockchainnpm run compileto compile the Registry smart contractnpm run deployto deploy the compiled Registry smart contract to the local Ethereum blockchainnpm run startServiceto start the demo service. The service registers itself to the Registry smart contract. The service is a full-fledged IPFS node; it uploads, advertises and serves its own service definition to IPFSnpm run callServiceto call the demo service from a demo client. The client gets the service endpoint and the service definition IPFS hash from the Registry smart contract. The client is a full-fledged IPFS node; if requests the service definition it needs from IPFSnpm run listServiceslists all the services in the Registry contract
- Clients pay for services using Lightning Network
Coming after the talk
- grpc.io: high performance, open-source universal RPC framework
- ipfs.io: peer-to-peer hypermedia protocol
- js-ipfs: IPFS implementation in JavaScript
- Ethereum: global, open-source platform for decentralized applications
- Solidity: Ethereum smart contracts language documentation
- Truffle suite: tools for local smart contract development
- web3.js: library to interact with Ethereum nodes
- Lightning Network: scalable, instant Bitcoin/Blockchain Transactions
- LND, the Lightning Network Daemon: gRPC API reference documentation