• Stars
    star
    212
  • Rank 186,122 (Top 4 %)
  • Language
    Elixir
  • License
    ISC License
  • Created about 7 years ago
  • Updated almost 6 years ago

Reviews

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

Repository Details

Elixir full node implementation of the aeternity specification

Travis Build

CURRENTLY NOT COMPATIBLE TO THE AETERNITY NETWORK

This implementation aims to be a aims to be a full node that complies with the aeternity specification, in the current state this is not ready yet and should never be used to join the aeternity network.

Aeternity Elixir Full Node

This is an elixir full node implementation of the aeternity specification.

Compatibility to the erlang aeternity implementation is documented in docs/aeternity-erlang-compatibility.md.

Getting started

Required packages

Elixir 1.6 with Erlang/OTP20 is the basis of the project

Rust is needed for persistent storage dependency

libsodium 1.0.16 is needed for elliptic curve support

sudo apt-get install autoconf autogen libtool libgmp3-dev lsof
wget -O libsodium-src.tar.gz https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz
mkdir libsodium-src && tar -zxf libsodium-src.tar.gz -C libsodium-src --strip-components=1
cd libsodium-src && ./configure && make && make check && sudo make install && cd ..

Fetching dependencies

mix deps.get

Starting the application

Start the application in interactive Elixir

  • Development config: make iex-0
  • Production config: MIX_ENV=prod make iex-0

The default sync port is 3015, this can be adjusted using SYNC_PORT=some_port iex -S mix phx.server. The node will run an http api at localhost:4000, this can be adjusted using PORT=some_port iex -S mix phx.server.

Usage

Elixir interactive api-calls

  • Miner.resume() to start the miner

  • Miner.suspend() to stop the miner

  • Miner.mine_sync_block_to_chain() mine the next block

  • Chain.top_block() to get the top block of the current chain

  • Chain.top_block_chain_state() to get the top block chainstate

  • Chain.chain_state(block_hash) to get the chainstate of certain block

  • Pool.get_pool() to get all transactions from the pool

  • Peers.all_peers() to get all connected peers

  • Peers.try_connect(%{host: host, port: port, pubkey: pubkey}) to manually connect a new peer

  • Peers.get_info_try_connect(uri) to connect to another elixir node, providing a get connection info interface

Running the tests

Run the testsuite with mix test

Logging

Debug, error, warning and info logs is found in apps/aecore/logs

Docker Container

A Dockerfile and docker-compose.yml are found in the base directory, prebuilt images are not yet published.

  • Build container docker build . -t elixir-node

  • Run node in container docker run --name elixir-node -it -p 4000:4000 -p 3015:3015 elixir-node

  • Run multiple nodes network with docker compose docker-compose up runs 3 connected nodes, with 2 mining

Detailed Usage

docs/detailed-usage.md

Developer Documentation

docs/developer-docs.md

More Repositories

1

aeternity

æternity blockchain - scalable blockchain for the people - smart contracts, state channels, names, tokens
Erlang
1,057
star
2

protocol

Specification of the æternity blockchain protocol
Python
204
star
3

mnesia_rocksdb

A RocksDB backend plugin for mnesia, based on mnesia_eleveldb
Erlang
138
star
4

aepp-sdk-js

JavaScript SDK for the æternity blockchain
TypeScript
120
star
5

aesophia

Stand alone compiler for the Sophia smart contract language
Erlang
49
star
6

enoise

Erlang implementation of the Noise protocol
Erlang
45
star
7

aepp-base

Base æpp
Vue
42
star
8

aepp-components

deprecated: aepp-components to be used in all aepps.
Vue
42
star
9

superhero-wallet

Superhero wallet
Vue
40
star
10

app_ctrl

Alternative application controller for Erlang/OTP
Erlang
30
star
11

aeproject

Testing framework for Sophia Smart Contract development.
JavaScript
28
star
12

whitepaper

Æternity blockchain whitepaper (Latex)
TeX
27
star
13

ae_mdw

Aeternity Middleware in Elixir
Elixir
26
star
14

aepp-sdk-python

Python SDK for the Æternity blockchain
Python
24
star
15

aepp-blockchain-explorer

Official blockchain explorer for Aeternity Blockchain
Vue
24
star
16

infrastructure

Shell
23
star
17

aepp-sophia-examples

Sophia Smart Contract examples using AEproject.
JavaScript
22
star
18

aepp-sdk-go

Golang SDK to interact with the Æternity blockchain
Go
20
star
19

mnesia_leveled

