Giter Club home page Giter Club logo

crux's Introduction

Crux

Quorum Slack Build Status Go Report Card

Data privacy for Quorum.

Crux is a secure enclave for Quorum written in Golang.

It is a replacement for Constellation, the secure enclave component of Quorum, written in Haskell.

Getting started

4-node Quorum network with Crux

The best way to start is to run the Quorum-Crux Docker image. This image runs a 4 node Quorum network using Crux as the secure enclave communicating over gRPC.

git clone https://github.com/blk-io/crux.git
docker-compose -f docker/quorum-crux/docker-compose.yaml up

Where the node details are as follows:

Name Quorum node address Account key Crux node key
quorum1 http://localhost:22001 0xed9d02e382b34818e88b88a309c7fe71e65f419d BULeR8JyUWhiuuCMU/HLA0Q5pzkYT+cHII3ZKBey3Bo=
quorum2 http://localhost:22002 0xca843569e3427144cead5e4d5999a3d0ccf92b8e QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc=
quorum3 http://localhost:22003 0x0fbdc686b912d7722dc86510934589e0aaf3b55a 1iTZde/ndBHvzhcl7V68x44Vx7pl8nwx9LqnM/AfJUg=
quorum4 http://localhost:22004 0x9186eb3d20cbd1f5f992a950d808c4495153abd5 oNspPPgszVUFw0qmGFfWwh1uxVUXgvBxleXORHj07g8=

local docker

If you want to make changes to e.g. istanbul-start.sh then build the docker image locally:

docker-compose -f docker-compose-local.yaml up --build

2-node Crux only-network

2 Crux nodes example is simple Docker image to just bring up 2 Crux nodes which communicate with each other.

git clone https://github.com/blk-io/crux.git
docker-compose -f docker/crux/docker-compose.yaml up

Where the Crux node keys are the same as quorum1 and quorum2 above, and are listening on ports 9001 and 9002 for gRPC requests.

Vagrant VM

For those of you who are unable to use Docker, you can run the
7 Nodes Quorum example which is an updated version of JP Morgan's Quorum 7 Nodes example using Crux as the secure enclave.

Download the latest binary

The latest binaries for different platforms are available on the release page.

Generating keys

Each Crux instance requires at least one key-pair to be associated with it. The key-pair is used to ensure transaction privacy. Crux uses the NaCl cryptography library.

You use the --generate-keys argument to generate a new key-pair with Crux:

crux --generate-keys myKey

This will produce two files, named myKey.key and myKey.pub reflecting the private and public keys respectively.

Core configuration

At a minimum, Crux requires the following configuration parameters. This tells the Crux instance what port it is running on and what ip address it should advertise to other peers.

Details of at least one key-pair must be provided for the Crux node to store requests on behalf of.

crux --url=http://127.0.0.1:9001/ --port=9001 --workdir=crux --publickeys=tm.pub --privatekeys=tm.key --othernodes=https://127.0.0.1:9001/

Build instructions

If you'd prefer to run just a client, you can build using the below instructions and run as per the below.

git clone https://github.com/blk-io/crux.git
cd crux
make setup && make
./bin/crux

Usage of ./bin/crux:
      crux.config               Optional config file
      --alwayssendto string     List of public keys for nodes to send all transactions too
      --berkeleydb              Use Berkeley DB for working with an existing Constellation data store [experimental]
      --generate-keys string    Generate a new keypair
      --grpc                    Use gRPC server (default true)
      --grpcport int            The local port to listen on for JSON extensions of gRPC (default -1)
      --networkinterface string The network interface to bind the server to (default "localhost")
      --othernodes string       "Boot nodes" to connect to to discover the network
      --port int                The local port to listen on (default -1)
      --privatekeys string      Private keys hosted by this node
      --publickeys string       Public keys hosted by this node
      --socket string           IPC socket to create for access to the Private API (default "crux.ipc")
      --storage string          Database storage file name (default "crux.db")
      --tls                     Use TLS to secure HTTP communications
      --tlsservercert string    The server certificate to be used
      --tlsserverkey string     The server private key
      --url string              The URL to advertise to other nodes (reachable by them)
  -v, --v int                   Verbosity level of logs (shorthand) (default 1)
      --verbosity int           Verbosity level of logs (default 1)
      --workdir string          The folder to put stuff in (default: .) (default ".")

How does it work?

At present, Crux performs its cryptographic operations in a manner identical to Constellation. You can read the specifics here.

The two main workflows for handling private transactions are the submission and retrieval demonstrated below.

New transaction submission

New Transaction Sequence

Existing transaction retrieval

Read Transaction Sequence

Logical architecture

Logical architecture

Why Crux?

Crux is a constellation located in the southern sky in a bright portion of the Milky Way. It is among the most easily distinguished constellations, even though it is the smallest of all 88 modern constellations. (Source: Wikipedia)

The critical or transitional moment or issue, a turning point.

Thanks

@patrickmn the original author of Constellation. Crux would not exist were it not for his work.

crux's People

Contributors

atoulme avatar conor10 avatar puneetha17 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crux's Issues

Key Genereation using Crux

System information

Geth version: geth version
Geth
Version: 1.7.2-stable
Git Commit: d78cd97995f824239463717d3a0bbbb060e36643
Quorum Version: 2.0.2
Architecture: amd64
Network Id: 1
Go Version: go1.10
Operating System: linux
GOPATH=
GOROOT=/usr/local/go

OS & Version: Linux(Ubuntu 16.04)

Expected behaviour

While starting the crux instance we have to provide following parameters :

crux --url=http://127.0.0.1:9001/ --port=9001 --workdir=crux --publickeys=tm.pub --privatekeys=tm.key --othernodes=https://127.0.0.1:9001/

when I generate the keys using crux --generate-keys tm it should generate
tm.pub and tm.key

Actual behaviour

crux --generate-keys tm it is creating two files tm.pub and tm , it's not creating the file for private key as tm.key

Retrieve of data

Why are we using the sender public key to retrieve the data in enclave Retrieve function. Why are not using the private key of recipient to retrieve it?

ERROR: Service 'node1' failed to build: The command '/bin/sh -c chmod +x start.sh ...' returned a non-zero code: 2

git clone  https://github.com/blk-io/crux blk-io_crux
cd blk-io_crux/docker/quorum-crux

cp docker-compose.yaml docker-compose-local.yaml
nano docker-compose-local.yaml 

edit so that it looks like this

  node1: &quorum_crux_node
    # Pull image down from Docker Hub
    # image: blkio10/quorum-crux:v1.0.0
    # Uncomment the below, and comment out the above line to build the Docker images yourself
    image: blk.io/quorum/quorum-crux
    build:
      context: .
    container_name: quorum1

start:

docker-compose -f docker-compose-local.yaml up 

full log:

Building node1
Step 1/24 : FROM alpine:3.8
3.8: Pulling from library/alpine
4fe2ade4980c: Pull complete
Digest: sha256:621c2f39f8133acb8e64023a94dbdf0d5ca81896102b9e57c0dc184cadaf5528
Status: Downloaded newer image for alpine:3.8
 ---> 196d12cf6ab1
Step 2/24 : RUN apk add --no-cache --update unzip db zlib wrk wget libsodium-dev go bash libpthread-stubs db-dev &&     apk -X http://dl-cdn.alpinelinux.org/alpine/edge/testing add --no-cache leveldb &&     apk --no-cache --update add build-base cmake boost-dev git
 ---> Running in 350fdf2b12af
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/26) Installing ncurses-terminfo-base (6.1_p20180818-r1)
(2/26) Installing ncurses-terminfo (6.1_p20180818-r1)
(3/26) Installing ncurses-libs (6.1_p20180818-r1)
(4/26) Installing readline (7.0.003-r0)
(5/26) Installing bash (4.4.19-r1)
Executing bash-4.4.19-r1.post-install
(6/26) Installing db (5.3.28-r0)
(7/26) Installing libgcc (6.4.0-r8)
(8/26) Installing libstdc++ (6.4.0-r8)
(9/26) Installing db-c++ (5.3.28-r0)
(10/26) Installing db-dev (5.3.28-r0)
(11/26) Installing binutils (2.30-r5)
(12/26) Installing gmp (6.1.2-r1)
(13/26) Installing isl (0.18-r0)
(14/26) Installing libgomp (6.4.0-r8)
(15/26) Installing libatomic (6.4.0-r8)
(16/26) Installing pkgconf (1.5.3-r0)
(17/26) Installing mpfr3 (3.1.5-r1)
(18/26) Installing mpc1 (1.0.3-r1)
(19/26) Installing gcc (6.4.0-r8)
(20/26) Installing go (1.10.1-r0)
(21/26) Installing libpthread-stubs (0.3-r5)
(22/26) Installing libsodium (1.0.16-r0)
(23/26) Installing libsodium-dev (1.0.16-r0)
(24/26) Installing unzip (6.0-r4)
(25/26) Installing wget (1.19.5-r0)
(26/26) Installing wrk (4.0.2-r0)
Executing busybox-1.28.4-r1.trigger
OK: 394 MiB in 39 packages
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/2) Installing snappy (1.1.4-r4)
(2/2) Installing leveldb (1.20-r1)
OK: 394 MiB in 41 packages
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/51) Installing linux-headers (4.4.6-r2)
(2/51) Installing boost-date_time (1.66.0-r0)
(3/51) Installing boost-system (1.66.0-r0)
(4/51) Installing boost-filesystem (1.66.0-r0)
(5/51) Installing boost-regex (1.66.0-r0)
(6/51) Installing boost-graph (1.66.0-r0)
(7/51) Installing libbz2 (1.0.6-r6)
(8/51) Installing boost-iostreams (1.66.0-r0)
(9/51) Installing boost-math (1.66.0-r0)
(10/51) Installing boost-prg_exec_monitor (1.66.0-r0)
(11/51) Installing boost-program_options (1.66.0-r0)
(12/51) Installing expat (2.2.5-r0)
(13/51) Installing libffi (3.2.1-r4)
(14/51) Installing gdbm (1.13-r1)
(15/51) Installing xz-libs (5.2.4-r0)
(16/51) Installing sqlite-libs (3.24.0-r0)
(17/51) Installing python3 (3.6.6-r0)
(18/51) Installing boost-python3 (1.66.0-r0)
(19/51) Installing python2 (2.7.15-r1)
(20/51) Installing boost-python (1.66.0-r0)
(21/51) Installing boost-random (1.66.0-r0)
(22/51) Installing boost-serialization (1.66.0-r0)
(23/51) Installing boost-signals (1.66.0-r0)
(24/51) Installing boost-thread (1.66.0-r0)
(25/51) Installing boost-unit_test_framework (1.66.0-r0)
(26/51) Installing boost-wave (1.66.0-r0)
(27/51) Installing boost-wserialization (1.66.0-r0)
(28/51) Installing boost (1.66.0-r0)
(29/51) Installing boost-dev (1.66.0-r0)
(30/51) Installing libmagic (5.32-r0)
(31/51) Installing file (5.32-r0)
(32/51) Installing musl-dev (1.1.19-r10)
(33/51) Installing libc-dev (0.7.1-r0)
(34/51) Installing g++ (6.4.0-r8)
(35/51) Installing make (4.2.1-r2)
(36/51) Installing fortify-headers (0.9-r0)
(37/51) Installing build-base (0.5-r1)
(38/51) Installing libattr (2.4.47-r7)
(39/51) Installing libacl (2.2.52-r5)
(40/51) Installing lz4-libs (1.8.2-r0)
(41/51) Installing libarchive (3.3.2-r3)
(42/51) Installing ca-certificates (20171114-r3)
(43/51) Installing nghttp2-libs (1.32.0-r0)
(44/51) Installing libssh2 (1.8.0-r3)
(45/51) Installing libcurl (7.61.1-r0)
(46/51) Installing rhash-libs (1.3.6-r1)
(47/51) Installing libuv (1.20.2-r0)
(48/51) Installing cmake (3.11.1-r2)
(49/51) Installing cmake-bash-completion (3.11.1-r2)
(50/51) Installing pcre2 (10.31-r0)
(51/51) Installing git (2.18.0-r0)
Executing busybox-1.28.4-r1.trigger
Executing ca-certificates-20171114-r3.trigger
OK: 834 MiB in 92 packages
Removing intermediate container 350fdf2b12af
 ---> 321f71c6c15d
Step 3/24 : ENV PORT=""
 ---> Running in 04edb64a27c5
Removing intermediate container 04edb64a27c5
 ---> 701ff6545db2
Step 4/24 : ENV NODE_KEY=""
 ---> Running in a4602f40ecc3
Removing intermediate container a4602f40ecc3
 ---> d867da4ab8d4
Step 5/24 : ENV CRUX_PUB=""
 ---> Running in 07b1f1c25c9d
Removing intermediate container 07b1f1c25c9d
 ---> e25d164fc8ca
Step 6/24 : ENV GETH_KEY=""
 ---> Running in 72912a20b837
Removing intermediate container 72912a20b837
 ---> d6a943c1f8af
Step 7/24 : ENV OWN_URL=""
 ---> Running in d0a9104f05aa
Removing intermediate container d0a9104f05aa
 ---> fa7b6954be6e
Step 8/24 : ENV CRUX_PRIV=""
 ---> Running in ddeebaefcd5a
Removing intermediate container ddeebaefcd5a
 ---> 88227ff290ab
Step 9/24 : ENV OTHER_NODES=""
 ---> Running in 009ccffbe7c1
Removing intermediate container 009ccffbe7c1
 ---> 5507ab5c0ad3
Step 10/24 : ENV GETH_RPC_PORT=""
 ---> Running in 8e36b57adfa9
Removing intermediate container 8e36b57adfa9
 ---> 85830c5470e0
Step 11/24 : ENV GETH_PORT=""
 ---> Running in 1691c5a374f5
Removing intermediate container 1691c5a374f5
 ---> e9e6a974c9fe
Step 12/24 : WORKDIR /quorum
 ---> Running in 3cd2be1f918b
Removing intermediate container 3cd2be1f918b
 ---> ced93672964d
Step 13/24 : COPY bootstrap.sh bootstrap.sh
 ---> 20444e291549
Step 14/24 : COPY istanbul-genesis.json istanbul-genesis.json
 ---> ef3b7377eaaa
Step 15/24 : COPY passwords.txt passwords.txt
 ---> 8cfe4fc9776a
Step 16/24 : COPY istanbul-init.sh istanbul-init.sh
 ---> cc63cd7aa476
Step 17/24 : COPY crux-start.sh crux-start.sh
 ---> ea8757813efe
Step 18/24 : COPY istanbul-start.sh istanbul-start.sh
 ---> bb1d6e551177
Step 19/24 : COPY start.sh start.sh
 ---> 2007d49502a4
Step 20/24 : COPY scripts/simpleContract.js simpleContract.js
 ---> 8c2a775ed885
Step 21/24 : COPY scripts/test_transaction.sh test_transaction.sh
 ---> fd26292d2a8e
Step 22/24 : RUN chmod +x start.sh crux-start.sh istanbul-start.sh istanbul-init.sh &&     chmod +x test_transaction.sh &&     chmod +x bootstrap.sh &&     ./bootstrap.sh &&     apk del sed make git cmake build-base gcc g++ musl-dev curl-dev boost-dev
 ---> Running in f6c5c585db9e
