Commit Graph

1957 Commits

Author SHA1 Message Date
skoupidi
9a2fad2c0f drk: replaced rest hardcoded balance base10 decimals with the const 2024-01-26 16:28:13 +02:00
draoi
cecf284cef net: create system::run_until_completion() to ensure ping_node() does not create zombie process
This commit refactors the ping_node method to use a system function
called run_until_completion(), which ensures a task will safely complete even
if it's parent task has been cancelled.

This happens in ping_node() in the case the handshake is ongoing but the
p2p network has been destroyed.

We also introduce a timeout for ping_node() to prevent
perform_handshake_protocols from running forever and blocking
channel.stop() from being safely invoked.
2024-01-26 11:10:44 +01:00
dasman
0567c219bd bin/darkirc: [commitbot] replace pusher name with committer's 2024-01-25 23:37:43 +03:00
skoupidi
0e400fb299 drk/Cargo.toml: missing darkfi feature added 2024-01-25 20:28:36 +02:00
skoupidi
8c8db819f2 drk: script kiddies be gone 2024-01-25 18:55:47 +02:00
skoupidi
3062597fca drk is back in the menu boys 2024-01-25 18:52:03 +02:00
skoupidi
2f6bb5748f drk2: Dao functionality added 2024-01-25 18:44:38 +02:00
parazyd
cf2a5fcc44 darkirc: Add "hostlist" to config 2024-01-23 17:26:59 +01:00
aggstam
342106e2ac drk2: Completions functionality added 2024-01-23 16:02:31 +02:00
aggstam
8ebcfe3222 drk2/dao: updated to latest changes 2024-01-23 16:02:04 +02:00
Dastan-glitch
2f0d966491 update darkirc tmux test session 2024-01-23 05:16:38 +03:00
aggstam
f9683b867e drk2: Token functionality added 2024-01-22 20:33:18 +02:00
aggstam
531ead2cb5 drk2: OTC swap functionality added 2024-01-22 16:26:07 +02:00
aggstam
31dd5d6208 drk2: Transfer functionality added 2024-01-22 15:34:37 +02:00
aggstam
1fcbfdded9 drk2: Explorer functionality added 2024-01-22 14:03:41 +02:00
aggstam
4cc4082bb2 darkfid2: notify subscribers for new blocks 2024-01-21 23:41:14 +02:00
aggstam
d440003fd1 drk2: Unspend, Inspect, Broadcast, Subscribe, Scan and Alias functionalities added 2024-01-21 23:40:29 +02:00
aggstam
cf56a07c3d drk2: finished up wallet subcommand functionality 2024-01-21 15:14:51 +02:00
aggstam
cebeacd858 drk2: addresses functions added and simplified some internal calls 2024-01-21 14:29:38 +02:00
aggstam
6ba1fb5947 drk2: retrieval of multiple db records added 2024-01-20 19:50:02 +02:00
lunar-mining
15d5f7e6d4 lilith: select last element from the whitelist, not random element
this reduces the chance of the same element being selected twice consecutively (would only happen consecutively whitelist has a length of 1)
2024-01-20 14:43:59 +01:00
aggstam
0800757693 drk2: initialize schemas 2024-01-20 13:42:09 +01:00
aggstam
f5a9cf3e96 drk: drk rewritte skeleton added 2024-01-20 13:42:09 +01:00
parazyd
d3fae80d5a chore: Update copyright year in license headers 2024-01-18 19:30:56 +01:00
aggstam
c7248f44f6 darkfid2: parse network config directly from the config file, not as flattened arg 2024-01-18 19:30:31 +01:00
aggstam
efe6f39041 darkfid2: use minerd to mine blocks, validator: cleaned up threads info as its not longer required 2024-01-18 19:30:31 +01:00
parazyd
31d0d2f617 validator: Configurable fee verification, incomplete
It's now only used in add_transactions(), but needs to be in other
places as well.
2024-01-18 19:30:31 +01:00
parazyd
4ec1daa589 chore: Enable some additional arti-client crate features
Additionally perform a dependency update.
2024-01-18 19:30:31 +01:00
parazyd
7240e6251f chore: Clippy lints 2024-01-18 19:30:30 +01:00
parazyd
77f3c0d079 net: Port from deprecated async-rustls to futures-rustls.
This is also a protocol-breaking change. We now have a bit looser
certificate verification that does not append the base32-encoded
public key into the altName.
2024-01-18 19:30:30 +01:00
parazyd
857ebb42bf chore: Update crate dependencies 2024-01-18 19:30:30 +01:00
Dastan-glitch
25e696e03b fix & update darkirc test script 2024-01-18 19:30:30 +01:00
Dastan-glitch
da8d143ef1 fix&update Twitter bot 2024-01-18 19:30:30 +01:00
lunar-mining
f3361db4c4 lilith: change hostlist paths on default config 2024-01-17 14:31:38 +01:00
lunar-mining
eda5c69af4 lilith: add whitelist_refinery task
Lilith now periodically pings nodes on its whitelist, updating their
last_seen field if they are active, otherwise downgrading them to
greylist.

