Commit Graph

2128 Commits

Author SHA1 Message Date
skoupidi
ca5df82a72 darkfid: apply blocks with minimal verifications when using sync checkpoint 2024-04-24 21:34:34 +03:00
skoupidi
a5b9706829 darkfid: properly handle the garbage collection task 2024-04-24 01:15:40 +03:00
skoupidi
ad7f835d50 darkfid: pending txs garbage collection added 2024-04-23 17:49:02 +03:00
skoupidi
ee2859554a darkfid: optional checkpoint usage during syncing added 2024-04-22 21:14:56 +03:00
dasman
f270278588 bin/deg: fix identation issue for larger layer numbers 2024-04-22 16:50:18 +03:00
skoupidi
39bfc94d39 darkfid: sync cleanup 2024-04-22 15:17:31 +03:00
dasman
58b14d7c9d bin/deg: show first 10 chars of event's hash in main view 2024-04-20 16:18:34 +03:00
dasman
5906da4382 bin/deg: add parents to events details 2024-04-20 00:05:59 +03:00
dasman
8ec39f8368 bin/deg: add footer to details view 2024-04-20 00:02:30 +03:00
dasman
528e03302a bin/deg: remove JsonRPC class to actually use src/rpc.py and handle its connection errors 2024-04-20 00:01:09 +03:00
dasman
9a0d582dca bin/deg: rename deg2 to deg 2024-04-19 23:23:22 +03:00
dasman
851ad0bfe2 bin/deg: use rpc.py for RPC connections 2024-04-19 23:19:08 +03:00
dasman
cc01c7767d bin/deg: remove unused code 2024-04-19 23:17:42 +03:00
dasman
bfb2c01905 bin/darkirc: use none-default ports in test script 2024-04-19 03:51:33 +03:00
dasman
df6a99ba9e bin/deg2: added graph column showing a minimized plot of the event graph 2024-04-19 03:33:42 +03:00
skoupidi
12efdd87f3 darkfid: use proposals/consensus logic while syncing
Additionally, performed some cleanup on validator code and handled cleaning up fork mempool when finalizing a block
2024-04-18 18:43:57 +03:00
parazyd
bdb24d3078 tau: Rename main.py to tau 2024-04-17 20:11:47 +02:00
skoupidi
40739693a1 darkfid: persist sync headers in a sled tree + some minor beautifications 2024-04-17 17:42:41 +03:00
skoupidi
07e7252901 darkfid: sync logic changed
Currently we used forward block syncing, while with this changes we do two step backwards header sync and then forward block sync using already known headers. This enables the node to know in advance the tip of the peers they will sync from
2024-04-16 18:36:56 +03:00
skoupidi
fa08a4aeae drk: use (de)serialize_async everywhere 2024-04-12 15:48:20 +03:00
skoupidi
d1c11b7cf6 drk: properly scan blocks based on tx call order 2024-04-12 15:27:58 +03:00
parazyd
aa8fb77538 drk/deploy: Add contract lock tx 2024-04-12 08:56:49 +02:00
draoi
61e51b33d0 lilith+net: move whitelist_refinery back into lilith + create new public functions
we expose some methods that allow uses of the P2P interface, such as
lilith, to interact with the hostlist in a safe way.
2024-04-11 11:30:42 +02:00
parazyd
6a0e5b1311 drk/deploy: Implement contract deployment transaction builder 2024-04-11 10:26:45 +02:00
draoi
5b02abf032 lilith: move whitelist_refinery() into session::refine_sesssion()
This allows us to avoid making a lot of Hosts functions public that
should rather be private to the net module.
2024-04-10 12:11:20 +02:00
zero
898ed02880 zkrunner: if (value := foo) can wrongly be false if value is 0, so be explicit with "is not None" 2024-04-10 10:25:59 +02:00
skoupidi
722c786157 darkfid: use a hot-swapable JSON-RPC client to handle errors while communicating with minerd 2024-04-09 17:56:44 +03:00
skoupidi
d3ab4be743 drk: make rpc_client optional so its not required it in every operation 2024-04-09 16:29:54 +03:00
parazyd
faf96deeaa drk/deploy: Implement deploy auth listing 2024-04-09 10:06:55 +02:00
parazyd
f011b02336 drk: Introduce SQL schema for Deployooor contract 2024-04-09 09:53:57 +02:00
skoupidi
4f9c104206 blockchain: replaced header tree with just its root 2024-04-08 16:36:22 +03:00
skoupidi
9f5e6aafc4 blockchain: changed block height from u64 to u32 2024-04-08 15:17:01 +03:00
parazyd
509d9bf0d4 net: Fix bitflags 2024-04-08 10:51:42 +02:00
skoupidi
d9304c15cd runtime: changed call_index from u32 to u8 2024-04-08 11:40:16 +03:00
parazyd
bf1303b6f3 drk: Stub function for contract deploy authority generation 2024-04-08 10:29:23 +02:00
dasman
214458322a add deg2 (dag_browser) code 2024-04-07 04:40:18 +03:00
draoi
f9f3fa2bf1 session: cleanup SessionBitFlags
Add an additional byte to SessionBitFlags to accommodate SESSION_REFINE
and reduce the risk of logic errors.

