GithubHelp home page GithubHelp logo

ohhkaneda / solido Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uxdprotocol/solido

0.0 0.0 0.0 99.38 MB

Lido for Solana is a Lido-DAO governed liquid staking protocol for the Solana blockchain.

Home Page: https://chorusone.github.io/solido/

License: GNU General Public License v3.0

Rust 89.17% Python 10.54% Shell 0.29%

solido's Introduction

Lido for Solana

Coverage

Lido for Solana (“Solido” for short) is a Lido DAO-governed liquid staking protocol for the Solana blockchain. Anyone who stakes their SOL tokens with Lido will be issued an on-chain representation of the SOL staking position with Lido validators, called stSOL.

Lido for Solana gives you:

  • Liquidity — No delegation/activation delays and the ability to sell your staked tokens
  • One-click staking — No complicated steps
  • Decentralized security — Assets spread across the industry’s leading validators chosen by the Lido DAO

Further resources:

Repository layout

This repository contains the source code for the on-chain program, and for the solido utility to interact with it. The source code for the staking widget, and documentation, are in a different repository, which is not yet public.

  • program — The on-chain Solana BPF program.
  • multisig — A pinned version of the on-chain Serum multisig program, used as the upgrade authority of the Solido program, and as the manager of the Solido instance.
  • cli — The command-line solido utility for interacting with the on-chain programs.
  • docker — Dockerfiles for reproducible builds, and for the maintainer image.
  • tests — Scripts that test the actual solido binary and on-chain program.
  • program/tests — Tests using the solana-program-test test framework.

Building

The on-chain program and solido utility are written in Rust. To build them, you need:

  • An x86_64 Linux machine. Mac should work too, but for reproducibility we target Linux.
  • A Rust toolchain
  • The Solana tool suite (only needed for the on-chain programs, not for the solido utility)
  • Docker (only needed if you want to reproduce the official build, or if you want to avoid installing build tools locally)
  • The following system libraries (listed as Debian package names):
    • libudev-dev
    • libhidapi-dev
    • pkg-config
    • openssl

The Solana version that we test against is listed in our CI config.

Cloning the repository

This repository contains a Git submodule. To clone it, pass --recurse-submodules:

$ git clone --recurse-submodules https://github.com/chorusone/solido

If you already cloned the repository without submodules, you can still initialize them later:

$ git submodule init
$ git submodule update

If you have an existing checkout and later update it, make sure to also pass --recurse-submodules when using git pull and git {checkout,switch}.

Solido utility

To build and test the solido utility, use the normal Cargo commands:

$ cargo test
$ cargo build --release

The solido binary can then be found in target/release.

On-chain programs

Building the on-chain programs requires the Solana tool suite:

$ cargo build-bpf
$ cargo test-bpf

The programs lido.so and serum_multisig.so can then be found in target/deploy.

Docker container

To build the container image, use buildimage.sh. This will build and package Solido along with the Solana toolchain into an image chorusone/solido:«hash», where «hash» will be the Git hash of the current version of the codebase.

Once built, one can execute into the container interactively:

$ docker run --interactive --tty --rm chorusone/solido:hash /bin/sh

This will provide a shell into the working directory where the Solido artefacts and the Solana toolchain are located. Inside that directory, the the solido utility is in solido/cli, and the on-chain programs are in solido/deploy.

License

Lido for Solana is licensed under the GNU General Public License version 3.

solido's People

Contributors

enriquefynn avatar glottologist avatar malikankit avatar naomijub avatar ruuda avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.