GithubHelp home page GithubHelp logo

specs's Introduction

Ellaism Specification Repository

This repository is for draft, planned and enforced protocol improvement specifications for the Ellaism blockchain.

In this repository, we focus on specifications that influence or are related to Ellaism consensus or applications at large scale (like the JSONRPC definitions). For application-layer specifications, consider to submit it to Cross-Ethereum Specification Repository.

Goals

Dispute Resolution

Ellaism is a decentralized blockchain, and its decision-making process also needs to be decentralized. This specification repository proposes that we use the swarm methodology for handling consensus-related decisions. Everyone is free to take or follow any initiative, or take no action at all, and nobody may tell anybody else what to do or what initiative to follow or not to follow. Everyone owns the Ellaism blockchain, and nobody shall need to ask permissions. And this is one of the important property while designing or modifying the process for this repository.

Coordinate Efforts

In consensus, it is often important to understand what others try to do when making our own decisions. We aim to use this repository to help this situation, by providing statistics (developer and company supports, CarbonVote and MinerVote) of what others claim they would decide to do, and to resolve dispute if two different parties have similar goals.

Process

We use a modified version of an informal IETF-like process RFC 2026. The process works like below:

  • A new specification or protocol improvement proposal is sent in a pull request. The editor checks and helps the author to move the specification into an acceptable quality. In this case, no subjective judgement shall happen. After that, the specification is merged in Proposed state. In this process, the specification gets its RFC number in the format of ella-$year-$number-$feature.
  • Once a specification is merged, the editor is responsible for collecting statistics of positive/negative support indications and transparently display them to readers. This can include technical discussion threads, developer and company support indications, voting results from coin owners and miners, and others.
  • Once an implementation for a particular specification exists, the specification is moved to Draft state.
  • From here, any developer or company can claim to deploy a consensus-related specification. In this case, the editor shall move the specification to Planned state, and transparently indicate support level (Majority Fork, Chain Split, or Minority Fork).
  • Once a fork happens, and the forked chain survives, a specification is moved to Enforced state. If chain split happened, it should also incidate which particular chain this specification is on. Specifications in this state also get a STD number in the format of ella-std-$number-$feature.
  • By default, if chain split happens, this specification repository would support both chains, unless one of the chains decided to abandon this process.
  • If a specification cannot be deployed by itself but relies on other specifications, then it would only move to Draft state following the first specification that it relies.

The current editors are Ellaismer <[email protected]> and Wei Tang <[email protected]>.

Specifications

Number Title Author State Discussion
2017-0001 Generalized Account Versioning Scheme for Hard Fork Wei Tang Proposed #4
2018-0001 Alternative Scheme of Precompiled Contract Versioning for Hard Fork Wei Tang Proposed #5
2018-0002 WebAssembly Smart Contracts "ellaismer" Proposed #10
2018-0003 Hardfork Meta: WebAssembly "ellaismer" Proposed #11
2018-0004 Hardfork Meta: Byzantium "ellaismer" Proposed #12

specs's People

Contributors

sorpaas avatar ellaismer avatar

Watchers

James Cloos 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.