This section is for developers who wish to contribute to the blockchain ecosystem.
It is broken down into the following sections
- Developer Setup: examples of setting up a developer environment and some best practices around code contribution.
- Reference Architecture: uses the Harmony ecosystem as a reference and has links to coebases which make up the ecosystem.
- Reference Contributions: contains sample pull requests and contributions
- Reference Grants: grant information and proposals.
- Reference Tutorials: sample tutorials for smart contract and DApp developers
Developers can contribute to the blockchain ecosystem in a number of ways. For simplicity we've categorized the ecosystem into 4 areas and then broken down the areas into the tools required.
Note all areas may have ecosystem grants associated with them, please refer to the home section for the various platforms offering grants.
The four high level areas are
|Area||Sample Languages||Sample Tools||Overview|
|Core Protocol||go, rust, c++, java, python||pprof, delve||built by core protocol developers built using high performant languages|
|Network Operations||bash scripting, python, rust, go||jenkins, travis, grafana||tools for validators as well as core protocol developers continuous integration contuous deployment (CICD) pipelines|
As tooling development spans a number of areas it is worth doing a deeper dive here.
Languages leveraged will vary based on the Layer 1 protocol design.
Following are some languges which are typically leveraged
|Area||Sample Languages||Sample Tools|
|Developer tools||core protocol (go, rust, c++) and Network Operations (bash scripting)||jenkins, travis, grafana, etc|
|Client interface API||core protocol lanuguages (go, rust, c++)||data definitions (openapi, protobuf, json, etc)|
|Smart contract knowledgebase||smart contract languages ((solidity, vyper, rust)||standards (e.g. openzepplin) and knowledgebase (e.g. tutorials, truffleboxes)|
|DeFi primitives||api layer (go, rust, c++, nodejs)||smart contract protocols stable coins (dai, tusd, usdc, busd, etc), liquidity pools (uniswap, 0x, etc)|
|Integration primitives||api layer (go rust, c++ nodejs)||integrating with oracles(chainlink), kyc(plaid), fiat on ramps (prime capitlal, wyre), interchain (ibc, layer 1 protocols)|
Applications are typially built on top of layer 1 protocols leveraging the tooling built for these platformts.
They typically consist of
- Front End (react, vue, etc)
- Persistence Layer (firebase, mongo, sql db, etc)
- Integration (API) Layer (go, rust, c++, nodejs, etc)
The below diagram gives a sample landscape for a layer 1 blockchain ecoystem. This was drafted using Harmony (a performant, sharded, proof of stake platform) as an example. Each layer 1 platform will have it's own nuances. The key differences that will effect what needs to be built include
- The maturity and funding for the platorm
- The target audience for the platform
- Private permissioned vs open platforms
- How rigorously open source contribution is enforced
emAsset is in the ideation and prototyping phase which is expected to conclude at the end of July 2020.
At that time we will be looking for additional team members, contributors, partners, grants and investors.
Click the diagram below to enter full screen mode