• Stars
    star
    2,394
  • Rank 19,220 (Top 0.4 %)
  • Language
    Rust
  • License
    GNU General Publi...
  • Created over 2 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rust implementation of Namada, a Proof-of-Stake L1 for interchain asset-agnostic privacy

Namada

License: GPL v3

Overview

Namada is a Proof-of-Stake L1 for interchain asset-agnostic privacy. Namada uses Tendermint BFT consensus and enables multi-asset shielded transfers for any native or non-native asset. Namada features full IBC protocol support, a natively integrated Ethereum bridge, a modern proof-of-stake system with automatic reward compounding and cubic slashing, and a stake-weighted governance signalling mechanism. Users of shielded transfers are rewarded for their contributions to the privacy set in the form of native protocol tokens. A multi-asset shielded transfer wallet is provided in order to facilitate safe and private user interaction with the protocol.

πŸ““ Docs

Warning

Here lay dragons: this codebase is still experimental, try at your own risk!

πŸ’Ύ Installing

There is a single command to build and install Namada executables from source (the node, the client and the wallet). This command will also verify that a compatible version of Tendermint is available and if not, attempt to install it. Note that currently at least 16GB RAM is needed to build from source.

make install

After installation, the main namada executable will be available on path.

To find how to use it, check out the User Guide section of the docs.

For more detailed instructions and more install options, see the Install section of the User Guide.

βš™οΈ Development

# Build the provided validity predicate and transaction wasm modules
make build-wasm-scripts-docker

# Development (debug) build Namada, which includes a validator and some default 
# accounts, whose keys and addresses are available in the wallet
NAMADA_DEV=true make

Before submitting a PR, pls make sure to run the following

# Format the code
make fmt

# Lint the code
make clippy

🧾 Logging

To change the log level, set NAMADA_LOG environment variable to one of:

  • error
  • warn
  • info
  • debug
  • trace

The default is set to info for all the modules, expect for Tendermint ABCI, which has a lot of debug logging.

For more fine-grained logging levels settings, please refer to the tracing subscriber docs for more information.

To switch on logging in tests that use #[test] macro from test_log::test, use RUST_LOG with e.g. RUST_LOG=info cargo test -- --nocapture.

How to contribute

Please see the contributing page.

Dependencies

The ledger currently requires that the Heliax fork of tendermint[v0.1.4-abciplus] is installed and available on path. This can be achieved through following these instructions

More Repositories

1

juvix

A language for intent-centric and declarative decentralised applications
Haskell
447
star
2

anoma-archive

Reference implementation of the Anoma protocols in Rust.
Rust
426
star
3

namada-testnets

Testnet configurations and coordination for the Namada network.
327
star
4

namada-trusted-setup-claimer

Sign arbitrary messages with keys obtained from Namada's trusted setup
Rust
320
star
5

vamp-ir

Vamp-IR is a proof-system-agnostic language for writing arithmetic circuits
Rust
155
star
6

taiga

A framework for generalized shielded state transitions
Rust
134
star
7

zkp-compiler-shootout

Evaluating & benchmarking ZKP compilation strategies.
Rust
118
star
8

masp

The multi-asset shielded pool (MASP) provides a unified privacy set for all assets on Namada.
Rust
88
star
9

ferveo

An implementation of a DKG protocol for front-running protection on Anoma.
Rust
78
star
10

namada-interface

TypeScript
77
star
11

whitepaper

TeX
59
star
12

namada-docs

MDX
48
star
13

namada-shielded-expedition

Python
42
star
14

typhon

Formalization of Typhon protocol
TLA
28
star
15

geb

A Categorical View of Computation
Idris
28
star
16

research

Early-stage research related to the Anoma protocols.
Idris
23
star
17

specs

Specifications for the Anoma protocols.
TeX
23
star
18

alucard

A common lisp DSL for writing zero knowledge circuits
Common Lisp
18
star
19

namada-indexer

Namada indexer to be used in conjunction with the namada interface
Rust
16
star
20

ethereum-bridge

A generalized fully trustless Ethereum bridge for sovereign chains.
Solidity
12
star
21

minijuvix

Haskell
11
star
22

juvix-stdlib

The Juvix standard library
Makefile
9
star
23

VampIR-Book

A book which can act as an introduction and documentation for VampIR
CSS
9
star
24

masp-mpc

MASP MPC code
Rust
8
star
25

namada-mainnet-genesis

Python
7
star
26

namada-sdk-starter

Rust
6
star
27

juvix-nightly-builds

6
star
28

abstract-resource-machine-simulator

Makefile
6
star
29

anoma-alpha

An intent-centric, privacy-preserving protocol for decentralized counterparty discovery, solving, and multi-chain atomic settlement.
Rust
6
star
30

juvix-e2e-demo

Juvix compiler stack - Integration demo
Dockerfile
6
star
31

exhibit_plonkup

Rust
5
star
32

devtool

Rust
4
star
33

anoma-blog

Jupyter Notebook
4
star
34

verify-beacon

Rust
3
star
35

vscode-juvix

VSCode extension for Juvix
TypeScript
3
star
36

dev-utils

Shell
3
star
37

namada-whitepaper

Namada whitepaper
3
star
38

juvix-docs

Juvix Official Documentation
Makefile
3
star
39

devchain-container

Shell
2
star
40

intents-snippets

A repo to put code snippets related to intent research
Agda
2
star
41

Isabelle-HPaxos

A formalization of HPaxos in Isabelle
Isabelle
2
star
42

typhon-sml

Typhon reference implementation in Standard ML
Standard ML
2
star
43

namada-genesis

Python
2
star
44

namada-masp-indexer

The Namada Masp Indexer reference implementation.
Rust
2
star
45

anoma-wasm-multitoken

Validity predicate and transactions for a variable supply multitoken account
Rust
2
star
46

wasm-workspace

Rust
2
star
47

namada-shielded-airdrop

Rust
2
star
48

anoma-blog-writing-guide

Comprehensive guide to writing blogposts for the anoma blog.
2
star
49

juvix-quickcheck

Property-based testing for Juvix
Makefile
2
star
50

plonkup-hash

A collection of hash gadgets written for Plonkup
Rust
1
star
51

juvix-mode

The Juvix Emacs mode
Emacs Lisp
1
star
52

vscode-vampir

1
star
53

anoma-app-lib

A library for intent-centric application development.
1
star
54

juvix-test

A testing framework for Juvix
Shell
1
star
55

juvix-anoma-test

A library for testing Anoma applications
1
star
56

juvix-containers

Immutable container types for Juvix
Makefile
1
star
57

highlightjs-juvix

Juvix language grammars for highlightjs (low maintenance)
JavaScript
1
star
58

art-template

Anoma Research Topics Template
TeX
1
star
59

juvix-anoma-stdlib

A Juvix library for writing Anoma applications
Makefile
1
star
60

namada-light-sdk-starter

Namada light sdk starter kit
Dockerfile
1
star
61

ART-2023-Gureev-Cubides-Geb-Pipeline

TeX
1
star