Commit Graph

389 Commits

Author SHA1 Message Date
Łukasz Magiera
e01ab507ca pond: New miner spawning 2019-08-22 00:15:45 +02:00
Łukasz Magiera
90dd19fe49 miner.Unregister 2019-08-20 20:05:17 +02:00
Łukasz Magiera
eda26faf21 Register miner address from storageminer process 2019-08-20 19:19:24 +02:00
Łukasz Magiera
4431dffc39 miner: Create miner in DI 2019-08-20 18:50:17 +02:00
Łukasz Magiera
e087cc2e7a impl: Split full node implementation 2019-08-20 18:48:33 +02:00
whyrusleeping
b2d425b891 TEMP: accept miner address from cli 2019-08-16 12:39:13 -07:00
whyrusleeping
f7dc253669 (mostly) proper ticket generation 2019-08-16 12:39:13 -07:00
whyrusleeping
e9d1f3e7c9 WIP: base mining on power and VRFs 2019-08-16 12:39:12 -07:00
Łukasz Magiera
3327781e60 chain: Better ReadState 2019-08-16 04:33:59 +02:00
Łukasz Magiera
760ebc341f storageminer: Split PaymentVerify into 2 methods 2019-08-15 22:57:14 +02:00
Łukasz Magiera
eb962940bd deals: wire up PaymentVerify 2019-08-15 17:04:40 +02:00
Łukasz Magiera
4c5ffb185e deals: setup payment channel for deals 2019-08-15 02:28:52 +02:00
Łukasz Magiera
baf4fbe309 sectorstore: Address review feetback 2019-08-15 00:46:15 +02:00
Łukasz Magiera
e6493afd46 move poller to sector store 2019-08-14 23:34:43 +02:00
Łukasz Magiera
399f91940b Sector store 2019-08-14 22:27:32 +02:00
Whyrusleeping
e050d56594
Merge pull request #132 from filecoin-project/feat/paych-manager
Implement payment channel manager
2019-08-13 12:13:23 -07:00
whyrusleeping
47efaece60 address review feedback 2019-08-13 11:47:40 -07:00
Łukasz Magiera
3a7a21ee83
Merge pull request #134 from filecoin-project/feat/more-deals
More deals progress
2019-08-13 19:32:58 +02:00
whyrusleeping
12acee5242 add payment channel CLI and finish up commands 2019-08-12 21:27:54 -07:00
Łukasz Magiera
9733e1f011 deals: use GetWorkerAddr 2019-08-13 01:54:53 +02:00
whyrusleeping
c986267a2e finish up initial api calls 2019-08-12 12:51:01 -07:00
whyrusleeping
ae34757e2a pull chain call into its own method and fix paych module 2019-08-12 11:30:20 -07:00
whyrusleeping
6d52abcb2e WIP: wiring up the payment channel manager to the api 2019-08-12 10:54:17 -07:00
whyrusleeping
6979c28e05 Add API interface for payment channels and a few tests 2019-08-12 10:12:51 -07:00
Łukasz Magiera
2229fae79d pond: basic state inspection 2019-08-10 03:54:52 +02:00
Łukasz Magiera
f99c8e032d pond: +1k button for addresses 2019-08-09 17:59:12 +02:00
whyrusleeping
28ef081d0e use wallet has instead of list 2019-08-08 10:56:14 -07:00
whyrusleeping
959fe371b0 move storage miner keys to full node 2019-08-08 10:56:14 -07:00
Łukasz Magiera
b2c3434bcd deals: Upstream bitswap changes 2019-08-08 19:16:41 +02:00
Łukasz Magiera
2114e8f555 deals: Show proposal cid in cli 2019-08-07 20:20:04 -07:00
Łukasz Magiera
3e2d04a540 deals: Use temp files for AddPiece 2019-08-07 20:02:05 -07:00
Łukasz Magiera
7423327b26 deals: Use real data in client 2019-08-07 20:01:51 -07:00
Łukasz Magiera
c79cb7bf31 deals: Almost sealing client data 2019-08-07 20:01:51 -07:00
Łukasz Magiera
b65041cac1 deals: Sending initial proposal works 2019-08-07 20:01:22 -07:00
Łukasz Magiera
549e7db12f deals: Implement basic handshake logic 2019-08-07 20:01:22 -07:00
Łukasz Magiera
ad9e433232 Start implementing storage deals 2019-08-07 20:00:49 -07:00
whyrusleeping
ba0d648546 sealing garbage data into a sector that gets accepted by the chain works! 2019-08-07 18:16:58 -07:00
whyrusleeping
5c32725510 sector commitments make it all the way to the chain 2019-08-07 16:22:35 -07:00
whyrusleeping
b7c6333fef implement sector commitments and proof verification 2019-08-06 23:35:57 -07:00
Łukasz Magiera
b1aee461ae
Merge pull request #110 from filecoin-project/feat/pond-storage-miners
Storage Miners in Pond
2019-08-06 18:11:51 +02:00
Whyrusleeping
3e768742a2
Merge pull request #113 from filecoin-project/feat/bls-spec-change-refactor
refactoring to accomodate the bls message changes in the spec
2019-08-05 12:09:01 -07:00
Whyrusleeping
c18711b3f9
Merge pull request #105 from filecoin-project/feat/multisig
Implement multisig
2019-08-05 12:08:32 -07:00
Jakub Sztandera
9577348422 Dual impl
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-08-03 13:26:35 +02:00
Łukasz Magiera
282654bf7b pond: storage miner init 2019-08-02 16:15:14 +02:00
whyrusleeping
ff3433baa1 fix chain progression after restarting process 2019-08-01 23:46:14 -07:00
whyrusleeping
e5f4c75ca4 fix up the tests and cli 2019-08-01 20:51:34 -07:00
whyrusleeping
dc7c0fcabe refactoring to accomodate the bls message changes in the spec 2019-08-01 18:19:22 -07:00
Łukasz Magiera
cfc3ac795d Fix tests 2019-08-01 16:26:12 +02:00
Łukasz Magiera
542f645c28 gofmt 2019-08-01 16:20:50 +02:00
Łukasz Magiera
9ae450620a Cleanup node/modules 2019-08-01 16:19:53 +02:00
Łukasz Magiera
6a4b9a6515 More separation for storage types in di modules 2019-08-01 16:14:16 +02:00
Łukasz Magiera
0f2334f513 chain sync: rebase 'fixes' 2019-07-31 10:43:14 -07:00
Łukasz Magiera
cdf0e0c858 chain: Test 'manual' sync 2019-07-31 10:43:13 -07:00
Łukasz Magiera
412a168151 chain: more work on chain sync, sync testing 2019-07-31 10:43:13 -07:00
Łukasz Magiera
9ef5e1266e chain: Test basinc sync on generated chain 2019-07-31 10:43:13 -07:00
Łukasz Magiera
a656aea7fe chain: WIP Generated node sync test 2019-07-31 10:43:13 -07:00
Łukasz Magiera
006fbe556f Use correct ctx for SectorBuilder/Miner 2019-07-31 19:01:04 +02:00
Łukasz Magiera
d8bd222cb1 Optional tipset param for ChainCall 2019-07-31 18:54:28 +02:00
whyrusleeping
ee224e5b21 Implement 'storage miner' module, wire up a few bits it needs to start 2019-07-29 17:46:56 -07:00
whyrusleeping
259b38eb55 move sectorbuilder DI stuff to Online option 2019-07-29 12:11:55 -07:00
whyrusleeping
b83ff6b9dc Wire up sector builder commands through the api 2019-07-29 12:08:47 -07:00
whyrusleeping
4fb4835b35 can we store it? YES WE CAN 2019-07-29 12:08:47 -07:00
whyrusleeping
f1432826d5 start integrating sector builder 2019-07-29 12:08:05 -07:00
whyrusleeping
0c67d66198 Make message wait work and use it for the storage-miner init 2019-07-29 11:58:30 -07:00
whyrusleeping
fa5e27d7b9 finish wiring up message wait 2019-07-29 11:57:48 -07:00
Whyrusleeping
54c78877bb
Merge pull request #104 from filecoin-project/feat/chain-notifs
expose head change notifications through api
2019-07-29 11:36:04 -07:00
whyrusleeping
03f653b88e expose head change notifications through api 2019-07-28 12:19:33 -07:00
whyrusleeping
71baa5cbfe implement chain generator 2019-07-26 13:47:29 -07:00
Jakub Sztandera
0e35240fe9 Wire in context to VMContext
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-26 21:01:02 +02:00
Łukasz Magiera
590b5f0299 Allocate funds in testing.MakeGenesis 2019-07-26 14:51:32 +02:00
whyrusleeping
78da356752 pull more things apart 2019-07-26 13:49:30 +02:00
Łukasz Magiera
12baee0e57 Use xerrors 2019-07-26 13:45:25 +02:00
whyrusleeping
2facece1f6 improve errors a bit 2019-07-25 20:26:29 -07:00
Łukasz Magiera
a565598b25 Merge remote-tracking branch 'origin/master' into feat/pond 2019-07-26 03:58:13 +02:00
whyrusleeping
e09ad3d65c Refactor out more types into types package, and pull genesis block code into gen package 2019-07-25 16:35:47 -07:00
Łukasz Magiera
45ddd8e590 Don't pannic on walletDefAddr with no addrs 2019-07-26 01:26:40 +02:00
Łukasz Magiera
583f4e02cb pond: ConnMgr: DisconAll, syncing 2019-07-25 23:52:16 +02:00
Whyrusleeping
663cdbe167
Merge pull request #74 from filecoin-project/feat/payment-channels
implement initial payment channel actor
2019-07-25 13:49:52 -07:00
Łukasz Magiera
7ae8f31218
Merge pull request #79 from filecoin-project/fix/hello-close
close stream after writing in hello
2019-07-25 13:51:58 +02:00
Łukasz Magiera
515fbd41c2 Use go-car for genesis file 2019-07-25 13:46:48 +02:00
Łukasz Magiera
99acdbade0 Better error message when genesis is missing 2019-07-25 01:32:44 +02:00
Łukasz Magiera
16c1dc5268 Fix imports in node_test 2019-07-25 01:25:33 +02:00
Łukasz Magiera
f2abb33933 Generate single genesis in tests 2019-07-25 01:23:06 +02:00
Łukasz Magiera
8d58c0a2fd Only set genesis once 2019-07-25 01:12:22 +02:00
whyrusleeping
859471aeaf implement initial payment channel actor 2019-07-24 15:45:12 -07:00
whyrusleeping
d06898e354 close stream after writing in hello 2019-07-24 15:16:47 -07:00
whyrusleeping
69d21d39a0 fix chainstore default option 2019-07-24 15:04:31 -07:00
whyrusleeping
4b76a06224 address code review 2019-07-24 14:46:54 -07:00
Łukasz Magiera
4fa9e45eb7 repo: check for config in exists 2019-07-24 13:20:00 +02:00
Łukasz Magiera
81d7c30fac Couple lint fixes 2019-07-24 03:16:17 +02:00
Łukasz Magiera
33dc14c9f2 Move API implementations to a separate package 2019-07-24 03:13:56 +02:00
Łukasz Magiera
c6b4fadba1 Fix permissions after split and rebase 2019-07-24 03:10:26 +02:00
Łukasz Magiera
772dd6c549 Implement storage miner API in node 2019-07-24 02:58:31 +02:00
Łukasz Magiera
f0e807dabb Fix jsonrpc client after splitting apis 2019-07-24 02:40:19 +02:00
Łukasz Magiera
eda03095b0 Separate API for storageminer 2019-07-24 02:09:34 +02:00
Łukasz Magiera
d0cbf02d36 Don't build full API in storage miner 2019-07-24 01:48:59 +02:00
Łukasz Magiera
8d529d1ae7 gofmt 2019-07-24 01:47:36 +02:00
Łukasz Magiera
4c8b028887 Return error form Repo.Exists 2019-07-24 01:47:36 +02:00
Łukasz Magiera
fe147ce90d StorageMiner node type 2019-07-24 01:47:36 +02:00
Łukasz Magiera
b41763d8cf Fix secret loading in tests 2019-07-24 00:38:52 +02:00
Łukasz Magiera
5be0ecadd1 gofmt 2019-07-24 00:38:52 +02:00
Łukasz Magiera
0aadddb6c8 auth: Load JWT secret once 2019-07-24 00:38:52 +02:00
Łukasz Magiera
3c9f88d043 auth: Actually generate API secrets 2019-07-24 00:38:52 +02:00
Łukasz Magiera
a88be8d1df auth: Store token in repo 2019-07-24 00:38:52 +02:00
Łukasz Magiera
309ecc4052 auth: Put auth methods in API 2019-07-24 00:37:05 +02:00
Łukasz Magiera
fa4bf5178a auth: Restructure for getting tokens form keystore 2019-07-24 00:37:05 +02:00
whyrusleeping
5fb59c06bd add a getblock command 2019-07-22 17:54:27 -07:00
whyrusleeping
3f0c7f37f9 fix serialization issues 2019-07-20 16:37:38 -07:00
whyrusleeping
05b8158285 implement a few of the TODOs 2019-07-20 16:37:37 -07:00
whyrusleeping
9a7823ab84 WIP: create miner command, stubbed out methods 2019-07-20 16:37:37 -07:00
whyrusleeping
f0841203a3 add a command to check wallet balance 2019-07-18 13:26:04 -07:00
Jakub Sztandera
935e4e8da7 Move KeyStore into separate module
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-18 18:10:53 +02:00
Jakub Sztandera
5ee7ba8420 Fix tests
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-18 17:52:48 +02:00
Jakub Sztandera
710f87fdf4 Integrate keystore with chain/wallet
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-18 17:41:30 +02:00
Jakub Sztandera
cb9bf4200c Move KeyStore into types
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-18 16:57:49 +02:00
Jakub Sztandera
902ea18686 Add keystore to the repo
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-18 16:01:39 +02:00
Whyrusleeping
35905cb3fe
Merge pull request #31 from filecoin-project/feat/wsrpc
JsonRPC over WebSockets
2019-07-16 09:36:32 -07:00
Łukasz Magiera
0fa47c6dfa Lint fixes 2019-07-16 18:07:08 +02:00
Łukasz Magiera
d30d9a30bc Fix test node setup 2019-07-16 18:02:51 +02:00
Łukasz Magiera
3fca70f112 Fix rpcBuilder in node_test 2019-07-15 18:28:00 +02:00
Łukasz Magiera
041598dbb6 Use extracted go-filestore 2019-07-15 17:08:18 +02:00
Łukasz Magiera
1f6629e978 Basic ClientListImports 2019-07-15 16:18:47 +02:00
Łukasz Magiera
cec4918cd9 Make client import actually work 2019-07-15 16:17:34 +02:00
Łukasz Magiera
97c61d4ce5 Client import 2019-07-15 16:17:34 +02:00
whyrusleeping
1a929d0f73 add wallet new and list commands 2019-07-12 17:41:32 -07:00
Jakub Sztandera
46a93d2448 Add more tests to repo
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-12 17:51:38 +02:00
Whyrusleeping
3f61488e3c
Merge pull request #17 from filecoin-project/feat/mining-1
Implement basic mining logic
2019-07-11 10:09:15 -07:00
Łukasz Magiera
cd16e3e597 Fix lint warnings 2019-07-11 13:52:07 +02:00
Łukasz Magiera
ffafc056ee fsrepo: check dsErr before returning datastore 2019-07-11 13:48:21 +02:00
whyrusleeping
13ba6d938b Remove unused variable 2019-07-10 21:56:39 -07:00
whyrusleeping
d381025ccc Implement initial mining logic 2019-07-10 19:36:43 -07:00
whyrusleeping
e09a379c3b add mpool pending command 2019-07-10 12:20:16 -07:00
Łukasz Magiera
1f97ad2c2e Use repo libp2p identiny 2019-07-10 19:43:19 +02:00
Łukasz Magiera
e639670195 cli: use repo api endpoint 2019-07-10 19:28:49 +02:00
Łukasz Magiera
1f8c3f4145 repo: update Datastore, Init 2019-07-10 19:09:57 +02:00
Łukasz Magiera
ba456be68f Merge remote-tracking branch 'origin/master' into feat/repo-daemon 2019-07-10 18:52:49 +02:00
Łukasz Magiera
14d515da3b Wire up memrepo 2019-07-10 17:38:35 +02:00
Jakub Sztandera
ed54a30109 fix lint
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-10 17:14:29 +02:00
Jakub Sztandera
d484e4ffb9 Run tests and fix some bugs
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-10 17:11:10 +02:00
Jakub Sztandera
8cd484a8b0 Change lint options
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-10 15:42:18 +02:00
Jakub Sztandera
898454ca9a Introduce fsrepo
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-10 15:42:18 +02:00
Łukasz Magiera
0aacd4048c
Merge pull request #12 from filecoin-project/test/net
Wire up tests
2019-07-10 15:10:17 +02:00
Łukasz Magiera
5ed695a84a Expose some node settings 2019-07-10 15:06:04 +02:00
Łukasz Magiera
4797e6a473 Don't import mocknet in builder.go 2019-07-10 15:03:40 +02:00
Łukasz Magiera
fb62c6d442
Merge pull request #11 from filecoin-project/feat/some-chain-cli
Some chain CLI & API
2019-07-09 22:21:31 +02:00
Jakub Sztandera
34b6da7f0c Make config fields public
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-09 21:38:05 +02:00
Jakub Sztandera
51f38e0542 Add missing comment
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-09 20:20:42 +02:00
Jakub Sztandera
9248b462dd Fix spelling
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-09 20:19:54 +02:00
Jakub Sztandera
2b62bb6eab Add tests
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-09 20:11:50 +02:00
Jakub Sztandera
195cf4f84d Implement memrepo
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-09 19:50:48 +02:00
Łukasz Magiera
cb3554735a Some chain CLI & API 2019-07-09 19:05:44 +02:00
Łukasz Magiera
0a9ef94da5 Test connecting two nodes 2019-07-09 19:03:36 +02:00
Łukasz Magiera
4ac8eba59e Test API through jsonrpc 2019-07-09 18:36:40 +02:00
Łukasz Magiera
ba846e9bfb Wire up node API to tests 2019-07-09 18:27:07 +02:00
Łukasz Magiera
271c268e28 disable natPortMap for now 2019-07-09 16:30:54 +02:00
Łukasz Magiera
5b04fbb505 config: default to random ports for now 2019-07-09 15:46:55 +02:00
Łukasz Magiera
7069d57432 Fix multiaddr json unmarshalling in NetAddrsListen 2019-07-09 15:35:32 +02:00
Jakub Sztandera
f9a34b3f9c Cleanup lint
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-09 14:46:06 +02:00
Łukasz Magiera
d852b3f7ef API struct instead of DI magic 2019-07-09 12:58:13 +02:00
Łukasz Magiera
797ef4e0c9 Actually implement NetConnect 2019-07-08 23:14:59 +02:00
Łukasz Magiera
9a244ebdf8 Addrs listen api 2019-07-08 23:01:15 +02:00
Łukasz Magiera
cdca2ff2c7 Some net commands / apis 2019-07-08 21:07:16 +02:00
Jakub Sztandera
4df601ea6a Fix imports and range reference warnings
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-08 17:14:36 +02:00
Łukasz Magiera
d1eb9073d1 Pubsub for blocks/messages 2019-07-08 16:07:09 +02:00
Łukasz Magiera
e162b5395c Construct enough to run hello 2019-07-08 15:36:53 +02:00
Łukasz Magiera
9299ba5fa6 Fix imports 2019-07-08 14:46:30 +02:00
Łukasz Magiera
4ef4721820 Move json/cbor rpc to lib 2019-07-08 13:02:02 +02:00
Łukasz Magiera
67902da2eb Merge remote-tracking branch 'origin/master' into feat/f2-chain 2019-07-08 12:47:19 +02:00
Łukasz Magiera
2987d04efa chain: Fix most build errors 2019-07-05 16:47:03 +02:00
Łukasz Magiera
65de28dbdb Merge remote-tracking branch 'origin/feat/hello-parts' into feat/f2-chain 2019-07-05 16:35:23 +02:00
Jakub Sztandera
71dfa38032 Update linter
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-05 13:21:54 +02:00
Łukasz Magiera
fd7daf4a31 Fix import ordering 2019-07-05 12:06:28 +02:00
Łukasz Magiera
e78c378021 constructor: Add doc strings 2019-07-04 23:09:49 +02:00
Łukasz Magiera
de604065fb Rewrite constructor to functional opts 2019-07-04 19:34:06 +02:00
Jakub Sztandera
adcd87abb0 Small cleanup
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-04 16:47:46 +02:00
Jakub Sztandera
f08263662f Use config for listen addresses in libp2p
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-04 14:04:39 +02:00
Jakub Sztandera
808a1e9deb Add skeleton of a config
Took way longer than it should had because I was researching exisiting
options.

As it turns out, nothing nice exists that would handle:
 - Multiple overridiable config files
 - Defaults provided in a struct
 - Output in a struct

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-04 11:25:28 +02:00
Łukasz Magiera
2b906efa1e hello: Invohe RunHello 2019-07-03 19:41:54 +02:00
Łukasz Magiera
fdde4db217 hello: Move from f2 2019-07-03 19:39:07 +02:00
Jakub Sztandera
217cb247a5 Move to Warnf
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-03 14:30:21 +02:00
Jakub Sztandera
2a350c6e82 Use zap
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-03 13:55:52 +02:00
Łukasz Magiera
0f8f61fc7b more lint fixes 2019-07-02 19:45:03 +02:00
Łukasz Magiera
4fcdd4a400 Address some lint warnings 2019-07-02 15:05:43 +02:00
Łukasz Magiera
7fdd369283 Address review 2019-07-02 14:40:25 +02:00
Jakub Sztandera
5736ac1d9d go fmt
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-01 23:11:34 +02:00
Łukasz Magiera
088c1e7860 Confgure PNet
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-01 23:11:33 +02:00
Łukasz Magiera
0779e7dc00 Build libp2p node
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-01 23:11:33 +02:00
Łukasz Magiera
63627e863e Import libp2p modules
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-01 23:11:33 +02:00
Łukasz Magiera
795621ed27 Node builder structure
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2019-07-01 23:11:33 +02:00