Cloning into 'quorum'...
Note: checking out 'tags/v2.0.3-grpc'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 3f1817ea6 Merge pull request #7 from Puneetha17/debug
build/env.sh go run build/ci.go install
>>> /usr/lib/go/bin/go install -ldflags -X main.gitCommit=3f1817ea6204184d10fc57d94195b23188461e80 -v github.com/ethereum/go-ethereum github.com/ethereum/go-ethereum/accounts github.com/ethereum/go-ethereum/accounts/abi github.com/ethereum/go-ethereum/accounts/abi/bind github.com/ethereum/go-ethereum/accounts/abi/bind/backends github.com/ethereum/go-ethereum/accounts/keystore github.com/ethereum/go-ethereum/accounts/usbwallet github.com/ethereum/go-ethereum/accounts/usbwallet/internal/trezor github.com/ethereum/go-ethereum/bmt github.com/ethereum/go-ethereum/cmd/abigen github.com/ethereum/go-ethereum/cmd/bootnode github.com/ethereum/go-ethereum/cmd/evm github.com/ethereum/go-ethereum/cmd/evm/internal/compiler github.com/ethereum/go-ethereum/cmd/faucet github.com/ethereum/go-ethereum/cmd/geth github.com/ethereum/go-ethereum/cmd/internal/browser github.com/ethereum/go-ethereum/cmd/p2psim github.com/ethereum/go-ethereum/cmd/puppeth github.com/ethereum/go-ethereum/cmd/rlpdump github.com/ethereum/go-ethereum/cmd/swarm github.com/ethereum/go-ethereum/cmd/utils github.com/ethereum/go-ethereum/cmd/wnode github.com/ethereum/go-ethereum/common github.com/ethereum/go-ethereum/common/bitutil github.com/ethereum/go-ethereum/common/compiler github.com/ethereum/go-ethereum/common/hexutil github.com/ethereum/go-ethereum/common/math github.com/ethereum/go-ethereum/common/mclock github.com/ethereum/go-ethereum/common/number github.com/ethereum/go-ethereum/compression/rle github.com/ethereum/go-ethereum/consensus github.com/ethereum/go-ethereum/consensus/clique github.com/ethereum/go-ethereum/consensus/ethash github.com/ethereum/go-ethereum/consensus/istanbul github.com/ethereum/go-ethereum/consensus/istanbul/backend github.com/ethereum/go-ethereum/consensus/istanbul/core github.com/ethereum/go-ethereum/consensus/istanbul/validator github.com/ethereum/go-ethereum/consensus/misc github.com/ethereum/go-ethereum/console github.com/ethereum/go-ethereum/contracts/chequebook github.com/ethereum/go-ethereum/contracts/chequebook/contract github.com/ethereum/go-ethereum/contracts/ens github.com/ethereum/go-ethereum/contracts/ens/contract github.com/ethereum/go-ethereum/contracts/release github.com/ethereum/go-ethereum/core github.com/ethereum/go-ethereum/core/asm github.com/ethereum/go-ethereum/core/bloombits github.com/ethereum/go-ethereum/core/state github.com/ethereum/go-ethereum/core/types github.com/ethereum/go-ethereum/core/vm github.com/ethereum/go-ethereum/core/vm/runtime github.com/ethereum/go-ethereum/crypto github.com/ethereum/go-ethereum/crypto/bn256 github.com/ethereum/go-ethereum/crypto/ecies github.com/ethereum/go-ethereum/crypto/randentropy github.com/ethereum/go-ethereum/crypto/secp256k1 github.com/ethereum/go-ethereum/crypto/sha3 github.com/ethereum/go-ethereum/eth github.com/ethereum/go-ethereum/eth/downloader github.com/ethereum/go-ethereum/eth/fetcher github.com/ethereum/go-ethereum/eth/filters github.com/ethereum/go-ethereum/eth/gasprice github.com/ethereum/go-ethereum/ethclient github.com/ethereum/go-ethereum/ethdb github.com/ethereum/go-ethereum/ethstats github.com/ethereum/go-ethereum/event github.com/ethereum/go-ethereum/event/filter github.com/ethereum/go-ethereum/internal/build github.com/ethereum/go-ethereum/internal/cmdtest github.com/ethereum/go-ethereum/internal/debug github.com/ethereum/go-ethereum/internal/ethapi github.com/ethereum/go-ethereum/internal/guide github.com/ethereum/go-ethereum/internal/jsre github.com/ethereum/go-ethereum/internal/jsre/deps github.com/ethereum/go-ethereum/internal/web3ext github.com/ethereum/go-ethereum/les github.com/ethereum/go-ethereum/les/flowcontrol github.com/ethereum/go-ethereum/light github.com/ethereum/go-ethereum/log github.com/ethereum/go-ethereum/log/term github.com/ethereum/go-ethereum/metrics github.com/ethereum/go-ethereum/miner github.com/ethereum/go-ethereum/mobile github.com/ethereum/go-ethereum/node github.com/ethereum/go-ethereum/p2p github.com/ethereum/go-ethereum/p2p/discover github.com/ethereum/go-ethereum/p2p/discv5 github.com/ethereum/go-ethereum/p2p/nat github.com/ethereum/go-ethereum/p2p/netutil github.com/ethereum/go-ethereum/p2p/simulations github.com/ethereum/go-ethereum/p2p/simulations/adapters github.com/ethereum/go-ethereum/p2p/simulations/examples github.com/ethereum/go-ethereum/params github.com/ethereum/go-ethereum/private github.com/ethereum/go-ethereum/private/constellation github.com/ethereum/go-ethereum/raft github.com/ethereum/go-ethereum/rlp github.com/ethereum/go-ethereum/rpc github.com/ethereum/go-ethereum/swarm github.com/ethereum/go-ethereum/swarm/api github.com/ethereum/go-ethereum/swarm/api/client github.com/ethereum/go-ethereum/swarm/api/http github.com/ethereum/go-ethereum/swarm/fuse github.com/ethereum/go-ethereum/swarm/network github.com/ethereum/go-ethereum/swarm/network/kademlia github.com/ethereum/go-ethereum/swarm/services/swap github.com/ethereum/go-ethereum/swarm/services/swap/swap github.com/ethereum/go-ethereum/swarm/storage github.com/ethereum/go-ethereum/swarm/testutil github.com/ethereum/go-ethereum/tests github.com/ethereum/go-ethereum/trie github.com/ethereum/go-ethereum/whisper/mailserver github.com/ethereum/go-ethereum/whisper/shhclient github.com/ethereum/go-ethereum/whisper/whisperv2 github.com/ethereum/go-ethereum/whisper/whisperv5 
github.com/ethereum/go-ethereum/common/hexutil
github.com/ethereum/go-ethereum/crypto/sha3
github.com/ethereum/go-ethereum/common
github.com/ethereum/go-ethereum/common/math
github.com/ethereum/go-ethereum/crypto/secp256k1
github.com/ethereum/go-ethereum/rlp
github.com/ethereum/go-ethereum/crypto
github.com/ethereum/go-ethereum/params
github.com/ethereum/go-ethereum/vendor/github.com/go-stack/stack
github.com/ethereum/go-ethereum/log
github.com/ethereum/go-ethereum/vendor/github.com/rcrowley/go-metrics
github.com/ethereum/go-ethereum/vendor/gopkg.in/karalabe/cookiejar.v2/collections/prque
github.com/ethereum/go-ethereum/trie
github.com/ethereum/go-ethereum/core/types
github.com/ethereum/go-ethereum
github.com/ethereum/go-ethereum/vendor/github.com/aristanetworks/goarista/monotime
github.com/ethereum/go-ethereum/common/mclock
github.com/ethereum/go-ethereum/event
github.com/ethereum/go-ethereum/accounts
github.com/ethereum/go-ethereum/accounts/abi
github.com/ethereum/go-ethereum/crypto/randentropy
github.com/ethereum/go-ethereum/vendor/github.com/pborman/uuid
github.com/ethereum/go-ethereum/vendor/github.com/rjeczalik/notify
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/pbkdf2
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/scrypt
github.com/ethereum/go-ethereum/vendor/gopkg.in/fatih/set.v0
github.com/ethereum/go-ethereum/accounts/keystore
github.com/ethereum/go-ethereum/vendor/golang.org/x/tools/go/ast/astutil
github.com/ethereum/go-ethereum/vendor/golang.org/x/tools/imports
github.com/ethereum/go-ethereum/accounts/abi/bind
github.com/ethereum/go-ethereum/vendor/github.com/edsrzf/mmap-go
github.com/ethereum/go-ethereum/common/bitutil
github.com/ethereum/go-ethereum/vendor/github.com/rcrowley/go-metrics/exp
github.com/ethereum/go-ethereum/metrics
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/util
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/cache
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/comparer
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/storage
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/errors
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/filter
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/iterator
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/journal
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/memdb
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/opt
github.com/ethereum/go-ethereum/vendor/github.com/golang/snappy
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb/table
github.com/ethereum/go-ethereum/vendor/github.com/syndtr/goleveldb/leveldb
github.com/ethereum/go-ethereum/ethdb
github.com/ethereum/go-ethereum/vendor/github.com/hashicorp/golang-lru/simplelru
github.com/ethereum/go-ethereum/vendor/github.com/hashicorp/golang-lru
github.com/ethereum/go-ethereum/core/state
github.com/ethereum/go-ethereum/crypto/ecies
github.com/ethereum/go-ethereum/vendor/github.com/huin/goupnp/httpu
github.com/ethereum/go-ethereum/vendor/github.com/huin/goupnp/scpd
github.com/ethereum/go-ethereum/vendor/github.com/huin/goupnp/soap
github.com/ethereum/go-ethereum/vendor/github.com/huin/goupnp/ssdp
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/html/atom
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/html
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/internal/identifier
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/transform
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/internal
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/charmap
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/japanese
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/korean
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/simplifiedchinese
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/traditionalchinese
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/internal/utf8internal
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/runes
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/unicode
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/internal/tag
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/language
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/encoding/htmlindex
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/html/charset
github.com/ethereum/go-ethereum/vendor/github.com/huin/goupnp
github.com/ethereum/go-ethereum/vendor/github.com/huin/goupnp/dcps/internetgateway1
github.com/ethereum/go-ethereum/vendor/github.com/huin/goupnp/dcps/internetgateway2
github.com/ethereum/go-ethereum/vendor/github.com/jackpal/go-nat-pmp
github.com/ethereum/go-ethereum/p2p/nat
github.com/ethereum/go-ethereum/p2p/netutil
github.com/ethereum/go-ethereum/p2p/discover
github.com/ethereum/go-ethereum/p2p/discv5
github.com/ethereum/go-ethereum/p2p
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/context
github.com/ethereum/go-ethereum/vendor/github.com/rs/xhandler
github.com/ethereum/go-ethereum/vendor/github.com/rs/cors
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/websocket
github.com/ethereum/go-ethereum/rpc
github.com/ethereum/go-ethereum/consensus
github.com/ethereum/go-ethereum/consensus/misc
github.com/ethereum/go-ethereum/consensus/ethash
github.com/ethereum/go-ethereum/crypto/bn256
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/ripemd160
github.com/ethereum/go-ethereum/core/vm
github.com/ethereum/go-ethereum/vendor/github.com/BurntSushi/toml
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/proto
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/ptypes/struct
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/jsonpb
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/ptypes/any
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/ptypes/duration
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/ptypes/timestamp
github.com/ethereum/go-ethereum/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal
github.com/ethereum/go-ethereum/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/codes
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/grpclog
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/metadata
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/ptypes
github.com/ethereum/go-ethereum/vendor/google.golang.org/genproto/googleapis/rpc/status
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/status
github.com/ethereum/go-ethereum/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime
github.com/ethereum/go-ethereum/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor
github.com/ethereum/go-ethereum/vendor/google.golang.org/genproto/googleapis/api/annotations
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/unicode/bidi
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/secure/bidirule
github.com/ethereum/go-ethereum/vendor/golang.org/x/text/unicode/norm
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/idna
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/http/httpguts
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/http2/hpack
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/http2
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/internal/timeseries
github.com/ethereum/go-ethereum/vendor/golang.org/x/net/trace
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/connectivity
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/credentials
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/resolver
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/balancer
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/balancer/base
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/balancer/roundrobin
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/encoding
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/encoding/proto
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/internal
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/internal/grpcrand
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/internal/backoff
github.com/ethereum/go-ethereum/vendor/golang.org/x/sys/unix
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/internal/channelz
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/internal/envconfig
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/keepalive
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/peer
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/stats
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/tap
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/internal/transport
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/naming
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/resolver/dns
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc/resolver/passthrough
github.com/ethereum/go-ethereum/vendor/google.golang.org/grpc
github.com/ethereum/go-ethereum/vendor/github.com/blk-io/chimera-api/chimera
github.com/ethereum/go-ethereum/vendor/github.com/patrickmn/go-cache
github.com/ethereum/go-ethereum/vendor/github.com/tv42/httpunix
github.com/ethereum/go-ethereum/private/constellation
github.com/ethereum/go-ethereum/private
github.com/ethereum/go-ethereum/core
github.com/ethereum/go-ethereum/accounts/abi/bind/backends
github.com/ethereum/go-ethereum/accounts/usbwallet/internal/trezor
github.com/ethereum/go-ethereum/vendor/github.com/karalabe/hid
# github.com/ethereum/go-ethereum/vendor/github.com/karalabe/hid
In file included from vendor/github.com/karalabe/hid/hid_enabled.go:22:0:
/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
 #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  ^~~~~~~
