├── .github └── workflows │ ├── generated-pr.yml │ └── stale.yml ├── .gitignore ├── LICENSE ├── PORTS ├── README.md ├── TODO.md ├── content-dht-provide-find ├── Makefile ├── dht-interop.go └── js-dht-test │ ├── index.js │ └── package.json ├── pubsub ├── Makefile ├── js │ ├── index.js │ ├── node_modules │ │ └── .bin │ │ │ ├── peer-id │ │ │ ├── pem-jwk │ │ │ ├── rsa-unpack │ │ │ ├── semver │ │ │ ├── sha.js │ │ │ └── uuid │ └── package.json ├── pubsub-interop.go ├── rust │ ├── .gitignore │ ├── Cargo.lock │ ├── Cargo.toml │ ├── Makefile.not_used │ └── src │ │ ├── main.rs │ │ ├── test-rsa-private-key.pk8 │ │ └── test-rsa-public-key.der └── test │ ├── terminator │ └── config │ └── test.sh └── util ├── Makefile ├── private-key-gen ├── private-key-gen.go ├── private_key.bin.bootstrapper.Wa └── private_key.bin.peer.Sk /.github/workflows/generated-pr.yml: -------------------------------------------------------------------------------- 1 | name: Close Generated PRs 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * *' 6 | workflow_dispatch: 7 | 8 | permissions: 9 | issues: write 10 | pull-requests: write 11 | 12 | jobs: 13 | stale: 14 | uses: ipdxco/unified-github-workflows/.github/workflows/reusable-generated-pr.yml@v1 15 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Close Stale Issues 2 | 3 | on: 4 | schedule: 5 | - cron: '0 0 * * *' 6 | workflow_dispatch: 7 | 8 | permissions: 9 | issues: write 10 | pull-requests: write 11 | 12 | jobs: 13 | stale: 14 | uses: ipdxco/unified-github-workflows/.github/workflows/reusable-stale-issue.yml@v1 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | dht-interop 2 | pubsub-interop 3 | content-dht-provide-find/js-dht-test/node_modules/ 4 | util/private-key-gen 5 | pubsub/js/node_modules 6 | ibus 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Mike Goelzer 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /PORTS: -------------------------------------------------------------------------------- 1 | |--------------|--------------| 2 | |Program | Listens On | 3 | |--------------+--------------| 4 | |bootstrapper | :5555 | 5 | |--------------|--------------| 6 | |go-peer | :6000 | 7 | |js-peer | :6001 | 8 | |rust-peer | :6002 | 9 | |--------------+--------------+ 10 | 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # libp2p Demos 2 | 3 | ## Demo 1: DHT for Connecting Peers & Sharing Content (Go and JS nodes) 4 | 5 | **Directory**: `content-dht-provide-find` 6 | 7 | **What it demonstrates:** A new DHT is created by the Go program `dht-interop`. In a separate terminal or machine, a Node.js program connects to this DHT. One connected, each verifies that it can find the other's content via the DHT. 8 | 9 | **First terminal:** 10 | ``` 11 | cd content-dht-provide-find 12 | make 13 | ./dht-interop -b ../util/private_key.bin.bootstrapper.Wa 14 | ``` 15 | 16 | `-b` means bootstrap mode. In this example, the go program is always the bootstrap node, so `-b` is always required. (***TODO***: eliminate this superfluous option) 17 | 18 | Note that the node ID of `dht-interop` is always `Qm...6aJ9oRuEzWa` because it is being read in from `../util/private_key.bin.bootstrapper.Wa` (a private key marshalled to X.509 generated by the program `util/private-key-gen`). This is to keep the peer id of the bootstrap server stable across invocations. 19 | 20 | **Second terminal:** run the command printed out by dht-interop, replacing 127.0.0.1 with the IP of the server where dht-interop is listening. Example: 21 | 22 | Running the Node.js program: 23 | ``` 24 | cd content-dht-provide-find/js-dht-test 25 | npm install # first time only 26 | node js-dht-test/index.js /ip4/127.0.0.1/tcp/5555/ipfs/QmehVYruznbyDZuHBV4vEHESpDevMoAovET6aJ9oRuEzWa 27 | ``` 28 | 29 | 30 | 31 | ## Demo 2: PubSub 32 | 33 | **Directory**: `pubsub` 34 | 35 | **What it demonstrates**: Two Go peers, one JS peer, and one Rust peer are all created and run a chat server using a shared PubSub topic. Typing text in any peer sends it to all the other peers. 36 | 37 | **Quick test**: `cd pubsub` and then run `./test/test.sh`. Requires Terminator (eg, `sudo apt-get install terminator`). The rest of this section describes how to test manually. 38 | 39 | (**TODO**: maybe eliminate centralized bootstrapper; any peer could then bootstrap from any other peer and peers could start in any order; downside is the code will be more complex in all peers) 40 | 41 | **First terminal**: Create the bootstrapper node 42 | 43 | ``` 44 | cd pubsub 45 | ./pubsub-interop ../util/private_key.bin.bootstrapper.Wa --bootstrapper 46 | ``` 47 | 48 | The bootstrapper creates a new libp2p node, subscribes to the shared topic string, spawns a go routine to emit any publishes to that topic, and then waits forever. 49 | 50 | (Note that the node ID of `pubsub-interop` is going to be `Qm...6aJ9oRuEzWa`. Node IDs in libp2p are just public keys, and the public key `Qm...6aJ9oRuEzWa` is derived from the private key file `../util/private_key.bin.bootstrapper.Wa`. That file is just an X.509 keypair generated by the included program `util/private-key-gen`). We use fixed public/private keypairs for each node in this example to keep things simple.) 51 | 52 | **Second terminal**: Create a go peer to connect to bootstrapper and publish on the topic 53 | 54 | ``` 55 | cd pubsub 56 | ./pubsub-interop ../util/private_key.bin.peer.Sk 57 | ``` 58 | 59 | This peer, which is not in bootstrapper mode, creates a node, subscribes to the shared topic string, spawns the same go routine, and then loops forever requesting user input and publishing each line to the topic. 60 | 61 | **Third terminal**: Create a JS peer to connect to bootstrap and publish on topic 62 | 63 | ``` 64 | cd pubsub/js 65 | npm install # first time only 66 | node index.js /ip4/127.0.0.1/tcp/5555/ipfs/QmehVYruznbyDZuHBV4vEHESpDevMoAovET6aJ9oRuEzWa 67 | ``` 68 | 69 | This JS peer will accept lines of text typed on stdin, and publish them on the PubSub topic. 70 | 71 | (Note that the JS peer generates a new identity (public/private keypair) each time, and prints its public key to stdout. This is a deficiency in the demo; to be consistent with the Go code it should accept a private key on the CLI.) 72 | 73 | **Fourth terminal**: Creates a Rust peer to connect to the bootstrap node and then subscribe and publish on the topic: 74 | 75 | ``` 76 | cd pubsub/rust 77 | cargo run 78 | ``` 79 | 80 | The Rust peer starts up, listens on port 6002, and then dials the boostrap peer. (TODO: rust-libp2p#471) It is now subscribed to the same topic as the other peers. 81 | 82 | If you return to the second, third or fourth terminals and type a message, the bootstrapper and the other 2 peers will all print your message. 83 | 84 | **Conclusion** 85 | 86 | You now have a chat app on a private libp2p network where each node can exchange messages using PubSub. 87 | 88 | ## Debugging Notes 89 | 90 | **JS** To see debug messages from the Node.js program, use the `DEBUG` environment variable: 91 | ``` 92 | DEBUG="libp2p:floodsub*,libp2p:switch*,mss:*" node index.js [args...] 93 | ``` 94 | 95 | **Go** To see debug messages in Go programs, do this at runtime: 96 | ``` 97 | IPFS_LOGGING=debug ./pubsub-interop [args...] 98 | ``` 99 | 100 | (**TODO**: describe custom instrumenting the local go code for complex debugging) 101 | 102 | If you instrument your go code with custom `fmt.Println`'s, then revert back like this: 103 | ``` 104 | cd $GOPATH 105 | go get -u ./... 106 | ``` 107 | 108 | Other useful commands: 109 | ``` 110 | go get -u github.com/libp2p/go-libp2p-kad-dht # fetch just Kad DHT repo 111 | ``` 112 | 113 | 114 | _Acknowledgements: @jhiesey for DHT (content & peer routing) JS+Go interop, @stebalien for PubSub_ 115 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | ## TODO 2 | 3 | - Add listener support to JS 4 | - Figure out why JS sometimes do not receive from Go program, even through Rust and bootstrapper do 5 | - Break dht-interop.go into a `bootstrapper` program and a client program 6 | - Beautify the demo in 4x4 terminator mode (shorter lines, emojis, etc) 7 | - Record demo vids since web3 doesn't allow live kybd demos (can't bring own machine) 8 | -------------------------------------------------------------------------------- /content-dht-provide-find/Makefile: -------------------------------------------------------------------------------- 1 | SRC = dht-interop.go 2 | BIN = $(SRC:.go=) 3 | DHT_SERVER = libp2p-bootstrap.goelzer.io 4 | 5 | all: $(SRC) 6 | go build -o $(BIN) $(SRC) 7 | 8 | install: 9 | -ssh $(DHT_SERVER) killall -9 dht-interop 10 | scp $(SRC:.go=) $(DHT_SERVER):~/ 11 | ssh $(DHT_SERVER) ./$(BIN) 12 | -------------------------------------------------------------------------------- /content-dht-provide-find/dht-interop.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "context" 5 | "fmt" 6 | "io/ioutil" 7 | "os" 8 | "time" 9 | 10 | "github.com/ipfs/go-cid" 11 | "github.com/libp2p/go-libp2p" 12 | h "github.com/libp2p/go-libp2p-host" 13 | "github.com/libp2p/go-libp2p-kad-dht" 14 | "github.com/libp2p/go-libp2p-kad-dht/opts" 15 | "github.com/libp2p/go-libp2p-net" 16 | 17 | "github.com/libp2p/go-libp2p-crypto" 18 | ) 19 | 20 | var ho h.Host 21 | var dhtPtr *dht.IpfsDHT 22 | 23 | func handleConn(conn net.Conn) { 24 | ctx := context.Background() 25 | 26 | d := *dhtPtr 27 | 28 | provideCid, err := cid.Decode("zb2rhXqLbdjpXnJG99QsjM6Nc6xaDKgEr2FfugDJynE7H2NR6") 29 | if err != nil { 30 | panic(err) 31 | } 32 | findCid, err := cid.Decode("QmTp9VkYvnHyrqKQuFPiuZkiX9gPcqj6x5LJ1rmWuSySnL") 33 | if err != nil { 34 | panic(err) 35 | } 36 | 37 | time.Sleep(5 * time.Second) 38 | 39 | // First, announce ourselves as participating in this topic 40 | fmt.Println("announcing ourselves...") 41 | tctx, _ := context.WithTimeout(ctx, time.Second*10) 42 | if err := d.Provide(tctx, provideCid, true); err != nil { 43 | panic(err) 44 | } 45 | 46 | fmt.Printf("Local node %s is providing %s\n", ho.ID().Pretty(), provideCid) 47 | 48 | // Now, look for others who have announced 49 | fmt.Println("searching for other peers...") 50 | tctx, _ = context.WithTimeout(ctx, time.Second*10) 51 | providers, err := d.FindProviders(tctx, findCid) 52 | if err != nil { 53 | panic(err) 54 | } 55 | 56 | if len(providers) != 0 { 57 | provider := providers[0] 58 | fmt.Printf("Remote node %s is providing %s\n", provider.ID.Pretty(), findCid) 59 | time.Sleep(5 * time.Second) 60 | os.Exit(0) 61 | } else { 62 | fmt.Printf("no remote providers!\n") 63 | } 64 | } 65 | 66 | func parseArgs() (bool, string) { 67 | usage := fmt.Sprintf("Usage: %s [-b] [PRIVATE_KEY]\n\n-b is bootstrap mode (creates DHT)\nPRIVATE_KEY is the path to a private key like '../util/private_key.bin'\n", os.Args[0]) 68 | var bBootstrap bool = false 69 | var privKeyFilePath string 70 | var args []string = os.Args[1:] 71 | if (len(args) == 0) || (len(args) > 2) { 72 | fmt.Printf("Error: wrong number of arguments\n\n%s", usage) 73 | os.Exit(1) 74 | } 75 | if args[0] == "-b" { 76 | bBootstrap = true 77 | args = args[1:] 78 | } 79 | privKeyFilePath = args[0] 80 | return bBootstrap, privKeyFilePath 81 | } 82 | 83 | func main() { 84 | ctx := context.Background() 85 | 86 | bBootstrap, privKeyFilePath := parseArgs() 87 | if !bBootstrap { 88 | fmt.Printf("Error: bootstrap mode required in this example") 89 | os.Exit(1) 90 | } 91 | 92 | // 93 | // Read the private key 94 | // 95 | var privBytes []byte 96 | privBytes, err := ioutil.ReadFile(privKeyFilePath) 97 | if err != nil { 98 | fmt.Println("ioutil.ReadFile: failed: %v", err) 99 | panic(err) 100 | } 101 | 102 | var priv crypto.PrivKey 103 | priv, err = crypto.UnmarshalPrivateKey(privBytes) 104 | if err != nil { 105 | fmt.Println("crypto.UnmarshalPrivateKey: failed: %v", err) 106 | panic(err) 107 | } 108 | 109 | // 110 | // Set up a libp2p host. 111 | // 112 | host, err := libp2p.New(ctx, 113 | libp2p.ListenAddrStrings("/ip4/0.0.0.0/tcp/9876"), 114 | libp2p.Identity(priv), 115 | ) 116 | if err != nil { 117 | fmt.Println("libp2p.New: failed: %v", err) 118 | panic(err) 119 | } 120 | 121 | host.Network().SetConnHandler(handleConn) 122 | 123 | ho = host 124 | 125 | fmt.Printf("To connect, run:\n") 126 | fmt.Printf("node js-dht-test/index.js %s/ipfs/%s\n", host.Addrs()[0], host.ID().Pretty()) 127 | 128 | // 129 | // Construct a DHT for discovery. 130 | // 131 | d, err := dht.New(ctx, host, dhtopts.Client(false)) 132 | if err != nil { 133 | panic(err) 134 | } 135 | 136 | dhtPtr = d 137 | 138 | select {} 139 | } 140 | -------------------------------------------------------------------------------- /content-dht-provide-find/js-dht-test/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const libp2p = require('libp2p') 4 | const TCP = require('libp2p-tcp') 5 | const Mplex = require('libp2p-mplex') 6 | const SECIO = require('libp2p-secio') 7 | const PeerInfo = require('peer-info') 8 | const CID = require('cids') 9 | const KadDHT = require('libp2p-kad-dht') 10 | const defaultsDeep = require('@nodeutils/defaults-deep') 11 | const waterfall = require('async/waterfall') 12 | const parallel = require('async/parallel') 13 | 14 | class MyBundle extends libp2p { 15 | constructor (_options) { 16 | const defaults = { 17 | modules: { 18 | transport: [ TCP ], 19 | streamMuxer: [ Mplex ], 20 | connEncryption: [ SECIO ], 21 | // we add the DHT module that will enable Peer and Content Routing 22 | dht: KadDHT 23 | }, 24 | config: { 25 | dht: { 26 | kBucketSize: 20 27 | }, 28 | EXPERIMENTAL: { 29 | dht: true 30 | } 31 | } 32 | } 33 | 34 | super(defaultsDeep(_options, defaults)) 35 | } 36 | } 37 | 38 | function createNode (callback) { 39 | let node 40 | 41 | waterfall([ 42 | (cb) => PeerInfo.create(cb), 43 | (peerInfo, cb) => { 44 | peerInfo.multiaddrs.add('/ip4/0.0.0.0/tcp/0') 45 | node = new MyBundle({ 46 | peerInfo 47 | }) 48 | node.start(cb) 49 | } 50 | ], (err) => callback(err, node)) 51 | } 52 | 53 | parallel([ 54 | (cb) => createNode(cb), 55 | ], (err, nodes) => { 56 | if (err) { throw err } 57 | 58 | const node1 = nodes[0] 59 | 60 | const bootstrapAddr = process.argv[2] 61 | console.log('Connecting to:', bootstrapAddr) 62 | 63 | parallel([ 64 | (cb) => node1.dial(bootstrapAddr, cb), 65 | // Set up of the cons might take time 66 | (cb) => setTimeout(cb, 300) 67 | ], (err) => { 68 | if (err) { throw err } 69 | 70 | const provideCid = new CID('QmTp9VkYvnHyrqKQuFPiuZkiX9gPcqj6x5LJ1rmWuSySnL') 71 | const findCid = new CID('zb2rhXqLbdjpXnJG99QsjM6Nc6xaDKgEr2FfugDJynE7H2NR6') 72 | 73 | node1.contentRouting.provide(provideCid, (err) => { 74 | if (err) { throw err } 75 | 76 | console.log('Local node %s is providing %s', node1.peerInfo.id.toB58String(), provideCid.toBaseEncodedString()) 77 | 78 | setTimeout(() => { 79 | node1.contentRouting.findProviders(findCid, 10000, (err, providers) => { 80 | if (err) { throw err } 81 | 82 | if (providers.length !== 0) { 83 | const provider = providers[0] 84 | // console.log(provider) 85 | console.log('Remote node %s is providing %s', provider.id.toB58String(), findCid.toBaseEncodedString()) 86 | setTimeout(() => { 87 | process.exit(0) 88 | }, 5000) 89 | } else { 90 | console.log('No remote providers found!') 91 | } 92 | }) 93 | }, 5000) 94 | }) 95 | }) 96 | }) 97 | -------------------------------------------------------------------------------- /content-dht-provide-find/js-dht-test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-dht-test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@nodeutils/defaults-deep": "^1.1.0", 13 | "async": "^2.6.1", 14 | "cids": "^0.5.3", 15 | "libp2p": "^0.23.1", 16 | "libp2p-kad-dht": "^0.10.2", 17 | "libp2p-mplex": "^0.8.0", 18 | "libp2p-secio": "^0.10.0", 19 | "libp2p-tcp": "^0.12.1", 20 | "peer-info": "^0.14.1" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /pubsub/Makefile: -------------------------------------------------------------------------------- 1 | SRC = pubsub-interop.go 2 | BIN = $(SRC:.go=) 3 | DHT_SERVER = libp2p-bootstrap.goelzer.io 4 | 5 | all: $(SRC) 6 | go build -o $(BIN) $(SRC) 7 | 8 | install: 9 | -ssh $(DHT_SERVER) killall -9 dht-interop 10 | scp $(SRC:.go=) $(DHT_SERVER):~/ 11 | ssh $(DHT_SERVER) ./$(BIN) 12 | -------------------------------------------------------------------------------- /pubsub/js/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const libp2p = require('libp2p') 4 | const TCP = require('libp2p-tcp') 5 | const Mplex = require('libp2p-mplex') 6 | const SECIO = require('libp2p-secio') 7 | const PeerInfo = require('peer-info') 8 | const FloodSub = require('libp2p-floodsub') 9 | const CID = require('cids') 10 | const KadDHT = require('libp2p-kad-dht') 11 | const defaultsDeep = require('@nodeutils/defaults-deep') 12 | const waterfall = require('async/waterfall') 13 | const parallel = require('async/parallel') 14 | const readline = require('readline'); 15 | 16 | // h("libp2p-chat-demo") = "RDEpsjSPrAZF9JCK5REt3tao" which we use here 17 | // (this is a temporary hack for compat with Rust; see libp2p/rust-libp2p #473) 18 | const topicName = "RDEpsjSPrAZF9JCK5REt3tao" 19 | 20 | class MyBundle extends libp2p { 21 | constructor(_options) { 22 | const defaults = { 23 | modules: { 24 | transport: [TCP], 25 | streamMuxer: [Mplex], 26 | connEncryption: [SECIO], 27 | }, 28 | } 29 | 30 | super(defaultsDeep(_options, defaults)) 31 | } 32 | } 33 | 34 | function createNode(callback) { 35 | let node 36 | 37 | waterfall([ 38 | (cb) => PeerInfo.create(cb), 39 | (peerInfo, cb) => { 40 | peerInfo.multiaddrs.add('/ip4/0.0.0.0/tcp/0') //TODO: 0 -> 6001 ? 41 | node = new MyBundle({ 42 | peerInfo 43 | }) 44 | node.start(cb) 45 | } 46 | ], (err) => callback(err, node)) 47 | } 48 | 49 | let fsub; 50 | let node; 51 | const bootstrapAddr = process.argv[2]; 52 | 53 | waterfall([ 54 | (cb) => createNode(cb), 55 | (node_, cb) => { 56 | node = node_ 57 | console.log("My ID: " + node.peerInfo.id._idB58String) 58 | fsub = new FloodSub(node) 59 | fsub.start(cb) 60 | }, 61 | (cb) => { 62 | fsub.on(topicName, (data) => { 63 | const peerIdStr = data.from 64 | const peerIdTruncdStr = peerIdStr.substr(0,2) + "*" + peerIdStr.substr(peerIdStr.length-6,6) 65 | const messageStr = data.data 66 | console.log(": " + messageStr) 67 | }) 68 | fsub.subscribe(topicName) 69 | 70 | node.dial(bootstrapAddr, cb) 71 | }, 72 | ], (err) => { 73 | if (err) { 74 | console.log('Error:', err) 75 | throw err 76 | } 77 | 78 | console.log("Connected to: ", bootstrapAddr) 79 | 80 | var rl = readline.createInterface(process.stdin, process.stdout); 81 | rl.setPrompt(''); 82 | rl.prompt(); 83 | rl.on('line', function(line) { 84 | fsub.publish(topicName, line) 85 | rl.prompt(); 86 | }).on('close',function(){ 87 | process.exit(0); 88 | }) 89 | 90 | }) -------------------------------------------------------------------------------- /pubsub/js/node_modules/.bin/peer-id: -------------------------------------------------------------------------------- 1 | ../peer-id/src/bin.js -------------------------------------------------------------------------------- /pubsub/js/node_modules/.bin/pem-jwk: -------------------------------------------------------------------------------- 1 | ../pem-jwk/bin/pem-jwk.js -------------------------------------------------------------------------------- /pubsub/js/node_modules/.bin/rsa-unpack: -------------------------------------------------------------------------------- 1 | ../rsa-unpack/bin/cmd.js -------------------------------------------------------------------------------- /pubsub/js/node_modules/.bin/semver: -------------------------------------------------------------------------------- 1 | ../semver/bin/semver -------------------------------------------------------------------------------- /pubsub/js/node_modules/.bin/sha.js: -------------------------------------------------------------------------------- 1 | ../sha.js/bin.js -------------------------------------------------------------------------------- /pubsub/js/node_modules/.bin/uuid: -------------------------------------------------------------------------------- 1 | ../uuid/bin/uuid -------------------------------------------------------------------------------- /pubsub/js/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js-dht-test", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@nodeutils/defaults-deep": "^1.1.0", 13 | "async": "^2.6.1", 14 | "cids": "^0.5.3", 15 | "libp2p": "^0.23.1", 16 | "libp2p-kad-dht": "^0.10.2", 17 | "libp2p-mplex": "^0.8.0", 18 | "libp2p-secio": "^0.10.0", 19 | "libp2p-tcp": "^0.12.1", 20 | "peer-info": "^0.14.1", 21 | "libp2p-floodsub": "^0.15.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /pubsub/pubsub-interop.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "context" 6 | "fmt" 7 | "io/ioutil" 8 | "os" 9 | _ "time" 10 | 11 | libp2p "github.com/libp2p/go-libp2p" 12 | host "github.com/libp2p/go-libp2p-host" 13 | inet "github.com/libp2p/go-libp2p-net" 14 | peerstore "github.com/libp2p/go-libp2p-peerstore" 15 | 16 | "github.com/libp2p/go-libp2p-crypto" 17 | 18 | "github.com/libp2p/go-floodsub" 19 | ma "github.com/multiformats/go-multiaddr" 20 | ) 21 | 22 | var ho host.Host 23 | 24 | //var TopicName string = "libp2p-demo-chat" 25 | //h("libp2p-demo-chat") = "RDEpsjSPrAZF9JCK5REt3tao" - rust uses the hash unlike js/go () 26 | var TopicName string = "RDEpsjSPrAZF9JCK5REt3tao" 27 | 28 | func parseArgs() (bool, string) { 29 | usage := fmt.Sprintf("Usage: %s PRIVATE_KEY [--bootstrapper]\n\nPRIVATE_KEY is the path to a private key like '../util/private_key.bin'\n--bootstrapper to run in bootstrap mode (creates a DHT and listens for peers)\n", os.Args[0]) 30 | var bBootstrap bool = false 31 | var privKeyFilePath string 32 | var args []string = os.Args[1:] 33 | if (len(args) == 0) || (len(args) > 2) { 34 | fmt.Printf("Error: wrong number of arguments\n\n%s", usage) 35 | os.Exit(1) 36 | } 37 | privKeyFilePath = args[0] 38 | if (len(args) == 2) && (args[1] == "--bootstrapper") { 39 | bBootstrap = true 40 | } 41 | return bBootstrap, privKeyFilePath 42 | } 43 | 44 | func handleConn(conn inet.Conn) { 45 | ctx := context.Background() 46 | h := ho 47 | fmt.Printf(" New peer joined: %v\n", conn.RemoteMultiaddr().String()) 48 | _ = h 49 | _ = ctx 50 | } 51 | 52 | func main() { 53 | ctx := context.Background() 54 | 55 | bBootstrap, privKeyFilePath := parseArgs() 56 | fmt.Printf("Starting up in ") 57 | if bBootstrap { 58 | fmt.Printf("bootstrapper mode (port 5555)") 59 | } else { 60 | fmt.Printf("peer mode (port 6000)") 61 | } 62 | fmt.Printf("\nPrivate key '%s'\n", privKeyFilePath) 63 | 64 | // 65 | // Read the private key and unmarshall it into struct 66 | // 67 | var privBytes []byte 68 | privBytes, err := ioutil.ReadFile(privKeyFilePath) 69 | if err != nil { 70 | fmt.Println("ioutil.ReadFile: failed: %v", err) 71 | panic(err) 72 | } 73 | 74 | var priv crypto.PrivKey 75 | priv, err = crypto.UnmarshalPrivateKey(privBytes) 76 | if err != nil { 77 | fmt.Println("crypto.UnmarshalPrivateKey: failed: %v", err) 78 | panic(err) 79 | } 80 | 81 | // 82 | // Construct our libp2p host 83 | // 84 | var host host.Host 85 | if bBootstrap { 86 | host, err = libp2p.New(ctx, 87 | libp2p.ListenAddrStrings("/ip4/0.0.0.0/tcp/5555"), 88 | libp2p.Identity(priv), 89 | ) 90 | } else { 91 | host, err = libp2p.New(ctx, 92 | libp2p.ListenAddrStrings("/ip4/0.0.0.0/tcp/6000"), 93 | libp2p.Identity(priv), 94 | ) 95 | } 96 | if err != nil { 97 | fmt.Println("libp2p.New: failed: %v", err) 98 | panic(err) 99 | } 100 | 101 | // 102 | // Construct a floodsub instance for this host 103 | // 104 | fsub, err := floodsub.NewFloodSub(ctx, host) 105 | if err != nil { 106 | fmt.Println("Error (floodsub.NewFloodSub): %v", err) 107 | panic(err) 108 | } 109 | 110 | // 111 | // If we are the bootstrap node, we don't try to connect to any peers. 112 | // Else: try to connect to the bootstrap node. 113 | // 114 | const bootstrapAddrIP4Str string = "127.0.0.1" 115 | if !bBootstrap { 116 | var bootstrapMultiAddr ma.Multiaddr 117 | var pinfo *peerstore.PeerInfo 118 | bootstrapMultiAddrStr := fmt.Sprintf("/ip4/%s/tcp/5555/ipfs/QmehVYruznbyDZuHBV4vEHESpDevMoAovET6aJ9oRuEzWa", bootstrapAddrIP4Str) 119 | fmt.Printf("bootstrapping to '%s'...\n", bootstrapMultiAddrStr) 120 | bootstrapMultiAddr, err := ma.NewMultiaddr(bootstrapMultiAddrStr) 121 | if err != nil { 122 | fmt.Println("Error (ma.NewMultiaddr): %v", err) 123 | panic(err) 124 | } 125 | 126 | pinfo, err = peerstore.InfoFromP2pAddr(bootstrapMultiAddr) 127 | if err != nil { 128 | fmt.Println("Error (ma.NewMultiaddr): %v", err) 129 | panic(err) 130 | } 131 | 132 | if err := host.Connect(ctx, *pinfo); err != nil { 133 | fmt.Println("bootstrapping to peer failed: ", err) 134 | } 135 | } 136 | 137 | // 138 | // Subscribe to the topic and wait for messages published on that topic 139 | // 140 | sub, err := fsub.Subscribe(TopicName) 141 | if err != nil { 142 | fmt.Println("Error (fsub.Subscribe): %v", err) 143 | panic(err) 144 | } 145 | 146 | // Go and listen for messages from them, and print them to the screen 147 | go func() { 148 | for { 149 | msg, err := sub.Next(ctx) 150 | if err != nil { 151 | fmt.Println("Error (sub.Next): %v", err) 152 | panic(err) 153 | } 154 | 155 | fmt.Printf("%s: %s\n", msg.GetFrom(), string(msg.GetData())) 156 | } 157 | }() 158 | 159 | // SetConnHandler() should not normally be called. Instead, 160 | // use Notify() and pass it a functioon. (The problem with 161 | // SetConnHandler() is that it takes control of the connection.) 162 | host.Network().Notify(&inet.NotifyBundle{ 163 | ConnectedF: func(n inet.Network, c inet.Conn) { 164 | fmt.Println("Got a connection:", c.RemotePeer()) 165 | }, 166 | }) 167 | if bBootstrap { 168 | fmt.Println("Bootstrapper running.\nPubSub object instantiated using FloodSubRouter.\nCtrl+C to exit.") 169 | for true { 170 | } 171 | } else { 172 | // Now, wait for input from the user, and send that out! 173 | scan := bufio.NewScanner(os.Stdin) 174 | for scan.Scan() { 175 | if err := fsub.Publish(TopicName, scan.Bytes()); err != nil { 176 | panic(err) 177 | } 178 | } 179 | } 180 | } 181 | -------------------------------------------------------------------------------- /pubsub/rust/.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | -------------------------------------------------------------------------------- /pubsub/rust/Cargo.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "aes-ctr" 3 | version = "0.1.0" 4 | source = "registry+https://github.com/rust-lang/crates.io-index" 5 | dependencies = [ 6 | "aes-soft 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 7 | "aesni 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 8 | "ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 9 | "stream-cipher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 10 | ] 11 | 12 | [[package]] 13 | name = "aes-soft" 14 | version = "0.2.0" 15 | source = "registry+https://github.com/rust-lang/crates.io-index" 16 | dependencies = [ 17 | "block-cipher-trait 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 18 | "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 19 | "opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 20 | ] 21 | 22 | [[package]] 23 | name = "aesni" 24 | version = "0.4.1" 25 | source = "registry+https://github.com/rust-lang/crates.io-index" 26 | dependencies = [ 27 | "block-cipher-trait 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 28 | "opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 29 | "stream-cipher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 30 | ] 31 | 32 | [[package]] 33 | name = "aio-limited" 34 | version = "0.1.0" 35 | source = "registry+https://github.com/rust-lang/crates.io-index" 36 | dependencies = [ 37 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 38 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 39 | "parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 40 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 41 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 42 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 43 | ] 44 | 45 | [[package]] 46 | name = "arrayref" 47 | version = "0.3.5" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | 50 | [[package]] 51 | name = "arrayvec" 52 | version = "0.4.8" 53 | source = "registry+https://github.com/rust-lang/crates.io-index" 54 | dependencies = [ 55 | "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 56 | ] 57 | 58 | [[package]] 59 | name = "asn1_der" 60 | version = "0.5.10" 61 | source = "registry+https://github.com/rust-lang/crates.io-index" 62 | dependencies = [ 63 | "etrace 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 64 | ] 65 | 66 | [[package]] 67 | name = "base-x" 68 | version = "0.2.3" 69 | source = "registry+https://github.com/rust-lang/crates.io-index" 70 | 71 | [[package]] 72 | name = "base64" 73 | version = "0.9.3" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | dependencies = [ 76 | "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 77 | "safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 78 | ] 79 | 80 | [[package]] 81 | name = "bigint" 82 | version = "4.4.1" 83 | source = "registry+https://github.com/rust-lang/crates.io-index" 84 | dependencies = [ 85 | "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 86 | "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 87 | ] 88 | 89 | [[package]] 90 | name = "bitflags" 91 | version = "0.9.1" 92 | source = "registry+https://github.com/rust-lang/crates.io-index" 93 | 94 | [[package]] 95 | name = "bitflags" 96 | version = "1.0.4" 97 | source = "registry+https://github.com/rust-lang/crates.io-index" 98 | 99 | [[package]] 100 | name = "blake2" 101 | version = "0.8.0" 102 | source = "registry+https://github.com/rust-lang/crates.io-index" 103 | dependencies = [ 104 | "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 105 | "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 106 | "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 107 | "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 108 | ] 109 | 110 | [[package]] 111 | name = "block-buffer" 112 | version = "0.3.3" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | dependencies = [ 115 | "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", 116 | "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 117 | ] 118 | 119 | [[package]] 120 | name = "block-buffer" 121 | version = "0.7.1" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | dependencies = [ 124 | "block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 125 | "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 126 | "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 127 | "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", 128 | ] 129 | 130 | [[package]] 131 | name = "block-cipher-trait" 132 | version = "0.5.3" 133 | source = "registry+https://github.com/rust-lang/crates.io-index" 134 | dependencies = [ 135 | "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 136 | ] 137 | 138 | [[package]] 139 | name = "block-padding" 140 | version = "0.1.2" 141 | source = "registry+https://github.com/rust-lang/crates.io-index" 142 | dependencies = [ 143 | "byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 144 | ] 145 | 146 | [[package]] 147 | name = "bs58" 148 | version = "0.2.2" 149 | source = "registry+https://github.com/rust-lang/crates.io-index" 150 | 151 | [[package]] 152 | name = "byte-tools" 153 | version = "0.2.0" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | 156 | [[package]] 157 | name = "byte-tools" 158 | version = "0.3.0" 159 | source = "registry+https://github.com/rust-lang/crates.io-index" 160 | 161 | [[package]] 162 | name = "byteorder" 163 | version = "0.4.2" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | 166 | [[package]] 167 | name = "byteorder" 168 | version = "0.5.3" 169 | source = "registry+https://github.com/rust-lang/crates.io-index" 170 | 171 | [[package]] 172 | name = "byteorder" 173 | version = "1.2.7" 174 | source = "registry+https://github.com/rust-lang/crates.io-index" 175 | 176 | [[package]] 177 | name = "bytes" 178 | version = "0.4.11" 179 | source = "registry+https://github.com/rust-lang/crates.io-index" 180 | dependencies = [ 181 | "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 182 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 183 | ] 184 | 185 | [[package]] 186 | name = "cc" 187 | version = "1.0.25" 188 | source = "registry+https://github.com/rust-lang/crates.io-index" 189 | 190 | [[package]] 191 | name = "cfg-if" 192 | version = "0.1.6" 193 | source = "registry+https://github.com/rust-lang/crates.io-index" 194 | 195 | [[package]] 196 | name = "clear_on_drop" 197 | version = "0.2.3" 198 | source = "registry+https://github.com/rust-lang/crates.io-index" 199 | dependencies = [ 200 | "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", 201 | ] 202 | 203 | [[package]] 204 | name = "cloudabi" 205 | version = "0.0.3" 206 | source = "registry+https://github.com/rust-lang/crates.io-index" 207 | dependencies = [ 208 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 209 | ] 210 | 211 | [[package]] 212 | name = "constant_time_eq" 213 | version = "0.1.3" 214 | source = "registry+https://github.com/rust-lang/crates.io-index" 215 | 216 | [[package]] 217 | name = "core-foundation" 218 | version = "0.5.1" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | dependencies = [ 221 | "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 222 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 223 | ] 224 | 225 | [[package]] 226 | name = "core-foundation-sys" 227 | version = "0.5.1" 228 | source = "registry+https://github.com/rust-lang/crates.io-index" 229 | dependencies = [ 230 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 231 | ] 232 | 233 | [[package]] 234 | name = "crossbeam-deque" 235 | version = "0.2.0" 236 | source = "registry+https://github.com/rust-lang/crates.io-index" 237 | dependencies = [ 238 | "crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 239 | "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 240 | ] 241 | 242 | [[package]] 243 | name = "crossbeam-deque" 244 | version = "0.6.2" 245 | source = "registry+https://github.com/rust-lang/crates.io-index" 246 | dependencies = [ 247 | "crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 248 | "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 249 | ] 250 | 251 | [[package]] 252 | name = "crossbeam-epoch" 253 | version = "0.3.1" 254 | source = "registry+https://github.com/rust-lang/crates.io-index" 255 | dependencies = [ 256 | "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", 257 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 258 | "crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 259 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 260 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 261 | "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 262 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 263 | ] 264 | 265 | [[package]] 266 | name = "crossbeam-epoch" 267 | version = "0.6.1" 268 | source = "registry+https://github.com/rust-lang/crates.io-index" 269 | dependencies = [ 270 | "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", 271 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 272 | "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 273 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 274 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 275 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 276 | ] 277 | 278 | [[package]] 279 | name = "crossbeam-utils" 280 | version = "0.2.2" 281 | source = "registry+https://github.com/rust-lang/crates.io-index" 282 | dependencies = [ 283 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 284 | ] 285 | 286 | [[package]] 287 | name = "crossbeam-utils" 288 | version = "0.6.2" 289 | source = "registry+https://github.com/rust-lang/crates.io-index" 290 | dependencies = [ 291 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 292 | ] 293 | 294 | [[package]] 295 | name = "crunchy" 296 | version = "0.1.6" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | 299 | [[package]] 300 | name = "crypto-mac" 301 | version = "0.6.2" 302 | source = "registry+https://github.com/rust-lang/crates.io-index" 303 | dependencies = [ 304 | "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 305 | "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 306 | ] 307 | 308 | [[package]] 309 | name = "crypto-mac" 310 | version = "0.7.0" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | dependencies = [ 313 | "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", 314 | "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 315 | ] 316 | 317 | [[package]] 318 | name = "ctr" 319 | version = "0.1.1" 320 | source = "registry+https://github.com/rust-lang/crates.io-index" 321 | dependencies = [ 322 | "block-cipher-trait 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 323 | "stream-cipher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 324 | ] 325 | 326 | [[package]] 327 | name = "cuckoofilter" 328 | version = "0.3.2" 329 | source = "registry+https://github.com/rust-lang/crates.io-index" 330 | dependencies = [ 331 | "byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 332 | "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", 333 | ] 334 | 335 | [[package]] 336 | name = "curve25519-dalek" 337 | version = "0.20.0" 338 | source = "registry+https://github.com/rust-lang/crates.io-index" 339 | dependencies = [ 340 | "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 341 | "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 342 | "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", 343 | "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 344 | "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 345 | "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 346 | ] 347 | 348 | [[package]] 349 | name = "data-encoding" 350 | version = "2.1.1" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | 353 | [[package]] 354 | name = "digest" 355 | version = "0.7.6" 356 | source = "registry+https://github.com/rust-lang/crates.io-index" 357 | dependencies = [ 358 | "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 359 | ] 360 | 361 | [[package]] 362 | name = "digest" 363 | version = "0.8.0" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | dependencies = [ 366 | "generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", 367 | ] 368 | 369 | [[package]] 370 | name = "discard" 371 | version = "1.0.4" 372 | source = "registry+https://github.com/rust-lang/crates.io-index" 373 | 374 | [[package]] 375 | name = "dns-parser" 376 | version = "0.8.0" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | dependencies = [ 379 | "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 380 | "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 381 | ] 382 | 383 | [[package]] 384 | name = "ed25519-dalek" 385 | version = "0.8.1" 386 | source = "registry+https://github.com/rust-lang/crates.io-index" 387 | dependencies = [ 388 | "clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 389 | "curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", 390 | "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", 391 | "failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 392 | "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 393 | "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 394 | ] 395 | 396 | [[package]] 397 | name = "etrace" 398 | version = "1.1.1" 399 | source = "registry+https://github.com/rust-lang/crates.io-index" 400 | 401 | [[package]] 402 | name = "failure" 403 | version = "0.1.3" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | 406 | [[package]] 407 | name = "fake-simd" 408 | version = "0.1.2" 409 | source = "registry+https://github.com/rust-lang/crates.io-index" 410 | 411 | [[package]] 412 | name = "floodsub-example" 413 | version = "0.0.1" 414 | dependencies = [ 415 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 416 | "libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 417 | "names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 418 | "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 419 | "tokio-stdin-stdout 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 420 | ] 421 | 422 | [[package]] 423 | name = "fnv" 424 | version = "1.0.6" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | 427 | [[package]] 428 | name = "foreign-types" 429 | version = "0.3.2" 430 | source = "registry+https://github.com/rust-lang/crates.io-index" 431 | dependencies = [ 432 | "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 433 | ] 434 | 435 | [[package]] 436 | name = "foreign-types-shared" 437 | version = "0.1.1" 438 | source = "registry+https://github.com/rust-lang/crates.io-index" 439 | 440 | [[package]] 441 | name = "fuchsia-zircon" 442 | version = "0.3.3" 443 | source = "registry+https://github.com/rust-lang/crates.io-index" 444 | dependencies = [ 445 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 446 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 447 | ] 448 | 449 | [[package]] 450 | name = "fuchsia-zircon-sys" 451 | version = "0.3.3" 452 | source = "registry+https://github.com/rust-lang/crates.io-index" 453 | 454 | [[package]] 455 | name = "futures" 456 | version = "0.1.25" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | 459 | [[package]] 460 | name = "futures-cpupool" 461 | version = "0.1.8" 462 | source = "registry+https://github.com/rust-lang/crates.io-index" 463 | dependencies = [ 464 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 465 | "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 466 | ] 467 | 468 | [[package]] 469 | name = "gcc" 470 | version = "0.3.55" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | 473 | [[package]] 474 | name = "generic-array" 475 | version = "0.9.0" 476 | source = "registry+https://github.com/rust-lang/crates.io-index" 477 | dependencies = [ 478 | "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 479 | ] 480 | 481 | [[package]] 482 | name = "generic-array" 483 | version = "0.12.0" 484 | source = "registry+https://github.com/rust-lang/crates.io-index" 485 | dependencies = [ 486 | "typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 487 | ] 488 | 489 | [[package]] 490 | name = "hmac" 491 | version = "0.6.3" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | dependencies = [ 494 | "crypto-mac 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 495 | "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", 496 | ] 497 | 498 | [[package]] 499 | name = "httparse" 500 | version = "1.3.3" 501 | source = "registry+https://github.com/rust-lang/crates.io-index" 502 | 503 | [[package]] 504 | name = "hyper" 505 | version = "0.10.15" 506 | source = "registry+https://github.com/rust-lang/crates.io-index" 507 | dependencies = [ 508 | "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", 509 | "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 510 | "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 511 | "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", 512 | "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 513 | "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 514 | "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", 515 | "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 516 | "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 517 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 518 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 519 | ] 520 | 521 | [[package]] 522 | name = "idna" 523 | version = "0.1.5" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | dependencies = [ 526 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 527 | "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 528 | "unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 529 | ] 530 | 531 | [[package]] 532 | name = "iovec" 533 | version = "0.1.2" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | dependencies = [ 536 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 537 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 538 | ] 539 | 540 | [[package]] 541 | name = "itoa" 542 | version = "0.4.3" 543 | source = "registry+https://github.com/rust-lang/crates.io-index" 544 | 545 | [[package]] 546 | name = "kernel32-sys" 547 | version = "0.2.2" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | dependencies = [ 550 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 551 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 552 | ] 553 | 554 | [[package]] 555 | name = "language-tags" 556 | version = "0.2.2" 557 | source = "registry+https://github.com/rust-lang/crates.io-index" 558 | 559 | [[package]] 560 | name = "lazy_static" 561 | version = "0.2.11" 562 | source = "registry+https://github.com/rust-lang/crates.io-index" 563 | 564 | [[package]] 565 | name = "lazy_static" 566 | version = "1.2.0" 567 | source = "registry+https://github.com/rust-lang/crates.io-index" 568 | 569 | [[package]] 570 | name = "lazycell" 571 | version = "1.2.1" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | 574 | [[package]] 575 | name = "libc" 576 | version = "0.2.44" 577 | source = "registry+https://github.com/rust-lang/crates.io-index" 578 | 579 | [[package]] 580 | name = "libp2p" 581 | version = "0.1.0" 582 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 583 | dependencies = [ 584 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 585 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 586 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 587 | "libp2p-core-derive 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 588 | "libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 589 | "libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 590 | "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 591 | "libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 592 | "libp2p-mdns 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 593 | "libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 594 | "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 595 | "libp2p-plaintext 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 596 | "libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p)", 597 | "libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 598 | "libp2p-tcp 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 599 | "libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 600 | "libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 601 | "libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 602 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 603 | "parity-multihash 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 604 | "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 605 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 606 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 607 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 608 | ] 609 | 610 | [[package]] 611 | name = "libp2p-core" 612 | version = "0.1.0" 613 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 614 | dependencies = [ 615 | "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 616 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 617 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 618 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 619 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 620 | "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 621 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 622 | "parity-multihash 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 623 | "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 624 | "protobuf 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 625 | "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 626 | "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 627 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 628 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 629 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 630 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 631 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 632 | ] 633 | 634 | [[package]] 635 | name = "libp2p-core-derive" 636 | version = "0.1.0" 637 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 638 | dependencies = [ 639 | "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 640 | "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", 641 | ] 642 | 643 | [[package]] 644 | name = "libp2p-dns" 645 | version = "0.1.0" 646 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 647 | dependencies = [ 648 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 649 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 650 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 651 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 652 | "tokio-dns-unofficial 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 653 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 654 | ] 655 | 656 | [[package]] 657 | name = "libp2p-floodsub" 658 | version = "0.1.0" 659 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 660 | dependencies = [ 661 | "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 662 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 663 | "cuckoofilter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 664 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 665 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 666 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 667 | "protobuf 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 668 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 669 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 670 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 671 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 672 | "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 673 | ] 674 | 675 | [[package]] 676 | name = "libp2p-identify" 677 | version = "0.1.0" 678 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 679 | dependencies = [ 680 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 681 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 682 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 683 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 684 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 685 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 686 | "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 687 | "protobuf 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 688 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 689 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 690 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 691 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 692 | "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 693 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 694 | ] 695 | 696 | [[package]] 697 | name = "libp2p-kad" 698 | version = "0.1.0" 699 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 700 | dependencies = [ 701 | "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", 702 | "bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 703 | "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 704 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 705 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 706 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 707 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 708 | "libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 709 | "libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 710 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 711 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 712 | "parity-multihash 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 713 | "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 714 | "protobuf 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 715 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 716 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 717 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 718 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 719 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 720 | "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 721 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 722 | ] 723 | 724 | [[package]] 725 | name = "libp2p-mdns" 726 | version = "0.1.0" 727 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 728 | dependencies = [ 729 | "data-encoding 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 730 | "dns-parser 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 731 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 732 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 733 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 734 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 735 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 736 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 737 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 738 | "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 739 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 740 | "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 741 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 742 | ] 743 | 744 | [[package]] 745 | name = "libp2p-mplex" 746 | version = "0.1.0" 747 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 748 | dependencies = [ 749 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 750 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 751 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 752 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 753 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 754 | "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 755 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 756 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 757 | "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 758 | ] 759 | 760 | [[package]] 761 | name = "libp2p-ping" 762 | version = "0.1.0" 763 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 764 | dependencies = [ 765 | "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", 766 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 767 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 768 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 769 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 770 | "multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 771 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 772 | "parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 773 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 774 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 775 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 776 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 777 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 778 | ] 779 | 780 | [[package]] 781 | name = "libp2p-plaintext" 782 | version = "0.1.0" 783 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 784 | dependencies = [ 785 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 786 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 787 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 788 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 789 | ] 790 | 791 | [[package]] 792 | name = "libp2p-ratelimit" 793 | version = "0.1.1" 794 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 795 | dependencies = [ 796 | "aio-limited 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 797 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 798 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 799 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 800 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 801 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 802 | ] 803 | 804 | [[package]] 805 | name = "libp2p-secio" 806 | version = "0.1.0" 807 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 808 | dependencies = [ 809 | "aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 810 | "asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)", 811 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 812 | "ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 813 | "ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 814 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 815 | "hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", 816 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 817 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 818 | "protobuf 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 819 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 820 | "ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", 821 | "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 822 | "secp256k1 0.11.5 (registry+https://github.com/rust-lang/crates.io-index)", 823 | "sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 824 | "stdweb 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 825 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 826 | "twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 827 | "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 828 | ] 829 | 830 | [[package]] 831 | name = "libp2p-tcp" 832 | version = "0.1.0" 833 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 834 | dependencies = [ 835 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 836 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 837 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 838 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 839 | "tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 840 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 841 | "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 842 | ] 843 | 844 | [[package]] 845 | name = "libp2p-uds" 846 | version = "0.1.0" 847 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 848 | dependencies = [ 849 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 850 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 851 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 852 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 853 | "tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", 854 | ] 855 | 856 | [[package]] 857 | name = "libp2p-websocket" 858 | version = "0.1.0" 859 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 860 | dependencies = [ 861 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 862 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 863 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 864 | "parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 865 | "rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 866 | "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 867 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 868 | "websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)", 869 | ] 870 | 871 | [[package]] 872 | name = "libp2p-yamux" 873 | version = "0.1.0" 874 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 875 | dependencies = [ 876 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 877 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 878 | "libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 879 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 880 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 881 | "yamux 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 882 | ] 883 | 884 | [[package]] 885 | name = "lock_api" 886 | version = "0.1.5" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | dependencies = [ 889 | "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 890 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 891 | ] 892 | 893 | [[package]] 894 | name = "log" 895 | version = "0.3.9" 896 | source = "registry+https://github.com/rust-lang/crates.io-index" 897 | dependencies = [ 898 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 899 | ] 900 | 901 | [[package]] 902 | name = "log" 903 | version = "0.4.6" 904 | source = "registry+https://github.com/rust-lang/crates.io-index" 905 | dependencies = [ 906 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 907 | ] 908 | 909 | [[package]] 910 | name = "matches" 911 | version = "0.1.8" 912 | source = "registry+https://github.com/rust-lang/crates.io-index" 913 | 914 | [[package]] 915 | name = "memoffset" 916 | version = "0.2.1" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | 919 | [[package]] 920 | name = "mime" 921 | version = "0.2.6" 922 | source = "registry+https://github.com/rust-lang/crates.io-index" 923 | dependencies = [ 924 | "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", 925 | ] 926 | 927 | [[package]] 928 | name = "mio" 929 | version = "0.6.16" 930 | source = "registry+https://github.com/rust-lang/crates.io-index" 931 | dependencies = [ 932 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 933 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 934 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 935 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 936 | "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 937 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 938 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 939 | "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 940 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 941 | "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 942 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 943 | ] 944 | 945 | [[package]] 946 | name = "mio-uds" 947 | version = "0.6.7" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | dependencies = [ 950 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 951 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 952 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 953 | ] 954 | 955 | [[package]] 956 | name = "miow" 957 | version = "0.2.1" 958 | source = "registry+https://github.com/rust-lang/crates.io-index" 959 | dependencies = [ 960 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 961 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 962 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 963 | "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 964 | ] 965 | 966 | [[package]] 967 | name = "multistream-select" 968 | version = "0.1.0" 969 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 970 | dependencies = [ 971 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 972 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 973 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 974 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 975 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 976 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 977 | "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 978 | ] 979 | 980 | [[package]] 981 | name = "names" 982 | version = "0.11.0" 983 | source = "registry+https://github.com/rust-lang/crates.io-index" 984 | dependencies = [ 985 | "rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)", 986 | ] 987 | 988 | [[package]] 989 | name = "native-tls" 990 | version = "0.2.2" 991 | source = "registry+https://github.com/rust-lang/crates.io-index" 992 | dependencies = [ 993 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 994 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 995 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 996 | "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", 997 | "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 998 | "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", 999 | "schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 1000 | "security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1001 | "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1002 | "tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 1003 | ] 1004 | 1005 | [[package]] 1006 | name = "net2" 1007 | version = "0.2.33" 1008 | source = "registry+https://github.com/rust-lang/crates.io-index" 1009 | dependencies = [ 1010 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1011 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1012 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1013 | ] 1014 | 1015 | [[package]] 1016 | name = "nodrop" 1017 | version = "0.1.13" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | 1020 | [[package]] 1021 | name = "nohash-hasher" 1022 | version = "0.1.1" 1023 | source = "registry+https://github.com/rust-lang/crates.io-index" 1024 | 1025 | [[package]] 1026 | name = "num_cpus" 1027 | version = "1.8.0" 1028 | source = "registry+https://github.com/rust-lang/crates.io-index" 1029 | dependencies = [ 1030 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1031 | ] 1032 | 1033 | [[package]] 1034 | name = "opaque-debug" 1035 | version = "0.1.1" 1036 | source = "registry+https://github.com/rust-lang/crates.io-index" 1037 | 1038 | [[package]] 1039 | name = "opaque-debug" 1040 | version = "0.2.1" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | 1043 | [[package]] 1044 | name = "openssl" 1045 | version = "0.10.15" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | dependencies = [ 1048 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 1049 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1050 | "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 1051 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1052 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1053 | "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", 1054 | ] 1055 | 1056 | [[package]] 1057 | name = "openssl-probe" 1058 | version = "0.1.2" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | 1061 | [[package]] 1062 | name = "openssl-sys" 1063 | version = "0.9.39" 1064 | source = "registry+https://github.com/rust-lang/crates.io-index" 1065 | dependencies = [ 1066 | "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", 1067 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1068 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 1069 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 1070 | ] 1071 | 1072 | [[package]] 1073 | name = "owning_ref" 1074 | version = "0.3.3" 1075 | source = "registry+https://github.com/rust-lang/crates.io-index" 1076 | dependencies = [ 1077 | "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1078 | ] 1079 | 1080 | [[package]] 1081 | name = "owning_ref" 1082 | version = "0.4.0" 1083 | source = "registry+https://github.com/rust-lang/crates.io-index" 1084 | dependencies = [ 1085 | "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "parity-multiaddr" 1090 | version = "0.1.0" 1091 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 1092 | dependencies = [ 1093 | "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", 1094 | "bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1095 | "byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1096 | "data-encoding 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1097 | "parity-multihash 0.1.0 (git+https://github.com/libp2p/rust-libp2p)", 1098 | "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 1099 | "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1100 | ] 1101 | 1102 | [[package]] 1103 | name = "parity-multihash" 1104 | version = "0.1.0" 1105 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 1106 | dependencies = [ 1107 | "blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1108 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 1109 | "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", 1110 | "sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1111 | "tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1112 | "unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1113 | ] 1114 | 1115 | [[package]] 1116 | name = "parking_lot" 1117 | version = "0.5.5" 1118 | source = "registry+https://github.com/rust-lang/crates.io-index" 1119 | dependencies = [ 1120 | "owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 1121 | "parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", 1122 | ] 1123 | 1124 | [[package]] 1125 | name = "parking_lot" 1126 | version = "0.6.4" 1127 | source = "registry+https://github.com/rust-lang/crates.io-index" 1128 | dependencies = [ 1129 | "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1130 | "parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1131 | ] 1132 | 1133 | [[package]] 1134 | name = "parking_lot" 1135 | version = "0.7.0" 1136 | source = "registry+https://github.com/rust-lang/crates.io-index" 1137 | dependencies = [ 1138 | "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1139 | "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1140 | ] 1141 | 1142 | [[package]] 1143 | name = "parking_lot_core" 1144 | version = "0.2.14" 1145 | source = "registry+https://github.com/rust-lang/crates.io-index" 1146 | dependencies = [ 1147 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1148 | "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1149 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 1150 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1151 | ] 1152 | 1153 | [[package]] 1154 | name = "parking_lot_core" 1155 | version = "0.3.1" 1156 | source = "registry+https://github.com/rust-lang/crates.io-index" 1157 | dependencies = [ 1158 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1159 | "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 1160 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1161 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 1162 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1163 | ] 1164 | 1165 | [[package]] 1166 | name = "parking_lot_core" 1167 | version = "0.4.0" 1168 | source = "registry+https://github.com/rust-lang/crates.io-index" 1169 | dependencies = [ 1170 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1171 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 1172 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1173 | "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 1174 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1175 | ] 1176 | 1177 | [[package]] 1178 | name = "percent-encoding" 1179 | version = "1.0.1" 1180 | source = "registry+https://github.com/rust-lang/crates.io-index" 1181 | 1182 | [[package]] 1183 | name = "pkg-config" 1184 | version = "0.3.14" 1185 | source = "registry+https://github.com/rust-lang/crates.io-index" 1186 | 1187 | [[package]] 1188 | name = "proc-macro2" 1189 | version = "0.4.24" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | dependencies = [ 1192 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1193 | ] 1194 | 1195 | [[package]] 1196 | name = "protobuf" 1197 | version = "2.2.0" 1198 | source = "registry+https://github.com/rust-lang/crates.io-index" 1199 | 1200 | [[package]] 1201 | name = "quick-error" 1202 | version = "0.1.4" 1203 | source = "registry+https://github.com/rust-lang/crates.io-index" 1204 | 1205 | [[package]] 1206 | name = "quick-error" 1207 | version = "1.2.2" 1208 | source = "registry+https://github.com/rust-lang/crates.io-index" 1209 | 1210 | [[package]] 1211 | name = "quote" 1212 | version = "0.6.10" 1213 | source = "registry+https://github.com/rust-lang/crates.io-index" 1214 | dependencies = [ 1215 | "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1216 | ] 1217 | 1218 | [[package]] 1219 | name = "rand" 1220 | version = "0.3.22" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | dependencies = [ 1223 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 1224 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1225 | "rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1226 | ] 1227 | 1228 | [[package]] 1229 | name = "rand" 1230 | version = "0.4.3" 1231 | source = "registry+https://github.com/rust-lang/crates.io-index" 1232 | dependencies = [ 1233 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 1234 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1235 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1236 | ] 1237 | 1238 | [[package]] 1239 | name = "rand" 1240 | version = "0.5.5" 1241 | source = "registry+https://github.com/rust-lang/crates.io-index" 1242 | dependencies = [ 1243 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1244 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 1245 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1246 | "rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1247 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1248 | ] 1249 | 1250 | [[package]] 1251 | name = "rand" 1252 | version = "0.6.1" 1253 | source = "registry+https://github.com/rust-lang/crates.io-index" 1254 | dependencies = [ 1255 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 1256 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 1257 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1258 | "rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1259 | "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1260 | "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1261 | "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1262 | "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1263 | "rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1264 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1265 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1266 | ] 1267 | 1268 | [[package]] 1269 | name = "rand_chacha" 1270 | version = "0.1.0" 1271 | source = "registry+https://github.com/rust-lang/crates.io-index" 1272 | dependencies = [ 1273 | "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1274 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1275 | ] 1276 | 1277 | [[package]] 1278 | name = "rand_core" 1279 | version = "0.2.2" 1280 | source = "registry+https://github.com/rust-lang/crates.io-index" 1281 | dependencies = [ 1282 | "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1283 | ] 1284 | 1285 | [[package]] 1286 | name = "rand_core" 1287 | version = "0.3.0" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | 1290 | [[package]] 1291 | name = "rand_hc" 1292 | version = "0.1.0" 1293 | source = "registry+https://github.com/rust-lang/crates.io-index" 1294 | dependencies = [ 1295 | "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1296 | ] 1297 | 1298 | [[package]] 1299 | name = "rand_isaac" 1300 | version = "0.1.1" 1301 | source = "registry+https://github.com/rust-lang/crates.io-index" 1302 | dependencies = [ 1303 | "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1304 | ] 1305 | 1306 | [[package]] 1307 | name = "rand_pcg" 1308 | version = "0.1.1" 1309 | source = "registry+https://github.com/rust-lang/crates.io-index" 1310 | dependencies = [ 1311 | "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1312 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1313 | ] 1314 | 1315 | [[package]] 1316 | name = "rand_xorshift" 1317 | version = "0.1.0" 1318 | source = "registry+https://github.com/rust-lang/crates.io-index" 1319 | dependencies = [ 1320 | "rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1321 | ] 1322 | 1323 | [[package]] 1324 | name = "rayon" 1325 | version = "0.8.2" 1326 | source = "registry+https://github.com/rust-lang/crates.io-index" 1327 | dependencies = [ 1328 | "rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 1329 | ] 1330 | 1331 | [[package]] 1332 | name = "rayon-core" 1333 | version = "1.4.1" 1334 | source = "registry+https://github.com/rust-lang/crates.io-index" 1335 | dependencies = [ 1336 | "crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1337 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1338 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1339 | "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1340 | ] 1341 | 1342 | [[package]] 1343 | name = "redox_syscall" 1344 | version = "0.1.43" 1345 | source = "registry+https://github.com/rust-lang/crates.io-index" 1346 | 1347 | [[package]] 1348 | name = "remove_dir_all" 1349 | version = "0.5.1" 1350 | source = "registry+https://github.com/rust-lang/crates.io-index" 1351 | dependencies = [ 1352 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1353 | ] 1354 | 1355 | [[package]] 1356 | name = "ring" 1357 | version = "0.12.1" 1358 | source = "registry+https://github.com/rust-lang/crates.io-index" 1359 | dependencies = [ 1360 | "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", 1361 | "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 1362 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1363 | "rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", 1364 | "untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1365 | ] 1366 | 1367 | [[package]] 1368 | name = "rustc_version" 1369 | version = "0.2.3" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | dependencies = [ 1372 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 1373 | ] 1374 | 1375 | [[package]] 1376 | name = "rw-stream-sink" 1377 | version = "0.1.0" 1378 | source = "git+https://github.com/libp2p/rust-libp2p#581778ba920c275732ad0dba06b1119cae1eab94" 1379 | dependencies = [ 1380 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1381 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1382 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1383 | ] 1384 | 1385 | [[package]] 1386 | name = "ryu" 1387 | version = "0.2.7" 1388 | source = "registry+https://github.com/rust-lang/crates.io-index" 1389 | 1390 | [[package]] 1391 | name = "safemem" 1392 | version = "0.3.0" 1393 | source = "registry+https://github.com/rust-lang/crates.io-index" 1394 | 1395 | [[package]] 1396 | name = "schannel" 1397 | version = "0.1.14" 1398 | source = "registry+https://github.com/rust-lang/crates.io-index" 1399 | dependencies = [ 1400 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1401 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1402 | ] 1403 | 1404 | [[package]] 1405 | name = "scoped-tls" 1406 | version = "0.1.2" 1407 | source = "registry+https://github.com/rust-lang/crates.io-index" 1408 | 1409 | [[package]] 1410 | name = "scopeguard" 1411 | version = "0.3.3" 1412 | source = "registry+https://github.com/rust-lang/crates.io-index" 1413 | 1414 | [[package]] 1415 | name = "secp256k1" 1416 | version = "0.11.5" 1417 | source = "registry+https://github.com/rust-lang/crates.io-index" 1418 | dependencies = [ 1419 | "cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)", 1420 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1421 | ] 1422 | 1423 | [[package]] 1424 | name = "security-framework" 1425 | version = "0.2.1" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | dependencies = [ 1428 | "core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1429 | "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1430 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1431 | "security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1432 | ] 1433 | 1434 | [[package]] 1435 | name = "security-framework-sys" 1436 | version = "0.2.1" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | dependencies = [ 1439 | "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1440 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1441 | ] 1442 | 1443 | [[package]] 1444 | name = "semver" 1445 | version = "0.9.0" 1446 | source = "registry+https://github.com/rust-lang/crates.io-index" 1447 | dependencies = [ 1448 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1449 | ] 1450 | 1451 | [[package]] 1452 | name = "semver-parser" 1453 | version = "0.7.0" 1454 | source = "registry+https://github.com/rust-lang/crates.io-index" 1455 | 1456 | [[package]] 1457 | name = "serde" 1458 | version = "1.0.82" 1459 | source = "registry+https://github.com/rust-lang/crates.io-index" 1460 | 1461 | [[package]] 1462 | name = "serde_derive" 1463 | version = "1.0.82" 1464 | source = "registry+https://github.com/rust-lang/crates.io-index" 1465 | dependencies = [ 1466 | "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1467 | "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 1468 | "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", 1469 | ] 1470 | 1471 | [[package]] 1472 | name = "serde_json" 1473 | version = "1.0.33" 1474 | source = "registry+https://github.com/rust-lang/crates.io-index" 1475 | dependencies = [ 1476 | "itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", 1477 | "ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 1478 | "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 1479 | ] 1480 | 1481 | [[package]] 1482 | name = "sha1" 1483 | version = "0.6.0" 1484 | source = "registry+https://github.com/rust-lang/crates.io-index" 1485 | 1486 | [[package]] 1487 | name = "sha2" 1488 | version = "0.7.1" 1489 | source = "registry+https://github.com/rust-lang/crates.io-index" 1490 | dependencies = [ 1491 | "block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 1492 | "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1493 | "digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)", 1494 | "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1495 | ] 1496 | 1497 | [[package]] 1498 | name = "sha2" 1499 | version = "0.8.0" 1500 | source = "registry+https://github.com/rust-lang/crates.io-index" 1501 | dependencies = [ 1502 | "block-buffer 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1503 | "digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1504 | "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1505 | "opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 1506 | ] 1507 | 1508 | [[package]] 1509 | name = "slab" 1510 | version = "0.4.1" 1511 | source = "registry+https://github.com/rust-lang/crates.io-index" 1512 | 1513 | [[package]] 1514 | name = "smallvec" 1515 | version = "0.6.7" 1516 | source = "registry+https://github.com/rust-lang/crates.io-index" 1517 | dependencies = [ 1518 | "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", 1519 | ] 1520 | 1521 | [[package]] 1522 | name = "stable_deref_trait" 1523 | version = "1.1.1" 1524 | source = "registry+https://github.com/rust-lang/crates.io-index" 1525 | 1526 | [[package]] 1527 | name = "stdweb" 1528 | version = "0.1.3" 1529 | source = "registry+https://github.com/rust-lang/crates.io-index" 1530 | 1531 | [[package]] 1532 | name = "stdweb" 1533 | version = "0.4.10" 1534 | source = "registry+https://github.com/rust-lang/crates.io-index" 1535 | dependencies = [ 1536 | "discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 1537 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1538 | "stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1539 | "stdweb-internal-macros 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1540 | "stdweb-internal-runtime 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1541 | ] 1542 | 1543 | [[package]] 1544 | name = "stdweb-derive" 1545 | version = "0.5.1" 1546 | source = "registry+https://github.com/rust-lang/crates.io-index" 1547 | dependencies = [ 1548 | "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1549 | "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 1550 | "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 1551 | "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 1552 | "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", 1553 | ] 1554 | 1555 | [[package]] 1556 | name = "stdweb-internal-macros" 1557 | version = "0.2.2" 1558 | source = "registry+https://github.com/rust-lang/crates.io-index" 1559 | dependencies = [ 1560 | "base-x 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1561 | "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1562 | "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 1563 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 1564 | "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 1565 | "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)", 1566 | "serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", 1567 | "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", 1568 | ] 1569 | 1570 | [[package]] 1571 | name = "stdweb-internal-runtime" 1572 | version = "0.1.2" 1573 | source = "registry+https://github.com/rust-lang/crates.io-index" 1574 | 1575 | [[package]] 1576 | name = "stream-cipher" 1577 | version = "0.1.1" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | dependencies = [ 1580 | "generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 1581 | ] 1582 | 1583 | [[package]] 1584 | name = "subtle" 1585 | version = "1.0.0" 1586 | source = "registry+https://github.com/rust-lang/crates.io-index" 1587 | 1588 | [[package]] 1589 | name = "syn" 1590 | version = "0.15.22" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | dependencies = [ 1593 | "proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)", 1594 | "quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)", 1595 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "tempfile" 1600 | version = "3.0.5" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | dependencies = [ 1603 | "cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1604 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1605 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 1606 | "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", 1607 | "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1608 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1609 | ] 1610 | 1611 | [[package]] 1612 | name = "time" 1613 | version = "0.1.40" 1614 | source = "registry+https://github.com/rust-lang/crates.io-index" 1615 | dependencies = [ 1616 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1617 | "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", 1618 | "winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 1619 | ] 1620 | 1621 | [[package]] 1622 | name = "tiny-keccak" 1623 | version = "1.4.2" 1624 | source = "registry+https://github.com/rust-lang/crates.io-index" 1625 | dependencies = [ 1626 | "crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1627 | ] 1628 | 1629 | [[package]] 1630 | name = "tk-listen" 1631 | version = "0.2.0" 1632 | source = "registry+https://github.com/rust-lang/crates.io-index" 1633 | dependencies = [ 1634 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1635 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1636 | "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 1637 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1638 | ] 1639 | 1640 | [[package]] 1641 | name = "tokio" 1642 | version = "0.1.13" 1643 | source = "registry+https://github.com/rust-lang/crates.io-index" 1644 | dependencies = [ 1645 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1646 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1647 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1648 | "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1649 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1650 | "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 1651 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1652 | "tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 1653 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1654 | "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1655 | "tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1656 | "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1657 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1658 | "tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1659 | "tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", 1660 | ] 1661 | 1662 | [[package]] 1663 | name = "tokio-codec" 1664 | version = "0.1.1" 1665 | source = "registry+https://github.com/rust-lang/crates.io-index" 1666 | dependencies = [ 1667 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1668 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1669 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1670 | ] 1671 | 1672 | [[package]] 1673 | name = "tokio-core" 1674 | version = "0.1.17" 1675 | source = "registry+https://github.com/rust-lang/crates.io-index" 1676 | dependencies = [ 1677 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1678 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1679 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1680 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1681 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1682 | "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1683 | "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 1684 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1685 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1686 | "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1687 | "tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1688 | ] 1689 | 1690 | [[package]] 1691 | name = "tokio-current-thread" 1692 | version = "0.1.4" 1693 | source = "registry+https://github.com/rust-lang/crates.io-index" 1694 | dependencies = [ 1695 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1696 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1697 | ] 1698 | 1699 | [[package]] 1700 | name = "tokio-dns-unofficial" 1701 | version = "0.4.0" 1702 | source = "registry+https://github.com/rust-lang/crates.io-index" 1703 | dependencies = [ 1704 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1705 | "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1706 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1707 | "tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 1708 | ] 1709 | 1710 | [[package]] 1711 | name = "tokio-executor" 1712 | version = "0.1.5" 1713 | source = "registry+https://github.com/rust-lang/crates.io-index" 1714 | dependencies = [ 1715 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1716 | ] 1717 | 1718 | [[package]] 1719 | name = "tokio-fs" 1720 | version = "0.1.4" 1721 | source = "registry+https://github.com/rust-lang/crates.io-index" 1722 | dependencies = [ 1723 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1724 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1725 | "tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1726 | ] 1727 | 1728 | [[package]] 1729 | name = "tokio-io" 1730 | version = "0.1.10" 1731 | source = "registry+https://github.com/rust-lang/crates.io-index" 1732 | dependencies = [ 1733 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1734 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1735 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1736 | ] 1737 | 1738 | [[package]] 1739 | name = "tokio-reactor" 1740 | version = "0.1.7" 1741 | source = "registry+https://github.com/rust-lang/crates.io-index" 1742 | dependencies = [ 1743 | "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1744 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1745 | "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1746 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1747 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1748 | "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1749 | "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", 1750 | "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 1751 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1752 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1753 | ] 1754 | 1755 | [[package]] 1756 | name = "tokio-stdin-stdout" 1757 | version = "0.1.5" 1758 | source = "registry+https://github.com/rust-lang/crates.io-index" 1759 | dependencies = [ 1760 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1761 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1762 | ] 1763 | 1764 | [[package]] 1765 | name = "tokio-tcp" 1766 | version = "0.1.2" 1767 | source = "registry+https://github.com/rust-lang/crates.io-index" 1768 | dependencies = [ 1769 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1770 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1771 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1772 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1773 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1774 | "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1775 | ] 1776 | 1777 | [[package]] 1778 | name = "tokio-threadpool" 1779 | version = "0.1.9" 1780 | source = "registry+https://github.com/rust-lang/crates.io-index" 1781 | dependencies = [ 1782 | "crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1783 | "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1784 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1785 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1786 | "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 1787 | "rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", 1788 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1789 | ] 1790 | 1791 | [[package]] 1792 | name = "tokio-timer" 1793 | version = "0.2.8" 1794 | source = "registry+https://github.com/rust-lang/crates.io-index" 1795 | dependencies = [ 1796 | "crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1797 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1798 | "slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", 1799 | "tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1800 | ] 1801 | 1802 | [[package]] 1803 | name = "tokio-tls" 1804 | version = "0.2.0" 1805 | source = "registry+https://github.com/rust-lang/crates.io-index" 1806 | dependencies = [ 1807 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1808 | "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1809 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1810 | ] 1811 | 1812 | [[package]] 1813 | name = "tokio-udp" 1814 | version = "0.1.3" 1815 | source = "registry+https://github.com/rust-lang/crates.io-index" 1816 | dependencies = [ 1817 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1818 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1819 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1820 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1821 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1822 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1823 | "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1824 | ] 1825 | 1826 | [[package]] 1827 | name = "tokio-uds" 1828 | version = "0.2.4" 1829 | source = "registry+https://github.com/rust-lang/crates.io-index" 1830 | dependencies = [ 1831 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1832 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1833 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1834 | "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", 1835 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1836 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1837 | "mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)", 1838 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1839 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1840 | "tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1841 | ] 1842 | 1843 | [[package]] 1844 | name = "traitobject" 1845 | version = "0.1.0" 1846 | source = "registry+https://github.com/rust-lang/crates.io-index" 1847 | 1848 | [[package]] 1849 | name = "twofish" 1850 | version = "0.1.0" 1851 | source = "registry+https://github.com/rust-lang/crates.io-index" 1852 | dependencies = [ 1853 | "block-cipher-trait 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", 1854 | "byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1855 | "opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1856 | ] 1857 | 1858 | [[package]] 1859 | name = "typeable" 1860 | version = "0.1.2" 1861 | source = "registry+https://github.com/rust-lang/crates.io-index" 1862 | 1863 | [[package]] 1864 | name = "typenum" 1865 | version = "1.10.0" 1866 | source = "registry+https://github.com/rust-lang/crates.io-index" 1867 | 1868 | [[package]] 1869 | name = "unicase" 1870 | version = "1.4.2" 1871 | source = "registry+https://github.com/rust-lang/crates.io-index" 1872 | dependencies = [ 1873 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1874 | ] 1875 | 1876 | [[package]] 1877 | name = "unicode-bidi" 1878 | version = "0.3.4" 1879 | source = "registry+https://github.com/rust-lang/crates.io-index" 1880 | dependencies = [ 1881 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1882 | ] 1883 | 1884 | [[package]] 1885 | name = "unicode-normalization" 1886 | version = "0.1.7" 1887 | source = "registry+https://github.com/rust-lang/crates.io-index" 1888 | 1889 | [[package]] 1890 | name = "unicode-xid" 1891 | version = "0.1.0" 1892 | source = "registry+https://github.com/rust-lang/crates.io-index" 1893 | 1894 | [[package]] 1895 | name = "unreachable" 1896 | version = "1.0.0" 1897 | source = "registry+https://github.com/rust-lang/crates.io-index" 1898 | dependencies = [ 1899 | "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 1900 | ] 1901 | 1902 | [[package]] 1903 | name = "unsigned-varint" 1904 | version = "0.2.1" 1905 | source = "registry+https://github.com/rust-lang/crates.io-index" 1906 | dependencies = [ 1907 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1908 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1909 | ] 1910 | 1911 | [[package]] 1912 | name = "untrusted" 1913 | version = "0.5.1" 1914 | source = "registry+https://github.com/rust-lang/crates.io-index" 1915 | 1916 | [[package]] 1917 | name = "url" 1918 | version = "1.7.2" 1919 | source = "registry+https://github.com/rust-lang/crates.io-index" 1920 | dependencies = [ 1921 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1922 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1923 | "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1924 | ] 1925 | 1926 | [[package]] 1927 | name = "vcpkg" 1928 | version = "0.2.6" 1929 | source = "registry+https://github.com/rust-lang/crates.io-index" 1930 | 1931 | [[package]] 1932 | name = "version_check" 1933 | version = "0.1.5" 1934 | source = "registry+https://github.com/rust-lang/crates.io-index" 1935 | 1936 | [[package]] 1937 | name = "void" 1938 | version = "1.0.2" 1939 | source = "registry+https://github.com/rust-lang/crates.io-index" 1940 | 1941 | [[package]] 1942 | name = "websocket" 1943 | version = "0.21.1" 1944 | source = "registry+https://github.com/rust-lang/crates.io-index" 1945 | dependencies = [ 1946 | "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", 1947 | "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", 1948 | "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", 1949 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 1950 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 1951 | "hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", 1952 | "native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1953 | "rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 1954 | "sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", 1955 | "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 1956 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 1957 | "tokio-tls 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 1958 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1959 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1960 | ] 1961 | 1962 | [[package]] 1963 | name = "winapi" 1964 | version = "0.2.8" 1965 | source = "registry+https://github.com/rust-lang/crates.io-index" 1966 | 1967 | [[package]] 1968 | name = "winapi" 1969 | version = "0.3.6" 1970 | source = "registry+https://github.com/rust-lang/crates.io-index" 1971 | dependencies = [ 1972 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1973 | "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1974 | ] 1975 | 1976 | [[package]] 1977 | name = "winapi-build" 1978 | version = "0.1.1" 1979 | source = "registry+https://github.com/rust-lang/crates.io-index" 1980 | 1981 | [[package]] 1982 | name = "winapi-i686-pc-windows-gnu" 1983 | version = "0.4.0" 1984 | source = "registry+https://github.com/rust-lang/crates.io-index" 1985 | 1986 | [[package]] 1987 | name = "winapi-x86_64-pc-windows-gnu" 1988 | version = "0.4.0" 1989 | source = "registry+https://github.com/rust-lang/crates.io-index" 1990 | 1991 | [[package]] 1992 | name = "ws2_32-sys" 1993 | version = "0.2.1" 1994 | source = "registry+https://github.com/rust-lang/crates.io-index" 1995 | dependencies = [ 1996 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1997 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1998 | ] 1999 | 2000 | [[package]] 2001 | name = "yamux" 2002 | version = "0.1.2" 2003 | source = "registry+https://github.com/rust-lang/crates.io-index" 2004 | dependencies = [ 2005 | "bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", 2006 | "futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)", 2007 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 2008 | "nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 2009 | "parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", 2010 | "quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 2011 | "tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 2012 | "tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", 2013 | ] 2014 | 2015 | [metadata] 2016 | "checksum aes-ctr 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f65958ff3692041c36fc009261ccd63f24cd8e0dc1164266f068c2387e8b4e4f" 2017 | "checksum aes-soft 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "67cc03b0a090a05cb01e96998a01905d7ceedce1bc23b756c0bb7faa0682ccb1" 2018 | "checksum aesni 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6810b7fb9f2bb4f76f05ac1c170b8dde285b6308955dc3afd89710268c958d9e" 2019 | "checksum aio-limited 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7f10b352bc3fc08ae24dc5d2d3ddcac153678533986122dc283d747b12071000" 2020 | "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" 2021 | "checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc" 2022 | "checksum asn1_der 0.5.10 (registry+https://github.com/rust-lang/crates.io-index)" = "766afdc5c6d7c15de1abe4c9c15e360be3aa972c363ba5b606be3c4271235886" 2023 | "checksum base-x 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "5cda5d0f5584d129112ad8bf4775b9fd2b9f1e30738c7b1a25314ba2244d6a51" 2024 | "checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" 2025 | "checksum bigint 4.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ebecac13b3c745150d7b6c3ea7572d372f09d627c2077e893bf26c5c7f70d282" 2026 | "checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" 2027 | "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 2028 | "checksum blake2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "91721a6330935673395a0607df4d49a9cb90ae12d259f1b3e0a3f6e1d486872e" 2029 | "checksum block-buffer 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab" 2030 | "checksum block-buffer 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "47dc7795bae66723a5ee26b79eea4c398a5395dafbaaa81821730bd318ff718f" 2031 | "checksum block-cipher-trait 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "370424437b9459f3dfd68428ed9376ddfe03d8b70ede29cc533b3557df186ab4" 2032 | "checksum block-padding 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fc4358306e344bf9775d0197fd00d2603e5afb0771bb353538630f022068ea3" 2033 | "checksum bs58 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0de79cfb98e7aa9988188784d8664b4b5dad6eaaa0863b91d9a4ed871d4f7a42" 2034 | "checksum byte-tools 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" 2035 | "checksum byte-tools 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "980479e6fde23246dfb54d47580d66b4e99202e7579c5eaa9fe10ecb5ebd2182" 2036 | "checksum byteorder 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96c8b41881888cc08af32d47ac4edd52bc7fa27fef774be47a92443756451304" 2037 | "checksum byteorder 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0fc10e8cc6b2580fda3f36eb6dc5316657f812a3df879a44a66fc9f0fdbc4855" 2038 | "checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" 2039 | "checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa" 2040 | "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" 2041 | "checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4" 2042 | "checksum clear_on_drop 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "97276801e127ffb46b66ce23f35cc96bd454fa311294bced4bbace7baa8b1d17" 2043 | "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 2044 | "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" 2045 | "checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980" 2046 | "checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" 2047 | "checksum crossbeam-deque 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f739f8c5363aca78cfb059edf753d8f0d36908c348f3d8d1503f03d8b75d9cf3" 2048 | "checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3" 2049 | "checksum crossbeam-epoch 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "927121f5407de9956180ff5e936fe3cf4324279280001cd56b669d28ee7e9150" 2050 | "checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8" 2051 | "checksum crossbeam-utils 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2760899e32a1d58d5abb31129f8fae5de75220bc2176e77ff7c627ae45c918d9" 2052 | "checksum crossbeam-utils 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e07fc155212827475223f0bcfae57e945e694fc90950ddf3f6695bbfd5555c72" 2053 | "checksum crunchy 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "a2f4a431c5c9f662e1200b7c7f02c34e91361150e382089a8f2dec3ba680cbda" 2054 | "checksum crypto-mac 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7afa06d05a046c7a47c3a849907ec303504608c927f4e85f7bfff22b7180d971" 2055 | "checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" 2056 | "checksum ctr 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4b669fcb8e20124db86dbd9b01e74ec0e9e420e65381311ce5249864fc7ff0c0" 2057 | "checksum cuckoofilter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd43f7cfaffe0a386636a10baea2ee05cc50df3b77bea4a456c9572a939bf1f" 2058 | "checksum curve25519-dalek 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3eacf6ff1b911e3170a8c400b402e10c86dc3cb166bd69034ebbc2b785fea4c2" 2059 | "checksum data-encoding 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "67df0571a74bf0d97fb8b2ed22abdd9a48475c96bd327db968b7d9cace99655e" 2060 | "checksum digest 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)" = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" 2061 | "checksum digest 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f47366984d3ad862010e22c7ce81a7dbcaebbdfb37241a620f8b6596ee135c" 2062 | "checksum discard 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0" 2063 | "checksum dns-parser 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" 2064 | "checksum ed25519-dalek 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cd66d8a16ef71c23cf5eeb2140d8d3cd293457c6c7fd6804b593397a933fcf1e" 2065 | "checksum etrace 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f17311e68ea07046ee809b8513f6c259518bc10173681d98c21f8c3926f56f40" 2066 | "checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7" 2067 | "checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" 2068 | "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 2069 | "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 2070 | "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 2071 | "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 2072 | "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 2073 | "checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b" 2074 | "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" 2075 | "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" 2076 | "checksum generic-array 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3c0f28c2f5bfb5960175af447a2da7c18900693738343dc896ffbcabd9839592" 2077 | "checksum generic-array 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" 2078 | "checksum hmac 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "733e1b3ac906631ca01ebb577e9bb0f5e37a454032b9036b5eaea4013ed6f99a" 2079 | "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" 2080 | "checksum hyper 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "df0caae6b71d266b91b4a83111a61d2b94ed2e2bea024c532b933dcff867e58c" 2081 | "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 2082 | "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" 2083 | "checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b" 2084 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 2085 | "checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" 2086 | "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" 2087 | "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" 2088 | "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 2089 | "checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311" 2090 | "checksum libp2p 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2091 | "checksum libp2p-core 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2092 | "checksum libp2p-core-derive 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2093 | "checksum libp2p-dns 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2094 | "checksum libp2p-floodsub 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2095 | "checksum libp2p-identify 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2096 | "checksum libp2p-kad 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2097 | "checksum libp2p-mdns 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2098 | "checksum libp2p-mplex 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2099 | "checksum libp2p-ping 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2100 | "checksum libp2p-plaintext 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2101 | "checksum libp2p-ratelimit 0.1.1 (git+https://github.com/libp2p/rust-libp2p)" = "" 2102 | "checksum libp2p-secio 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2103 | "checksum libp2p-tcp 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2104 | "checksum libp2p-uds 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2105 | "checksum libp2p-websocket 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2106 | "checksum libp2p-yamux 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2107 | "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" 2108 | "checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" 2109 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 2110 | "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 2111 | "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" 2112 | "checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" 2113 | "checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" 2114 | "checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125" 2115 | "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" 2116 | "checksum multistream-select 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2117 | "checksum names 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ef320dab323286b50fb5cdda23f61c796a72a89998ab565ca32525c5c556f2da" 2118 | "checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2" 2119 | "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" 2120 | "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" 2121 | "checksum nohash-hasher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0d138afcce92d219ccb6eb53d9b1e8a96ac0d633cfd3c53cd9856d96d1741bb8" 2122 | "checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30" 2123 | "checksum opaque-debug 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d620c9c26834b34f039489ac0dfdb12c7ac15ccaf818350a64c9b5334a452ad7" 2124 | "checksum opaque-debug 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "51ecbcb821e1bd256d456fe858aaa7f380b63863eab2eb86eee1bd9f33dd6682" 2125 | "checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" 2126 | "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" 2127 | "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" 2128 | "checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" 2129 | "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" 2130 | "checksum parity-multiaddr 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2131 | "checksum parity-multihash 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2132 | "checksum parking_lot 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d4d05f1349491390b1730afba60bb20d55761bef489a954546b58b4b34e1e2ac" 2133 | "checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" 2134 | "checksum parking_lot 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9723236a9525c757d9725b993511e3fc941e33f27751942232f0058298297edf" 2135 | "checksum parking_lot_core 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "4db1a8ccf734a7bce794cc19b3df06ed87ab2f3907036b693c68f56b4d4537fa" 2136 | "checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" 2137 | "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" 2138 | "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 2139 | "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" 2140 | "checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09" 2141 | "checksum protobuf 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cbd08d128db199b1c6bb662e343d7d1a8f6d0060b411675766d88e5146a4bb38" 2142 | "checksum quick-error 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb6ccf8db7bbcb9c2eae558db5ab4f3da1c2a87e4e597ed394726bc8ea6ca1d" 2143 | "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" 2144 | "checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c" 2145 | "checksum rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "15a732abf9d20f0ad8eeb6f909bf6868722d9a06e1e50802b6a70351f40b4eb1" 2146 | "checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd" 2147 | "checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c" 2148 | "checksum rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae9d223d52ae411a33cf7e54ec6034ec165df296ccd23533d671a28252b6f66a" 2149 | "checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a" 2150 | "checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372" 2151 | "checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db" 2152 | "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 2153 | "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 2154 | "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" 2155 | "checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3" 2156 | "checksum rayon 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b614fe08b6665cb9a231d07ac1364b0ef3cb3698f1239ee0c4c3a88a524f54c8" 2157 | "checksum rayon-core 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b055d1e92aba6877574d8fe604a63c8b5df60f60e5982bf7ccbb1338ea527356" 2158 | "checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d" 2159 | "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" 2160 | "checksum ring 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6f7d28b30a72c01b458428e0ae988d4149c20d902346902be881e3edc4bb325c" 2161 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 2162 | "checksum rw-stream-sink 0.1.0 (git+https://github.com/libp2p/rust-libp2p)" = "" 2163 | "checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7" 2164 | "checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9" 2165 | "checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" 2166 | "checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" 2167 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" 2168 | "checksum secp256k1 0.11.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e22659b295bc209921ddd4e5379ceaf194fcfd19eb515051b7ba30ce47d8063a" 2169 | "checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0" 2170 | "checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" 2171 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 2172 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 2173 | "checksum serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "6fa52f19aee12441d5ad11c9a00459122bd8f98707cadf9778c540674f1935b6" 2174 | "checksum serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "96a7f9496ac65a2db5929afa087b54f8fc5008dcfbe48a8874ed20049b0d6154" 2175 | "checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" 2176 | "checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d" 2177 | "checksum sha2 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9eb6be24e4c23a84d7184280d2722f7f2731fcdd4a9d886efbfe4413e4847ea0" 2178 | "checksum sha2 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b4d8bfd0e469f417657573d8451fb33d16cfe0989359b93baf3a1ffc639543d" 2179 | "checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d" 2180 | "checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db" 2181 | "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" 2182 | "checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" 2183 | "checksum stdweb 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "22203527a18dc1c5c83bbd247fb005f5877d040783b6626571d6b7ed7a6f5e75" 2184 | "checksum stdweb-derive 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0e21ebd9179de08f2300a65454268a17ea3de204627458588c84319c4def3930" 2185 | "checksum stdweb-internal-macros 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bcbc9155af9606d44c740197d7d6672b49c4ee93a176c7cecde8b49322677604" 2186 | "checksum stdweb-internal-runtime 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b74fe9de4c0d07e91987f4d798b95f27f3cb7769fbc222fa951fa386908297b5" 2187 | "checksum stream-cipher 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "30dc6118470d69ce0fdcf7e6f95e95853f7f4f72f80d835d4519577c323814ab" 2188 | "checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" 2189 | "checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" 2190 | "checksum tempfile 3.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "7e91405c14320e5c79b3d148e1c86f40749a36e490642202a31689cb1a3452b2" 2191 | "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" 2192 | "checksum tiny-keccak 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e9175261fbdb60781fcd388a4d6cc7e14764a2b629a7ad94abb439aed223a44f" 2193 | "checksum tk-listen 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dec7ba6a80b7695fc2abb21af18bed445a362ffd80b64704771ce142d6d2151d" 2194 | "checksum tokio 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "a7817d4c98cc5be21360b3b37d6036fe9b7aefa5b7a201b7b16ff33423822f7d" 2195 | "checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" 2196 | "checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" 2197 | "checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" 2198 | "checksum tokio-dns-unofficial 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "82c65483db54eb91b4ef3a9389a3364558590faf30ce473141707c0e16fda975" 2199 | "checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde" 2200 | "checksum tokio-fs 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "60ae25f6b17d25116d2cba342083abe5255d3c2c79cb21ea11aa049c53bf7c75" 2201 | "checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21" 2202 | "checksum tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "502b625acb4ee13cbb3b90b8ca80e0addd263ddacf6931666ef751e610b07fb5" 2203 | "checksum tokio-stdin-stdout 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1fc480d205310fa52f8ea65e7f9443568b6b342f326e86431d2aeb176d720c17" 2204 | "checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912" 2205 | "checksum tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "56c5556262383032878afad66943926a1d1f0967f17e94bd7764ceceb3b70e7f" 2206 | "checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8" 2207 | "checksum tokio-tls 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e53fdbf3156f588be1676022fe794232b24922d426e8c14f4e46891c1e31c440" 2208 | "checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" 2209 | "checksum tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "99ce87382f6c1a24b513a72c048b2c8efe66cb5161c9061d00bee510f08dc168" 2210 | "checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" 2211 | "checksum twofish 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1eef327f05b0d0ec1b9d7d119d8f4d9f602ceee37e0540aff8071e8e66c2e22e" 2212 | "checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" 2213 | "checksum typenum 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "612d636f949607bdf9b123b4a6f6d966dedf3ff669f7f045890d3a4a73948169" 2214 | "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" 2215 | "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 2216 | "checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25" 2217 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 2218 | "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" 2219 | "checksum unsigned-varint 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5fb8abc4b7d8158bdfbbaaccc35331ed3c30c2673e99000d7ae665a2eb6576f4" 2220 | "checksum untrusted 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f392d7819dbe58833e26872f5f6f0d68b7bbbe90fc3667e98731c4a15ad9a7ae" 2221 | "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 2222 | "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" 2223 | "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 2224 | "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 2225 | "checksum websocket 0.21.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c9faed2bff8af2ea6b9f8b917d3d00b467583f6781fe3def174a9e33c879703" 2226 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 2227 | "checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0" 2228 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 2229 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 2230 | "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 2231 | "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 2232 | "checksum yamux 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4f57faab6e24774f085f868c2c01c0a03119038a3952106e1c060c322e73c71c" 2233 | -------------------------------------------------------------------------------- /pubsub/rust/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "floodsub-example" 3 | version = "0.0.1" 4 | authors = ["Rust Libp2p "] 5 | edition = "2018" 6 | 7 | [dependencies] 8 | futures = "0.1" 9 | libp2p = { git = "https://github.com/libp2p/rust-libp2p" } 10 | names = "0.11" 11 | tokio = "0.1" 12 | tokio-stdin-stdout = "0.1" 13 | -------------------------------------------------------------------------------- /pubsub/rust/Makefile.not_used: -------------------------------------------------------------------------------- 1 | SRC = src/main.rs 2 | BIN = $(SRC:.rs=) 3 | 4 | all: $(SRC) 5 | cargo build 6 | 7 | run: 8 | RUST_BACKTRACE=1 cargo run 9 | -------------------------------------------------------------------------------- /pubsub/rust/src/main.rs: -------------------------------------------------------------------------------- 1 | // Copyright 2018 Parity Technologies (UK) Ltd. 2 | // 3 | // Permission is hereby granted, free of charge, to any person obtaining a 4 | // copy of this software and associated documentation files (the "Software"), 5 | // to deal in the Software without restriction, including without limitation 6 | // the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | // and/or sell copies of the Software, and to permit persons to whom the 8 | // Software is furnished to do so, subject to the following conditions: 9 | // 10 | // The above copyright notice and this permission notice shall be included in 11 | // all copies or substantial portions of the Software. 12 | // 13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14 | // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 18 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19 | // DEALINGS IN THE SOFTWARE. 20 | use futures::prelude::*; 21 | use libp2p::{ 22 | NetworkBehaviour, Transport, 23 | core::upgrade::{self, OutboundUpgradeExt}, 24 | secio, 25 | mplex, 26 | multiaddr, 27 | tokio_codec::{FramedRead, LinesCodec} 28 | }; 29 | use std::env; 30 | 31 | fn main() { 32 | 33 | // Create a random PeerId 34 | let local_key = secio::SecioKeyPair::ed25519_generated().unwrap(); 35 | let local_pub_key = local_key.to_public_key(); 36 | 37 | // Set up a an encrypted DNS-enabled TCP Transport over the Mplex protocol 38 | let transport = libp2p::CommonTransport::new() 39 | .with_upgrade(secio::SecioConfig::new(local_key)) 40 | .and_then(move |out, _| { 41 | let peer_id = out.remote_key.into_peer_id(); 42 | let upgrade = mplex::MplexConfig::new().map_outbound(move |muxer| (peer_id, muxer) ); 43 | upgrade::apply_outbound(out.stream, upgrade).map_err(|e| e.into_io_error()) 44 | }); 45 | 46 | // Create a Floodsub topic 47 | let floodsub_topic = libp2p::floodsub::TopicBuilder::new("libp2p-demo-chat").build(); 48 | 49 | // We create a custom network behaviour that combines floodsub and mDNS. 50 | // In the future, we want to improve libp2p to make this easier to do. 51 | #[derive(NetworkBehaviour)] 52 | struct MyBehaviour { 53 | #[behaviour(handler = "on_floodsub")] 54 | floodsub: libp2p::floodsub::Floodsub, 55 | mdns: libp2p::mdns::Mdns, 56 | } 57 | 58 | impl MyBehaviour { 59 | // Called when `floodsub` produces an event. 60 | fn on_floodsub(&mut self, message: as libp2p::core::swarm::NetworkBehaviour>::OutEvent) 61 | where TSubstream: libp2p::tokio_io::AsyncRead + libp2p::tokio_io::AsyncWrite 62 | { 63 | println!("{:?}: {}", &message.source,String::from_utf8_lossy(&message.data)); 64 | } 65 | } 66 | 67 | // Create a Swarm to manage peers and events 68 | let mut swarm = { 69 | let mut behaviour = MyBehaviour { 70 | floodsub: libp2p::floodsub::Floodsub::new(local_pub_key.clone().into_peer_id()), 71 | mdns: libp2p::mdns::Mdns::new().expect("Failed to create mDNS service"), 72 | }; 73 | 74 | behaviour.floodsub.subscribe(floodsub_topic.clone()); 75 | libp2p::Swarm::new(transport, behaviour, libp2p::core::topology::MemoryTopology::empty(), local_pub_key) 76 | }; 77 | 78 | // We dial a bootstrap node for the nodes outside of the reach of mDNS. 79 | libp2p::Swarm::dial_addr(&mut swarm, "/ip4/127.0.0.1/tcp/5555".parse().unwrap()).unwrap(); 80 | 81 | // Listen on all interfaces. 82 | let port = if let Some(port) = env::args().nth(1) { 83 | port.parse().expect("Failed to parse port number") 84 | } else { 85 | 0u16 86 | }; 87 | 88 | let address = libp2p::Swarm::listen_on(&mut swarm, multiaddr![Ip4([0, 0, 0, 0]), Tcp(port)]).unwrap(); 89 | println!("Now listening on {:?}", address); 90 | 91 | // Read full lines from stdin 92 | println!("Type your message to send to remote hosts:"); 93 | let stdin = tokio_stdin_stdout::stdin(0); 94 | let mut framed_stdin = FramedRead::new(stdin, LinesCodec::new()).fuse(); 95 | 96 | // Kick it off 97 | tokio::run(futures::future::poll_fn(move || -> Result<_, ()> { 98 | loop { 99 | match framed_stdin.poll().expect("Error while polling stdin") { 100 | Async::Ready(Some(line)) => { 101 | let to_send = format!("{}", line); 102 | println!("sending: {}", line); 103 | swarm.floodsub.publish(&floodsub_topic, to_send.as_bytes()) 104 | }, 105 | Async::Ready(None) => break, // Stdin closed 106 | Async::NotReady => break, 107 | }; 108 | } 109 | 110 | loop { 111 | match swarm.poll().expect("Error while polling swarm") { 112 | Async::Ready(Some(_)) => { 113 | }, 114 | Async::Ready(None) | Async::NotReady => break, 115 | } 116 | } 117 | 118 | Ok(Async::NotReady) 119 | })); 120 | } 121 | -------------------------------------------------------------------------------- /pubsub/rust/src/test-rsa-private-key.pk8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libp2p/demo-multi-lang/ebed1474ab0cfe8db1100fefc2324b1d7e1bf839/pubsub/rust/src/test-rsa-private-key.pk8 -------------------------------------------------------------------------------- /pubsub/rust/src/test-rsa-public-key.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libp2p/demo-multi-lang/ebed1474ab0cfe8db1100fefc2324b1d7e1bf839/pubsub/rust/src/test-rsa-public-key.der -------------------------------------------------------------------------------- /pubsub/test/terminator/config: -------------------------------------------------------------------------------- 1 | [global_config] 2 | suppress_multiple_term_dialog = True 3 | [keybindings] 4 | [layouts] 5 | [[default]] 6 | [[[child1]]] 7 | command = "" 8 | parent = window0 9 | type = Terminal 10 | [[[window0]]] 11 | parent = "" 12 | type = Window 13 | [[FourByFour]] 14 | [[[child0]]] 15 | fullscreen = False 16 | last_active_term = e05bb5f2-7bce-41c4-a19b-26be884919df 17 | last_active_window = True 18 | maximised = True 19 | order = 0 20 | parent = "" 21 | position = 71:55 22 | size = 734, 451 23 | title = PubSub Demo (Go, JS, Rust) 24 | type = Window 25 | [[[child1]]] 26 | order = 0 27 | parent = child0 28 | position = 223 29 | ratio = 0.5 30 | type = VPaned 31 | [[[child2]]] 32 | order = 0 33 | parent = child1 34 | position = 365 35 | ratio = 0.500685871056 36 | type = HPaned 37 | [[[child5]]] 38 | order = 1 39 | parent = child1 40 | position = 365 41 | ratio = 0.500685871056 42 | type = HPaned 43 | [[[terminal3]]] 44 | profile = default 45 | command = 'pushd .. ; ./pubsub-interop -b ../util/private_key.bin.bootstrapper.Wa; popd ; bash' 46 | order = 0 47 | parent = child2 48 | type = Terminal 49 | uuid = e05bb5f2-7bce-41c4-a19b-26be884919df 50 | [[[terminal4]]] 51 | profile = default 52 | command = 'sleep 1 ; pushd .. ; ./pubsub-interop ../util/private_key.bin.peer.Sk; popd ; bash' 53 | order = 1 54 | parent = child2 55 | type = Terminal 56 | uuid = a551b167-2da7-4994-ac12-5063852055da 57 | [[[terminal6]]] 58 | profile = default 59 | command = 'sleep 1 ; pushd ../js ; node index.js /ip4/127.0.0.1/tcp/5555/ipfs/QmehVYruznbyDZuHBV4vEHESpDevMoAovET6aJ9oRuEzWa; popd ; bash' 60 | order = 0 61 | parent = child5 62 | type = Terminal 63 | uuid = 8358280f-49da-4a74-bb27-7a3c7e472fe9 64 | [[[terminal7]]] 65 | profile = default 66 | command = 'sleep 1 ; pushd ../rust ; cargo run; popd ; bash' 67 | order = 1 68 | parent = child5 69 | type = Terminal 70 | uuid = 2e086797-fccb-4548-8410-9267c1a4ead8 71 | [plugins] 72 | [profiles] 73 | [[default]] 74 | cursor_color = "#aaaaaa" 75 | -------------------------------------------------------------------------------- /pubsub/test/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SELF="$(pwd)/$0" 4 | DIR=`dirname $SELF` 5 | 6 | pushd $DIR 7 | XDG_CONFIG_HOME=. terminator --layout=FourByFour 8 | popd 9 | -------------------------------------------------------------------------------- /util/Makefile: -------------------------------------------------------------------------------- 1 | SRC = private-key-gen.go 2 | BIN = $(SRC:.go=) 3 | 4 | all: $(SRC) 5 | go build -o $(BIN) $(SRC) 6 | -------------------------------------------------------------------------------- /util/private-key-gen: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libp2p/demo-multi-lang/ebed1474ab0cfe8db1100fefc2324b1d7e1bf839/util/private-key-gen -------------------------------------------------------------------------------- /util/private-key-gen.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "io/ioutil" 6 | "os" 7 | 8 | _ "github.com/ipfs/go-cid" 9 | "github.com/libp2p/go-libp2p-crypto" 10 | _ "github.com/libp2p/go-libp2p-host" 11 | _ "github.com/libp2p/go-libp2p-kad-dht" 12 | _ "github.com/libp2p/go-libp2p-kad-dht/opts" 13 | _ "github.com/libp2p/go-libp2p-net" 14 | ) 15 | 16 | func main() { 17 | var priv crypto.PrivKey 18 | priv, _, err := crypto.GenerateKeyPair(crypto.RSA, 4096) 19 | if err != nil { 20 | fmt.Println("crypto.GenerateKeyPair: failed: %v", err) 21 | panic(err) 22 | } 23 | 24 | var privBytes []byte 25 | privBytes, err = crypto.MarshalPrivateKey(priv) 26 | if err != nil { 27 | fmt.Println("crypto.MarshalPrivateKey: failed: %v", err) 28 | panic(err) 29 | } 30 | 31 | // Print the marshalled bytes 32 | //n := len(privBytes) 33 | //s := string(privBytes[:n]) 34 | //fmt.Printf("*** <%s> (n=%v)\n", s, n) 35 | 36 | ioutil.WriteFile("private_key.bin", privBytes, os.ModePerm) 37 | if err != nil { 38 | fmt.Println("ioutil.WriteFile: failed: %v", err) 39 | panic(err) 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /util/private_key.bin.bootstrapper.Wa: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libp2p/demo-multi-lang/ebed1474ab0cfe8db1100fefc2324b1d7e1bf839/util/private_key.bin.bootstrapper.Wa -------------------------------------------------------------------------------- /util/private_key.bin.peer.Sk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/libp2p/demo-multi-lang/ebed1474ab0cfe8db1100fefc2324b1d7e1bf839/util/private_key.bin.peer.Sk --------------------------------------------------------------------------------