Skip to content
Elixir Client for the Ethereum Blockchain
Elixir
Branch: master
Clone or download
Latest commit 6c3bf50 Aug 14, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Enable credo again Aug 27, 2018
chains [WIP] Start to add support for chains Sep 9, 2017
config Initial commit Aug 4, 2017
lib Enable credo again Aug 27, 2018
test Enable credo again Aug 27, 2018
.credo.exs Enable credo again Aug 27, 2018
.formatter.exs Enforce formatting code again Aug 14, 2018
.gitignore Initial commit Aug 4, 2017
.gitmodules Update tests to reflect KECCAK (as opposed to finalized SHA3) hash fu… Sep 3, 2017
CHANGELOG.md Bump to 0.1.6 Nov 24, 2017
LICENSE.md Bump to 0.1.4 Sep 13, 2017
README.md Remove instructions specific to the libsecp256k1 package. The package… Aug 20, 2018
mix.exs
mix.lock Remove instructions specific to the libsecp256k1 package. The package… Aug 20, 2018

README.md

Exthereum Blockchain CircleCI

Elixir implementation of Ethereum's Blockchain. This includes functionality to build and verify a chain of Ethereum blocks that may be advertised from any peer. We complete the resultant state of the blocktree and form a canonical blockchain based on difficulty.

Exthereum's blocks are specified in a variety of sections throughout the yellow paper, but it's best to start looking under Section 4.4.

Installation

mix deps.get
mix compile

If available in Hex, the package can be installed by adding blockchain to your list of dependencies in mix.exs:

def deps do
  [{:blockchain, "~> 0.1.6"}]
end

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/blockchain.

Debugging

To debug a given run of the blockchain, you can set breakpoints on contract addresses by setting the BREAKPOINT environment variable and specifying a contract address to break on. E.g.

BREAKPOINT=bc1ffc1620da1468624a596cb841d35e6b2f1fb6 iex -S mix

...

00:04:18.739 [warn]  Debugger has been enabled. Set breakpoint #1 on contract address 0xbc1ffc1620da1468624a596cb841d35e6b2f1fb6.

...

-- Breakpoint #1 triggered with conditions contract address 0xbc1ffc1620da1468624a596cb841d35e6b2f1fb6 (start) --

gas: 277888 | pc: 0 | memory: 0 | words: 0 | # stack: 0

----> [ 0] push2
      [ 1] 0
      [ 2] 4
      [ 3] dup1
      [ 4] push2
      [ 5] 0
      [ 6] 14
      [ 7] push1
      [ 8] 0
      [ 9] codecopy

Enter a debug command or type `h` for help.

>>

Contributing

  1. Fork it!
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Author

Geoffrey Hayes (@hayesgm) Ayrat Badykov (@ayrat555) Mason Fischer (@masonforest)

License

Exthereum's Blockchain is released under the MIT License. See the LICENSE file for further details.

You can’t perform that action at this time.