Skip to content

One Stake, Endless Opportunities. Build with Polkadot SDK (Substrate).

License

Notifications You must be signed in to change notification settings

bifrost-io/bifrost

Repository files navigation

Bifrost Banner

Bifrost Logo

Welcome,

Bifrost is a Web3 derivatives protocol that provides decentralized cross-chain liquidity for staked assets. By leveraging on the cross-consensus message (XCM) it can provide cross-chain liquid staking services for polkadot relay chains, parachains, and heterogeneous chains bridged with polkadot.

πŸ‘‰ Discover the Bifrost project at bifrost.finance.
πŸ‘‰ Learn to use the Bifrost network with our wiki.

🐣 Supported by

Web3 Foundation Grants Substrate Builders Program Web3 Bootcamp

master-build Codacy Badge Substrate Version Docker License Discord Twitter Medium

Get Build Help

make help

Install Rust and required tools

curl https://sh.rustup.rs -sSf | sh
make init

Build binary

make build-all-release

Format code

make format

Lint code

make clippy

Testing

make test-all

Generate runtime weights

if runtime logic change we may do the benchmarking to regenerate WeightInfo for dispatch calls

make generate-all-weights

Testing runtime migration

If modify the storage, should test the data migration before production upgrade.

make try-bifrost-runtime-upgrade

Run development chain

make run-dev

Run local testnet with polkadot-launch

Install polkadot-launch

yarn global add polkadot-launch
cd -

Build polkadot

git clone -n https://github.com/paritytech/polkadot.git /tmp/polkadot
cd /tmp/polkadot
git checkout release-v0.9.22
cargo build --release
cd -

Launch Polkadot and the parachain

cd -
polkadot-launch ./scripts/bifrost-launch.json

It will take about 1-2 minutes for the parachain to start producing blocks.

Run local testnet with parachain-launch

Install parachain-launch

yarn global add @open-web3/parachain-launch

Generate docker files

parachain-launch generate --config=scripts/bifrost-docker-launch.yml --yes

It will pull images and generate required docker files in a folder called output in your current working directory

Start relaychain and parachain

To start the nodes, navigate to the output folder that the generated docker scripts in and start containers:

cd ./output
docker-compose up -d --build

Run full node

Create bifrost-fullnode directory, generate node-key and get bifrost.json

mkdir -p ~/node-key
subkey generate-node-key --file ~/node-key/bifrost.key

Start full node

Replace your-fullnode-name

docker pull bifrostnetwork/bifrost:latest
docker run -d \
-v ~/node-key:/node-key \
-p 9944:9944 \
-p 9933:9933 \
-p 30333:30333 \
bifrostnetwork/bifrost:latest \
  --name your-fullnode-name \
  --base-path "/data" \
  --node-key-file "/node-key/bifrost.key" \
  --chain "/spec/bifrost.json" \
  --pruning=archive \
  --rpc-external \
  --ws-external \
  --rpc-cors all \
  --state-cache-size 0 \
  --execution wasm