Fabric Gateway Fabric contributors meeting What is Fabric
Fabric Gateway Fabric contributors meeting
What is Fabric Gateway? Server-side Fabric component Contains bulk of today's client SDK Client interacts only with Fabric Gateway
Why? Productivity Consistency Simplicity Scalability
Current network topology Org 1 Peer Client Org 2 Peer Org 3 Peer Orderer
Fabric Gateway network topology Org 1 Peer Client Gateway Org 2 Peer Org 3 Peer Orderer
Goals • Minimal client API changes • Minimal client-side SDK code • Single entry point to Fabric • Stateless Gateway • Simplify client configuration • Support client interaction patterns • Async wait for commit • Offline signing
Assumptions • Fabric Gateway written in Go • Go, Java. Script and Java client-side • Client-side identity and signing • g. RPC / protobuf communication • Gateway scoped to an organization • Gateway embedded in a peer • Transaction submit, evaluate, events only
Discussion points • Avoid query and commit strategies • Use most current peer for query? • Query with minimum block height? • Minimize MVCC conflicts • Use most current peer for endorse? • Endorsement policy handling • Client specified orgs for state-based? • Others handled by Gateway?
Network interaction
Gateway g. RPC services service Gateway { rpc Endorse(Proposed. Transaction) returns (Prepared. Transaction) {} rpc Submit(Prepared. Transaction) returns (stream Event) {} rpc Evaluate(Proposed. Transaction) returns (Result) {} }
Submit transaction interaction Client SDK Fabric Gateway Create & sign proposal Endorse proposal Create & sign transaction Submit to orderer Deliver transaction result Wait for transaction commit Notify commit status
Evaluate transaction interaction Client SDK Fabric Gateway Create & sign proposal Evaluate proposal Deliver result to application
- Slides: 12