Skip to content

videoDAC/livepeer-aragon

 
 

Repository files navigation

Screenshot from 2019-05-18 00-30-30

Livepeer Aragon App

Follow these instructions to install this app in any Aragon DAO..

If you are already a power user of aragonCLI, you can create a DAO-based Transcoder using this script.

Overview

Livepeer is a delegated-proof-of-stake protocol which governs the operation of a network of Transcoder nodes. Aragon is a project to empower freedom by creating tools for decentralized organizations to thrive. Both projects run on Ethereum blockchain.

This app empowers a "Decentralized Autonomous Organisation" (DAO) on Aragon's platform to govern the roles of Delegator and Transcoder in Livepeer's protocol.

You can support this project by BONDING your Livepeer Tokens (LPT) using the project's Transcoder page on Livepeer's Protocol Explorer.

Implementation Details

This project uses a modified version of the Aragon Agent App (Agent.sol) for storing LPT and interacting with Livepeer smart contracts.

It currently includes the ability to call the following smart contract functions on Livepeer's protocol, and for the functions' execution to be governed by a vote of the DAO:

  • Delegator functions: approve, bond, claimEarnings, unbond, rebond, withdrawFees and withdrawStake.
  • Transcoder functions: transcoder, reward, setServiceURI

Screenshot from 2019-05-18 17-12-14 In the above example, reward was called without requiring a vote. See here for more information.

Reference Implementation and Installation

A reference implementation of this application can be found in this Aragon DAO running on Rinkeby Ethereum testnet.

Follow these instructions to install this application on your local environment.

Follow these instructions to install this app in any Aragon DAO.

Future Scope

The project is currently researching how it would be possible to modify go-livepeer to enable Livepeer's node software to interact with the livepeer protocol via the Livepeer Aragon App. Initial discussions on this can be found here: livepeer/research#13.

In addition to this, further changes will likely be required as part of the Livepeer project's Streamflow release.

Project Contents

aragon-livepeer-experiment

Initial Solidity tests to experiment with the interaction between the Aragon Agent.sol and the Livepeer BondingManager.sol. See the test file if interested.

livepeer-protocol

The full livepeer contract deployment for testing locally. Modified to compile with the current version of Truffle v5.0.6. Includes extra truffle scripts:

  • initialiseFirstRound.js for preparing the BondingManager to be bonded too after initial deployment.
  • skipRoundAndInitialise.js for skipping a specified number of Livepeer rounds, required for speeding up the protocol for testing.
  • rewardWithLpt.js for declaring account[0] as a transcoder, doing the necessary setup and calling reward.

livepeer-aragon-app

The Livepeer Aragon app. It uses a modified version of Agent.sol to workaround limitations with the aragonAPI, see the LivepeerAragonApp.sol for more info. It was also initially based on the Aragon react-kit template. The template code has almost entirely been replaced.

About

Aragon App for interacting with the Livepeer Protocol. Includes Delegator functionality and basic Transcoder functionality.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 60.6%
  • Solidity 39.2%
  • Other 0.2%