├── .gitignore ├── .tool-versions ├── LICENCE ├── README.md ├── config └── config.exs ├── lib ├── bitcoin.ex └── bitcoin │ ├── models │ └── peer.ex │ ├── node.ex │ ├── node │ ├── peers.ex │ └── peers │ │ ├── connection_pool.ex │ │ └── discovery.ex │ ├── protocol.ex │ └── protocol │ ├── message.ex │ ├── messages │ ├── addr.ex │ ├── alert.ex │ ├── block.ex │ ├── get_addr.ex │ ├── get_blocks.ex │ ├── get_data.ex │ ├── get_headers.ex │ ├── headers.ex │ ├── inv.ex │ ├── not_found.ex │ ├── ping.ex │ ├── pong.ex │ ├── reject.ex │ ├── tx.ex │ ├── verack.ex │ └── version.ex │ └── types │ ├── block_header.ex │ ├── integer.ex │ ├── integer_array.ex │ ├── inventory_vector.ex │ ├── network_address.ex │ ├── outpoint.ex │ ├── string.ex │ ├── string_array.ex │ ├── transaction_input.ex │ └── transaction_output.ex ├── mix.exs ├── mix.lock └── test ├── data └── blk_100000.dat ├── node └── peer_test.exs ├── protocol ├── message_test.exs ├── messages │ ├── addr_test.exs │ ├── alert_test.exs │ ├── block_test.exs │ ├── get_blocks_test.exs │ ├── get_data_test.exs │ ├── get_headers_test.exs │ ├── headers_test.exs │ ├── inv_test.exs │ ├── not_found_test.exs │ ├── ping_test.exs │ ├── pong_test.exs │ ├── reject_test.exs │ ├── tx_test.exs │ └── version_test.exs └── types │ ├── block_header_test.exs │ ├── integer_array_test.exs │ ├── integer_test.exs │ ├── inventory_vector_test.exs │ ├── network_address_test.exs │ ├── string_array_test.exs │ └── string_test.exs └── test_helper.exs /.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /deps 3 | /log 4 | erl_crash.dump 5 | *.ez 6 | -------------------------------------------------------------------------------- /.tool-versions: -------------------------------------------------------------------------------- 1 | elixir 1.4.2 2 | erlang 19.3 3 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/LICENCE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/README.md -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/config/config.exs -------------------------------------------------------------------------------- /lib/bitcoin.ex: -------------------------------------------------------------------------------- 1 | defmodule Bitcoin do 2 | end 3 | -------------------------------------------------------------------------------- /lib/bitcoin/models/peer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/models/peer.ex -------------------------------------------------------------------------------- /lib/bitcoin/node.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/node.ex -------------------------------------------------------------------------------- /lib/bitcoin/node/peers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/node/peers.ex -------------------------------------------------------------------------------- /lib/bitcoin/node/peers/connection_pool.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/node/peers/connection_pool.ex -------------------------------------------------------------------------------- /lib/bitcoin/node/peers/discovery.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/node/peers/discovery.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol.ex: -------------------------------------------------------------------------------- 1 | defmodule Bitcoin.Protocol do 2 | end -------------------------------------------------------------------------------- /lib/bitcoin/protocol/message.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/message.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/addr.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/addr.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/alert.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/alert.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/block.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/block.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/get_addr.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/get_addr.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/get_blocks.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/get_blocks.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/get_data.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/get_data.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/get_headers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/get_headers.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/headers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/headers.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/inv.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/inv.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/not_found.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/not_found.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/ping.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/ping.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/pong.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/pong.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/reject.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/reject.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/tx.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/tx.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/verack.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/verack.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/messages/version.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/messages/version.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/block_header.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/block_header.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/integer.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/integer.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/integer_array.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/integer_array.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/inventory_vector.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/inventory_vector.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/network_address.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/network_address.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/outpoint.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/outpoint.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/string.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/string.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/string_array.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/string_array.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/transaction_input.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/transaction_input.ex -------------------------------------------------------------------------------- /lib/bitcoin/protocol/types/transaction_output.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/lib/bitcoin/protocol/types/transaction_output.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/mix.lock -------------------------------------------------------------------------------- /test/data/blk_100000.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/data/blk_100000.dat -------------------------------------------------------------------------------- /test/node/peer_test.exs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/protocol/message_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/message_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/addr_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/addr_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/alert_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/alert_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/block_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/block_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/get_blocks_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/get_blocks_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/get_data_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/get_data_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/get_headers_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/get_headers_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/headers_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/headers_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/inv_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/inv_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/not_found_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/not_found_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/ping_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/ping_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/pong_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/pong_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/reject_test.exs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /test/protocol/messages/tx_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/tx_test.exs -------------------------------------------------------------------------------- /test/protocol/messages/version_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/messages/version_test.exs -------------------------------------------------------------------------------- /test/protocol/types/block_header_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/types/block_header_test.exs -------------------------------------------------------------------------------- /test/protocol/types/integer_array_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/types/integer_array_test.exs -------------------------------------------------------------------------------- /test/protocol/types/integer_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/types/integer_test.exs -------------------------------------------------------------------------------- /test/protocol/types/inventory_vector_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/types/inventory_vector_test.exs -------------------------------------------------------------------------------- /test/protocol/types/network_address_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/types/network_address_test.exs -------------------------------------------------------------------------------- /test/protocol/types/string_array_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/types/string_array_test.exs -------------------------------------------------------------------------------- /test/protocol/types/string_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaesharp/bitcoin-ex/HEAD/test/protocol/types/string_test.exs -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- 1 | ExUnit.start() 2 | --------------------------------------------------------------------------------