This is to prevent Lilith from sharing inactive peers with other hosts
when it shares its whitelist.
2024-01-17 14:27:51 +01:00
lunar-mining
c7cf7d861d lilith: change no hostlist warning to fatal panic 2024-01-10 14:53:29 +01:00
lunar-mining
995ff6f6c2 lilith: add hostlist path to NetInfo and default config 2023-12-29 17:29:26 +01:00
lunar-mining
b456d8f5ec lilith: remove load and save host functionality (made redundant by greylist upgrade) 2023-12-29 17:28:15 +01:00
lunar-mining
065f254661 lilith: comment out broken load_hosts code and add FIXME note 2023-12-29 17:25:44 +01:00
lunar-mining
0639e9bdf7 net: working greylist protocol
Working on this commit:

* Nodes connect to a seed node, do ProtocolAddr, ping themselves and send over their ADDR if the address is reachable.
* Seed nodes add addresses into greylist, probe them to make sure they're reachable, then promote to whitelist and send to other peers.
* On receiving whitelisted addresses, nodes add to greylist and after performing refinery process, promote to whitelist.

Still TODO:

* reimplement address filtering
* test: unstable_sort_by_key
* implement "anchor" connections when we've already established a connection to a node
* keep track of how many times we ping ourselves to avoid redundant self ping
* idle handshake protocol
2023-12-29 17:21:17 +01:00
lunar-mining
748c659f93 lilith: fix warnings 2023-12-29 17:20:38 +01:00
lunar-mining
de743a03b6 lilith: remove all peerlist filtering logic 2023-12-29 17:19:22 +01:00
lunar-mining
491ad0a318 net: add debug statements 2023-12-29 17:14:30 +01:00
lunar-mining
cf3642fb3a net/ lilith: change last_seen to use UNIXEPOCH instead of SystemTime 2023-12-29 17:14:20 +01:00
lunar-mining
406a37bbb4 net: only run GreylistRefinery if the greylist is not empty. also properly initalize Weak<OutboundSession> 2023-12-29 17:14:09 +01:00
lunar-mining
a19e20e006 net: cleanup 2023-12-29 17:13:49 +01:00
lunar-mining
4f0c4cdc0a net/lilith: move refresh_whitelist() process out of hosts and back into lilith. 2023-12-29 17:13:39 +01:00
lunar-mining
2c01db5270 net: migrate outbound sessions over to new protocol. also replace lilith periodic_purge with periodic_cleanse.
periodic_cleanse doesn't remove any connections, it simply updates the
last_seen field when it is able to establish a connection, per:
2023-12-29 17:13:07 +01:00
lunar-mining
9a09e8c6cd net: remove HostPtr from ProtocolVersion and update probe_node() 2023-12-29 17:12:45 +01:00
lunar-mining
7952b8ad41 lilith: store last_seen in host list. also change outbound_session to run new protocol 2023-12-29 17:12:28 +01:00