Giter Site home page Giter Site logo

gnapoli23 / polkadot-spec Goto Github PK

View Code? Open in Web Editor NEW

This project forked from w3f/polkadot-spec

0.0 0.0 0.0 8.72 MB

The Polkadot Protocol Specification

Home Page: https://spec.polkadot.network

License: Creative Commons Attribution Share Alike 4.0 International

Ruby 46.80% CSS 8.48% TeX 8.18% Nix 28.88% Makefile 3.64% HTML 0.28% Dockerfile 1.45% Kaitai Struct 2.30%

polkadot-spec's Introduction

Polkadot Protocol Specification

License Latest Release Specification Publication Cachix Cache Nix Integration

Polkadot is a replicated sharded state machine designed to resolve the scalability and interoperability among blockchains. This repository contains the official specification for the Polkadot Protocol.

The latest releases of the Polkadot Protocol Specification can be found on spec.polkadot.network or on our GitHub Releases page.

The Polkadot specification is written in AsciiDoc and currently compiled with Asciidoctor.

Contributing

Contributions are always welcome. For a quick primer on the AsciiDoc format, we recommend the AsciiDoc Writers Guide.

Dependencies

A handful of dependencies are required to successfully convert the spec into a publishable document. We provide a Gemfile that provides most dependecies.

You will have to install bundler to use the Gemfile. On a Debian based system, it can be installed with:

sudo apt-get install -y curl make cmake gcc g++ ruby-dev python3-pydot graphviz
# Install Bundler
gem install bundler
# Install Kaitai
curl -LO https://github.com/kaitai-io/kaitai_struct_compiler/releases/download/0.10/kaitai-struct-compiler_0.10_all.deb
sudo apt-get install -y ./kaitai-struct-compiler_0.10_all.deb

Furthermore you will also need to have graphviz and the kaitai-struct-compiler installed.

Once bundler is available, you can install any missing dependencies for a html build via bundle install:

bundle install

To also install the dependencies needed for a pdf build, add the --with pdf flag:

bundle install --with pdf

The pdf build requires various native dependencies to convert math to images with asciidoctor-mathematical, please check the official documentation for further details. Furthermore, the PDF is cleanup and compressed with ghostscript, so this will need to be installed as well.

Build

To build the html version of the spec, just run bundle exec make html. This create will create a polkadot-spec.html in the same folder.

To build the pdf version of the spec, just run bundle exec make pdf, which will create a polkadot-spec.pdf in the same folder.

To export the Kaitai Struct definitions contained in the spec, just run bundle exec make kaitai, which will create the .ksy file(s) in the same folder.

We also provide full nix flake integration, e.g. you can run nix build github:w3f/polkadot-spec to build the latest html release.

Test

To test some of the machine readable definition in the spec, just run bundle exec make test.

The test requires curl, jq and xxd to download required data via JSON RPC.

License

Any code in this repository is licensed under the GPL 3.0 and any documentation or specification is licensed under the CC BY-SA 2.0.

polkadot-spec's People

Contributors

lamafab avatar florianfranzen avatar drskalman avatar gavofyork avatar fatemeshirazi avatar dependabot[bot] avatar bhargavbh avatar qdm12 avatar alistairstewart avatar harrm avatar noc2 avatar tomaka avatar fgimenez avatar hyunggyujang avatar romanb avatar rphmeier avatar drw3rk avatar jacogr avatar alan-null avatar lexnv avatar eclesiomelojunior avatar haider-ali-ds avatar burdges avatar ltfschoen avatar timwu20 avatar jimjbrettj avatar noot avatar vikinatora 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.