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.
See Release procedure for more information about the release model.
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 |
Since Price Feeder v2.1.0
the recommended oracle price feeder has been moved to this repository with the version prefix umee/v.x
.
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.
Public:
- umee-1 (mainnet)
- canon-3 (testnet)
To install the umeed
binary:
$ make 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"
- 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
toapi.swagger
true
- Run the node normally
umeed start
- Enter the swagger docs
http://localhost:1317/swagger/
Docs Note:
cosmovisor
only works for upgrades in theumeed
, for off-chain processes updates likepeggo
orprice-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 startingumeed
process, instead of callingumeed start
, usecosmovisor run start [umeed flags]
A guide to running liquidations on Umee can be found here