GithubHelp home page GithubHelp logo

spacemeshos / local-testnet Goto Github PK

View Code? Open in Web Editor NEW
14.0 24.0 4.0 16.41 MB

A local testnet of go-spacemesh full nodes running the Spacemesh protocol and a functional CLI wallet. ๐Ÿ’พโฐ

Home Page: https://spacemesh.io

License: MIT License

JavaScript 9.07% TypeScript 87.45% Dockerfile 3.48%
testnet pow post poet spacemesh

local-testnet's Introduction

Spacemesh Local Testnet (Localnet)

NOTE: this project is not actively maintained at present and is likely not functional.

This repo contains the source code of the spacemesh-local-testnet npm pacakge. This package enable developers to run a 10 node Spacemesh testnet locally on one computer.

To run a local testnet follow the instructions in this guide.

To learn more about the Spacemesh cryptocurrency visit https://spacemesh.io .

Build Prerequisites

  • OS X or Linux or Windows
  • Docker
  • NPM
  • Docker Compose

Updating NPM

Run the following command locally to publish new version of the package to npm.

npm run build
cd dist && npm publish

local-testnet's People

Contributors

antonlerner avatar avive avatar dshulyak avatar liathoffman avatar lrettig avatar moshababo avatar narayanprusty avatar nkryuchkov avatar sudachen avatar y0sher avatar

Stargazers

 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

local-testnet's Issues

New features review tracking issue (WIP)

Readme / Docs

  1. Add dependencies min version. e.g. docker, npm, etc...
  2. And link to CLIWallet releases and explain that a version of CLIWallet that works with the localnet node version needs to be used. For example: https://github.com/spacemeshos/cli-wallet/releases/
  3. Need instructions regarding to view the logs of a miner in the network. User should be able to pipe to tail any node logs or to open any node log file from terminal.
  4. Need instructions on how to connect a CLIWallet to any of the network nodes GRPC services endpoint. e.g. host + port in CLIWallet params. User should be able to connect an instance of CLIWallet to the API of any of the nodes on the network. CLIWallet accepts host::port startup flags.
  5. Well-known working configs: Add a section with a set of configs that should work which contain: 1. link to a node release. 1. link to a config file. 1. link to a CLIWallet release.

Config

Minor issue: --coinbase - param should be a standard sm account address in the form of 0x[20 hex chars] and not a full public key, or call it --coinbase-key and leave public key param. It is confusing because in node --coinbase accepts an address.

Decrease default layer duration params and number of layers per epoch

It currently takes 40 minutes from net startup to get to a normal epoch (3rd one). This makes using the localnet quite slow for troubleshooting issues that only occur in normal epochs (such as rewards). Ideally, the layer duration and epoch duration can be made smaller to reduce the time until 3rd epoch in a localnet.

Testnet log files name

Change anton.log.* file names to localnet.log because it is confusing to have all nodes logs be under one of the user accounts name.

Continuous Integration

Motivation

The idea is to create a GHA in go-spacemesh repository which uses the local testnet tool to verify if the if the build will work with local testnet tool or now.

Solution

We need to create a pipeline with the following prerequisites installed:

  • Ubuntu OS
  • Nodejs and NPM
  • Docker

Then the pipeline will compose of mainly 4 steps.

Support libp2p in local-testnet

Identity file is stored at {DATADIR}/p2p/p2p.key, for example -d /tmp/libp2pnew/ location of the identity file is at /tmp/libp2pnew/777/p2p/p2p.key. Example content of the file: {"Key":"CAESQNAuhFOHKi2bEXArgW3Lx9ZcDOsBe+cmlmoMR8cbadEzdva7QJzXS+dLqOoxhJOz1Zkz2q/hPSnBwTFJD8XfzKk=","ID":"12D3KooWHpkVErtj1XrPq2hybPHrQpmE5Yuck8XxeQ7wVpcagCnc"}

Key is a ed25519 private key, marshalled together with a key type.
Identity is a public key marshalled to be usable with libp2p library.

This is an example of the new p2p config:

"p2p": {
        "bootnodes": [
            "/ip4/34.122.69.143/tcp/5005/p2p/12D3KooWNZQZuCf2Db4duHnS2KJGkhUK1T4gzoDMVbMyUsxoqbhb",
            "/ip4/34.133.65.156/tcp/5002/p2p/12D3KooWRUrcXbrtABRzyTH3SuVfgWWSwfJd4fsvqAc4bEXm8av1",
            "/ip4/35.224.29.146/tcp/5003/p2p/12D3KooWSFUJgnAttimJj85XY78fGLrgmuyNCfruYMFwCZUpLe3Q",
            "/ip4/104.198.136.180/tcp/5004/p2p/12D3KooWSyYG3BaG8QE2y1fiZQPPKgvpZettxpfxjaSxBKDkAyBV",
            "/ip4/34.69.148.253/tcp/5006/p2p/12D3KooWEV6jQokbutEaL7khrNrXR248U1KpMwjtxVHRKcp4n1E7",
            "/ip4/35.232.92.86/tcp/5007/p2p/12D3KooWMbh117QvwZdiVjneRHAQYYmDFVTbwVLW32BJ4BnXnTjA"
        ],
        "network-id": 777,
        "target-outbound": 10
}

The highlighted part of the /ip4/34.122.69.143/tcp/5005/p2p/12D3KooWNZQZuCf2Db4duHnS2KJGkhUK1T4gzoDMVbMyUsxoqbhb is the Identity field.

changes in spacecraft to support this: spacemeshos/go-spacecraft@e0308cb

Mining awards output in testnet console

It will be great if the output log for a mining reward, currently listing the total reward can be a bit extended to show which accounts got coins and how much coin each account got.

This feature will make it easier to verify that accounts have correct balances that reflect mining awards and any TXs they were a party to. Something like this:

> Applied 500 SMC award to nodes. Awards detials:
Anton 100 SMC.
Yosher 50 SMC.
...

Update Local net to run Spacemesh 0.2 full nodes

Running a local net with public testnet 128 node (go-sm tag/v0.1.29 node) and default localnet config will result in stuck verified layer as soon as layer 13 or 15. Almost every network i tried running got stuck before epoch 5. We need to find a good set of configs that balance between consensus liveness and having a great dev experience. e.g. short epoch times and layers and short time to wait until a normal 3rd epoch.

Display layer finality indicator

It will be nice to add a finality indicator number - e.g. 0.99 for each layer which passed the hare protocol successfully based on the number of layers after it. It shows to the users that the protocol can reach good finality quickly

Setup fails on Ubuntu

When running python testnet.py we get this error:

docker.errors.APIError: 403 Client Error: Forbidden ("Pool overlaps with other one on this address space")

Full log:

(venv) parallels@parallels-Parallels-Virtual-Platform:~/dev/local-testnet$ python testnet.py
Traceback (most recent call last):
  File "/home/parallels/dev/local-testnet/venv/lib/python3.6/site-packages/docker/api/client.py", line 261, in _raise_for_status
    response.raise_for_status()
  File "/home/parallels/dev/local-testnet/venv/lib/python3.6/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 403 Client Error: Forbidden for url: http+docker://localhost/v1.35/networks/create

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "testnet.py", line 209, in <module>
    create_network(NETWORK_NAME, NETWORK_SUBNET, NETWORK_GATEWAY)
  File "testnet.py", line 131, in create_network
    ipam=ipam_config
  File "/home/parallels/dev/local-testnet/venv/lib/python3.6/site-packages/docker/models/networks.py", line 154, in create
    resp = self.client.api.create_network(name, *args, **kwargs)
  File "/home/parallels/dev/local-testnet/venv/lib/python3.6/site-packages/docker/api/network.py", line 152, in create_network
    return self._result(res, json=True)
  File "/home/parallels/dev/local-testnet/venv/lib/python3.6/site-packages/docker/api/client.py", line 267, in _result
    self._raise_for_status(response)
  File "/home/parallels/dev/local-testnet/venv/lib/python3.6/site-packages/docker/api/client.py", line 263, in _raise_for_status
    raise create_api_error_from_http_exception(e)
  File "/home/parallels/dev/local-testnet/venv/lib/python3.6/site-packages/docker/errors.py", line 31, in create_api_error_from_http_exception
    raise cls(e, response=response, explanation=explanation)
