npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@beandao/governance

v1.0.1

Published

Governance Smart Contract Integration Library

Downloads

3

Readme

Governance Contract

V1. Coffee House🏕

초기 Coffee House는 다양한 토론의 장으로 사용되었으며, 정치, 과학, 사회 등 세상을 이루는 것들 모두가 대화의 주제였습니다. 현대의 Coffee House도 크게 다르진 않으나, 다수에서 작게는 개인으로 분화되어 다양한 배경을 가진 사람들이 모일 수 있는 곳으로 변했습니다. 이러한 시대적 아이콘이자, 현대의 변곡점을 그대로 시스템으로 녹여내는 것이 목표이기에 Code Name을 CoffeeHouse로 결정하게 되었습니다.

개요

┌────────────────────────────┐    ┌───────────────────────────┐
│ bean the DAO Governance V1 │    │ Super Duper Governance V1 │
└──────────────▲─────────────┘    └─────────────────▲─────────┘
               │                                    │
               │                                    │
               │ Vote Right                         │ Vote Right
               │                                    │
               │      ┌──────────────────────┐      │
               └──────┤   Council Contract   ├──────┘
                      └┬────────────┬────────┘
                       │ Vote Logic │
                       └────────────┘

기능

🎡 모듈화 실행 환경

다양한 거버넌스 컨트랙트들은, 자체적인 실행 환경을 탑제하고 있지만 가장 저수준인 바이트 코드로 동작합니다. 코드의 작동 검증은 일부 개발자를 제외하고는 작동의 명확성을 파악하기 어렵기 때문에, 전문가가 아니라면 코드가 아닌 문서에 의존하는 경향이 발생합니다. 이것은 실행을 검증하는데 어려움이 수반되므로 실행 환경을 고차원으로 끌어올릴 필요가 있습니다. 이 거버넌스 시스템에서는 고차원 실행엔진을 탑재하고 있으며, 실행 엔진에서 작동할 로직들을 모듈화하였습니다. 이를 통해 거버넌스를 좀 더 작은 크기로 만들 수 있으면서 거버넌스의 실행 맥락을 더욱 풍부하게 만들 수 있었습니다. 모듈은 독립적으로 작동하기 때문에 보안 감사가 수월하며, 명세를 파악해야만 모듈을 작성할 수 있기 때문에 명확한 작동을 기대할 수 있습니다. 이러한 특성으로 구현할 수 있는 예시로써, 거버넌스가 가지고 있는 자산의 전략을 모듈화 할 수 있다는 점입니다.

🎫 실행 컨텍스트 일치

일부 거버넌스 시스템의 경우, 실행에 특화된 Timelock 컨트랙트를 통해서 다른 컨트랙트와 통신합니다. 타겟으로 하는 컨트랙트를 실행시키는 주체가 거버넌스 컨트랙트가 아닌 Timelock 컨트랙트 주소가 기록됩니다. 또한 어떠한 그룹을 대표하는 컨트랙트가 거버넌스 컨트랙트, Timelock 컨트랙트로 나뉘기 때문에 자산을 쉽게 사용하기 위해 Timelock 컨트랙트를 Treasury 저장소로 이용하는 경우도 많습니다. 이러한 것들은 실행 컨텍스트 추적을 어렵게 만들기 때문에, 저희의 컨트랙트에서는 단 하나의 Governance 컨트랙트만 활용할 수 있도록 합니다.

🥇 One Onwer 지원

거버넌스에는 투표 권한이 중요하지만, 거버넌스 초기부터 다양한 이해 관계자들을 모으기 힘든 경우가 많습니다. 특히나 투표 권한이 배분중인 경우 거버넌스의 정상화는 오래걸릴 것이며, 관리가 필요한 프로토콜의 경우 이러한 지연시간은 결정적인 문제에 봉착하리라는 것이 쉽게 상상됩니다. 또는 EOA로 프로토콜을 관리한다고 했을 경우, 투명성에 문제가 발생할 수도 있습니다. 별도의 지연장치가 존재하지 않기 때문에 프로토콜을 빠르게 관리할 수 있으나 신뢰성을 쌓는 데에는 충분하지 않습니다. 따라서 하나의 Governance 컨트랙트에 하나의 EOA를 관리 권한으로 지정하는 방법으로, Governance는 투명하게 운영할 수 있으며 이해 관계자들을 설득시키는데 충분한 방법으로 작동할 수 있습니다.

🗳 다양한 투표권 계산

DAO의 경우 장기적인 비전을 가지고 투표권을 오래동안 거버너들을 선별하는 것이 중요합니다. 특히나 Curve.fi의 Epoch 방식 그리고 Compound의 Checkpoint 방식의 투표권 계산이 나뉘어 지듯 각 거버넌스에 최적화된 투표권 방식이 있을 것입니다. 이러한 투표권 계산과 스테이킹 방식을 모듈 형태로 지정하여 사용할 수 있습니다.

🛸 Off-chain 투표 지원

이 거버넌스 시스템에서는 컨트랙트의 복잡성을 줄이고, 의존성 및 관심사의 분리를 위해서 카운슬 컨트랙트에 모든 투표권의 관리 및 계산을 일임합니다. 이러한 디자인 모델이 가지는 이점으로 구성원들 사이의 '온도 체크'와 같은 빈번하게 발생하는 거버넌스 투표는 Off-chain으로 수행할 수 있습니다. Off-Chain에서 수행된 모든 투표는 On-Chain에 반영 가능하기에, 구성원들 모두 Gasless 투표를 경험할 수 있습니다.

설치

배포

사용방법

보안

라이센스

전체 코드는 LGPL V3을 따릅니다.