Coder Social home page Coder Social logo

go-nitro's Introduction


go-nitro

Implementation of nitro protocol in golang.

Getting started

Please see contributing.md

Roadmap

The following roadmap gives an idea of the various packages that compose the go-nitro module, and their implementation status:

├── channel ✅                 # query the latest supported state of a channel
│   └── state ✅               # generate and recover signatures on state updates
│       ├── outcome ✅         # define how funds are dispersed when a channel closes
├── client 🚧                  # exposes an API to the consuming application
│   └── engine 🚧              # coordinate the client components, runs the protocols
│       ├── chainservice 🚧    # watch the chain and submit transactions
│       ├── messageservice 🚧  # send and recieves messages from peers
│       └── store 🚧           # store keys, state updates and other critical data
├── protocols ✅
│   ├── interfaces.go ✅       # specify the interface of our protocols
│   ├── direct-fund ✅         # fund a channel on-chain
│   ├── direct-defund 🚧       # defund a channel on-chain
│   ├── virtual-fund ✅        # fund a channel off-chain through one or more intermediaries
│   └── virtual-defund 🚧      # defund a channel off-chain through one or more intermediaries
└── types ✅                   # basic types and utility methods

Milestones that we hope to hit in the coming weeks:

Integration Test Engine components Status
Directly Fund an (Alice, Bob) Channel mock
Virtually Fund an (Alice, Bob) Channel through a single Intermediary mock 🟡
Virtually Fund an (Alice, Bob) and an (Alice, Brian) Channel through a single Intermediary mock 🚧
Virtually Fund an (Alice, Bob) Channel through a single Intermediary mock
Stream micropayments fron Alice to Bob mock
Directly Fund an (Alice, Bob) Channel production

Usage

Consuming applications should import the client package, and construct a New() client by passing in a chain service, a message service, and a store.

Architecture in Brief

The engine listens for action-triggering events from:

  • the consuming application / user via the go-nitro client
  • the chain service (watching for on-chain updates to running channels)
  • the message service (communicating with peers about the status of running or prospective channels)

and executes logic from the protocols package. Data required for the secure creation, running, and closing of channels lives in the store.

More detailed information can be found in each package's respective readme. architecture

Contributing

See contributing.md

Architectural Decision Records

There is a hidden folder in this directory containing architectural design records (ADRs).

License

Dual-licensed under MIT + Apache 2.0

go-nitro's People

Contributors

geoknee avatar lalexgap avatar nilock avatar andrewgordstewart avatar kerzhner avatar

Watchers

James Cloos 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.