Re: Intro - Digital Asset Trust Framework
toggle quoted messageShow quoted text
Grid does support multiple distributed ledgers today. The first, obviously, is Sawtooth using Sabre. The second is Splinter's Scabbard service which is implemented using Transact to run Sabre (https://github.com/hyperledger/grid/tree/master/examples/splinter). Thus, the pattern does exist within Grid to provide different backend ledgers. However, backends do need to minimally a) be able to run Sabre smart contracts (whether or not via Sabre directly wouldn't matter); and b) have a merkle-trie view of state to run those contracts; c) have a state-delta-export capability. That's a list of what Transact provides, as it happens, which is why we talk about the easy path being adopting Transact.
With respect to WASM host interfaces -- I think it is achievable if you limit yourself to Ethereum-style contracts. And we could standardize a separate set for Sabre, and one for Fabric-Chain-Code. That would be three standards, not one. Even if we were to somehow agree on a specific host interface ABI, the schematic differences exist and are profound and non-trivial. We also don't want to incur a race-to-the-bottom by supporting some limited subset of overlapping functionality.
So sure, its possible, but I wouldn't expect it to magically appear. The best path is still Fabric+Transact integration, which is far from an impossible task.
I'm very interested in Fabric+Transact integration from a Transact project perspective. But perhaps more compelling is Fabric-on-Splinter, implemented using Transact. As far as I can tell, Transact would replace the majority of the endorser node's code, which means the minority of effort would be re-implementing the remaining pieces of the endorser as a Splinter service. We could front that with a GRPC shim for Fabric client compatibility, which gives us a good path for those that adopted Fabric. As far as the orderer, that would be a pretty easy lift too given we have all the pieces to construct it out of Scabbard, Transact, Splinter, the consensus library, etc. We end up with a version of Fabric that uses Transact, and it would be pretty easy to write a Grid backend for it at that point.
On Tue, Mar 10, 2020 at 7:27 PM Brian Behlendorf <bbehlendorf@...> wrote: