uranther
What do you all think about writing a blockchain in Elixir? Being a functional language and having OTP in our arsenal, it seems it would be easier to get a block chain up-and-running quickly. We even have some good starting points for the consensus algorithm and hash trees:
![]()
Blockchain resources
Elixir community effort
- exchain/exchain on GitHub
- robinmonjo/coincoin
Background
Videos
Topical
General
Bitcoin
Ethereum
- Ethereum Design Rationale
- Ethereum Virtual Machine and Execution Environment Overview
- Ethereum Platform Review Opportunities and Challenges for Private and Consortium Blockchains
Books
- Princeton Bitcoin Book
- Blockchain Revolution: How the Technology Behind Bitcoin Is Changing Money, Business, and the World by Don Tapscott et al.
- The Science of the Blockchain by Roger Wattenhofer
- Mastering Bitcoin: Unlocking Digital Cryptocurrencies by Andreas M. Antonopoulos
White Papers
Benchmarks
These projects are in active (rapid!) development and in a variety of languages.
- Ethereum
- Hyperledger
- Fabric (Go)
- Sawtooth (Python)
- Juno (Haskell) – Smart Contracts Running on a BFT Hardened Raft
- Stellar
Academic Papers
Specific implementations
- Bitcoin: A Peer-to-Peer Electronic Cash System
- Ethereum Yellow Paper – formal specification
Meta-analysis
- The Quest for Scalable Blockchain Fabric: Proof-of-Work vs. BFT Replication
- Hiding Transaction Amounts and Balances in Bitcoin (zero knowledge proofs)
- Misbehavior in Bitcoin: A Study of Double-Spending and Accountability (double-spending attack)
Distributed consensus
- Tangaroa: a Byzantine Fault Tolerant Raft
- Practical Byzantine Fault Tolerance (PBFT)
- Building Replicated Systems for Performance (“Adam”)
- All about Eve: Execute-Verify Replication for Multi-Core Servers (extended version)
- The Stellar Consensus Protocol: A Federated Model for Internet-level Consensus
- Raft Refloated: Do We Have Consensus?
- Non-determinism in Byzantine Fault-Tolerant Replication
- CheapBFT: Resource-efficient Byzantine Fault Tolerance
- Reaching Agreement in the Presence of Faults
Proofs of “X”
Various methods of using blockchain technologies to prove something in a way that is cryptographically verifiable.
FOR CRYPTOCURRENCY
OTHER PROOFS
- Proof of Elapsed Time (PoET)
- Proof of Existence (or Publication)
- Proof of Ownership
- Proof of Integrity
- Proof of Agreement
- Proof of Receipt
Blockchain components
Distributed consensus algorithms
A fundamental problem in distributed computing and multi-agent systems is to achieve overall system reliability in the presence of a number of faulty processes. This often requires processes to agree on some data value that is needed during computation. Examples of applications of consensus include whether to commit a transaction to a database, agreeing on the identity of a leader, state machine replication, and atomic broadcasts. (Wikipedia)
raftex- Raft consensusexpaxos- Paxos consensusrafute- Another implementation of Raftdike- Paxos implementation in Erlang
Merkle (hash) trees
A hash tree or Merkle tree is a tree in which every non-leaf node is labelled with the hash of the labels or values (in case of leaves) of its child nodes. Hash trees are useful because they allow efficient and secure verification of the contents of large data structures. Hash trees are a generalization of hash lists and hash chains. (Wikipedia)
Elixir
Erlang
merklet- Hash trees - Riak implementation
Cryptography
Elixir
elixir-rsa- Erlangpublic_keycryptography wrapperelixir-ecc- elliptic curve cryptographyelixir-mcrypt- NIF wrapper around libmcryptcryptex- library for encrypting/decrypting, signing/verifying data
Erlang
Keywords: state machine replication, distributed cryptographic ledger, transaction log
Trending in Wikis
Other Trending Topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #library
- #deployment
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #elixirconf
- #channels
- #exunit
- #discussion
- #code-sync
- #podcasts
- #javascript
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ai
- #ecto-query
- #elixirconf-us
- #blog-post
- #elixir-ls
- #phoenix_html
- #iex
- #graphql
- #genstage
- #websockets
- #supervisor
- #advent-of-code
- #distillery
- #processes
- #elixirconf-eu
- #api
- #forms
- #metaprogramming
- #hex










Showing Posts 87 to 78- Show Best Posts
- Show All (oldest first)
- Show All (newest first)
apoorv-2204
I think Archethic Blockchain is doing so.
Archethic Foundation (github.com)
Archethic - Public Blockchain by Uniris
lud
Hi,
I would like to know if some of you use Ethereumex and Mana on a daily basis ? Mana particularly seems not actively developed.
I need to publish transactions to the blockhain and listen for the emitted events. I wonder if I should use web3js instead or keep working with Elixir.
Thank you
arpunk
https://blog.aeternity.com/trustlessness-erlang-and-the-blockchain-revolution-an-interview-with-robert-virding-458c68664372
mkunikow
Facebook - libra
https://blog.softwaremill.com/comparing-ethereum-and-the-libra-blockchain-64bec7dd70c0
mkunikow
And many financial institutions will use blockchain for internal use:
kochetkov_av
IBM & Linux foundation Hyperledger project is developing rapidly and almost ready to provide enterprise-grade private and secure blockchain solutions.
Blockchain reputation is spoiled by huge amount of scams, ICOs and “we build digital revolution, give us your money” projects. But situation is getting better and enterprise interest is growing.
Typical use cases are supply chains, managing any kind of assets or records.
Hyperledger is an umbrella project and is opened for new solutions, which will stick to general project guidelines. So it is possible to start something there using Elixir.
Currently flagship project is Hyperledger Fabric, written on Go. It utilizes some side tools, like Apache Kafka. And supports smart-contracts (chaincodes) on Go, Java and Javascript. Not sure if Elixir is fit for chaincodes, but it can be good for SDK. SDK is used for communication between peers and client apps.
alexdovzhanyn
There’s also the project that my team and I have been working on, Elixium. It’s a PoW blockchain written entirely in Elixir. It allows developers to create decentralized applications that run on the chain using WASM and uses zkSNARKS to maintain privacy & fungibility.
Here are a few more links for anyone interested:
greenz1
Thanks for the heads up @Qqwy
Qqwy
Be aware that that project (while probably great!), is not maintained by the Ethereum Foundation: It’s not hosted under the ‘Ethereum’ organization on GitHub, but under the ‘Exthereum’ organization.
greenz1
https://github.com/exthereum/ethereumex
This is the link to the project