chain

module
v3.0.0-rc0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 6, 2024 License: GPL-3.0

README

 

BandChain - Decentralized Data Delivery Network

Documentation »


What is BandChain?

BandChain is a cross-chain data oracle platform that aggregates and connects real-world data and APIs to smart contracts. It is designed to be compatible with most smart contract and blockchain development frameworks. It does the heavy lifting jobs of pulling data from external sources, aggregating them, and packaging them into the format that’s easy to use and verifiable efficiently across multiple blockchains.

Band's flexible oracle design allows developers to query any data including real-world events, sports, weather, random numbers and more. Developers can create custom-made oracles using WebAssembly to connect smart contracts with traditional web APIs within minutes.

Installation

Please refer to this documentation for the most up-to-date installation guide.

Building from source

We recommend the following for running a BandChain Validator:

  • 2 or more CPU cores
  • 8 GB of RAM (16 GB in case on participate in mainnet upgrade)
  • At least 100GB of disk storage

Step 1. Install Golang

Go v1.18+ or higher is required for BandChain.

If you haven't already, install Golang by following the official docs. Make sure that your GOPATH and GOBIN environment variables are properly set up.

Step 2. Get BandChain source code

Use git to retrieve BandChain from the official repo, and checkout the master branch, which contains the latest stable release. That should install the bandd binary.

git clone https://github.com/bandprotocol/chain
cd chain && git checkout v2.5.4
make install

Step 3. Verify your installation

Using bandd version command to verify that your bandd has been build successfully.

name: bandchain
server_name: bandd
version: 2.5.4
commit: e6548bbf4793829bb8e711e5ed89ba4afc710ded
build_tags: netgo,ledger
go: go version go1.19.1 darwin/amd64
build_deps:
...

If you are using Mac ARM architecture (M1, M2) and face the issue of GMP library, you can run this.

brew update && brew install gmp
sudo ln -s /opt/homebrew/lib/libgmp.10.dylib /usr/local/lib/

Useful scripts for development

  • scripts/generate_genesis.sh to create/reset the default genesis file
  • scripts/start_bandd.sh to start the bandd binary
  • scripts/start_yoda.sh to start yoda with reporter(s)

Resources

Community

License & Contributing

BandChain is licensed under the terms of the GPL 3.0 License unless otherwise specified in the LICENSE file at module's root.

We highly encourage participation from the community to help with D3N development. If you are interested in developing with D3N or have suggestions for protocol improvements, please open an issue, submit a pull request, or [drop as a line].

Directories

Path Synopsis
api
band/bandtss/v1beta1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/base/node/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/base/oracle/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/feeds/v1beta1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/globalfee/v1beta1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/oracle/v1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/restake/v1beta1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/rollingseed/v1beta1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/tss/v1beta1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
band/tunnel/v1beta1
Code generated by protoc-gen-go-pulsar.
Code generated by protoc-gen-go-pulsar.
app
params
Package params defines the simulation parameters in the band.
Package params defines the simulation parameters in the band.
client
grpc/node
Package node is a reverse proxy.
Package node is a reverse proxy.
grpc/oracle/proof
Package proof is a reverse proxy.
Package proof is a reverse proxy.
cmd
grogu
signaller/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
submitter/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
pkg
obi
tss
x
bandtss/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
bandtss/types
Package types is a reverse proxy.
Package types is a reverse proxy.
feeds/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
feeds/types
Package types is a reverse proxy.
Package types is a reverse proxy.
globalfee/types
Package types is a reverse proxy.
Package types is a reverse proxy.
oracle/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
oracle/types
NOTE: Usage of x/params to manage parameters is deprecated in favor of x/gov controlled execution of MsgUpdateParams messages.
NOTE: Usage of x/params to manage parameters is deprecated in favor of x/gov controlled execution of MsgUpdateParams messages.
restake/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
restake/types
Package types is a reverse proxy.
Package types is a reverse proxy.
tss
tss/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
tss/types
Package types is a reverse proxy.
Package types is a reverse proxy.
tunnel/testutil
Package testutil is a generated GoMock package.
Package testutil is a generated GoMock package.
tunnel/types
Package types is a reverse proxy.
Package types is a reverse proxy.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL