Paul Hauner
9a0ebac687
Merge branch 'validator-enhancements' into paul-gossip-test
2019-03-31 17:47:35 +11:00
Paul Hauner
a93f898946
Improve gossipsub block processing
2019-03-31 17:27:04 +11:00
Paul Hauner
c596e3f7d7
Change log levels of gossipsub events
2019-03-31 17:26:28 +11:00
Age Manning
e0b5e74e7c
Removes further unneccessary debug output
2019-03-31 15:48:11 +11:00
Age Manning
f03259991d
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements
2019-03-31 15:37:23 +11:00
Age Manning
c85da612f6
Remove debugging statements
2019-03-31 15:35:54 +11:00
Paul Hauner
c6fc4f0769
Fix bug in attestation production
2019-03-31 15:35:27 +11:00
Age Manning
33473892f2
Validator client fixes. Hack fix for genesis start time
2019-03-31 14:26:58 +11:00
Age Manning
b4c21ccca3
Merge remote-tracking branch 'origin/paul-gossip-test' into validator-enhancements
2019-03-31 13:58:38 +11:00
Paul Hauner
b26f1f8e1c
Add build_all_caches
method to BeaconState
...
Also adds a few more cache builds in BeaconChain.
2019-03-31 13:42:49 +11:00
Age Manning
ae8e470d21
Add patch for attestation crosslinks
2019-03-31 13:06:01 +11:00
Paul Hauner
4e71ed6972
Fix produce_attestation
bug.
...
It was referencing the wrong crosslink.
2019-03-31 12:54:42 +11:00
Paul Hauner
2c1fa86cd3
Swap to gossiping whole block.
...
Processing for gossiped blocks is broken in `SimpleSync`, will be fixed
next.
2019-03-31 12:28:35 +11:00
Age Manning
e0680f9771
Correct compile error
2019-03-31 11:04:50 +11:00
Age Manning
77fb738c78
Merge latest gossip branch
2019-03-31 11:02:57 +11:00
Paul Hauner
c99a742aae
Fix bug in SimpleSync queue.
...
It was not completing partials with bodies.
2019-03-31 10:15:42 +11:00
Paul Hauner
5cc2fdd3d4
Change beacon_node
and network
slog features
...
Allows printing debug messages in --release
2019-03-31 10:15:01 +11:00
Paul Hauner
d2b5cf5a32
Improve queueing in SimpleSync
2019-03-31 09:44:58 +11:00
Age Manning
ee693fb3e3
Add committe_len to gRPC parameters
2019-03-31 00:34:35 +11:00
Age Manning
4fb95d06d1
Correct cache race condition
2019-03-31 00:08:55 +11:00
Age Manning
51ffbc07d2
Correct attestation error handling
2019-03-30 19:48:45 +11:00
Age Manning
fc5142c09a
Registers the attester service to the beacon node RPC client
2019-03-30 19:32:32 +11:00
Paul Hauner
65ae8fda47
Remove old attestation aggregator
2019-03-30 19:15:15 +11:00
Paul Hauner
935c64deef
Adds attestation validation to SimpleSync
2019-03-30 19:11:52 +11:00
Age Manning
d8fd7c8803
Implement beacon node side of attestation production gRPC
2019-03-30 18:36:38 +11:00
Paul Hauner
c2b6f949c0
Restrict blop pool from re-including attestations
2019-03-30 18:25:32 +11:00
Paul Hauner
64507950dd
Use committe_len in test_harness
2019-03-30 17:31:58 +11:00
Age Manning
a952acb86f
Add committee_len to attestation data
2019-03-30 17:20:33 +11:00
Paul Hauner
dbcc88ad67
Ensure BitVec is initialized using a multiple of 8
...
I found it was panic-ing when supplied a non-power-of-zero len.
2019-03-30 17:13:23 +11:00
Paul Hauner
7b3f317abf
Fix bug with attestation production
...
It was being produced with the wrong source root. I will raise an issue
on the spec as it's a tricky one.
2019-03-30 17:12:43 +11:00
Age Manning
bc305cacc2
Merge branch 'blop-pool' into validator-enhancements
2019-03-30 16:16:30 +11:00
Paul Hauner
397e104f9b
Implement Attestation
building in test harness
2019-03-30 16:02:09 +11:00
Age Manning
6e254551af
Implement produce beacon block on gRPC beacon node server
2019-03-30 15:58:31 +11:00
Age Manning
ba771282fa
Merges in validator client branch
2019-03-30 13:17:24 +11:00
Paul Hauner
89cc92572a
Add test_harness
tests for attestation count
2019-03-30 13:03:05 +11:00
Paul Hauner
cd9494181c
Push RwLock down into OperationPool
...
There used to be one massive lock on `BeaconChain.op_pool`, however that
would cause unnecessary blocking.
2019-03-30 12:26:25 +11:00
Paul Hauner
1840248af8
Remove old queues from BeaconChain
2019-03-30 12:00:31 +11:00
Paul Hauner
8bf7a83f37
Rename op processing methods on BeaconChain
2019-03-29 19:09:01 +11:00
Paul Hauner
2b53851062
Pass errors back from block ops processing
2019-03-29 18:54:01 +11:00
Paul Hauner
8b1a91e9ee
Add process_attestation
to BeaconChain
2019-03-29 18:40:50 +11:00
Paul Hauner
46a978a5a9
Implement op pool for all ops execpt attestations
2019-03-29 18:30:03 +11:00
Kirk Baird
023b4e8c92
Merge master and remove ssz length encoding from FakeBLS
2019-03-29 11:47:22 +11:00
Luke Anderson
be592c86d1
Started migrating FreeAttestation to Attestation in the harnesses - doesn't compile yet.
2019-03-29 10:39:37 +11:00
Luke Anderson
87acaac8a0
Ran cargo fmt.
2019-03-28 21:01:47 +11:00
Luke Anderson
ba71e8adca
Merged age-validator-client into luke's changes on validator_client, and fixed all the merge conflicts.
2019-03-28 20:55:07 +11:00
Age Manning
2a2660ce62
Cleanup debug issues, corrects RPC server logic
2019-03-28 17:24:49 +11:00
Age Manning
cc4ccd4017
Corrects read/write race condition
2019-03-28 17:16:43 +11:00
Luke Anderson
c9e8fe53bc
Merged Age's changes and ripped out heaps of now obsolete stuff in the validator client.
...
- Replaced most instances of PublicKey with KeyPair, since they need to be passed into each validator thread now.
- Pulled out a bunch of FreeAttestations, and replaced with regular Attestations (as per Paul's suggestion)
- Started generalising pubkeys to 'signers' (though they are still just Keypairs)
- Added validator_index into a few structs where relevant
- Removed the SlotClock and DutiesReader from the BlockProducer and Attester services, since this logic is now abstracted to the higher level process.
- Added a Hash trait to the Keypair (rather than just pubkey) which assumes the Pubkey uniquely defines it.
2019-03-28 15:50:57 +11:00
Age Manning
6f0c0e47c3
Update Validator RPC and cache building
2019-03-28 14:32:02 +11:00
Age Manning
d7289ab55e
Add gossip-test branch
2019-03-28 14:31:35 +11:00
Age Manning
4caaf82892
Correct validator get duties RPC server logic
2019-03-28 13:14:41 +11:00
Age Manning
086ebb1485
Fix beacon node rpc compilation issues
2019-03-27 21:32:53 +11:00
Age Manning
1f437a3e7b
Implements RPC Server side of epoch duties
2019-03-27 21:08:28 +11:00
Luke Anderson
16706d322f
Merge remote-tracking branch 'origin/master' into validator_client-luke_wip
2019-03-27 19:10:36 +11:00
Luke Anderson
c9a7977d69
Renamed some functions, trying to get beaconnode attestation stuff to work.
2019-03-27 14:30:09 +11:00
Paul Hauner
12936e73a7
Set gossip logs to info
2019-03-27 12:57:05 +11:00
Paul Hauner
c52da489cb
Merge branch 'master' into paul-gossip-test
2019-03-27 11:26:06 +11:00
Paul Hauner
f18941a01c
Block client startup until state is ready
2019-03-27 11:25:15 +11:00
Paul Hauner
b006586d19
Add slot timer to beacon node
2019-03-27 10:36:20 +11:00
Paul Hauner
c82bad7602
Add cache builds when advancing chain slot
2019-03-27 10:34:52 +11:00
Paul Hauner
c27fdbe37f
Try to load keys from file when starting client
2019-03-27 10:28:27 +11:00
Luke Anderson
1584469b7c
Renamed attestation -> attestation_data for fetch, but not publish, to acknowledge the difference in the spec. Also started implementing the gRPC get_attestation_data functionality in the BeaconNode.
2019-03-26 17:41:43 +11:00
Age Manning
96ccd58414
Merge branch 'libp2p-patch'
2019-03-26 16:49:43 +11:00
Kirk Baird
e12ce2bd5c
Merge branch 'master' into yaml-test-downloads
2019-03-26 16:47:24 +11:00
Age Manning
507c8efbfb
Update to latest gossipsub
2019-03-26 16:38:50 +11:00
Paul Hauner
7cba9f4126
Merge branch 'master' into paul-gossip-test
2019-03-26 16:09:47 +11:00
Paul Hauner
00b546e6b8
Update slot clock to use genesis slot
2019-03-26 15:44:28 +11:00
Paul Hauner
0768d24ffc
Add untested block processing from GRPC
2019-03-26 15:26:05 +11:00
Age Manning
6955330f6c
Merge branch 'libp2p-patch'
2019-03-26 15:14:29 +11:00
Age Manning
b2ae54043c
Fix libp2p version to specific commit
2019-03-26 15:06:41 +11:00
Paul Hauner
3756d8d681
Rename proto NodeInfo -> NodeInfoResponse
2019-03-26 15:04:39 +11:00
Age Manning
5b40152873
Update to latest libp2p and gossipsub
2019-03-26 15:01:05 +11:00
Kirk Baird
116d995960
Merge current master and fix ssz-fuzzing
2019-03-26 14:53:50 +11:00
Paul Hauner
e702896bee
Fix ssz decoding bug
2019-03-26 13:28:21 +11:00
Paul Hauner
56c9a29593
Add logging
2019-03-26 13:28:01 +11:00
Paul Hauner
d4fecd8a84
Set GRPC block to be just SSZ
2019-03-26 12:32:38 +11:00
Paul Hauner
ca1eaf0b53
Merge branch 'paul-gossip-test' of github.com:sigp/lighthouse into paul-gossip-test
2019-03-26 09:47:38 +11:00
Paul Hauner
a145824c51
Set BeaconChainHarness to return block
...
This is useful if you want to inspect the block.
2019-03-26 09:46:26 +11:00
Age Manning
f7131c2f87
Fix compile issues and modify type names
2019-03-25 23:39:39 +11:00
Age Manning
52b31b2009
Implement initial pubsub message handling
2019-03-25 23:02:51 +11:00
Age Manning
05369df7e8
Add PubsubMessage and publish function to behaviour
2019-03-25 22:00:11 +11:00
Age Manning
214fb5b8ff
Merge RPC branch
2019-03-25 21:31:49 +11:00
Paul Hauner
098e63ac32
Move gossip structs into behaviour
2019-03-25 18:59:50 +11:00
Luke Anderson
c7ba3faae0
Merge branch 'validator_client' of github.com:sigp/lighthouse into validator_client
2019-03-25 18:32:42 +11:00
Luke Anderson
4cdeb6abe5
Progress towards validator signing attestations.
...
- Added a 'beacon_attester' RPC endpoint, so the BeaconNode can supply attestation data.
- Renamed 'attestation_data' to just 'attestation' throughout (except where it is actually just the data structure).
2019-03-25 18:32:27 +11:00
Age Manning
02039be400
Fix merge conflicts
2019-03-25 17:46:08 +11:00
Luke Anderson
2f49289c28
Merged master and fixed merge conflicts with Config updates.
2019-03-25 17:03:17 +11:00
Age Manning
ca9af49d4e
Adds error handling to validator client service
2019-03-25 16:50:15 +11:00
Paul Hauner
32a025bdf7
Introduced RequestId
newtype
2019-03-25 16:48:44 +11:00
Paul Hauner
ebb9ced0a4
Improve peer status handling
2019-03-25 15:30:46 +11:00
Paul Hauner
708d9b5674
Add basic Gossip sync handlers
2019-03-25 14:27:20 +11:00
Paul Hauner
267477ffc2
Fix typo from previous commit
2019-03-24 18:37:23 +11:00
Paul Hauner
755a09d164
Move ImportQueue into own file
2019-03-24 18:34:44 +11:00
Paul Hauner
ee07efb9e9
Add comments to SimpleSync
2019-03-24 18:31:03 +11:00
Paul Hauner
07b6f70842
Ignore syncing tests (they run too long)
2019-03-24 17:58:30 +11:00
Paul Hauner
796b68dc04
Implement Goodbye and BeaconState msg handlers
2019-03-24 17:51:32 +11:00
Paul Hauner
f918f42b28
Merge branch 'master' into paul-sync
2019-03-24 16:36:18 +11:00
Paul Hauner
3dc5595a6f
Fix last errors stopping full chain sync
2019-03-24 16:35:07 +11:00
Paul Hauner
1ea9959632
Fix bug with block processing in sync
2019-03-24 15:18:21 +11:00
Paul Hauner
5f4f67f46f
Swap ImportQueue from a Map to a Vec
...
There's an edge case where different blocks can have the same block
body.
2019-03-24 14:22:12 +11:00
Paul Hauner
15f853416b
Add more detail to sync logs
2019-03-24 13:59:27 +11:00
Paul Hauner
840738ea12
Tidy logging, fix bug with stale time in queue
2019-03-24 13:06:17 +11:00
Paul Hauner
6b39c693af
Extend syncing
2019-03-24 12:50:23 +11:00
Paul Hauner
3eae7b3fc5
Add skip slot support to BeaconChain fns
2019-03-24 12:49:59 +11:00
Paul Hauner
a57a7c2394
Implement block imports for sync
2019-03-23 18:48:09 +11:00
Paul Hauner
4b5b5851a6
Allow sync to to request block bodies.
2019-03-23 13:23:44 +11:00
Age Manning
17cd5bb991
Adds genesis time to node info. Closes #256
2019-03-22 23:01:10 +11:00
Age Manning
a1a5f29caa
Fix registering of node service
2019-03-22 16:56:54 +11:00
Age Manning
a4cfe68272
Thread beacon node RPC server
2019-03-22 16:46:52 +11:00
Paul Hauner
96ba1c8f77
Implement get_block_roots
for syncing
2019-03-22 14:20:49 +11:00
Age Manning
858cf4f1f4
Add beacon_chain trait for gRPC server
2019-03-22 13:51:17 +11:00
Age Manning
ee6a0ccb92
Initial build of server-side BeaconNodeService RPC
2019-03-22 13:37:24 +11:00
Age Manning
844fdc0fb9
Rename network_id to chain_id
2019-03-22 12:39:45 +11:00
Paul Hauner
f96a3282b5
Pass first sync test
2019-03-22 11:39:16 +11:00
Paul Hauner
4fc6e435d2
Add type alias to test_harness
2019-03-22 11:38:57 +11:00
Paul Hauner
7a75ee3d19
Merge branch 'master' into paul-sync
2019-03-22 07:11:04 +11:00
Paul Hauner
f3c81cda99
Implement hello responses.
2019-03-21 18:21:50 +11:00
Paul Hauner
430702b38d
Clean println's out of state processing
2019-03-21 18:21:26 +11:00
Paul Hauner
ca18d4390a
Add first changes to syncing logic
...
- Adds testing framework
- Breaks out new `NetworkContext` object
2019-03-21 17:17:01 +11:00
Age Manning
84f0ad2ae7
Add Ping protocol to lighthouse
2019-03-21 13:42:02 +11:00
Age Manning
7f976124df
Add logging to libp2p behaviour
2019-03-21 13:34:37 +11:00
Age Manning
71dca8af36
Correct user agent string
2019-03-21 13:28:34 +11:00
Age Manning
13ac5b1d25
Tidy network poll and implement Identify
2019-03-21 13:15:14 +11:00
Age Manning
35815ce786
Cleans up swarm poll and adds identify behaviour
2019-03-21 12:57:41 +11:00
Age Manning
67a3dfe052
Remove node private key from config
2019-03-21 12:45:23 +11:00
Age Manning
7ec37939c8
Adds Identify protocol and cleans up network config
2019-03-21 12:41:05 +11:00
Age Manning
437a0505c9
Implement encodeable on all RPC methods
2019-03-21 11:25:22 +11:00
Age Manning
950186eca7
Implement BeaconChainState RPC method
2019-03-21 11:18:47 +11:00
Age Manning
3063d5eac9
Implement BeaconBlockBodies RPC method
2019-03-21 11:16:09 +11:00
Age Manning
56cd77ead8
Implement BeaconBlockHeaders RPC method
2019-03-21 11:05:26 +11:00
Age Manning
766a79adfa
Implement BeaconBlockRoots RPC method
2019-03-21 11:02:52 +11:00
Age Manning
a14426349a
Implement Goodbye RPC call
2019-03-21 10:53:29 +11:00
Age Manning
3aa2b376bb
Increase RPC read/write limit to 4M
2019-03-21 10:43:21 +11:00
Age Manning
e080f63811
Rename libp2p to eth2-libp2p
2019-03-20 15:09:24 +11:00
Age Manning
7c7f81d188
Fix issue with merging v0.5.0
2019-03-20 14:36:09 +11:00
Age Manning
4310f35b73
Merge branch 'master' into network-server
2019-03-20 14:31:35 +11:00
Age Manning
4105b869e1
Fix all matches relating to new RPC methods
2019-03-20 10:54:19 +11:00
Paul Hauner
84f373fcc2
Fix clippy lints
2019-03-20 10:51:53 +11:00
Age Manning
9db36f15bf
Tidy RPC Methods
2019-03-20 10:47:05 +11:00
Age Manning
ae1a7a2a25
Implement BeaconChainState RPC method
2019-03-20 10:43:40 +11:00
Age Manning
fd04431d54
Implement BeaconBlockBody RPC method
2019-03-20 10:36:37 +11:00
Age Manning
8fa70f64ec
Implement BeaconBlockHeaders RPC method
2019-03-20 10:28:05 +11:00
Age Manning
450b2cfb81
Rename RequestBeaconBlockRoots to BeaconBlockRoots for consistency
2019-03-20 10:19:45 +11:00
Age Manning
8acfb260d1
Implement RequestBeaconBlockRoots RPC method
2019-03-20 10:18:04 +11:00
Age Manning
0e8b174770
Implement Goodbye libp2p rpc request
2019-03-20 10:05:17 +11:00
Age Manning
d229bc9ccb
Stub possible fields in HandlerMessage
2019-03-20 10:02:26 +11:00
Age Manning
4be2eeb792
Correct cli rpc parameters
2019-03-20 09:58:31 +11:00
Age Manning
037c3b8307
Update config and cli for rpc
2019-03-20 00:01:31 +11:00
Age Manning
d2f12b7c18
Add standard RPC service
2019-03-19 23:47:58 +11:00
Age Manning
4b57d32b60
Apply clippy suggestions
2019-03-19 23:20:39 +11:00
Age Manning
e7f87112fb
Tidy networking crates
2019-03-19 22:53:51 +11:00
Age Manning
dc014d07bc
Enable syncing state when new peer connects
2019-03-19 22:32:56 +11:00
Age Manning
0a8b0069dc
Add peer validation and successful handshake
2019-03-19 22:18:01 +11:00
Age Manning
b30d72501c
Add logger to sync module
2019-03-19 21:55:57 +11:00
Age Manning
6e10ce93d4
Tidy message handler
2019-03-19 21:44:52 +11:00
Age Manning
c0bc45f1f3
Implement node connection validation structure
2019-03-19 18:28:42 +11:00
Age Manning
752c784534
Initial handling of RPC HELLO requests
2019-03-19 14:40:08 +11:00
Age Manning
5ae8079b44
Basic node handshake
2019-03-19 13:25:25 +11:00
Age Manning
67c09021f0
Initial handling RPC responses
2019-03-19 13:03:12 +11:00
Age Manning
2657dc1465
Builds RPC infrastructure to handle RPC responses
2019-03-19 12:47:36 +11:00
Age Manning
31333e8f8e
Add send rpc in message handler
2019-03-19 12:19:07 +11:00
Age Manning
495348f934
Adds RPC request send framework in message handler
2019-03-19 11:25:42 +11:00
Age Manning
dfdec78a7a
Implements hello generation in sync module
2019-03-19 00:26:15 +11:00
Age Manning
41abdb7599
Remove sync crate, move into network crate
2019-03-19 00:05:06 +11:00
Age Manning
8ec0688cb9
Implements RPC call functionality
2019-03-18 23:34:44 +11:00
Age Manning
0625bb6b03
Add network channel into message handler
2019-03-18 23:18:25 +11:00
Age Manning
6a89da43b7
Cleanup network shutdown messages
2019-03-18 18:22:01 +11:00
Age Manning
66f09e1b8e
Updates network branch to v0.5.0
2019-03-18 18:17:37 +11:00
Kirk Baird
9cef6a5814
Finish implementing Darrens migrate-ssz-little-endian and add wrapper to check for ssz underflow
2019-03-18 18:11:46 +11:00
Paul Hauner
71d95ee9db
Add new field to test_harness YAML, remove prints
2019-03-18 18:08:53 +11:00
Age Manning
2d52d2954d
Modify testnet spec to have few validators
2019-03-18 17:45:40 +11:00
Age Manning
6b5debe654
Organize beacon_chain typing
...
- Implements ClientTypes
- New network BeaconChain type for the networking service
2019-03-18 17:38:23 +11:00
Paul Hauner
edeace9e75
Fix issues with building on genesis block
2019-03-18 16:53:59 +11:00
Age Manning
bbad4bfa19
Starts initialisation of beacon chain in the client
2019-03-18 16:16:54 +11:00
Age Manning
2e0c8e2e47
Handle peer dials and propagate to message handler
2019-03-17 23:14:28 +11:00
Paul Hauner
816c2c651b
Modify genesis processing process.
...
- Removed BeaconStateBuilder
- Added genesis code to `state_processing`.
2019-03-17 23:11:07 +11:00
Age Manning
9803ab30f2
Propagate RPC through network service.
...
- Basic network message handler threading
- Correct references
2019-03-17 21:49:56 +11:00
Paul Hauner
f71cab8ba2
Ensure project tests compile on v0.5.0
2019-03-17 19:28:29 +11:00
Paul Hauner
446ff0c27e
Ensure test_harness crate compiles under v0.5.0
2019-03-17 19:19:52 +11:00
Paul Hauner
6df5eee7f4
Update beacon_chain crate with v0.5.0 updates
2019-03-17 18:10:20 +11:00
Paul Hauner
8b08e9dd2e
Remove block and state readers from db crate
2019-03-17 17:54:43 +11:00
Age Manning
7370306366
Rename RPC reqeusts, correct RPC internals
2019-03-17 14:38:20 +11:00
Age Manning
2871ad5055
Correct listening addresses and associated log
2019-03-17 14:25:47 +11:00
Paul Hauner
f9964ebd8b
Update Fork struct to v0.5.0
2019-03-15 13:33:45 +11:00
Age Manning
7b6a653d05
Add RPC protocol to lh network behaviour.
2019-03-15 02:48:09 +11:00
Age Manning
24c7f180e2
Update rpc event handling.
2019-03-15 02:13:16 +11:00
Age Manning
c06e8ffa5b
Initial Libp2p RPC implementation.
2019-03-15 01:50:59 +11:00
Paul Hauner
8cc89b9820
Fix clippy warnings
2019-03-14 18:08:21 +11:00
Paul Hauner
2bfc8ed4da
Fix failing doc test
2019-03-14 18:08:09 +11:00
Paul Hauner
122916acdd
Merge branch 'master' into fix-test-harness
2019-03-14 18:01:57 +11:00
Paul Hauner
12214e7eed
Ignore long running DB test
2019-03-14 15:11:03 +11:00
Age Manning
23a8fbfc74
Add default topics and initial topic subscription
2019-03-13 15:39:32 +11:00
Age Manning
8ee3523abd
Transition to secp256k1 default peer id
2019-03-13 14:43:24 +11:00
Paul Hauner
6c4e457c8a
Fix test_harness tests
...
They were broken by changes to TestingBeaconStateBuilder and where the
keypairs file is stored.
2019-03-13 11:25:17 +11:00
Paul Hauner
2d2ba6576b
Remove old, superseded benches
2019-03-13 11:24:46 +11:00
Paul Hauner
f949919b9b
Add comments to epoch_processing
2019-03-12 18:02:53 +11:00
Paul Hauner
dc221f3220
Make attester/proposer slashing builders test-only
...
They didn't do anything useful or safe for production.
2019-03-12 17:30:00 +11:00
Age Manning
ae983a9347
Basic networking service with channel
2019-03-12 17:28:11 +11:00
Paul Hauner
efd56ebe37
Ignore file-exists error.
2019-03-12 14:42:31 +11:00
Paul Hauner
cce88c9923
Improve DX for loading validator keys from file
2019-03-12 14:39:16 +11:00