Skip to content

🌱Ethereum upgradeable application using a DelegateProxy with RBAC governance

License

Notifications You must be signed in to change notification settings

runningbeta/r8-app

Repository files navigation

r8-app 🌱

CircleCI

🚨 Everything in this repo is highly experimental software.

This is a simplified version of the system being used by the AragonOS and ZepplinOS systems.

Proxy contracts are being increasingly used as both as an upgradeability mechanism and a way to save gas when deploying many instances of a particular contract. EIP897 standard proposes a set of interfaces for proxies to signal how they work and what their main implementation is.

Getting started

You will need Truffle framework:

# Make sure we have the latest truffle version
npm uninstall -g truffle
npm install -g truffle@latest

To test this project locally, clone the repo and run:

# install dependencies
npm install

# run tests
truffle test

To use the code we provide an NPM package:

# install dependencies
npm install @runningbeta/r8-app

The upgrade mechanism

The pattern used is Upgradeability using Unstructured Storage as described in this repo and in this blog post by Zeppelin.

Understanding the DELEGATECALL Ethereum opcode is key to understanding the upgradeable proxy pattern.

Other projects using a delegate proxy pattern:

Releases

No releases published

Packages

No packages published