Giter Club home page Giter Club logo

drops-of-diamond-history-outdated's Introduction

Drops of Diamond

License: MIT Gitter

See https://github.com/Drops-of-Diamond/Diamond-drops for the latest developments.

See https://github.com/Drops-of-Diamond/parity/blob/Sharding/Sharding-info.md. Future updates will be posted there or on Gitter and Twitter.

Update 26 Feb 2018: after comparing Rust and C++, and Parity and cppethereum, Rust and Parity seem like better options. Rust has advantages such as better memory safety, while it also is compatible with Wasm. More details are here: https://gitter.im/ewasm/Lobby?at=5a92381135dd17022eedc444. Additionally, Go is not compatible with Wasm at present, so Go-ethereum isn't either.

Update 22 Feb 2018: my plans are to work on a stateless sharding implementation to integrate with Hera, EWasm and cppethereum. I decided not to go with Nimbus because an implementation developed with my current plan would be more performant. I have been reading through the Wasm spec, after that I plan to familiarise myself with EWasm, Hera, finish learning C++ (I got about halfway through a year ago) and cppethereum, as well as ethereum tests, other implementations, particularly py-evm. (I've already familiarised myself with the sharding repo).

This repo is no longer planned to be improved, since there is already an implementation under way to develop sharding with Nimbus, an implementation in Nim, which compiles to C++, and is therefore usable for Hera, an "eWASM virtual machine conforming to the Ethereum VM C API". To contribute to Nimbus I would need to finish learning C++ (I got about halfway through on learncpp.com about a year ago), as well as learn Nim (I've already learnt Python) and also familiarise with EWASM.

This repo was an introduction to plans for developing an implementation of sharding in Web Assembly, with Drops of Diamond. The actual implementation is planned to be developed as a fork of eWASM here, and maintain compatibility with the original repo in order to be potentially be merged with it.

For an introduction to Ethereum, see https://github.com/ethereum/wiki/wiki/Ethereum-introduction.

For an introduction to sharding, see https://github.com/ethereum/wiki/wiki/Sharding-and-stateless-client-implementations.

This repo and the Drops of Diamond project it belongs to is not a part of or owned by the Ethereum Foundation, nor is it endorsed by the Foundation. A different project name and logo may be used (the logo could use a more modern design rather than just using a photo in the public domain), and alternative proposals are welcome. The Drops of Diamond project is not legally incorporated as of yet, so legally it is not an organisation. That should be done, but probably only as needed once the project is more well-developed.

The very rough plans for development at this stage are:

Compensation to developers at this stage can't be offered, as it would depend on some form of revenue, which isn't available at this stage. However, revenue will be more likely to be obtained the more a product is demonstrated. All are welcome to contribute, in the spirit of open-soure code and friendly collaboration. If revenue is obtained it will be shared accordingly and fairly with a budget, after setting up a more formal organization, e.g. controlled in a similar fashion to how the Ethereum Foundation is run. (A grant from the Ethereum Foundation has been applied for, as per this blog post.) If you are interested in making a donation but would prefer to not send it to an individual, please say so on Gitter (click the badge above). It's probably best to have an MVP, or alpha or beta release, before actively raising funds.

For developer goals and tasks, refer to Dev-goals.md.

Originally it was planned to have an implementation in JavaScript, but that plan has been scrapped. The rationale for building a sharding and stateless client implementation on top of Javascript was as follows: "It is expected that when eWASM is implemented, after Web Assembly, Javascript will be the second-most compatible and performant language with the virtual machine, due to Web Assembly's design goals to implement compatibility with Javascipt. Additionally, there is an operational EthereumJS implementation to build a sharding implementation of, while eWASM is still under development, so it will be easier to build a sharding implementation on top of ethereumjs-vm than it will be to build on top of eWASM." While building a stateless sharding implementation on top of Javascript may be faster, in the long-term it will be better to have it on Web Assembly, so one may as well start work on that now.

drops-of-diamond-history-outdated's People

Contributors

jamesray1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.