umee

module
v6.1.0-beta1 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2023 License: Apache-2.0

README

Logo!

GoDoc Go Report Card Version Lines Of Code GitHub Super-Linter

A Golang implementation of the Umee network, a decentralized universal capital facility in the Cosmos ecosystem.

Umee is a Universal Capital Facility that can collateralize assets on one blockchain towards borrowing assets on another blockchain. The platform specializes in allowing staked assets from PoS blockchains to be used as collateral for borrowing across blockchains. The platform uses a combination of algorithmically determined interest rates based on market driven conditions. As a cross chain DeFi protocol, Umee will allow a multitude of decentralized debt products.

Table of Contents

Releases

See Release procedure for more information about the release model.

Release Compatibility Matrix

Umee Version Mainnet Cosmos SDK IBC Peggo Price Feeder Gravity Bridge libwasmvm
v0.8.x v0.45.x v2.0.x v0.2.x v0.1.x
v1.x.x v0.45.x v2.0.x v0.2.x N/A umee/v1 module/v1.4.x-umee
v2.x.x v0.45.x v2.3.x v0.2.x v0.2.x umee/v2 module/v1.4.x
v3.0-1.x v0.46.x v5.0.x v1.3.x+ v1.0.x umee/v3 module/v1.5.x-umee
v3.1.0-cw1 v0.46.x v5.0.x v1.3.x+ v2.0.x umee/v3 module/v1.5.x-umee
v3.2.x v0.46.6+ v5.1.x v1.3.x+ v2.0.x umee/v3 v1.5.3-umee-3 v1.1.1
v3.3.x v0.46.6+ v5.1.x v1.3.x+ v2.0.2 umee/v3 v1.5.3-umee-3 v1.1.1
v4.0.x v0.46.6+ v5.1.x v1.3.x+ v2.0.3 umee/v4 v1.5.3-umee-4 v1.1.1
v4.1.x v0.46.7+ v5.2.x v1.3.x+ v2.1.0 umee/v4 v1.5.3-umee-4 v1.1.1
v4.2.x v0.46.10+ v5.2.x v1.3.x+ umee/v2.1.1 umee/v4 v1.5.3-umee-4 v1.1.1
v4.3.x v0.46.11+ v6.1.x v1.3.x+ umee/v2.1.1 umee/v4 v1.5.3-umee-6 v1.2.1
v4.4.x v0.46.11+ v6.1.x v1.3.x+ umee/v2.1.4+ umee/v4 v1.5.3-umee-6 v1.2.3
v5.0.x v0.46.13+ v6.2.x v1.3.x+ umee/v2.1.4+ umee/v4 v1.5.3-umee-8 v1.2.4
v5.1.x v0.46.13+ v6.2.x --- umee/v2.1.6+ umee/v4 v1.5.3-umee-10 v1.2.4
v5.2.x v0.46.13+ v6.2.x --- umee/v2.1.6+ umee/v4 v1.5.3-umee-10 v1.2.4
v6.0.x v0.46.14+ v6.2.x --- umee/v2.1.6-1+ --- v1.3.0
Price Feeder

Since Price Feeder v2.1.0 the recommended oracle price feeder has been moved to this repository with the version prefix umee/v.x.

libwasmvm

When you build the binary from source on the server machine you probably don't need any change. Building from source automatically link the libwasmvm.$(uname -m).so created as a part of the build process.

However when you download a binary from GitHub, or from other source, make sure you have required version of libwasmvm.<cpu_arch>.so (should be in your lib directory, e.g.: /usr/local/lib/). You can get it:

  • from you build machine: copy $GOPATH/pkg/mod/github.com/!cosm!wasm/wasmvm@v<version>/internal/api/libwasmvm.$(uname -m).so
  • or download from CosmWasm GitHub wget https://raw.githubusercontent.com/CosmWasm/wasmvm/v<version>/internal/api/libwasmvm.$(uname -m).so -O /lib/libwasmvm.$(uname -m).so

You don't need to do anything if you are using our Docker image.

Active Networks

Public:

  • umee-1 (mainnet)
  • canon-3 (testnet)

Build

To install the umeed binary:

$ make build

Docker build

docker build -t umee-network/umeed -f contrib/images/umeed.dockerfile .

# start bash
docker run -it --name umeed umee-network/umeed bash

