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 install
to get dependenciesnpm run network
to start a local Ethereum blockchainnpm run compile
to compile the Registry smart contractnpm run deploy
to deploy the compiled Registry smart contract to the local Ethereum blockchainnpm run startService
to 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 callService
to 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 listServices
lists 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