/regen-ledger

:seedling: Blockchain for planetary regeneration

Primary LanguageGoOtherNOASSERTION

Issues

A distributed ledger for ecological assets and data claims


License Version Go Doc

Build Status Test Status Sims Status Lint Status

Issues Good First Issues Discussions Discord

Go Report Code Coverage

Introduction

Regen Ledger is a blockchain application for ecological assets and data claims built on top of Cosmos SDK and Tendermint Core. Leveraging these tools, Regen Ledger provides the infrastructure for a Proof-of-Stake blockchain network governed by a community dedicated to planetary regeneration.

Features specific to Regen Ledger are developed within this repository as custom modules that are then wired up to the main application. The custom modules developed within Regen Ledger follow the same architecture and pattern as modules developed within Cosmos SDK and other Cosmos SDK applications.

The core features that Regen Ledger aims to provide include the following:

  • infrastructure for managing the issuance and retirement of ecosystem service credits
  • a database of ecological state and change of state claims that spans both on and off-chain data sources
  • mechanisms for automating the assessment of ecological state, making payments, and issuing assets

Regen Ledger is under heavy development and as result the above features are implemented to varying degrees of completeness. For more information about our approach and vision, see Regen Ledger Specification.

Documentation

Documentation for Regen Ledger is hosted at docs.regen.network. This includes installation instructions for users and developers, information about live networks running Regen Ledger, instructions on how to interact with local and live networks, infrastructure and module-specific documentation, tutorials for users and developers, migration guides for developers, upgrade guides for validators, a complete list of available commands, and more.

Contributing

Contributions are more than welcome and greatly appreciated. All the information you need to get started should be available in Contributing Guidelines. Please take the time to read through the contributing guidelines before opening an issue or pull request. The following prerequisites and commands cover the basics.

Prerequisites

Go Tools

Install go tools:

make tools

Git Hooks

Configure git hooks:

git config core.hooksPath scripts/githooks

Lint and Format

Run linter in all go modules:

make lint

Run linter and attempt to fix errors in all go modules:

make lint-fix

Run formatting in all go modules:

make format

Run linter for all proto files:

make proto-lint

Run linter and attempt to fix errors for all proto files:

make proto-lint-fix

Run formatting for all proto files:

make proto-format

Running Tests

Run all unit and integrations tests:

make test

Manual Testing

Build the regen binary:

make build

View the available commands:

./build/regen help

Related Repositories

Sleeping in the Forest

I thought the earth remembered me,
she took me back so tenderly,
arranging her dark skirts, her pockets
full of lichens and seeds.

I slept as never before, a stone on the river bed,
nothing between me and the white fire of the stars
but my thoughts, and they floated light as moths
among the branches of the perfect trees.

All night I heard the small kingdoms
breathing around me, the insects,
and the birds who do their work in the darkness.

All night I rose and fell, as if in water,
grappling with a luminous doom. By morning
I had vanished at least a dozen times
into something better.

― Mary Oliver