All Projects β†’ ChainSafe β†’ Gossamer

ChainSafe / Gossamer

Licence: other
πŸ•ΈοΈ Gossamer: A Go implementation of the Polkadot Host (WIP)

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Gossamer

p2p-git-portal-poc
p2p git portal proof-of-concept using Svelte Golang/WASM (experimental)
Stars: ✭ 29 (-85.99%)
Mutual labels:  p2p, wasm
matchbox
Painless peer-to-peer WebRTC networking for rust wasm
Stars: ✭ 276 (+33.33%)
Mutual labels:  p2p, wasm
Waykichain
Public Blockchain as a Decentralized Finance Infrastructure Service Platform
Stars: ✭ 1,117 (+439.61%)
Mutual labels:  p2p, wasm
safenetwork-gitportal
p2p git portal - a decentralised alternative to github
Stars: ✭ 12 (-94.2%)
Mutual labels:  p2p, wasm
Fluence
Peer-to-peer computing protocol and licensing system
Stars: ✭ 453 (+118.84%)
Mutual labels:  p2p, wasm
Webrtc
Pure Go implementation of the WebRTC API
Stars: ✭ 8,399 (+3957.49%)
Mutual labels:  p2p, wasm
Client
An alternative Polkadot Runtime Environment implementation acting as a full-node (excluding block production for validators) for syncing with Substrate-based chains.
Stars: ✭ 82 (-60.39%)
Mutual labels:  p2p, wasm
React Peer
Send data to someone else's browser as easy as setting state
Stars: ✭ 191 (-7.73%)
Mutual labels:  p2p
Argon2 Browser
Argon2 library compiled for browser runtime
Stars: ✭ 197 (-4.83%)
Mutual labels:  wasm
Python Nat Hole Punching
UDP and TCP NAT hole punching examples in python
Stars: ✭ 190 (-8.21%)
Mutual labels:  p2p
Yarte
Yarte stands for Yet Another Rust Template Engine
Stars: ✭ 189 (-8.7%)
Mutual labels:  wasm
Wasm Examples
WebAssembly Examples
Stars: ✭ 191 (-7.73%)
Mutual labels:  wasm
Transgui
🧲 A feature rich cross platform Transmission BitTorrent client. Faster and has more functionality than the built-in web GUI.
Stars: ✭ 2,488 (+1101.93%)
Mutual labels:  p2p
Netflux
JavaScript client and server side transport API based on WebRTC & WebSocket
Stars: ✭ 188 (-9.18%)
Mutual labels:  p2p
Blockchain
A simple implementation of blockchain in java
Stars: ✭ 201 (-2.9%)
Mutual labels:  p2p
Arewedistributedyet
Website + Community effort to unlock the peer-to-peer web at arewedistributedyet.com βš‘πŸŒπŸ”‘
Stars: ✭ 189 (-8.7%)
Mutual labels:  p2p
Appnet.link
Secure P2P HTTP Gateway as Tunnel Protocol
Stars: ✭ 203 (-1.93%)
Mutual labels:  p2p
Barrel Platform
Distributed database for the modern world
Stars: ✭ 201 (-2.9%)
Mutual labels:  p2p
Mediadevices
Go implementation of the MediaDevices API.
Stars: ✭ 197 (-4.83%)
Mutual labels:  p2p
Rustmart Yew Example
Single Page Application (SPA) written using Rust, Wasm and Yew
Stars: ✭ 196 (-5.31%)
Mutual labels:  wasm
Gossamer logo

A Go Implementation of the Polkadot Host

Gossamer is an implementation of the Polkadot Host: a framework used to build and run nodes for different blockchain protocols that are compatible with the Polkadot ecosystem. The core of the Polkadot Host is the wasm runtime which handles the logic of the chain.

Gossamer includes node implementations for major blockchains within the Polkadot ecosystem and simplifies building node implementations for other blockchains. Runtimes built with Substrate can plug their runtime into Gossamer to create a node implementation in Go.

For more information about Gossamer, the Polkadot ecosystem, and how to use Gossamer to build and run nodes for various blockchain protocols within the Polkadot ecosystem, check out the Gossamer Docs.

Get Started

Prerequisites

install go version >=1.15

Installation

get the ChainSafe/gossamer repository:

git clone [email protected]:ChainSafe/gossamer
cd gossamer

build gossamer command:

make gossamer

Run Default Node

initialize default node:

./bin/gossamer --chain gssmr init

start default node:

./bin/gossamer --chain gssmr --key alice

The built-in keys available for the node are alice, bob, charlie, dave, eve, ferdie, george, and ian.

The node will not build blocks every slot by default; it will appear that the node is doing nothing, but it is actually waiting for a slot to build a block. If you wish to force it to build blocks every slot, you update the [core] section of chain/gssmr/config.toml to the following:

[core]
roles = 4
babe-authority = true
grandpa-authority = true
babe-threshold-numerator = 1
babe-threshold-denominator = 1

Then, re-run the above steps. NOTE: this feature is for testing only; if you wish to change the BABE block production parameters, you need to create a modified runtime.

Run Kusama Node

initialize kusama node:

./bin/gossamer --chain kusama init

start kusama node:

./bin/gossamer --chain kusama

The node may not appear to do anything for the first minute or so (it's bootstrapping to the network.) If you wish to see what is it doing in this time, you can turn on debug logs in chain/gssmr/config.toml:

[log]
network = "debug"

After it's finished bootstrapping, the node should begin to sync.

Run Polkadot Node

initialize polkadot node:

./bin/gossamer --chain polkadot init

start polkadot node:

./bin/gossamer --chain polkadot

Contribute

Donate

Our work on gossamer is funded by grants. If you'd like to donate, you can send us ETH or DAI at the following address: 0x764001D60E69f0C3D0b41B0588866cFaE796972c

ChainSafe Security Policy

Reporting a Security Bug

We take all security issues seriously, if you believe you have found a security issue within a ChainSafe project please notify us immediately. If an issue is confirmed, we will take all necessary precautions to ensure a statement and patch release is made in a timely manner.

Please email us a description of the flaw and any related information (e.g. reproduction steps, version) to security at chainsafe dot io.

License

GNU Lesser General Public License v3.0


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].