github.com/ethereum/go-ethereum/accounts/usbwallet
github.com/ethereum/go-ethereum/bmt
github.com/ethereum/go-ethereum/common/compiler
github.com/ethereum/go-ethereum/cmd/abigen
github.com/ethereum/go-ethereum/consensus/clique
github.com/ethereum/go-ethereum/consensus/istanbul
github.com/ethereum/go-ethereum/consensus/istanbul/core
github.com/ethereum/go-ethereum/consensus/istanbul/validator
github.com/ethereum/go-ethereum/consensus/istanbul/backend
github.com/ethereum/go-ethereum/core/bloombits
github.com/ethereum/go-ethereum/eth/downloader
github.com/ethereum/go-ethereum/eth/fetcher
github.com/ethereum/go-ethereum/eth/filters
github.com/ethereum/go-ethereum/vendor/gopkg.in/sourcemap.v1/base64vlq
github.com/ethereum/go-ethereum/vendor/gopkg.in/sourcemap.v1
github.com/ethereum/go-ethereum/vendor/github.com/robertkrimen/otto/file
github.com/ethereum/go-ethereum/vendor/github.com/robertkrimen/otto/token
github.com/ethereum/go-ethereum/vendor/github.com/robertkrimen/otto/ast
github.com/ethereum/go-ethereum/vendor/github.com/robertkrimen/otto/dbg
github.com/ethereum/go-ethereum/vendor/github.com/robertkrimen/otto/parser
github.com/ethereum/go-ethereum/vendor/github.com/robertkrimen/otto/registry
github.com/ethereum/go-ethereum/vendor/github.com/robertkrimen/otto
github.com/ethereum/go-ethereum/internal/ethapi
github.com/ethereum/go-ethereum/eth/gasprice
github.com/ethereum/go-ethereum/miner
github.com/ethereum/go-ethereum/log/term
github.com/ethereum/go-ethereum/vendor/github.com/mattn/go-colorable
github.com/ethereum/go-ethereum/vendor/gopkg.in/urfave/cli.v1
github.com/ethereum/go-ethereum/internal/debug
github.com/ethereum/go-ethereum/vendor/github.com/prometheus/prometheus/util/flock
github.com/ethereum/go-ethereum/node
github.com/ethereum/go-ethereum/eth
github.com/ethereum/go-ethereum/les/flowcontrol
github.com/ethereum/go-ethereum/light
github.com/ethereum/go-ethereum/les
github.com/ethereum/go-ethereum/ethstats
github.com/ethereum/go-ethereum/vendor/golang.org/x/sync/syncmap
github.com/ethereum/go-ethereum/whisper/whisperv5
github.com/ethereum/go-ethereum/cmd/utils
github.com/ethereum/go-ethereum/cmd/bootnode
github.com/ethereum/go-ethereum/core/asm
github.com/ethereum/go-ethereum/cmd/evm/internal/compiler
github.com/ethereum/go-ethereum/core/vm/runtime
github.com/ethereum/go-ethereum/tests
github.com/ethereum/go-ethereum/cmd/evm
github.com/ethereum/go-ethereum/ethclient
github.com/ethereum/go-ethereum/cmd/faucet
github.com/ethereum/go-ethereum/cmd/internal/browser
github.com/ethereum/go-ethereum/internal/jsre/deps
github.com/ethereum/go-ethereum/vendor/github.com/mattn/go-isatty
github.com/ethereum/go-ethereum/vendor/github.com/fatih/color
github.com/ethereum/go-ethereum/internal/jsre
github.com/ethereum/go-ethereum/internal/web3ext
github.com/ethereum/go-ethereum/vendor/github.com/peterh/liner
github.com/ethereum/go-ethereum/console
github.com/ethereum/go-ethereum/contracts/release
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/raft/raftpb
github.com/ethereum/go-ethereum/vendor/github.com/eapache/queue
github.com/ethereum/go-ethereum/vendor/github.com/eapache/channels
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/raft
github.com/ethereum/go-ethereum/vendor/github.com/coreos/go-systemd/journal
github.com/ethereum/go-ethereum/vendor/github.com/coreos/pkg/capnslog
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/etcdserver/stats
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/fileutil
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/types
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/httputil
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/ioutil
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/logutil
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/pbutil
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/tlsutil
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/transport
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/snap/snappb
github.com/ethereum/go-ethereum/vendor/github.com/beorn7/perks/quantile
github.com/ethereum/go-ethereum/vendor/github.com/prometheus/client_model/go
github.com/ethereum/go-ethereum/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil
github.com/ethereum/go-ethereum/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
github.com/ethereum/go-ethereum/vendor/github.com/prometheus/common/model
github.com/ethereum/go-ethereum/vendor/github.com/prometheus/common/expfmt
github.com/ethereum/go-ethereum/vendor/github.com/prometheus/procfs
github.com/ethereum/go-ethereum/vendor/github.com/prometheus/client_golang/prometheus
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/snap
github.com/ethereum/go-ethereum/vendor/github.com/coreos/go-semver/semver
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/version
github.com/ethereum/go-ethereum/vendor/github.com/xiang90/probing
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/rafthttp
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/pkg/crc
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/wal/walpb
github.com/ethereum/go-ethereum/vendor/github.com/coreos/etcd/wal
github.com/ethereum/go-ethereum/vendor/gopkg.in/oleiade/lane.v1
github.com/ethereum/go-ethereum/raft
github.com/ethereum/go-ethereum/vendor/github.com/maruel/panicparse/stack
github.com/ethereum/go-ethereum/vendor/github.com/mattn/go-runewidth
github.com/ethereum/go-ethereum/vendor/github.com/mitchellh/go-wordwrap
github.com/ethereum/go-ethereum/vendor/github.com/nsf/termbox-go
github.com/ethereum/go-ethereum/vendor/github.com/gizak/termui
github.com/ethereum/go-ethereum/vendor/github.com/naoina/go-stringutil
github.com/ethereum/go-ethereum/vendor/github.com/naoina/toml/ast
github.com/ethereum/go-ethereum/vendor/github.com/naoina/toml
github.com/ethereum/go-ethereum/cmd/geth
github.com/ethereum/go-ethereum/vendor/github.com/docker/docker/pkg/reexec
github.com/ethereum/go-ethereum/p2p/simulations/adapters
github.com/ethereum/go-ethereum/vendor/github.com/julienschmidt/httprouter
github.com/ethereum/go-ethereum/p2p/simulations
github.com/ethereum/go-ethereum/cmd/p2psim
github.com/ethereum/go-ethereum/vendor/github.com/olekukonko/tablewriter
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/curve25519
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/ed25519/internal/edwards25519
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/ed25519
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/ssh
github.com/ethereum/go-ethereum/vendor/golang.org/x/crypto/ssh/terminal
github.com/ethereum/go-ethereum/cmd/puppeth
github.com/ethereum/go-ethereum/cmd/rlpdump
# github.com/ethereum/go-ethereum/cmd/rlpdump
loadinternal: cannot find runtime/cgo
github.com/ethereum/go-ethereum/contracts/ens/contract
github.com/ethereum/go-ethereum/contracts/ens
github.com/ethereum/go-ethereum/contracts/chequebook/contract
github.com/ethereum/go-ethereum/swarm/services/swap/swap
github.com/ethereum/go-ethereum/contracts/chequebook
github.com/ethereum/go-ethereum/swarm/network/kademlia
github.com/ethereum/go-ethereum/swarm/services/swap
github.com/ethereum/go-ethereum/compression/rle
github.com/ethereum/go-ethereum/swarm/storage
github.com/ethereum/go-ethereum/swarm/network
github.com/ethereum/go-ethereum/swarm/api
github.com/ethereum/go-ethereum/swarm/api/http
github.com/ethereum/go-ethereum/vendor/bazil.org/fuse
github.com/ethereum/go-ethereum/vendor/bazil.org/fuse/fuseutil
github.com/ethereum/go-ethereum/vendor/bazil.org/fuse/fs
github.com/ethereum/go-ethereum/swarm/fuse
github.com/ethereum/go-ethereum/swarm
github.com/ethereum/go-ethereum/swarm/api/client
github.com/ethereum/go-ethereum/cmd/swarm
github.com/ethereum/go-ethereum/whisper/mailserver
github.com/ethereum/go-ethereum/cmd/wnode
github.com/ethereum/go-ethereum/common/number
github.com/ethereum/go-ethereum/event/filter
github.com/ethereum/go-ethereum/internal/cmdtest
github.com/ethereum/go-ethereum/internal/guide
github.com/ethereum/go-ethereum/mobile
github.com/ethereum/go-ethereum/p2p/simulations/examples
github.com/ethereum/go-ethereum/swarm/testutil
github.com/ethereum/go-ethereum/whisper/shhclient
github.com/ethereum/go-ethereum/whisper/whisperv2
Cloning into 'crux'...
Note: checking out 'tags/v1.0.2'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at abb98b1 Update Gopkg.toml
go get -u github.com/golang/dep/cmd/dep
go get -u golang.org/x/tools/cmd/goimports
# golang.org/x/tools/cmd/goimports
loadinternal: cannot find runtime/cgo
go get -u github.com/wadey/gocovmerge
# github.com/wadey/gocovmerge
loadinternal: cannot find runtime/cgo
(cd /quorum/crux/.GOPATH/src/github.com/blk-io/crux && ./bin/dep ensure)
# github.com/blk-io/crux/vendor/github.com/jsimonetti/berkeleydb
bdb.c: In function 'go_db_cursor':
bdb.c:78:38: warning: passing argument 3 of 'dbp->cursor' from incompatible pointer type [-Wincompatible-pointer-types]
         ret = dbp->cursor(dbp, NULL, dbcp, 0);
                                      ^~~~
bdb.c:78:38: note: expected 'DBC ** {aka struct __dbc **}' but argument is of type 'DBC * {aka struct __dbc *}'
WARNING: Ignoring APKINDEX.adfa7ceb.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.efaa1f73.tar.gz: No such file or directory
ERROR: Service 'node1' failed to build: The command '/bin/sh -c chmod +x start.sh crux-start.sh istanbul-start.sh istanbul-init.sh &&     chmod +x test_transaction.sh &&     chmod +x bootstrap.sh &&     ./bootstrap.sh &&     apk del sed make git cmake build-base gcc g++ musl-dev curl-dev boost-dev' returned a non-zero code: 2

Issue creating node

When I am trying to :
crux --url=http://127.0.0.1:9001/ --port=9001 --workdir=crux --publickeys=tm.pub --privatekeys=tm.key--othernodes=https://127.0.0.1:9001/
I am getting the following error:
FATA[0000] Unable to load public key files: [crux/tm.pub], error: open crux/tm.pub: no such file or directory
How to resolve this and where to get this file tm.pub and tm.key

-v1, -v2, -v3 short hand not supported

I tried to use the short hand verbosity setting with -v2.

See https://github.com/blk-io/crux/blob/master/config/config_testdata.conf#L120

I received this error message:

unknown shorthand flag: 'v' in -v2
Usage of /opt/crux:
      --alwayssendto string    List of public keys for nodes to send all transactions too
      --berkeleydb             Use Berkeley DB for working with an existing Constellation data store [experimental]
      --generate-keys string   Generate a new keypair
      --grpc                   Use gRPC server (default true)
      --grpcport int           The local port to listen on for JSON extensions of gRPC (default -1)
      --othernodes string      "Boot nodes" to connect to to discover the network (default "")
      --port int               The local port to listen on (default -1)
      --privatekeys string     Private keys hosted by this node (default "")
      --publickeys string      Public keys hosted by this node (default "")
      --socket string          IPC socket to create for access to the Private API (default "crux.ipc")
      --storage string         Database storage file name (default "crux.db")
      --tls                    Use TLS to secure HTTP communications
      --tlsservercert string   The server certificate to be used
      --tlsserverkey string    The server private key
      --url string             The URL to advertise to other nodes (reachable by them) (default "")
      --verbosity int          Verbosity level of logs (default 1)
      --workdir string         The folder to put stuff in (default: .) (default ".")