Additionally:

* `!SESSION_SEED & !SESSION_REFINE` is now referred to as `SESSION_DEFAULT`
* `!SESSION_REFINE` is refered to as `SESSION_NET`.
* `SESSION_ALL` has been deleted since it was conceptually out-dated
* Binaries have been updated.
2024-04-06 15:14:49 +02:00
draoi
2b18e5307b session: cleanup SessionBitFlags
Add an additional byte to SessionBitFlags to accommodate SESSION_REFINE
and reduce the risk of logic errors.

Additionally:

* `!SESSION_SEED & !SESSION_REFINE` is now referred to as `SESSION_DEFAULT`
* `!SESSION_REFINE` is refered to as `SESSION_NET`.
* `SESSION_ALL` has been deleted since it was conceptually out-dated
* Binaries have been updated.
2024-04-06 11:40:07 +02:00
zero
91bc56bee6 darkirc: add commented log and verbose settings + description to default toml config 2024-04-05 11:45:49 +02:00
skoupidi
930a511309 blockchain: major hashes cleanup 2024-04-04 22:00:51 +03:00
draoi
8dad8dfc8f lilith: add missing safety check 2024-04-04 13:45:39 +02:00
zero
564089646d sdk: add hex decoding fns 2024-04-03 08:34:48 +02:00
zero
c781936b12 replace usage of blake3::Hash for tx hashes with TransactionHash type. Change all occurances of let txs: Vec<blake3::Hash> = block.txs.iter().map(|x| blake3::hash(&serialize(x))).collect(); to let txs: Vec<TransactionHash> = block.txs.iter().map(|tx| tx.hash()).collect(); 2024-04-03 07:36:59 +02:00
zero
732b9ae38a drk: 'fix' make clippy error (just a temp patch) 2024-04-01 17:57:07 +02:00
skoupidi
34dd60a9b7 blockchain/block_store: unified all trees into a single store structure 2024-04-01 16:40:12 +03:00
draoi
52e6ea0530 net: implement greylist downgrade and goldlist upgrade 2024-04-01 13:33:38 +02:00
draoi
1cd330b798 net: create RefineSession
* Move greylist refinery and ping self process into Session.
* Remove hosts/ submodule and return store to net/hosts.rs
* Temporarily disable Gold/ Grey list upgrade and downgrade (we will move into RefineSession)
2024-04-01 13:33:38 +02:00
draoi
1f1bfd3dce net: flatten move_hosts() so unregister call happens outside function
this leads to cleaner code since depending on the use case we still do
different things with the HostState following move_host(). However it
does mean that unregister() has to be called manually in some cases.
2024-04-01 13:33:38 +02:00
draoi
69c6530a5d net: move downgrade to greylist into remove_sub_on_stop()
Previously there was a bug which happened v rarely in which:

> Outbound and Manual Session are waiting on a stop signal
> Outbound/ Manual receives a stop signal, de-registers channel (in move_host)
> Channel is selected by Slot 1 to be connected to, state is changed to Connect
> remove_sub_on_stop() receives a stop signal, de-registers channel
> Channel is selected by Slot 5 connected to, state is changed to Connect
> Slot 1 connects, state is changed to Connected
> Slot 5 connects -> panic!

To avoid this happening, we move unregister() out of move_host and perform the sequence:

recv stop signal -> move_host to greylist (if outbond/manual) -> unregister()

We do this inside the shared method remove_sub_on_stop to ensure the execution path always happens in the same way.
2024-04-01 13:33:38 +02:00
zero
5c9e3bd4a1 tx: change tx.hash() -> Result<blake3::Hash> to tx.hash() -> TransactionHash, by calling .unwrap() on blake3 hasher. This should be safe (see code comment in tx/mod.rs:188 inside fn hash() ) 2024-04-01 11:59:17 +02:00