docker.errors.APIError: 403 Client Error: Forbidden ("Pool overlaps with other one on this address space")
Starting to shutdown nodes
Killing all dockers
[Traceback (most recent call last):
  File "testnet.py", line 245, in <module>
    tools.cleanUp(containers)
  File "/home/parallels/dev/local-testnet/tools.py", line 105, in cleanUp
    cont.kill()
AttributeError: 'NoneType' object has no attribute 'kill'

Kibana feature is not working

  1. Start a LocalNet with --elk true. Used a local go-sm built node v 0.1.22.
  2. Try to access Kibana from browser

Result: Kibana server is not ready yet
Expected: Working Kibana interface for logs.

There are also many errors in the elk containers.
I've waited for ~1 hour to give Kibana chance to warm up but still getting same results.

Only 1 tx by an account per layer can be executed

Repo: Create 1st and 2nd transaction quickly from an account so they are submitted in the same layer.

Result: 2nd TX summary shows nonce: 0 and is the one that gets executed. The 1st TX never executes.
Expected: The 2 TXs executing and the 2nd TX summary to show nonce: 1.

Minor text copy changes

  • Always display 0x prefix when displaying hex numbers. e.g. anton pubkey

  • Commands help copy:

  • Create account -> Create a new coin account.

  • account -> Display account info.

  • transfer coins -> Transfer coins between any two accounts.

  • switch account -> Switch to another account.

  • commitment finished for node: cfcf9 size: 1024 (bytes) -> 'Co.... [disk-emoji][clock-emoji]`

  • Anywhere that a coin balance is displayed - add the unit SMC after it. e.g 500 SMC

Transfer coins flow

  • choose one: -> choose an account to receive the coins.
  • Enter Meshcoins amount to transfer: -> Enter Spacemesh Coins (SMC) amount to transfer:
  • mining reward -> award
  • non default -> non-default

Add Windows 10 Support

Add support for running the LocalNet npm package on Windows versions which support docker desktop.

Set unique rewards addresss per Smesher

Motivation

It is hard to work with local net rewards accounts since all miners have the same rewards account.

Change

For miner x, If genesis address x exists in genesis config file then pick that address, otherwise, use a randomly generated address.

Can't start localnet with node from develop branch

  1. Build a local docker image from go-sm code in develop branch.
  2. Start a local net: spacemesh-local-testnet create --go-sm-image=spacemesh:local
    Result: network won't be created. Stuck on Miner1 starting.
    Expected: network to be created.

On same box, running localnet without a local node works fine. Last message displayed Starting Miner1 (Type: Bootstrap) before hang.

Setup on ubuntu 18.04 fails

Looks like the script is expecting github user and fails due to terminal prompts not being enabled. When I try
git clone https://github.com/CLIWallet/client /home/parallels/go/src/github.com/CLIWallet/client

from the console I get this prompt: Username for 'https://github.com'...

setup.sh output:

# cd .; git clone https://github.com/CLIWallet/client /home/parallels/go/src/github.com/CLIWallet/client
Cloning into '/home/parallels/go/src/github.com/CLIWallet/client'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
package github.com/CLIWallet/client: exit status 128
# cd .; git clone https://github.com/CLIWallet/repl /home/parallels/go/src/github.com/CLIWallet/repl
Cloning into '/home/parallels/go/src/github.com/CLIWallet/repl'...
fatal: could not read Username for 'https://github.com': terminal prompts disabled
package github.com/CLIWallet/repl: exit status 128
+ echo building wallet failed
building wallet failed

Add debug flag

Make it super easy for devs to run a localnet with all node debug and error output in the logs. Currently defaults to info. One of the main use cases of localnet is for full node debugging.

Can't run anything

I'm having a lot of trouble running local-testnet. It builds the docker containers correctly and appears to launch three of them. Two of them, go-spacemesh:develop and poet:develop appear to exit immediately and furthermore I cannot view their logs:

> docker logs -f f6c5304f66b2
Error response from daemon: configured logging driver does not support reading
> docker logs -f 9294b6bd44e5
Error response from daemon: configured logging driver does not support reading

The third container, fluent/fluentd, contains errors in the log:

> docker logs 81b1edffa607
2020-01-15 22:45:32 +0000 [info]: parsing config file is succeeded path="/fluentd/etc/test.conf"
2020-01-15 22:45:32 +0000 [info]: using configuration file: <ROOT>
  <source>
    @type forward
  </source>
  <filter docker.**>
    @type parser
    key_name "log"
    format json
    reserve_data true
    <parse>
      @type json
    </parse>
  </filter>
  <match docker.*>
    @type copy
    <store>
      @type "stdout"
      include_tag_key true
      <format>
        @type "json"
      </format>
      <inject>
        tag_key tag
      </inject>
    </store>
    <store>
      @type "file"
      path "/tmp/logs/nodes.log"
      <buffer>
        timekey_use_utc true
        timekey 1h
        append true
        timekey_wait 1s
        path "/tmp/logs/nodes.log"
      </buffer>
    </store>
  </match>
</ROOT>
2020-01-15 22:45:32 +0000 [info]: starting fluentd-1.3.2 pid=6 ruby="2.5.2"
2020-01-15 22:45:32 +0000 [info]: spawn command to main:  cmdline=["/usr/bin/ruby", "-Eascii-8bit:ascii-8bit", "/usr/bin/fluentd", "-c", "/fluentd/etc/test.conf", "-p", "/fluentd/plugins", "--under-supervisor"]
2020-01-15 22:45:33 +0000 [info]: gem 'fluentd' version '1.3.2'
2020-01-15 22:45:33 +0000 [info]: adding filter pattern="docker.**" type="parser"
2020-01-15 22:45:33 +0000 [info]: adding match pattern="docker.*" type="copy"
2020-01-15 22:45:33 +0000 [info]: adding source type="forward"
2020-01-15 22:45:33 +0000 [warn]: parameter 'append' in <buffer>
  timekey_use_utc true
  timekey 1h
  append true
  timekey_wait 1s
  path "/tmp/logs/nodes.log"
</buffer> is not used.
2020-01-15 22:45:33 +0000 [info]: #0 starting fluentd worker pid=16 ppid=6 worker=0
2020-01-15 22:45:33 +0000 [info]: #0 listening port port=24224 bind="0.0.0.0"
2020-01-15 22:45:33 +0000 [info]: #0 fluentd worker is now running worker=0
2020-01-15 22:45:33 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data 'unknown flag `nodeaddr''" location=nil tag="docker.poet_9294b6bd44e5" time=1579128333 record={"container_id"=>"9294b6bd44e52dfc563939e10cc578a1be5ab555cfc70d9ccc08a3a72c0e4ed3", "container_name"=>"/wonderful_shirley", "source"=>"stderr", "log"=>"unknown flag `nodeaddr'"}
{"container_id":"9294b6bd44e52dfc563939e10cc578a1be5ab555cfc70d9ccc08a3a72c0e4ed3","container_name":"/wonderful_shirley","source":"stderr","log":"unknown flag `nodeaddr'","tag":"docker.poet_9294b6bd44e5"}
2020-01-15 22:45:33 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data 'unknown flag `nodeaddr''" location=nil tag="docker.poet_9294b6bd44e5" time=1579128333 record={"container_id"=>"9294b6bd44e52dfc563939e10cc578a1be5ab555cfc70d9ccc08a3a72c0e4ed3", "container_name"=>"/wonderful_shirley", "source"=>"stderr", "log"=>"unknown flag `nodeaddr'"}
{"container_id":"9294b6bd44e52dfc563939e10cc578a1be5ab555cfc70d9ccc08a3a72c0e4ed3","container_name":"/wonderful_shirley","source":"stderr","log":"unknown flag `nodeaddr'","tag":"docker.poet_9294b6bd44e5"}
{"container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","container_name":"/bootstrap","source":"stdout","log":"{\"L\":\"ERROR\",\"T\":\"2020-01-15T22:45:34.735Z\",\"N\":\"00000.defaultLogger\",\"M\":\"harness: an error has occurred while generating a new harness: \",\"error\":\"could not find executable path in arguments\"}","L":"ERROR","T":"2020-01-15T22:45:34.735Z","N":"00000.defaultLogger","M":"harness: an error has occurred while generating a new harness: ","error":"could not find executable path in arguments","tag":"docker.b6c4faf1c321"}
{"container_name":"/bootstrap","source":"stdout","log":"{\"L\":\"INFO\",\"T\":\"2020-01-15T22:45:34.735Z\",\"N\":\"00000.defaultLogger\",\"M\":\"integration: harness is listening on a blocking dummy channel\"}","container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","L":"INFO","T":"2020-01-15T22:45:34.735Z","N":"00000.defaultLogger","M":"integration: harness is listening on a blocking dummy channel","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data 'panic: runtime error: invalid memory address or nil pointer dereference'" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"log"=>"panic: runtime error: invalid memory address or nil pointer dereference", "container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900", "container_name"=>"/bootstrap", "source"=>"stderr"}
{"log":"panic: runtime error: invalid memory address or nil pointer dereference","container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","container_name":"/bootstrap","source":"stderr","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data '[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x8306fa]'" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"container_name"=>"/bootstrap", "source"=>"stderr", "log"=>"[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x8306fa]", "container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900"}
{"container_name":"/bootstrap","source":"stderr","log":"[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x8306fa]","container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data ''" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900", "container_name"=>"/bootstrap", "source"=>"stderr", "log"=>""}
{"container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","container_name":"/bootstrap","source":"stderr","log":"","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data 'goroutine 19 [running]:'" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"log"=>"goroutine 19 [running]:", "container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900", "container_name"=>"/bootstrap", "source"=>"stderr"}
{"log":"goroutine 19 [running]:","container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","container_name":"/bootstrap","source":"stderr","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data 'main.main.func1(0x0)'" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900", "container_name"=>"/bootstrap", "source"=>"stderr", "log"=>"main.main.func1(0x0)"}
{"container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","container_name":"/bootstrap","source":"stderr","log":"main.main.func1(0x0)","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data '\t/go/src/github.com/spacemeshos/go-spacemesh/cmd/integration/harness.go:95 +0x3a'" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"source"=>"stderr", "log"=>"\t/go/src/github.com/spacemeshos/go-spacemesh/cmd/integration/harness.go:95 +0x3a", "container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900", "container_name"=>"/bootstrap"}
{"source":"stderr","log":"\t/go/src/github.com/spacemeshos/go-spacemesh/cmd/integration/harness.go:95 +0x3a","container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","container_name":"/bootstrap","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data 'created by main.main'" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"container_name"=>"/bootstrap", "source"=>"stderr", "log"=>"created by main.main", "container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900"}
{"container_name":"/bootstrap","source":"stderr","log":"created by main.main","container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","tag":"docker.b6c4faf1c321"}
2020-01-15 22:45:34 +0000 [warn]: #0 dump an error event: error_class=Fluent::Plugin::Parser::ParserError error="pattern not match with data '\t/go/src/github.com/spacemeshos/go-spacemesh/cmd/integration/harness.go:92 +0x390'" location=nil tag="docker.b6c4faf1c321" time=1579128334 record={"log"=>"\t/go/src/github.com/spacemeshos/go-spacemesh/cmd/integration/harness.go:92 +0x390", "container_id"=>"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900", "container_name"=>"/bootstrap", "source"=>"stderr"}
{"log":"\t/go/src/github.com/spacemeshos/go-spacemesh/cmd/integration/harness.go:92 +0x390","container_id":"b6c4faf1c321c93330fc1bc6d667dbae35b1723a99e0ccdb722b9ee95a406900","container_name":"/bootstrap","source":"stderr","tag":"docker.b6c4faf1c321"}

Here's what I see from testnet.py:

> python testnet.py
created
fluent running
Creating poet container
Creating bootstrap container
bootstrap params: --randcon 4 --hare-committee-size 5 --hare-max-adversaries 2 --hare-round-duration-sec 10 --layer-duration-sec 60 --layer-average-size 10 --hare-wakeup-delta 10 --test-mode  --grpc-server  --json-server  --eligibility-confidence-param 5 --eligibility-epoch-offset 0 --genesis-active-size 5 --genesis-conf /tmp/genesis.json --genesis-time 2020-01-15T22:46:31+00:00 --coinbase 097598942e44919cf7d11499887a595e41b097acd0a75d65ed8b8c6fa739d297 --poet-server 192.168.0.20:50002 --events-url tcp://0.0.0.0:56565
Waiting for node to boot up
(hangs)
^CRun stopped
Starting to shutdown nodes
Killing all dockers
[-cannot remove cont
-cannot remove cont
-

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.