# or start the start the node if you already have a node directory setup
docker run -it --name umeed umee-network/umeed umeed start

We recommend to use RocksDB. It requires to install rocksdb system libraries. We plan to migrate newer version of badgerdb, which brings lot of improvements and simplifies the setup.

To build with rocksdb enabled:

ENABLE_ROCKSDB=true COSMOS_BUILD_OPTIONS=rocksdb  make build

Once you generate config files, you need to update:

# app.toml / base configuration options
app-db-backend = "rocksdb"

# config.toml / base configuration options
db_backend = "rocksdb"

Swagger

  • To update the latest swagger docs, follow these steps

Generate the latest swagger:

 $ make proto-swagger-gen
 $ make proto-update-swagger-docs

Build the new binary or install the new binary with the latest swagger docs:

$ make build
# or
$ make install

Make sure to execute these commands whenever you want to update the swagger documentation.

  • To enable it, modify the node config at $UMEE_HOME/config/app.toml to api.swagger true
  • Run the node normally umeed start
  • Enter the swagger docs http://localhost:1317/swagger/

Cosmovisor

Docs Note: cosmovisor only works for upgrades in the umeed, for off-chain processes updates like peggo or price-feeder, manual steps are required.

  • cosmovisor is a small process manager for Cosmos SDK application binaries that monitors the governance module for incoming chain upgrade proposals. If it sees a proposal that gets approved, cosmovisor can automatically download the new binary, stop the current binary, switch from the old binary to the new one, and finally restart the node with the new binary.

  • Install it with go

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest
  • Create folders for Cosmovisor
mkdir -p ~/.umee/cosmovisor/genesis/bin
mkdir -p ~/.umee/cosmovisor/upgrades

cp <path-to-umeed-binary> ~/.umee/cosmovisor/genesis/bin
  • For the usual use of cosmovisor, we recommend setting theses env variables
export DAEMON_NAME=umeed
export DAEMON_HOME={NODE_HOME}
export DAEMON_RESTART_AFTER_UPGRADE=true
export DAEMON_ALLOW_DOWNLOAD_BINARIES=true
export DAEMON_PREUPGRADE_MAX_RETRIES=3
  • If you didn't build binary from source in the machine, you have to download the respective libwasmvm into your machine.
$ wget https://raw.githubusercontent.com/CosmWasm/wasmvm/v1.1.1/internal/api/libwasmvm.$(uname -m).so -O /lib/libwasmvm.$(uname -m).so
  • To use cosmovisor for starting umeed process, instead of calling umeed start, use cosmovisor run start [umeed flags]

Liquidators

A guide to running liquidations on Umee can be found here

Directories

Path Synopsis
app
inflation/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
cmd
tx
tests
accs
package accs provides test accounts for testing purposes
package accs provides test accounts for testing purposes
cli
e2e
package e2e defines an integration testing suite used for full end-to-end testing functionality.
package e2e defines an integration testing suite used for full end-to-end testing functionality.
tsdk
Package tsdk provides test utilities related to Cosmos SDK
Package tsdk provides test utilities related to Cosmos SDK
bpmath
Package bpmath provides types and functions for doing basis point operations with math.Int.
Package bpmath provides types and functions for doing basis point operations with math.Int.
checkers
Package checkers provides functions and structures to verify common types and aggregate errors.
Package checkers provides functions and structures to verify common types and aggregate errors.
cli
genmap
Package genmap provides generic functions for manipulating maps.
Package genmap provides generic functions for manipulating maps.
ibc
sim
store
Package store implements KVStore getters and setters for various types.
Package store implements KVStore getters and setters for various types.
x
incentive
Package incentive is a reverse proxy.
Package incentive is a reverse proxy.
leverage/fixtures
Package fixtures provides test data for tests
Package fixtures provides test data for tests
leverage/types
Package types is a reverse proxy.
Package types is a reverse proxy.
metoken
Package metoken is a reverse proxy.
Package metoken is a reverse proxy.
metoken/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
oracle/types
Package types is a reverse proxy.
Package types is a reverse proxy.
ugov
Package ugov is a reverse proxy.
Package ugov is a reverse proxy.
ugov/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
uibc
Package uibc is a reverse proxy.
Package uibc is a reverse proxy.
uibc/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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