Mnesia backend plugin using Leveled (https://github.com/martinsumner/leveled)
Erlang
20
star
20

superhero-ui

Superhero UI
Vue
19
star
21

aepp-sdk-elixir

Elixir SDK targeting the æternity node implementation
Elixir
19
star
22

aepp-prototypes

Concepts of apps that will work on the top ouf æterenity blockchain
18
star
23

aebytecode

Aeternity virtual machines byte code modules
Erlang
13
star
24

tutorials

13
star
25

awesome-aeternity

A curated list of resources for the æternity blockchain
Python
12
star
26

aepp-contracts

æternity contracts editor
Vue
11
star
27

aesophia_cli

Aeternity Sophia CLI
Erlang
10
star
28

AEXs

Aeternity expansions repository — application layer standards
10
star
29

aepp-voting

JavaScript
10
star
30

aesim

Æternity p2p simulator
Erlang
9
star
31

ae-channel-service

Elixir
9
star
32

aepp-aexistence

JavaScript
8
star
33

documentation-hub

21.09.2021: The documentation-hub has been sunset in favor of awesome-aeternity
8
star
34

aeternity-reimagined

The new whitepaper
8
star
35

aestudio

Æ Studio - Aeternity's Smart Contract Editor formerly known as Fire Editor !
TypeScript
8
star
36

aepp-docs

aepps.com documentation repository
CSS
7
star
37

aepp-sdk-docs

HTML
7
star
38

conversational-machine

A state machine for conversational interfaces in nodejs
JavaScript
7
star
39

dao-fi-fusion-code-challenge

Join this code challenge and win up to $20,000 from a total prize pool of $50,000!
7
star
40

eblake2

A pure Erlang Blake2 implementation
Erlang
6
star
41

aescan

Block Explorer and Analytics Platform
Vue
6
star
42

aesophia_http

Erlang
6
star
43

dex-ui

Superhero DEX - the official UI for the first automated market maker (AMM) on æternity.
Vue
6
star
44

aerepl

A sophisticated Read-Eval-Print Loop for Sophia
Erlang
6
star
45

hyperchains-whitepaper

The specification of the aeternity's hyperchains protocol
TeX
6
star
46

dex-contracts-v2

JavaScript
5
star
47

aestratum_client

Stratum client
Erlang
5
star
48

aepp-cli-js

Command line interface for the æternity blockchain
JavaScript
5
star
49

state-channel-demo

rock, paper, scissors implemented on the æternity blockchain using state channels.
JavaScript
5
star
50

localnet

Docker-compose based configuration to easily run locally deployed dev/test network
HTML
5
star
51

aeminer

Erlang
5
star
52

aex141-nft-collection-example

Simple showcase how to create an NFT collection and mint NFTs. The repo also contains a simple-nft-viewer UI.
JavaScript
5
star
53

white-paper

2020 White paper DRAFT
TeX
4
star
54

coin-toss-game

The UI for the (developer focused) state channel demo.
TypeScript
4
star
55

tipping-contract

JavaScript
4
star
56

aepp-playground

Playground  —  unified development experience for the æternity Blockchain.
JavaScript
4
star
57

ae_plugin

Simple setup-based AE node bootstrap app for plugin development
Erlang
4
star
58

aepp-graffiti

Vue
4
star
59

deprecated-middleware

A middleware layer on top of Epoch
Python
4
star
60

aeconnector

Parent chains interface provider (Hyperchains).
Erlang
4
star
61

mdw-frontend

Vue
4
star
62

aepp-goggles

A simple interface to decode and verify encoded transactions for the æternity network.
Vue
4
star
63

aepp-response-contracts

JavaScript
4
star
64

id-manager-provider

web3 provider for dapps running in the id-manager
JavaScript
4
star
65

bounties

Rewarded contribution opportunities in the æcosystem for the æternity community.
4
star
66

ae_canary

Elixir
4
star
67

aepp-boilerplate-vue

A Vue.js boilerplate to build aepps in the æternity ecosystem.
JavaScript
3
star
68

aepp-wall

Æternal Message Wall
JavaScript
3
star
69

contraect

Aeternity AE Token Contract (ERC20)
JavaScript
3
star
70

universe-two-haeckathon

Join our running Hæckathon now and win up to $15,000!
3
star
71

superhero-utils

Superhero Tip button widget for creators
JavaScript
3
star
72

tool-paperwallets

Python
3
star
73

aepp-base-remote-connection-backend

JavaScript
3
star
74

aepp-hyperchain

Hyperchains UI
Svelte
3
star
75

beer-aepp

Beer Aepp! 🎉
Vue
3
star
76

tf-sdk-testnet

Terraform EKS Setup
HCL
3
star
77

aeserialization

Serialization formats for the aeternity node
Erlang
3
star
78

aepp-calldata-js

Aeternity data serialization library
JavaScript
3
star
79

ga-multisig-contract

This contract can be used to convert a regular, plain-old account (POA) into a MultiSig account using the Generalized Account feature of æternity.
JavaScript
3
star
80

hyperchains-contract

Staking&election contract for aeternity hyperchains
JavaScript
2
star
81

ga-multisig-backend

JavaScript
2
star
82

gitops-tools

Aeternity tools managed with gitops
Smarty
2
star
83

aevarna

Stand alone compiler for Varna contract language
Erlang
2
star
84

key-translate

Live version available at https://aeternity.github.io/key-translate/
JavaScript
2
star
85

aepp-faucet

Send Online Top-up. Instant Wallet Recharge
Python
2
star
86

aepp-gomoku-js

JavaScript
2
star
87

launcher

Graphical launcher and interface for Aeternity nodes.
Erlang
2
star
88

aesophia_aci_encoder

Erlang
2
star
89

ebip39

Erlang implementation of BIP-0039 - generating mnemonics
Erlang
2
star
90

aepps-home-microsite

Microsite to showcase the current state of æpps development on aepps.com
SCSS
2
star
91

aepp-hybrid-voting

JavaScript
2
star
92

aepp-aeproject-shape-vue

Vue
2
star
93

tipping-oracle-service

Superhero tipping oracle service
JavaScript
2
star
94

epoch-rs

æternity testnet: solving scalability problems by making sense of state-channels
2
star
95

hd-wallet-js

HD Wallet for the æternity blockchain
JavaScript
2
star
96

state-channel-workshop

The repository for the State Channel Workshop at the Æternity Universe Two conference
JavaScript
2
star
97

embedded-jitsi

HTML
2
star
98

aerepl-web

An HTTP interface for aerepl
Elixir
2
star
99

tipping-community-backend

JavaScript
2
star
100

aepp-showcases

2
star