(feature request) docker setup with 2-3 not 4 nodes (to run on small VPS)

On the only "free tier" AWS machine t2.micro I cannot run your 4 nodes IBFT example because of lack of RAM.

For all the other systems (parity aura, instantseal, geth clique) I have found a way so that anyone can replicated my results, and without spending money. Please have a look at this results table.

--> Please consider to create something like a quorum-crux-micro with 2 or 3 nodes, additional to your with 4 (quorum+crux)-nodes dockerized network. Thanks!

Error trying build the master

Hi,
I am trying to build crux master, getting the following exception, can you please help me out,

Error stacktrace:
google/protobuf/descriptor.proto: File not found.
google/api/annotations.proto: Import "google/protobuf/descriptor.proto" was not found or had errors.
google/api/annotations.proto:28:8: "google.protobuf.MethodOptions" is not defined.
messages.proto: Import "google/api/annotations.proto" was not found or had errors.
grpc.proto: Import "google/api/annotations.proto" was not found or had errors.
grpc.proto: Import "messages.proto" was not found or had errors.
grpc.proto:9:17: "ApiVersion" is not defined.
grpc.proto:9:38: "ApiVersion" is not defined.
grpc.proto:16:17: "UpCheckResponse" is not defined.
grpc.proto:16:43: "UpCheckResponse" is not defined.
grpc.proto:23:14: "SendRequest" is not defined.
grpc.proto:23:36: "SendResponse" is not defined.
grpc.proto:25:17: "ReceiveRequest" is not defined.
grpc.proto:25:42: "ReceiveResponse" is not defined.
grpc.proto:27:25: "PartyInfo" is not defined.
grpc.proto:27:45: "PartyInfoResponse" is not defined.
grpc.proto:34:14: "PushPayload" is not defined.
grpc.proto:34:36: "PartyInfoResponse" is not defined.
Makefile:17: recipe for target 'proto' failed
make: *** [proto] Error 1

Machine config:
Linux dagger 4.15.0-29-generic #31-Ubuntu SMP Tue Jul 17 15:39:52 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
16 GB RAM, 110 GB SSD

two recipients in privateFor

Hi, I am sending a private tx with two pubkeys in the privateFor array but I'm not sure if it is possible in crux current version.

local build fails to start geth s

reproduce the problem:

git clone  https://github.com/blk-io/crux blk-io_crux
cd blk-io_crux/docker/quorum-crux/
cp docker-compose.yaml docker-compose-local.yaml
nano docker-compose-local.yaml 

then comment and uncomment, as described there, to build locally. Then:

docker-compose -f docker-compose-local.yaml up --build

The geths are not starting:

geth attach http://localhost:22001
Fatal: Failed to start the JavaScript console: api modules: Post http://localhost:22001: read tcp [::1]:41988->[::1]:22001: read: connection reset by peer

there are no geth processes:

ps aux | grep crux
root     16788  0.5  0.0   6260  1716 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
root     16876  0.5  0.0   6260  1768 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
root     16892  0.5  0.0   6260  1704 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
root     17047  0.5  0.0   6260  1720 ?        S    23:31   0:00 /bin/bash ./crux-start.sh
andreas  18810  0.0  0.0  12784   952 pts/0    S+   23:32   0:00 grep crux

ps aux | grep geth
andreas  19192  0.0  0.0  12784  1016 pts/0    S+   23:32   0:00 grep geth

when looking into the container

docker ps
CONTAINER ID        IMAGE                       COMMAND             CREATED             STATUS              PORTS                                                                        NAMES
495ce286609f        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9001->9000/tcp, 0.0.0.0:21001->21000/tcp, 0.0.0.0:22001->22000/tcp   quorum1
8abd4fcd7132        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9004->9000/tcp, 0.0.0.0:21004->21000/tcp, 0.0.0.0:22004->22000/tcp   quorum4
1136b2145523        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9002->9000/tcp, 0.0.0.0:21002->21000/tcp, 0.0.0.0:22002->22000/tcp   quorum2
25c86cc43eb6        blk.io/quorum/quorum-crux   "./start.sh"        6 minutes ago       Up 3 minutes        0.0.0.0:9003->9000/tcp, 0.0.0.0:21003->21000/tcp, 0.0.0.0:22003->22000/tcp   quorum3

docker exec -it 495ce286609f bash

I find this error:

cat qdata/logs/crux.log 
unknown flag: --networkinterface
Usage of crux:
      --alwayssendto string    List of public keys for nodes to send all transactions too
      --berkeleydb             Use Berkeley DB for working with an existing Constellation data store [experimental]

Crux based data permissioning for IPFS

Could we use the Crux tool & the API enclave to permission the data payload encapsulated under an IPFS hash?

We could use the ethereum accounts in the privateFor to access the payload & check if the caller/sender is the same one??

@conor10 your thoughts? Thoughts from other contributors are also welcome!

local docker build is failing: `Service 'node1' failed to build`

Error when building:

...
HEAD is now at 1a124b3 Update the gRPC address and add logs when connected to other nodes (#23)
go get -u github.com/golang/dep/cmd/dep
go get -u golang.org/x/tools/cmd/goimports
# golang.org/x/tools/cmd/goimports
loadinternal: cannot find runtime/cgo
go get -u github.com/wadey/gocovmerge
# github.com/wadey/gocovmerge
loadinternal: cannot find runtime/cgo
(cd /quorum/crux/.GOPATH/src/github.com/blk-io/crux && ./bin/dep ensure)
# github.com/blk-io/crux/vendor/github.com/jsimonetti/berkeleydb
bdb.c: In function 'go_db_cursor':
bdb.c:78:38: warning: passing argument 3 of 'dbp->cursor' from incompatible pointer type [-Wincompatible-pointer-types]
         ret = dbp->cursor(dbp, NULL, dbcp, 0);
                                      ^~~~
bdb.c:78:38: note: expected 'DBC ** {aka struct __dbc **}' but argument is of type 'DBC * {aka struct __dbc *}'
# github.com/blk-io/crux/server
.GOPATH/src/github.com/blk-io/crux/server/proto_server.go:23:43: cannot use &s (type *Server) as type chimera.ClientServer in argument to chimera.RegisterClientServer:
	*Server does not implement chimera.ClientServer (missing Delete method)
.GOPATH/src/github.com/blk-io/crux/server/proto_server.go:78:43: cannot use &s (type *Server) as type chimera.ClientServer in argument to chimera.RegisterClientServer:
	*Server does not implement chimera.ClientServer (missing Delete method)
.GOPATH/src/github.com/blk-io/crux/server/proto_server.go:115:43: cannot use &s (type *Server) as type chimera.ClientServer in argument to chimera.RegisterClientServer:
	*Server does not implement chimera.ClientServer (missing Delete method)
make: *** [Makefile:16: build] Error 2
ERROR: Service 'node1' failed to build: The command '/bin/sh -c chmod +x start.sh crux-start.sh istanbul-start.sh istanbul-init.sh &&     chmod +x test_transaction.sh &&     chmod +x bootstrap.sh &&     ./bootstrap.sh &&     apk del sed make git cmake build-base gcc g++ musl-dev curl-dev boost-dev' returned a non-zero code: 2

how to replicate that:

  • Debian based AWS machine
  • docker version: 18.06.1-ce
  • docker compose version: 1.22.0, build f46880fe

clean all docker:

docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q)

get newest blk-io/crux (commit abb98b1):

git clone  https://github.com/blk-io/crux blk-io_crux
cd blk-io_crux
cp docker-compose.yaml docker-compose-local.yaml
nano docker-compose-local.yaml 

Follow the instructions, so that it looks like this:

...
  node1: &quorum_crux_node
    # Pull image down from Docker Hub
    # image: blkio10/quorum-crux:v1.0.0
    # Uncomment the below, and comment out the above line to build the Docker images yourself
    image: blk.io/quorum/quorum-crux
    build:
      context: .
    container_name: quorum1
...

then start it, and be patient:

docker-compose -f docker-compose-local.yaml up --build

ends with the above error message

ERROR: Service 'node1' failed to build: The command '/bin/sh -c chmod +x start.sh crux-start.sh istanbul-start.sh istanbul-init.sh &&     chmod +x test_transaction.sh &&     chmod +x bootstrap.sh &&     ./bootstrap.sh &&     apk del sed make git cmake build-base gcc g++ musl-dev curl-dev boost-dev' returned a non-zero code: 2

Please repair this, thanks a lot.

please update to newest quorum

your current quorum version is still:

 web3.version.node
 "Geth/v1.7.2-stable-d7e3ff5b/linux-amd64/go1.10.1"

please consider to upgrade your Quorum to a newer version, thanks.

Perhaps now, perhaps after they have upgraded to 1.8.18, it sounds as if it might happen soonish ?
(also note my praise of your repo, 4 comments below).

Not urgent. But (probably in a few weeks) I want to repeat all my measurements (with my then fantastically *g* automated and much overhauled chainhammer), and then it would be nice to work with the newest versions.

Thanks!


This is how I had started it today, to find out about the version:

cd blk-io_crux/docker/quorum-crux
docker-compose up 
Pulling node1 (blkio10/quorum-crux:v1.0.0)...
v1.0.0: Pulling from blkio10/quorum-crux
...

I had tried with this new commit:

git log | head -n 5
commit eeb63a91b7eda0180c8686f819c0dd29c0bc4d46
Author: Puneetha Karamsetty <[email protected]>
Date:   Fri Jan 18 16:16:08 2019 +0000
    Checkout the latest version of Crux for docker build

db.Read returning error "leveldb: not found"

Hi, I am trying to integrate our version of geth with crux and encountering an issue. I can send a private transaction, but when the intended recipient receives the block and tries to retrieve the payload from crux, the db.Read call returns an error: leveldb: not found.

This error is not terribly helpful, and I was hoping you might have an idea what it means in this context and what would need to be remedied to ensure this isn't an issue. This seems to occur randomly. Yesterday I was able to send and receive a private transaction entirely. Today, with a new test network, I encountered this error instead.

More details on my setup:

I am testing on a small network in AWS, with 3 nodes connected to 1 bootnode in a single region. The bootnode is intended to act as a bootnode for both geth and crux.

My bootnode runs crux like this:

crux --url=http://34.229.205.169:9000/ --networkinterface=0.0.0.0 --port=9000 --grpcport=8090 --workdir=/opt/quorum/constellation --publickeys=private/constellation.pub --privatekeys=private/constellation.key --verbosity=3

My regular nodes run crux like this:

crux --url=http://ec2-34-235-137-202.compute-1.amazonaws.com:9000/ --networkinterface=0.0.0.0 --port=9000 --grpcport=8090 --workdir=/opt/quorum/constellation --publickeys=private/constellation.pub --privatekeys=private/constellation.key --verbosity=3 --othernodes=http://34.229.205.169:9000/

Any help understanding what's going on here would be appreciated

node issue

While using the function store from enclave package I am getting the following error :
time="2018-09-21T12:53:45+05:30" level=error msg="Unable to load sender public key, nacl: incorrect key length: 64" senderPubKey="[49 98 101 51 98 53 48 98 51 49 55 51 52 98 101 52 56 52 53 50 99 50 57 100 55 49 52 57 52 49 98 97 49 54 53 101 102 48 99 98 102 51 99 99 101 97 56 99 97 49 54 99 52 53 101 51 100 56 100 52 53 102 98 48]"
The sender public key which I am using is a quorum node key which is:
1be3b50b31734be48452c29d714941ba165ef0cbf3ccea8ca16c45e3d8d45fb0

node issue

Which node key of quorum nodes or crux nodes is to be put as sender and reciepient in store() function of enclave package?

v1.0.3 Binaries

Hi, I am getting started with Crux and I am finding it very convenient to download ubuntu 16.04 binaries directly instead of building it myself. Unfortunately, the latest version I can find binaries for is version 1.0.1. I would ideally like to be able to download binaries for the latest version 1.0.3. Is there any chance binaries for version 1.0.3 can be released in a similar way to the binaries for version 1.0.1? Thanks

Server does not implement chimera.ClientServer (missing Delete method)

Please switch on the "github issues" for your https://github.com/blk-io/quorum-examples
until then, I am reporting it here.

git clone https://github.com/blk-io/quorum-examples.git blk-io_quorum-examples
cd blk-io_quorum-examples/
vagrant up

fails:

...
==> default: github.com/ethereum/go-ethereum/whisper/whisperv2
==> default: Cloning into 'crux'...
==> default: Note: checking out 'tags/v1.0.0'.
==> default: 
==> default: You are in 'detached HEAD' state. You can look around, make experimental
==> default: changes and commit them, and you can discard any commits you make in this
==> default: state without impacting any branches by performing another checkout.
==> default: 
==> default: If you want to create a new branch to retain commits you create, you may
==> default: do so (now or later) by using -b with the checkout command again. Example:
==> default: 
==> default:   git checkout -b <new-branch-name>
==> default: HEAD is now at 1a124b3... Update the gRPC address and add logs when connected to other nodes (#23)
==> default: go get -u github.com/golang/dep/cmd/dep
==> default: go get -u golang.org/x/tools/cmd/goimports
==> default: go get -u github.com/wadey/gocovmerge
==> default: (cd /home/vagrant/crux/.GOPATH/src/github.com/blk-io/crux && ./bin/dep ensure)
==> default: # github.com/blk-io/crux/vendor/github.com/jsimonetti/berkeleydb
==> default: bdb.c: In function ‘go_db_cursor’:
==> default: bdb.c:78:38: warning: passing argument 3 of ‘dbp->cursor’ from incompatible pointer type [-Wincompatible-pointer-types]
==> default:          ret = dbp->cursor(dbp, NULL, dbcp, 0);
==> default:                                       ^
==> default: bdb.c:78:38: note: expected ‘DBC ** {aka struct __dbc **}’ but argument is of type ‘DBC * {aka struct __dbc *}’
==> default: # github.com/blk-io/crux/server
==> default: .GOPATH/src/github.com/blk-io/crux/server/proto_server.go:23:43: cannot use &s (type *Server) as type chimera.ClientServer in argument to chimera.RegisterClientServer:
==> default: 	*Server does not implement chimera.ClientServer (missing Delete method)
==> default: .GOPATH/src/github.com/blk-io/crux/server/proto_server.go:78:43: cannot use &s (type *Server) as type chimera.ClientServer in argument to chimera.RegisterClientServer:
==> default: 	*Server does not implement chimera.ClientServer (missing Delete method)
==> default: .GOPATH/src/github.com/blk-io/crux/server/proto_server.go:115:43: cannot use &s (type *Server) as type chimera.ClientServer in argument to chimera.RegisterClientServer:
==> default: 	*Server does not implement chimera.ClientServer (missing Delete method)
==> default: Makefile:16: recipe for target 'build' failed
==> default: make: *** [build] Error 2
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.

4nodes quorum-example ?

[ old title was: "docker compose command after parameter changes?" ]

Thx a lot for your dockerized version, perhaps that helps us to get to higher rates than the ~200 TPS that I have been seeing in my recent benchmarks.

However, I am only seeing ~175 TPS for now, because in your setup

(a) the gasLimit is too low, see chainhammer quorum-IBFT.md #higher-gas-limit, and

(b) the txpool is too small, see chainhammer quorum-IBFT.md #mempool-settings

In the comment below you'll see the effects of those 2 too small parameters, when running your crux docker compose ...

? -->

What exactly do I have to do, after changing istanbul-genesis.json#L17 and in istanbul-start.sh#L11 ...

... by which exact command do I replace the docker-compose command from there? Thanks.

Request : Publish a binary for ubuntu

@conor10

For us folks, behind enterprise firewalls, building from base is kind of troublesome. We run into issues with the proxy during 'make setup' stage. mostly because of certificate checks and other internet connectivity related stuff.

If you can publish an ubuntu binary for crux, we can download the binary into our development environments and start experimenting.

leveldb (missing)

new problem:

ERROR: unsatisfiable constraints:
  leveldb (missing):
    required by: world[leveldb]
ERROR: Service 'node1' failed to build

reproduce

cd blk-io_crux/docker/quorum-crux
docker-compose -f docker-compose-local.yaml up --build

versions

docker --version; docker-compose --version
Docker version 18.09.5, build e8ff056
docker-compose version 1.22.0, build f46880fe

git log | head -n 9
commit 7e5ecb569319d67e7c468715e1287320c841db86
Merge: eeb63a9 bc1a1b4
Author: Puneetha Karamsetty <[email protected]>
Date:   Thu Mar 21 13:23:22 2019 +0000

    Merge pull request #59 from alikefia/fix-multi-recipients
    
    Fix multi recipients sending

full log

docker-compose -f docker-compose-local.yaml up --build
Building node1
Step 1/24 : FROM alpine:3.8
 ---> dac705114996
Step 2/24 : RUN apk update --no-cache &&     apk add unzip db zlib wrk wget libsodium-dev go bash libpthread-stubs db-dev &&     apk -X http://dl-cdn.alpinelinux.org/alpine/edge/testing add leveldb &&     apk add build-base cmake boost-dev git
 ---> Running in 93bd6a491d52
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
v3.8.4-43-g231048d9b3 [http://dl-cdn.alpinelinux.org/alpine/v3.8/main]
v3.8.4-33-gebcd3398f2 [http://dl-cdn.alpinelinux.org/alpine/v3.8/community]
OK: 9544 distinct packages available
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
(1/26) Installing ncurses-terminfo-base (6.1_p20180818-r1)
(2/26) Installing ncurses-terminfo (6.1_p20180818-r1)
(3/26) Installing ncurses-libs (6.1_p20180818-r1)
(4/26) Installing readline (7.0.003-r0)
(5/26) Installing bash (4.4.19-r1)
Executing bash-4.4.19-r1.post-install
(6/26) Installing db (5.3.28-r0)
(7/26) Installing libgcc (6.4.0-r9)
(8/26) Installing libstdc++ (6.4.0-r9)
(9/26) Installing db-c++ (5.3.28-r0)
(10/26) Installing db-dev (5.3.28-r0)
(11/26) Installing binutils (2.30-r5)
(12/26) Installing gmp (6.1.2-r1)
(13/26) Installing isl (0.18-r0)
(14/26) Installing libgomp (6.4.0-r9)
(15/26) Installing libatomic (6.4.0-r9)
(16/26) Installing pkgconf (1.5.3-r0)
(17/26) Installing mpfr3 (3.1.5-r1)
(18/26) Installing mpc1 (1.0.3-r1)
(19/26) Installing gcc (6.4.0-r9)
(20/26) Installing go (1.10.8-r0)
(21/26) Installing libpthread-stubs (0.3-r5)
(22/26) Installing libsodium (1.0.16-r0)
(23/26) Installing libsodium-dev (1.0.16-r0)
(24/26) Installing unzip (6.0-r4)
(25/26) Installing wget (1.20.3-r0)
(26/26) Installing wrk (4.0.2-r0)
Executing busybox-1.28.4-r3.trigger
OK: 411 MiB in 39 packages
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
ERROR: unsatisfiable constraints:
  leveldb (missing):
    required by: world[leveldb]
ERROR: Service 'node1' failed to build: The command '/bin/sh -c apk update --no-cache &&     apk add unzip db zlib wrk wget libsodium-dev go bash libpthread-stubs db-dev &&     apk -X http://dl-cdn.alpinelinux.org/alpine/edge/testing add leveldb &&     apk add build-base cmake boost-dev git' returned a non-zero code: 1

Berkeley DB error when trying to build crux

I'm trying to build crux on ubuntu 16.04. The make command fails with this log:

# github.com/blk-io/crux/vendor/github.com/jsimonetti/berkeleydb
bdb.c: In function ‘go_db_cursor’:
bdb.c:78:38: warning: passing argument 3 of ‘dbp->cursor’ from incompatible pointer type [-Wincompatible-pointer-types]
         ret = dbp->cursor(dbp, NULL, dbcp, 0);
                                      ^
bdb.c:78:38: note: expected ‘DBC ** {aka struct __dbc **}’ but argument is of type ‘DBC * {aka struct __dbc *}’

The repo (github.com/jsimonetti/berkeleydb) has been archived and is no longer being maintained. I've managed to solve the issue locally but I think it would be a good idea to fork it and fix dependencies.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.