All Projects β†’ iov-one β†’ Weave

iov-one / Weave

Licence: apache-2.0
Easy-to-use SDK to build Tendermint ABCI applications

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Weave

Go Cyber
Your πŸ”΅ Superintelligence
Stars: ✭ 270 (-75.94%)
Mutual labels:  blockchain, tendermint
Abci Host
Clojure host/server for Tendermint's ABCI protocol.
Stars: ✭ 18 (-98.4%)
Mutual labels:  blockchain, tendermint
Embark
Framework for serverless Decentralized Applications using Ethereum, IPFS and other platforms
Stars: ✭ 3,478 (+209.98%)
Mutual labels:  blockchain, framework
Framework
0xcert Framework - JavaScript framework for building decentralized applications - build something unique
Stars: ✭ 213 (-81.02%)
Mutual labels:  blockchain, framework
Dawn
global hosting, financial automation, server-less web components
Stars: ✭ 40 (-96.43%)
Mutual labels:  blockchain, tendermint
Akash
a secure, transparent, and peer-to-peer cloud computing network
Stars: ✭ 229 (-79.59%)
Mutual labels:  blockchain, tendermint
Ethermint Archive
Ethereum on Tendermint using Cosmos-SDK!
Stars: ✭ 667 (-40.55%)
Mutual labels:  blockchain, tendermint
Mint
Mint Blockchain β€”Β Build blockchain powered social apps
Stars: ✭ 148 (-86.81%)
Mutual labels:  blockchain, tendermint
Lotion
✨ Smooth, easy blockchain apps ✨
Stars: ✭ 882 (-21.39%)
Mutual labels:  blockchain, tendermint
Cosmos
Internet of Blockchains βš›
Stars: ✭ 938 (-16.4%)
Mutual labels:  blockchain, tendermint
Ethermint
Ethermint is a scalable and interoperable Ethereum, built on Proof-of-Stake with fast-finality using the Cosmos SDK.
Stars: ✭ 207 (-81.55%)
Mutual labels:  blockchain, tendermint
Py Abci
Python based ABCI Server for Tendermint
Stars: ✭ 48 (-95.72%)
Mutual labels:  blockchain, tendermint
Starport
The easiest way to build a blockchain.
Stars: ✭ 204 (-81.82%)
Mutual labels:  blockchain, tendermint
Lisk Sdk
πŸ”© Lisk software development kit
Stars: ✭ 2,767 (+146.61%)
Mutual labels:  blockchain, framework
Bee
A framework for IOTA nodes, clients and applications in Rust
Stars: ✭ 176 (-84.31%)
Mutual labels:  blockchain, framework
Chain33
ι«˜εΊ¦ζ¨‘ε—εŒ–, 遡εΎͺ KISSεŽŸεˆ™ηš„εŒΊε—ι“ΎεΌ€ε‘ζ‘†ζžΆ
Stars: ✭ 551 (-50.89%)
Mutual labels:  blockchain, framework
Muta
Muta is a high-performance blockchain framework.
Stars: ✭ 135 (-87.97%)
Mutual labels:  blockchain, framework
Secretnetwork
π•Š The Secret Network
Stars: ✭ 138 (-87.7%)
Mutual labels:  blockchain, tendermint
Etgate
Ethereum-Tendermint token sending gateway
Stars: ✭ 23 (-97.95%)
Mutual labels:  blockchain, tendermint
Clearchain
Cosmos app for clearing and settlements
Stars: ✭ 42 (-96.26%)
Mutual labels:  blockchain, tendermint

IOV Weave

Build Status TravisCI codecov LoC Go Report Card API Reference ReadTheDocs license

Weave Logo

IOV Weave is a framework for quickly building your custom ABCI application to run a blockchain on top of the best-of-class BFT Proof-of-stake Tendermint consensus engine. It provides much commonly used functionality that can quickly be imported in your custom chain, as well as a simple framework for adding the custom functionality unique to your project.

Join the Weave community channel πŸ“’

It is inspired by the routing and middleware model of many web application frameworks, and informed by years of wrestling with blockchain state machines. More directly, it is based on the official cosmos-sdk, both the 0.8 release as well as the future 0.9 rewrite. Naturally, as I was the main author of 0.8.

While both of those are extremely powerful and flexible and contain advanced features, they have a steep learning curve for novice users. Thus, this library aims to favor simplicity over power when there is a choice. If you hit limitations in the design of this library (such as maintaining multiple merkle stores in one app), I highly advise you to use the official cosmos sdk.

On the other hand, if you want to try out tendermint, or have a design that doesn't require an advanced setup, you should try this library and give feedback, especially on ease-of-use. The end goal is to make blockchain development almost as productive as web development (in golang), by providing defaults and best practices for many choices, while allowing extreme flexibility in business logic and data modelling.

For more details on the design goals, see the Design Document

Prerequisites

Instructions

First, make sure you have set up the requirements. If you have a solid go and node developer setup, you may skip this, but good to go through it to be sure.

Once you are set up, you should be able to run something like the following to compile both bnsd (IOV blockchain application) and bnscli (a client side app to interact with bnsd). You will have to install a compatible version of tendermint separately. (Currently we use the v0.31.5 release).

# cd into to your workspace that is not in your $GOPATH
git clone https://github.com/iov-one/weave.git
cd weave
make install

Note that this app relies on a separate tendermint process to drive it. It is helpful to first read a primer on tendermint as well as the documentation on the tendermint cli commands.

Once it compiles, I highly suggest going through the readthedocs

Compatibility

Check out compatibility charts

Protobuf Documentation

We generate documentation from the *.proto files to keep it up to date.

You can view the documentation for all packages used in the bns app.

Or generate it yourself:

make protodocs
open ./docs/proto/index.html

Contributions

When opening a pull request with a change that does not require a CHANGELOG entry, include !nochangelog in the description. This will inform our build system to not fail the build due to a missing CHANGELOG update. This instruction is needed only if you are changing any of the Go source files.

History

The original version, until v0.6.0 was released under confio/weave. The original author, Ethan Frey, had previously worked on the Cosmos SDK and wanted to make a simpler framework he could use to start building demo apps, while the main sdk matured. Thus, confio/weave was born the first few months of 2018. This framework was designed to be open source and shared, but the only real usage and development was by IOV, so it was donated to that organization in August 2018 to be developed further for their BNS blockchain, as well as a companion to iov-core client libraries that deprecated confio/weave-js

Audit

Check out our latest audit report.

Thanks to newfinal100 for designing the weave logo.

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].