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

Umee

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. GoDoc Go Report Card Version License: Apache-2.0 Lines Of Code

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.

Comments
  • style: neater leverage unit tests

    style: neater leverage unit tests

    Extracted from review on https://github.com/umee-network/umee/pull/1654

    maybe we can have a helper function:
    
    type balances struct {
      balance, collateral, utokenSupply, exchangeRate, borrowed
    }
    func getBalances(ctx, addr) balances
    And use it across test functions :
    
    before := getBalances(...)
    ...
    after := getBalances(...)
    Will make the code easier to read (and much shorter)
    
    let's create a helper function:
    
    check := func(err, expectedDec, p) {...}
    ...
    check(err, "0.5", p)
    
    let's create a helper function ucoin which will do the "u/"+, and panic if denom is already a utoken,
    
    please provide more meaningful name for [each test case]
    
    [add comments for test cases that might be confusing in why they should fail/pass]
    
    --- tcs := []testCase{
    +++ tcs := []struct {
    same for other test cases, makes it easier to read if we have type definition right next to the values.
    
  • perf: update e2e docker

    perf: update e2e docker

    Description

    evaluating 2 docker images for e2e tests: dynamic build and static builds, and optimizing e2e docker building.


    Author Checklist

    All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.

    I have...

    • [ ] included the correct type prefix in the PR title
    • [ ] added ! to the type prefix if API or client breaking change
    • [ ] added appropriate labels to the PR
    • [ ] targeted the correct branch (see PR Targeting)
    • [ ] provided a link to the relevant issue or specification
    • [ ] added a changelog entry to CHANGELOG.md
    • [ ] included comments for documenting Go code
    • [ ] updated the relevant documentation or specification
    • [ ] reviewed "Files changed" and left comments if necessary
    • [ ] confirmed all CI checks have passed

    Reviewers Checklist

    All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.

    I have...

    • [ ] confirmed the correct type prefix in the PR title
    • [ ] confirmed all author checklist items have been addressed
    • [ ] reviewed state machine logic
    • [ ] reviewed API design and naming
    • [ ] reviewed documentation is accurate
    • [ ] reviewed tests and test coverage
    • [ ] manually tested (if applicable)
  • Optimize CI test process: Docker

    Optimize CI test process: Docker

    Summary

    Problem Definition

    e2e tests require app in Docker image. It takes ~5min to build that image.

    Proposal

    We already build binaries (price-feeder and umeed) in few other jobs. Instead, let's try to reuse it, and change the process of creating a docker by just copying the binaries and libwasmvm into docker ,without downloading all build dependencies etc...

  • Add comments to the historacle proto

    Add comments to the historacle proto

    Summary

    There was some confusion about if the denom used is symbol or base denom: "For historacle MedianOfHistoricMedians(ctx, denom, numStamps), is denom the token’s base denom or symbol denom? Assuming symbol for now"

    Problem Definition

    Robert: "we need to add more comments to the proto."

    Proposal

    Add comments


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
  • Remove Route methods

    Remove Route methods

    Summary

    In Cosmos SDK 0.47 we already moved away from the Route dependency of LegacyMsg interface. We should remove all Route method from our messages.

    To be done once we will integrate 0.47


    For Admin Use

    • [ ] Not duplicate issue
    • [ ] Appropriate labels applied
    • [ ] Appropriate contributors tagged
    • [ ] Contributor assigned/self-assigned
  • Benchmark calc and set medians for historacle pricing

    Benchmark calc and set medians for historacle pricing

        how expensive this is? Should not be merged if we don't have a benchmark. Can be commented out and done later.
    

    Originally posted by @robert-zaremba in https://github.com/umee-network/umee/pull/1580#discussion_r1024624616

Verifiable credential system on Cosmos with IBC for Distributed Identities
Verifiable credential system on Cosmos with IBC for Distributed Identities

CertX This is a project designed to demonstrate the use of IBC between different zones in the Cosmos ecosystem for privacy preserving credential manag

Mar 29, 2022
Golimit is Uber ringpop based distributed and decentralized rate limiter
Golimit is Uber ringpop based distributed and decentralized rate limiter

Golimit A Distributed Rate limiter Golimit is Uber ringpop based distributed and decentralized rate limiter. It is horizontally scalable and is based

Dec 21, 2022
An implementation of a distributed KV store backed by Raft tolerant of node failures and network partitions 🚣
An implementation of a distributed KV store backed by Raft tolerant of node failures and network partitions 🚣

barge A simple implementation of a consistent, distributed Key:Value store which uses the Raft Concensus Algorithm. This project launches a cluster of

Nov 24, 2021
More effective network communication, two-way calling, notify and broadcast supported.

ARPC - More Effective Network Communication Contents ARPC - More Effective Network Communication Contents Features Performance Header Layout Installat

Dec 22, 2022
Like Go channels over the network

libchan: like Go channels over the network Libchan is an ultra-lightweight networking library which lets network services communicate in the same way

Dec 9, 2022
Network connecter for storage.

database Quick fast connection to database use gorm. Installation $ go get -u github.com/coolstina/connecter Example package main import ( "fmt" "

Dec 4, 2021
Golang implementation of the Raft consensus protocol

raft raft is a Go library that manages a replicated log and can be used with an FSM to manage replicated state machines. It is a library for providing

Jan 9, 2023
The pure golang implementation of nanomsg (version 1, frozen)
The pure golang implementation of nanomsg (version 1, frozen)

mangos NOTE: This is the legacy version of mangos (v1). Users are encouraged to use mangos v2 instead if possible. No further development is taking pl

Dec 7, 2022
Golang implementation of distributed mutex on Azure lease blobs

Distributed Mutex on Azure Lease Blobs This package implements distributed lock available for multiple processes. Possible use-cases include exclusive

Jul 31, 2022
The Go language implementation of gRPC. HTTP/2 based RPC

gRPC-Go The Go implementation of gRPC: A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information

Jan 7, 2023
A simple go implementation of json rpc 2.0 client over http

JSON-RPC 2.0 Client for golang A go implementation of an rpc client using json as data format over http. The implementation is based on the JSON-RPC 2

Dec 15, 2022
Simplified distributed locking implementation using Redis

redislock Simplified distributed locking implementation using Redis. For more information, please see examples. Examples import ( "fmt" "time"

Dec 24, 2022
An implementation of a distributed access-control server that is based on Google Zanzibar

An implementation of a distributed access-control server that is based on Google Zanzibar - "Google's Consistent, Global Authorization System".

Dec 22, 2022
implementation of some distributed system techniques

Distributed Systems These applications were built with the objective of studding a distributed systems using the most recent technics. The main ideia

Feb 18, 2022
A naive implementation of Raft consensus algorithm.

This implementation is used to learn/understand the Raft consensus algorithm. The code implements the behaviors shown in Figure 2 of the Raft paper wi

Dec 3, 2021
A spinlock implementation for Go.

A spinlock implementation for Go.

Dec 20, 2021
This is my implementation of Raft consensus algorithm that I did for own learning.

This is my implementation of Raft consensus algorithm that I did for own learning. Please follow the link to learn more about raft consensus algorithm https://raft.github.io. And Soon, I will be developing same algorithm in Java as well

Jan 12, 2022
Golang client library for adding support for interacting and monitoring Celery workers, tasks and events.

Celeriac Golang client library for adding support for interacting and monitoring Celery workers and tasks. It provides functionality to place tasks on

Oct 28, 2022
Consistent hashing with bounded loads in Golang

consistent This library provides a consistent hashing function which simultaneously achieves both uniformity and consistency. For detailed information

Dec 29, 2022