Re: FireFly and Smart Client - overlap and convergence
toggle quoted messageShow quoted text
Thank you for sharing your thoughts. We'd love to collaborate with you and Angelo on key Fabric capabilities like this one. Your note lays out an interesting idea how to bring the two communities together.
It seems as though there is nothing stopping us from combining efforts even if it's the case of a hybrid collaboration between one project being a Hyperledger project and another being a Lab. We're very eager to see how things develop and to work together towards a common code base in Fabric-based areas.
Thanks for making fabric-smart-client code base available today in the Labs. We have done a preliminary review of the code base and documentation.
From this review, we can see our initiatives' architectures are coming from different approaches born of solving pretty different problems.
FireFly has been multi-protocol from the get-go, with the architecture having been proven by plugin implementations for two extreme ends of the enterprise blockchain protocols space: Enterprise Ethereum (single node type, transactions are always broadcast to the whole network, JSON-RPC dev interface, account/state model) and Corda (2 node types, no shared ledger, transactions are always point-to-point, RPC over JSM for dev interface, UTXO model). The framework has been built from its inception to accommodate a Fabric plugin. With the implementation under development, this is a wonderful opportunity to collaborate with you and Angelo and the fabric-smart-client.
One truism to keep in mind is that it can be hard to generalize from something built from one infrastructure to solve problems across multiple infrastructures, unless it was built with the multi-infrastructure in mind from the start. Fabric-smart-client is built from a Fabric reference, born out of the goal to make consuming Fabric easier. Going from fabric-smart-client to supporting multiple protocols would be a challenging undertaking, given how each protocol is drastically different (using the spectrum visual, you would be starting from the middle and now trying to expand to support both ends of the extremes).
We are very excited about the potential for fabric-smart-client and feel it offers valuable areas for collaboration with FireFly and to provide inputs to the Fabric-related architecture. For example, the view concept for capturing member-specific business logic is interesting. We would love to collaborate with the IBM team to seek out opportunities to combine the strengths of the two.
That said, we do feel the two projects were built with different proposed scope, different visions and architectures, especially when we look through our community's lens of addressing the industry's multi-party system challenges.
Finally, in order to make sure the TSC has a complete set of information for the meeting tomorrow, we did want to help clarify a few factual things that appear to have been points of confusion:
The FireFly code base being contributed as part of the proposal is a collection of 5 separate repositories, representing the starting point that will surely grow in number as more plugins are developed:
- FireFly core: https://github.com/kaleido-io/firefly, contains the current version (written in typescript, developed by 10 developers from Kaleido over the last 8 months), and the gen-2 version, which has improvements in interfaces, and pluggability, as well as being re-written in Golang (so far Peter our head of engineering is the main contributor).
- FireFly plugin for Enterprise Ethereum: https://github.com/kaleido-io/ethconnect, developed by 6 developers from Kaleido and 2 from customer organizations over the past 3 years, written in Golang
- FireFly plugin for Corda OS: https://github.com/kaleido-io/firefly-cordaconnect, developed by 1 Kaleido developer over the past year, written in Java
- FireFly CLI: https://github.com/kaleido-io/firefly-cli, command line tools for developers building on FireFly for local environments, developed by another Kaleido developer in Golang
- FireFly UI: https://github.com/kaleido-io/firefly-ui, build-in dashboard/explorer, developed by 2 Kaleido developers
- FireFly plugin for Fabric: to be implemented, preferably with the Fabric team's input and help
On Wed, Jun 2, 2021 at 12:57 PM David Enyeart <enyeart@...> wrote:
Co-founder, Head of Protocol Engineering
Kaleido.io, The Blockchain Business Cloud