diff --git a/Cargo.lock b/Cargo.lock index b9b9978a..cd34572a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,12 +4,18 @@ version = "0.1.0" dependencies = [ "bitcrypto 0.1.0", "chain 0.1.0", + "clap 2.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "keys 0.1.0", "p2p 0.1.0", "primitives 0.1.0", "script 0.1.0", ] +[[package]] +name = "ansi_term" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "arrayvec" version = "0.3.19" @@ -37,6 +43,11 @@ name = "bitflags" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "bitflags" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "byteorder" version = "0.5.3" @@ -57,6 +68,22 @@ dependencies = [ "serialization 0.1.0", ] +[[package]] +name = "clap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", + "strsim 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "term_size 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", + "vec_map 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "yaml-rust 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "eth-secp256k1" version = "0.5.6" @@ -287,6 +314,21 @@ name = "slab" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "strsim" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "term_size" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.16 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "time" version = "0.1.35" @@ -309,6 +351,21 @@ dependencies = [ "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "unicode-segmentation" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "unicode-width" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "vec_map" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" + [[package]] name = "void" version = "1.0.2" @@ -333,12 +390,20 @@ dependencies = [ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "yaml-rust" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" + [metadata] +"checksum ansi_term 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "23ac7c30002a5accbf7e8987d0632fa6de155b7c3d39d0067317a391e00a2ef6" "checksum arrayvec 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)" = "295abbcf8112693d74fa426186926b50d67105c88d4d0d94dd8222e51da9755a" "checksum base58 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5024ee8015f02155eee35c711107ddd9a9bf3cb689cf2a9089c97e79b6e1ae83" "checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3" +"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" "checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" "checksum cfg-if 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de1e760d7b6535af4241fca8bd8adf68e2e7edacc6b29f5d399050c5e48cf88c" +"checksum clap 2.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2887ae5b606c1fa314b9238e25a8be3fa673378415c32efc5749464f3365ee9d" "checksum eth-secp256k1 0.5.6 (git+https://github.com/ethcore/rust-secp256k1)" = "" "checksum futures 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "62af3ebbb8916ecf7ebcc4c130aacc33cc7f48d8b6e74fc9ed010bfa4f359794" "checksum gcc 0.3.35 (registry+https://github.com/rust-lang/crates.io-index)" = "91ecd03771effb0c968fd6950b37e89476a578aaf1c70297d8e92b6516ec3312" @@ -360,9 +425,15 @@ dependencies = [ "checksum scoped-tls 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f417c22df063e9450888a7561788e9bd46d3bb3c1466435b4eccb903807f147d" "checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac" "checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23" +"checksum strsim 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "50c069df92e4b01425a8bf3576d5d417943a6a7272fbabaf5bd80b1aaa76442e" +"checksum term_size 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3f7f5f3f71b0040cecc71af239414c23fd3c73570f5ff54cf50e03cef637f2a0" "checksum time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "3c7ec6d62a20df54e07ab3b78b9a3932972f4b7981de295563686849eb3989af" "checksum tokio-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "659cbae6c954dee37352853816c6a52180e47feb70be73bbfeec6d58c4da4a71" +"checksum unicode-segmentation 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b905d0fc2a1f0befd86b0e72e31d1787944efef9d38b9358a9e92a69757f7e3b" +"checksum unicode-width 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2d6722facc10989f63ee0e20a83cd4e1714a9ae11529403ac7e0afd069abc39e" +"checksum vec_map 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cac5efe5cb0fa14ec2f84f83c701c562ee63f6dcc680861b21d65c682adfb05f" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +"checksum yaml-rust 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ebfe12f475ad59be6178ebf004d51e682022496535994f8d23fd7ed31084598c" diff --git a/Cargo.toml b/Cargo.toml index 1c4ba307..7d6a283b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,20 @@ [package] name = "pbtc" version = "0.1.0" -authors = ["debris "] +license = "GPL-3.0" +authors = ["Ethcore "] +description = "Parity bitcoin client." [dependencies] +clap = { version = "2", features = ["yaml"] } + bitcrypto = { path = "crypto" } chain = { path = "chain" } keys = { path = "keys" } p2p = { path = "p2p" } primitives = { path = "primitives" } script = { path = "script" } + +[[bin]] +path = "pbtc/main.rs" +name = "pbtc" diff --git a/pbtc/cli.yml b/pbtc/cli.yml new file mode 100644 index 00000000..389150a2 --- /dev/null +++ b/pbtc/cli.yml @@ -0,0 +1,12 @@ +name: pbtc +version: "0.1.0" +author: Ethcore +about: Parity bitcoin client +args: + - connect: + short: c + long: connect + value_name: IP + help: Connect only to the specified node + takes_value: true + diff --git a/pbtc/main.rs b/pbtc/main.rs new file mode 100644 index 00000000..419775c3 --- /dev/null +++ b/pbtc/main.rs @@ -0,0 +1,19 @@ +//! Parity bitcoin client. + +#[macro_use] +extern crate clap; + +extern crate bitcrypto as crypto; +extern crate chain; +extern crate keys; +extern crate primitives; +extern crate script; + +fn main() { + let yaml = load_yaml!("cli.yml"); + let matches = clap::App::from_yaml(yaml).get_matches(); + + if let Some(ip) = matches.value_of("connect") { + println!("Connecting to ip: {}", ip); + } +} diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index 0c272ea3..00000000 --- a/src/lib.rs +++ /dev/null @@ -1,17 +0,0 @@ -//! Ethcore's bitcoin library. -//! -//! module(depends_on..) -//! -//! net(primitives, serialization) -//! script(primitives, serialization, chain, crypto) -//! chain(primitives, serialization, crypto) -//! keys(primitives, crypto) -//! crypto(primitives) -//! serialization(primitives) -//! primitives - -extern crate bitcrypto as crypto; -extern crate chain; -extern crate keys; -extern crate primitives; -extern crate script; diff --git a/tools/graph.dot b/tools/graph.dot index 06151de1..74ce79bb 100644 --- a/tools/graph.dot +++ b/tools/graph.dot @@ -2,133 +2,155 @@ digraph dependencies { N0[label="pbtc",shape=box]; N1[label="bitcrypto",shape=box]; N2[label="chain",shape=box]; - N3[label="keys",shape=box]; - N4[label="p2p",shape=box]; - N5[label="primitives",shape=box]; - N6[label="script",shape=box]; - N7[label="arrayvec",shape=box]; - N8[label="nodrop",shape=box]; - N9[label="odds",shape=box]; - N10[label="base58",shape=box]; - N11[label="rust-crypto",shape=box]; - N12[label="bitflags",shape=box]; - N13[label="byteorder",shape=box]; - N14[label="cfg-if",shape=box]; - N15[label="rustc-serialize",shape=box]; - N16[label="serialization",shape=box]; - N17[label="eth-secp256k1",shape=box]; - N18[label="gcc",shape=box]; - N19[label="libc",shape=box]; - N20[label="rand",shape=box]; - N21[label="futures",shape=box]; - N22[label="log",shape=box]; - N23[label="kernel32-sys",shape=box]; - N24[label="winapi",shape=box]; - N25[label="winapi-build",shape=box]; - N26[label="lazy_static",shape=box]; - N27[label="lazycell",shape=box]; - N28[label="mio",shape=box]; - N29[label="miow",shape=box]; - N30[label="net2",shape=box]; - N31[label="nix",shape=box]; - N32[label="slab",shape=box]; - N33[label="ws2_32-sys",shape=box]; - N34[label="net",shape=box]; - N35[label="rustc_version",shape=box]; - N36[label="semver",shape=box]; - N37[label="void",shape=box]; - N38[label="time",shape=box]; - N39[label="tokio-core",shape=box]; - N40[label="scoped-tls",shape=box]; + N3[label="clap",shape=box]; + N4[label="keys",shape=box]; + N5[label="p2p",shape=box]; + N6[label="primitives",shape=box]; + N7[label="script",shape=box]; + N8[label="ansi_term",shape=box]; + N9[label="arrayvec",shape=box]; + N10[label="nodrop",shape=box]; + N11[label="odds",shape=box]; + N12[label="base58",shape=box]; + N13[label="rust-crypto",shape=box]; + N14[label="bitflags v0.4.0",shape=box]; + N15[label="bitflags v0.7.0",shape=box]; + N16[label="byteorder",shape=box]; + N17[label="cfg-if",shape=box]; + N18[label="rustc-serialize",shape=box]; + N19[label="serialization",shape=box]; + N20[label="libc",shape=box]; + N21[label="strsim",shape=box]; + N22[label="term_size",shape=box]; + N23[label="unicode-segmentation",shape=box]; + N24[label="unicode-width",shape=box]; + N25[label="vec_map",shape=box]; + N26[label="yaml-rust",shape=box]; + N27[label="eth-secp256k1",shape=box]; + N28[label="gcc",shape=box]; + N29[label="rand",shape=box]; + N30[label="futures",shape=box]; + N31[label="log",shape=box]; + N32[label="kernel32-sys",shape=box]; + N33[label="winapi",shape=box]; + N34[label="winapi-build",shape=box]; + N35[label="lazy_static",shape=box]; + N36[label="lazycell",shape=box]; + N37[label="mio",shape=box]; + N38[label="miow",shape=box]; + N39[label="net2",shape=box]; + N40[label="nix",shape=box]; + N41[label="slab",shape=box]; + N42[label="ws2_32-sys",shape=box]; + N43[label="net",shape=box]; + N44[label="rustc_version",shape=box]; + N45[label="semver",shape=box]; + N46[label="void",shape=box]; + N47[label="time",shape=box]; + N48[label="tokio-core",shape=box]; + N49[label="scoped-tls",shape=box]; N0 -> N1[label="",style=dashed]; N0 -> N2[label="",style=dashed]; N0 -> N3[label="",style=dashed]; N0 -> N4[label="",style=dashed]; N0 -> N5[label="",style=dashed]; N0 -> N6[label="",style=dashed]; - N1 -> N5[label="",style=dashed]; - N1 -> N11[label="",style=dashed]; + N0 -> N7[label="",style=dashed]; + N1 -> N6[label="",style=dashed]; + N1 -> N13[label="",style=dashed]; N2 -> N1[label="",style=dashed]; - N2 -> N5[label="",style=dashed]; - N2 -> N15[label="",style=dashed]; - N2 -> N16[label="",style=dashed]; - N3 -> N1[label="",style=dashed]; - N3 -> N5[label="",style=dashed]; - N3 -> N10[label="",style=dashed]; + N2 -> N6[label="",style=dashed]; + N2 -> N18[label="",style=dashed]; + N2 -> N19[label="",style=dashed]; + N3 -> N8[label="",style=dashed]; N3 -> N15[label="",style=dashed]; - N3 -> N17[label="",style=dashed]; N3 -> N20[label="",style=dashed]; + N3 -> N21[label="",style=dashed]; + N3 -> N22[label="",style=dashed]; + N3 -> N23[label="",style=dashed]; + N3 -> N24[label="",style=dashed]; + N3 -> N25[label="",style=dashed]; N3 -> N26[label="",style=dashed]; N4 -> N1[label="",style=dashed]; - N4 -> N5[label="",style=dashed]; - N4 -> N16[label="",style=dashed]; - N4 -> N20[label="",style=dashed]; - N4 -> N21[label="",style=dashed]; - N4 -> N34[label="",style=dashed]; - N4 -> N38[label="",style=dashed]; - N4 -> N39[label="",style=dashed]; - N5 -> N15[label="",style=dashed]; - N6 -> N1[label="",style=dashed]; - N6 -> N2[label="",style=dashed]; - N6 -> N3[label="",style=dashed]; - N6 -> N5[label="",style=dashed]; - N6 -> N16[label="",style=dashed]; - N7 -> N8[label=""]; - N7 -> N9[label=""]; - N8 -> N9[label=""]; - N11 -> N15[label="",style=dashed]; - N11 -> N18[label="",style=dashed]; - N11 -> N19[label="",style=dashed]; - N11 -> N20[label="",style=dashed]; - N11 -> N38[label="",style=dashed]; - N16 -> N5[label="",style=dashed]; - N16 -> N13[label="",style=dashed]; - N17 -> N7[label="",style=dashed]; - N17 -> N15[label="",style=dashed]; - N17 -> N18[label="",style=dashed]; - N17 -> N19[label="",style=dashed]; - N17 -> N20[label="",style=dashed]; - N20 -> N19[label="",style=dashed]; - N21 -> N22[label="",style=dashed]; - N23 -> N24[label="",style=dashed]; - N23 -> N25[label=""]; - N28 -> N19[label="",style=dashed]; - N28 -> N22[label="",style=dashed]; - N28 -> N23[label="",style=dashed]; - N28 -> N24[label="",style=dashed]; - N28 -> N27[label=""]; - N28 -> N29[label=""]; - N28 -> N30[label=""]; - N28 -> N31[label=""]; - N28 -> N32[label="",style=dashed]; - N29 -> N23[label=""]; - N29 -> N24[label=""]; - N29 -> N30[label=""]; - N29 -> N33[label=""]; - N30 -> N14[label=""]; - N30 -> N19[label=""]; - N30 -> N23[label=""]; - N30 -> N24[label=""]; - N30 -> N33[label=""]; - N31 -> N12[label=""]; - N31 -> N14[label=""]; - N31 -> N19[label=""]; - N31 -> N35[label=""]; - N31 -> N36[label=""]; - N31 -> N37[label=""]; - N33 -> N24[label=""]; - N33 -> N25[label=""]; - N34 -> N1[label="",style=dashed]; - N34 -> N5[label="",style=dashed]; - N34 -> N13[label="",style=dashed]; - N34 -> N16[label="",style=dashed]; - N35 -> N36[label=""]; - N38 -> N19[label="",style=dashed]; - N38 -> N23[label="",style=dashed]; - N38 -> N24[label="",style=dashed]; - N39 -> N21[label="",style=dashed]; - N39 -> N22[label="",style=dashed]; - N39 -> N28[label="",style=dashed]; - N39 -> N32[label="",style=dashed]; - N39 -> N40[label="",style=dashed]; + N4 -> N6[label="",style=dashed]; + N4 -> N12[label="",style=dashed]; + N4 -> N18[label="",style=dashed]; + N4 -> N27[label="",style=dashed]; + N4 -> N29[label="",style=dashed]; + N4 -> N35[label="",style=dashed]; + N5 -> N1[label="",style=dashed]; + N5 -> N6[label="",style=dashed]; + N5 -> N19[label="",style=dashed]; + N5 -> N29[label="",style=dashed]; + N5 -> N30[label="",style=dashed]; + N5 -> N43[label="",style=dashed]; + N5 -> N47[label="",style=dashed]; + N5 -> N48[label="",style=dashed]; + N6 -> N18[label="",style=dashed]; + N7 -> N1[label="",style=dashed]; + N7 -> N2[label="",style=dashed]; + N7 -> N4[label="",style=dashed]; + N7 -> N6[label="",style=dashed]; + N7 -> N19[label="",style=dashed]; + N9 -> N10[label=""]; + N9 -> N11[label=""]; + N10 -> N11[label=""]; + N13 -> N18[label="",style=dashed]; + N13 -> N20[label="",style=dashed]; + N13 -> N28[label="",style=dashed]; + N13 -> N29[label="",style=dashed]; + N13 -> N47[label="",style=dashed]; + N19 -> N6[label="",style=dashed]; + N19 -> N16[label="",style=dashed]; + N22 -> N20[label="",style=dashed]; + N22 -> N32[label="",style=dashed]; + N22 -> N33[label="",style=dashed]; + N27 -> N9[label="",style=dashed]; + N27 -> N18[label="",style=dashed]; + N27 -> N20[label="",style=dashed]; + N27 -> N28[label="",style=dashed]; + N27 -> N29[label="",style=dashed]; + N29 -> N20[label="",style=dashed]; + N30 -> N31[label="",style=dashed]; + N32 -> N33[label="",style=dashed]; + N32 -> N34[label="",style=dashed]; + N37 -> N20[label="",style=dashed]; + N37 -> N31[label="",style=dashed]; + N37 -> N32[label="",style=dashed]; + N37 -> N33[label="",style=dashed]; + N37 -> N36[label=""]; + N37 -> N38[label=""]; + N37 -> N39[label=""]; + N37 -> N40[label=""]; + N37 -> N41[label="",style=dashed]; + N38 -> N32[label=""]; + N38 -> N33[label=""]; + N38 -> N39[label=""]; + N38 -> N42[label=""]; + N39 -> N17[label=""]; + N39 -> N20[label=""]; + N39 -> N32[label=""]; + N39 -> N33[label=""]; + N39 -> N42[label=""]; + N40 -> N14[label=""]; + N40 -> N17[label=""]; + N40 -> N20[label=""]; + N40 -> N44[label=""]; + N40 -> N45[label=""]; + N40 -> N46[label=""]; + N42 -> N33[label=""]; + N42 -> N34[label=""]; + N43 -> N1[label="",style=dashed]; + N43 -> N6[label="",style=dashed]; + N43 -> N16[label="",style=dashed]; + N43 -> N19[label="",style=dashed]; + N44 -> N45[label=""]; + N47 -> N20[label="",style=dashed]; + N47 -> N32[label="",style=dashed]; + N47 -> N33[label="",style=dashed]; + N48 -> N30[label="",style=dashed]; + N48 -> N31[label="",style=dashed]; + N48 -> N37[label="",style=dashed]; + N48 -> N41[label="",style=dashed]; + N48 -> N49[label="",style=dashed]; } diff --git a/tools/graph.png b/tools/graph.png index 089d6b5b..e617f197 100644 Binary files a/tools/graph.png and b/tools/graph.png differ