Comments (2)
This is great. Almost precisely lines up with work in progress on architecture and engineering fyi @nguyer @jimthematrix @awrichar
Custom tokens
For ERC20 as a token standard there is another thread of engineering, that's pretty advanced at this point, to support Tokens (fungible and non-fungible) including custom token implementations (ERC20/ERC721/ERC1155 derivatives).
This goes beyond pure custom on-chain logic support, by providing the the off-chain API per a standardized token model that can work across multiple token implementations, including across protocols.
Importantly, it includes packaging the work of building an off-chain cache of transaction history, that is prevalent in enterprise token based projects.
The architecture embraces the fact that tokens will need on-chain logic customization, and also that likely mapping to a common API will require some simple transformation of data structures / API calls. So there is an easy pluggable connector layer included -with a Typescript exemplar repo based on ERC1155 + OpenZeppelin + Ethconnect.
A demo + update was provided by @awrichar on the most recent FireFly community call, Sep 15th:
https://wiki.hyperledger.org/display/labs/2021-09-15+FireFly+Community+Call
Fully custom on-chain logic
Custom smart contract submission/event functionality is available directly in the APIs events of the connector layer - through ethconnect for Ethereum, and recently through fabconnect for Fabric.
There is active work in flight, to roll this up to the core FireFly API and provide suitable unification across protocols, while retaining the ability to exploit the full feature-set of an individual protocol. We waited for the first two protocols (Fabric and Ethereum) to be ready before attempting it for that reason - so it wasn't heavily biased to one individual protocol.
This includes, amongst other things:
- How to broadcast definitions/existence of your smart contract to the FireFly network
- Automated API generation from this definition
- Managed event subscription from this definition
- Plugin architecture to allow multiple protocols with individual connectors to map definitions, API calls and events
from firefly.
Implemented in v1.
https://hyperledger.github.io/firefly/tutorials/custom_contracts.html
from firefly.
Related Issues (20)
- Query events by subscription filter HOT 2
- Upgrade to firefly-common v1.4.1 HOT 1
- Update third party dependencies and other security housekeeping
- Close FIR-17 HOT 9
- Incorrect PATCHing of Node Identity Profile can cause Network Member Namespaces to Crash HOT 2
- Status call returns error when node is not registered to a multiparty namespace HOT 2
- Protocol ID behaviour inconsistent with docs HOT 3
- Migration Issue with ERC-1155 Token Pools HOT 5
- FireFly gets stuck processing events from an unknown listener HOT 1
- FireFly 1.3 Performance Testing HOT 7
- Transaction failure reason not visible when using fixed gas amount HOT 8
- Intermittent Unit Test - TestDownloadManagerStartupRecoveryCombinations
- Hardening for 1.3 Release HOT 8
- Error for "unable to resolve contract method" has a missing string
- Enhance documentation with signing knowledge
- Enhance multiparty documentation HOT 1
- FireFly does not attempt to re-connect to token connectors on Namespace startup retry
- FireFly requires a signing key for "query" operations
- Broadcast are stuck whilst running performance testing against 1.3.0-rc1 HOT 2
- Need to document the FF1.3 revert error handling, and make the default safer HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from firefly.