Skip to content
forked from CosmWasm/wasmd

Basic cosmos-sdk app with web assembly smart contracts

License

Notifications You must be signed in to change notification settings

sikkatech/wasmd

This branch is 2119 commits behind CosmWasm/wasmd:main.

Folders and files

NameName
Last commit message
Last commit date
Jan 22, 2020
Nov 19, 2019
Jan 21, 2020
Nov 19, 2019
Nov 22, 2019
Nov 19, 2019
Jan 22, 2020
Jan 14, 2020
Nov 19, 2019
Nov 19, 2019
Jan 21, 2020
Apr 3, 2019
May 28, 2019
Nov 19, 2019
Nov 14, 2019
Jan 15, 2020
Apr 3, 2019
Nov 19, 2019
Jan 22, 2020
Apr 3, 2019
Nov 19, 2019
Jan 22, 2020
Nov 19, 2019
Jun 8, 2019
Jan 21, 2020
Jan 21, 2020
Nov 19, 2019

Repository files navigation

Wasm Zone

CircleCI codecov Go Report Card license LoC

This repository hosts Wasmd, the first implementation of a cosmos zone with wasm smart contracts enabled.

This code was forked from the cosmos/gaia repository and the majority of the codebase is the same as gaia.

Note: Requires Go 1.13+

Compatibility: Last merge from cosmos/gaia was d6dfa141e2ae38a1ff9f53fca8078c0822671b95

Quick Start

make install
make test

if you are using a linux without X or headless linux, look at this article or #31.

To set up a single node testnet, look at the deployment documentation.

If you want to deploy a whole cluster, look at the network scripts.

Dockerized

We provide a docker image to help with test setups. There are two modes to use it

Build: docker build -t cosmwasm/wasmd:manual . or pull from dockerhub

Dev server

Bring up a local node with a test account containing tokens

This is just designed for local testing/CI - DO NOT USE IN PRODUCTION

docker volume rm -f wasmd_data

# pass password (one time) as env variable for setup, so we don't need to keep typing it
# add some addresses that you have private keys for (locally) to give them genesis funds
docker run --rm -it \
    -e PASSWORD=my-secret-password \
    --mount type=volume,source=wasmd_data,target=/root \
    cosmwasm/wasmd:manual ./setup.sh cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6

# This will start both wasmd and wasmcli rest-server, only wasmcli output is shown on the screen
docker run --rm -it -p 26657:26657 -p 26656:26656 -p 1317:1317 \
    --mount type=volume,source=wasmd_data,target=/root \
    cosmwasm/wasmd:manual ./run_all.sh

# view wasmd logs in another shell
docker run --rm -it \
    --mount type=volume,source=wasmd_data,target=/root,readonly \
    cosmwasm/wasmd:manual ./logs.sh

CI

For CI, we want to generate a template one time and save to disk/repo. Then we can start a chain copying the initial state, but not modifying it. This lets us get the same, fresh start every time.

# Init chain and pass addresses so they are non-empty accounts
rm -rf ./template && mkdir ./template
docker run --rm -it \
    -e PASSWORD=my-secret-password \
    --mount type=bind,source=$(pwd)/template,target=/root \
    cosmwasm/wasmd:manual ./setup.sh cosmos1pkptre7fdkl6gfrzlesjjvhxhlc3r4gmmk8rs6

sudo chown -R $(id -u):$(id -g) ./template

# FIRST TIME
# bind to non-/root and pass an argument to run.sh to copy the template into /root
# we need wasmd_data volume mount not just for restart, but also to view logs
docker volume rm -f wasmd_data
docker run --rm -it -p 26657:26657 -p 26656:26656 -p 1317:1317 \
    --mount type=bind,source=$(pwd)/template,target=/template \
    --mount type=volume,source=wasmd_data,target=/root \
    cosmwasm/wasmd:manual ./run_all.sh /template

# RESTART CHAIN with existing state
docker run --rm -it -p 26657:26657 -p 26656:26656 -p 1317:1317 \
    --mount type=volume,source=wasmd_data,target=/root \
    cosmwasm/wasmd:manual ./run_all.sh

# view wasmd logs in another shell
docker run --rm -it \
    --mount type=volume,source=wasmd_data,target=/root,readonly \
    cosmwasm/wasmd:manual ./logs.sh

About

Basic cosmos-sdk app with web assembly smart contracts

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 70.0%
  • Python 17.1%
  • Makefile 5.4%
  • HCL 4.7%
  • Shell 2.5%
  • Dockerfile 0.3%