• Stars
    star
    102
  • Rank 326,725 (Top 7 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 4 months ago

Reviews

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

Repository Details

Reference implementation of the DUSK Network node, written in Golang

Dusk Blockchain Node

⚠️ Deprecated ⚠️

This repository contains the legacy Golang implementation of the Dusk protocol. This implementation is deprecated and no longer maintained.

For an up-to-date node implementation, consider using our Rust-based Rusk client.

Why is it Deprecated?

We have transitioned to a Rust-based implementation for improved interoperability, security, and ease of contribution.

Actions Status codecov Go Report Card PkgGoDev

Specification Requirements

The following requirements are defined for running an active Dusk node. Depending on the role your node plays and how much functionality it exposes, the utilization of the node might vary significantly.

Minimum Specifications

CPU RAM Storage Network Connection
4 cores; 2 GHz 4 GB 100 GB 10 Mbps

Recommended Specifications

CPU RAM Storage Network Connection
8 cores; 2 GHz 8 GB 250 GB +25 Mbps

Installation Guide

This guide is for building the node from source. If you would like to just download the compiled program, head over to the releases page, which should include a pre-built DUSK node, and a pre-built wallet executable.

NOTE: This guide assumes you are building and running from a UNIX-like operating system. The node is not tested on Windows.

Requirements

Go 1.17 or newer.

Installation

Download the codebase and navigate into the folder:

git clone [email protected]:dusk-network/dusk-blockchain.git && cd dusk-blockchain

Get the project dependencies by running:

go get github.com/dusk-network/dusk-blockchain/...

To build the binary, simply run:

make build

Finally, to start your node, type:

./bin/dusk --config=dusk.toml

Wallet

The wallet is hosted in a separate repository, found here.

How to use the wallet

For more information on how to install, configure and run the CLI wallet, see the documentation here.

Rusk

Rusk is an important separate service that should be ran next to the node. Rusk is a powerful wrapper around the VM/execution engine that provides the genesis contracts and gives the VM access to host functions. Rusk is hosted in a separate repository, found here.

How to use Rusk

For more information on how to install, configure and run the Rusk, see the documentation here.

License

The Dusk Network blockchain client is licensed under the MIT License. See the license file for details.

Contributing

Please see the contribution guidelines for details.

More Repositories

1

plonk

Pure Rust implementation of the PLONK ZKProof System done by the Dusk-Network team.
Rust
516
star
2

Poseidon252

Reference implementation for the Poseidon Snark-friendly Hash algorithm.
Rust
194
star
3

rusk

Dusk's Smart Contract Platform
Rust
128
star
4

rusk-vm

The Dusk Rust WASM VM implementation
Rust
52
star
5

dusk-zerocaf

Zerocaf: A library built for EC operations in Zero Knowledge.
Rust
51
star
6

kelvin

Merkle tree toolkit
Rust
45
star
7

wallet-cli

Rust
24
star
8

dusk-blindbid

Implementation of the blindbid logic within Zero Knowledge Proofs
Rust
21
star
9

kadcast

Official rust implementation of the Kadcast P2P protocol for ultra-efficient message dissemination within Dusk Network
Rust
21
star
10

Hades252

Implementation of the Hades permutation algorithm used in Poseidon Hashes with ZKProof capabilities.
Rust
21
star
11

node-installer

Shell
19
star
12

piecrust

Proof of concept compact wasm modules.
Rust
18
star
13

dusk-poseidon-merkle

Rust
18
star
14

microkelvin

Rust
16
star
15

phoenix-core

Rust
15
star
16

plonkup

Proof system with plonkup back-end proving arguments
Rust
14
star
17

dusk-ui-kit

🧱 Dusk UI component library
Svelte
14
star
18

plonk_gadgets

Container of general purpose gadgets used across Dusk Network's circuit implementations.
Rust
13
star
19

schnorr

Schnorr Signature algorithm usiing BLS12-381 Curve
Rust
11
star
20

dusk-crypto

Cryptographic primitives created for the Dusk Network ecosystem but widely applicable everywhere else
Go
11
star
21

canonical

A no_std, host-allocating serialization library
Rust
10
star
22

phoenix

Rust
9
star
23

whitepaper

The Dusk Network enables fast, anonymous and secure bi-directional transmission of data and streaming among peers, paid for by a decentralized digital currency named DUSK
TeX
8
star
24

dusk-kelvin-map

Rust
8
star
25

dusk-hamt

HAMT datastructure
Rust
7
star
26

dusk-pki

Dusk Public Key Infrastructure
Rust
7
star
27

nstack

Stack data structure
Rust
6
star
28

dusk-protobuf

Makefile
6
star
29

wallet-core

The library responsible for the core functionality of a wallet
Rust
6
star
30

citadel

Implementation of Citadel, a self-sovereign identity system integrated in Dusk.
Rust
6
star
31

jubjub-schnorr

Rust implementation of the Schnorr signature scheme for the JubJub elliptic curve group, using the Poseidon hash function.
Rust
6
star
32

exu

A library to run WebAssembly code as parallel, isolated and abortable functions in JS engine
JavaScript
6
star
33

dusk-bytes

Rust
5
star
34

bulletproofs_gadgets

A container to test bulletproofs gadgets implementations
Rust
5
star
35

bls12_381-sign

Implementation of BLS signatures on the BLS12-381 curve in Rust.
Rust
5
star
36

consensus

Pure Rust implementation of the Proof-of-Stake-based consensus mechanism done by the Dusk-Network team.
5
star
37

kadcast-legacy

Implementation of the KadCast Network layer.
5
star
38

fermion

A super-compact binary encoding format ideal for constrained no_std environments.
Rust
4
star
39

merkle-benchmarks

Benchmarking Merkle tree structures
Rust
4
star
40

dusk-wallet-cli

Command line application for managing a DUSK wallet and a full/light node, by communicating over JSON-RPC.
Go
4
star
41

dusk-go-poseidon

Go
4
star
42

dusk-blindbidproof

Implementation of Dusk Network privacy-oriented PoS protocol, aka Proof of Blind Bid
Rust
4
star
43

bls12_381-bls

Implementation of BLS signatures using the BLS12-381 curve
Rust
4
star
44

merkle

A sparsely populated Merkle tree, parametrized over its height and arity.
Rust
3
star
45

cake-rusk

Writing a Smart Contract is a piece of `cake!`
Rust
3
star
46

eslint-config

⚙️ Dusk ESLint configuration
JavaScript
3
star
47

dusk-uds

Minimalistic boilerplate for UnixListener bindings.
Rust
3
star
48

dusk-example-contract

Rust
3
star
49

EdDSA

Implementation of the EdDSA for JubJub curve group using Poseidon as the hash function
Rust
3
star
50

prestaking-contract

This repository contains the Solidity code, test cases and documentation, regarding the DUSK pre-staking Ethereum smart contract.
JavaScript
3
star
51

dusk-abi

Dusk ABI for Rusk VM
Rust
3
star
52

rusk-mirror

[MIRROR] Dusk's Smart Contract Platform
Rust
3
star
53

ElGamal

Implementation of the ElGamal encryption scheme
Rust
3
star
54

avltree

An AVL tree data structure, implemented on the Kelvin library in Rust.
Rust
3
star
55

cargo-bake

A cargo extension which bake your Rusk Smart Contracts made with love & cake!
Rust
3
star
56

trusted-setup

Powers of tau MPC ceremony coordinated by Dusk.
Standard ML
3
star
57

rusk-contract

Set of macros to help building contracts for Rusk VM
Rust
3
star
58

cargo-dusk-analyzer

Cargo subcommand to analyzing and doing some reaility check on our rust repos
Rust
3
star
59

rusk-schema

Schema definition for all of the Rusk GRPC services
2
star
60

go-analyzer

A modular, extensible linting tool, which is used to enforce custom checks on Go repos in the Dusk organization.
Go
2
star
61

sonny-dh

A Deffie-Helman Key Exchange algorithm implementation using the Sonny Curve & Ristretto.
2
star
62

poseidon252-hash

Rust
2
star
63

phoenix-abi

FFI for Phoenix host functions, used by rusk-vm.
Rust
2
star
64

tools

Various gists, utilities and tools used by Dusk repositories
Shell
2
star
65

vm-proto

Rust
1
star
66

dusk-ipc

Inter-Process Communication framework for composing applications as discrete modules connected by an event bus
Makefile
1
star
67

plang

A compiler for a language representing plonk circuits
Rust
1
star
68

dusk-varint

no_std varint encoding
Rust
1
star
69

docker-elk

Shell
1
star
70

.github

Community Health File repo
1
star
71

dusk-tlv

Rust
1
star
72

bls12_381-sign-go

Wrapper library for CGo calls to the dusk-bls12_381-sign crate.
1
star
73

prestaking-provisioner

Ethereum smart contract, test cases and documentation for the Provisioner Prestaking campaign.
Solidity
1
star
74

dusk-wallet-dat

The wallet.dat file format parser and generator
Rust
1
star