All Projects → aeternity → Elixir Node

aeternity / Elixir Node

Licence: isc
Elixir full node implementation of the aeternity specification

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Elixir Node

Aeternity
æternity: solving scalability problems by making sense of state-channels
Stars: ✭ 923 (+343.75%)
Mutual labels:  blockchain, scaling, crypto
Blockchain golang
Blockchain demo based on golang 基于golang编写的区块链公链demo
Stars: ✭ 80 (-61.54%)
Mutual labels:  blockchain, crypto
Mailchain
Using Mailchain, blockchain users can now send and receive rich-media HTML messages with attachments via a blockchain address.
Stars: ✭ 74 (-64.42%)
Mutual labels:  blockchain, crypto
Esteem Surfer
Ecency desktop formerly known as Esteem Surfer - reimagined desktop social wallet, contribute and get rewarded (for Windows, Mac, Linux)
Stars: ✭ 100 (-51.92%)
Mutual labels:  blockchain, crypto
Covenantsql
A decentralized, trusted, high performance, SQL database with blockchain features
Stars: ✭ 1,148 (+451.92%)
Mutual labels:  blockchain, crypto
Cava
ConsenSys core libraries for Java & Kotlin
Stars: ✭ 71 (-65.87%)
Mutual labels:  blockchain, crypto
Etherwalletkit
Ethereum Wallet Toolkit for iOS - You can implement an Ethereum wallet without a server and blockchain knowledge.
Stars: ✭ 96 (-53.85%)
Mutual labels:  blockchain, crypto
Eostracker
🗄EOS Tracker: Real time block explorer for EOS Blockchain
Stars: ✭ 166 (-20.19%)
Mutual labels:  blockchain, crypto
Peatiocryptoexchange
An open-source Crypto-Currency exchange. Peatio v3.0 Coming Soon !
Stars: ✭ 141 (-32.21%)
Mutual labels:  blockchain, crypto
Coco
The fastest crypto online
Stars: ✭ 103 (-50.48%)
Mutual labels:  blockchain, crypto
The Journal Of Blockchain
区块链自媒体、专注区块链技术学习和实践、IPFS/Filecoin、Bitcoin、Ethereum、EOS、Cosmos、区块链、白皮书、Coinmarketcap、Coindesk、Safe Network、Telegram、Docker、社会治理、经济激励
Stars: ✭ 63 (-69.71%)
Mutual labels:  blockchain, crypto
Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+7194.23%)
Mutual labels:  blockchain, crypto
Pocket Core
Official implementation of the Pocket Network Protocol
Stars: ✭ 50 (-75.96%)
Mutual labels:  blockchain, crypto
Use Dai
💸 A curated, community compiled list of everywhere you can use the decentralized Dai stablecoin
Stars: ✭ 74 (-64.42%)
Mutual labels:  blockchain, crypto
Crypto Supplies
Cryptocurrency circulating, maximum and total supplies
Stars: ✭ 26 (-87.5%)
Mutual labels:  blockchain, crypto
Dapp
Censorship resistant democracies.
Stars: ✭ 1,326 (+537.5%)
Mutual labels:  blockchain, crypto
Wallet Core
Cross-platform, cross-blockchain wallet library.
Stars: ✭ 657 (+215.87%)
Mutual labels:  blockchain, crypto
Maskbook
The portal to the new, open internet. ([I:b])
Stars: ✭ 691 (+232.21%)
Mutual labels:  blockchain, crypto
Ecency Mobile
Ecency Mobile - reimagined social blogging, contribute and get rewarded (for Android and iOS)
Stars: ✭ 103 (-50.48%)
Mutual labels:  blockchain, crypto
Blockatlas
Clean and lightweight cross-chain transaction API
Stars: ✭ 169 (-18.75%)
Mutual labels:  blockchain, crypto

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].