Commit Graph

554 Commits

Author SHA1 Message Date
skoupidi
4eca3e248d drk: introduced sled cache 2025-10-15 14:54:37 +03:00
epiphany
d34113e8a5 fud, dht: add a PoW to fud for node ID generation
- The node ID is not stored on the disk anymore, it's generated when fud starts.

- PoW uses Equi-X (https://spec.torproject.org/hspow-spec/v1-equix.html), the challenge contains a recent BTC block hash because it's 1) unpredictable 2) known by all fud nodes 3) periodically updated 4) stable. Once the block you chose for your node ID is too old, you will generate another one with another keypair and block hash (or other nodes will exclude you from their DHT).

- BTC block hashes are fetched from the Electrum nodes defined in the config file (you can use tor/i2p nodes if you want).

- Equi-X challenge is `(public_key || btc_block_hash || nonce)`, a node ID is `Hash(equix_challenge || equix_solution)`. You must evaluate the PoW to get a valid node ID.

- The keypair is random and regenerated when you create a new node ID, it's only there so that you can sign messages.

- `Dht` and `DhtHandler` now have a generic parameter which is any struct implementing the `DhtNode` trait. It was not needed before because fud did not use any fud-specific fields for its node struct. All the PoW stuff is in `fud` and NOT in `dht`.

- `fud/src/equix.rs` does not depend on fud, we can move it elsewhere if we want to use Equi-X in another bin.

- `FudPingRequest` now includes a random u64, the other node must provide a signature of that u64 (along with other data, including the data making up its node ID) in its `FudPingReply`.
2025-08-21 23:05:06 +02:00
parazyd
fda2a84034 chore: Update dependencies 2025-08-05 09:41:05 +02:00
epiphany
c8ca15fc54 fu: handle downloaded bytes, download speed, eta 2025-07-30 17:10:30 +02:00
parazyd
2e2de47c69 v0.5.0 release 2025-06-06 13:50:10 +02:00
parazyd
46d815ace0 chore: Update crate deps and freeze RandomX git rev 2025-05-21 15:01:54 +02:00
epiphany
55e08ae605 fud, geode: chunks are written and fetched from the full file 2025-05-18 19:14:38 +02:00
skoupidi
61c4b831e3 chore: updated sled-overlay to new version 2025-05-17 19:10:01 +03:00
parazyd
e002530bb2 chore: Update packages to v0.5.0 2025-05-09 11:32:44 +02:00
parazyd
75444e21fa lib: Update crate version 2025-05-07 17:06:53 +02:00
skoupidi
ee0b139e45 script/research/powdata: moved into blockchain/monero 2025-05-07 10:32:39 +03:00
skoupidi
7656bde63b blockchain: contracts states checksums monotree(smt) added 2025-05-06 16:28:40 +03:00
parazyd
81f37b7b2a chore: Update crate dependencies 2025-05-03 10:35:40 +02:00
parazyd
790238e120 sdk: Implement barebones version of monotree (smt)
This is a Sparse Merkle Tree used for contract state proofs.
We only support in-memory storage and BLAKE3 as the hasher.

Implementation is taken and stripped down from the repository located at
<https://github.com/thyeem/monotree/> and is licensed under the MIT License.
2025-05-01 15:44:29 +02:00
skoupidi
c4f3b4eb11 chore: updated sled-overlay to new version 2025-04-25 14:47:40 +03:00
parazyd
c040d9c00f chore: Update crate dependencies 2025-04-15 10:49:43 +02:00
darkfi
ff112dd6c2 fud: add resource.rs, add fu watch, add fu rm, merge announcing task and pruning task 2025-04-11 16:03:17 +00:00
darkfi
f630e1cd7c fud: remove chunk seeders, change file hash, replace hex with bs58 2025-04-11 16:03:17 +00:00
darkfi
058faffa75 fud: add dht lookups & improvements 2025-04-11 16:03:17 +00:00
darkfi
e219954da2 fud, fu, geode: fixes & improvements 2025-04-11 16:03:17 +00:00
kalm
8c92599e67 darkfi: add thiserror to the explorerd package in Cargo.lock
This commit adds `thiserror 2.0.11` as a dependency to the `explorerd` package in the project's `Cargo.lock`.
2025-03-24 01:27:00 -07:00
parazyd
c7d9414bf2 runtime: Port to wasmer-6.0 2025-02-25 16:22:56 +01:00
parazyd
f5baac83cf chore: Update crate dependencies 2025-02-25 12:15:28 +01:00
parazyd
ee96346e4c net/connector: Allow socks5+tls with transport mixing 2025-02-25 12:10:43 +01:00
kalm
fcdfc3f1bb darkfi: update Cargo.lock to reflect updated explorerd package dependencies
This commit updates Cargo.lock to add the new `toml` dependency and remove the unused `drk` dependency for the explorerd package.
2025-02-24 06:11:24 -08:00
kalm
f852967618 explorer: move explorer source code from research to bin/explorer for project releases
This commit relocates the explorer code from the research directory to `bin/explorer` to include it as part of future releases.

### Summary of Updates:

#### Darkfi Project
- Updated `Cargo.toml` to include `bin/explorer/explorerd` as a workspace member
- Updated `Cargo.lock` to include the `explorerd` package
- Updated the `Makefile` to include `explorerd` in the build process

#### Explorer Daemon
- Renamed the project directory from `blockchain-explorer` to `explorer`
- Moved the explorer daemon source code to `bin/explorer/explorerd`
- Updated the cargo package name to `explorerd`
- Updated log statement targets from `blockchain-explorer::` to `explorerd::`
- Renamed the explorer configuration file to `explorerd_config.toml`
- Removed Halo2 patches as they are now included in the root package
- Changed default db_path to use explorerd instead of blockchain-explorer in the path
- Changed binary crate Arg structopt name from blockchain-explorer to explorerd

#### Explorer Site
- Moved the explorer site source code to `bin/explorer/site`
- Updated README.md to include new build instructions for explorerd
2025-02-18 03:49:44 -08:00
parazyd
2f55e8e09d chore: Update RandomX to 1.2.1 2025-02-18 11:11:40 +01:00
dasman
a4334bb53f tau: remove ring crate and use darkfi-sdk 2025-02-11 16:38:48 +03:00
parazyd
13620224c0 chore: Update crate dependencies 2025-02-09 10:32:33 +01:00
parazyd
b5d7c52191 chore: Update crate dependencies 2025-01-21 14:21:32 +01:00
skoupidi
ae0283b0b4 chore: pushed updated Cargo.lock 2025-01-16 18:03:27 +02:00
skoupidi
7739d8a40e blockchain: use sled-overlay record parsing functions 2024-12-03 15:27:10 +02:00
skoupidi
a51211c037 Cargo.toml: updated sled-overlay version 2024-12-02 15:08:01 +02:00
parazyd
61b9f538b8 rpc: Implement HTTP-based JSON-RPC server and client 2024-11-27 14:45:31 +01:00
zerin
adc9078c70 [src/sdk/python] upgrade pyo3 to 0.22.6 2024-11-13 18:36:29 +02:00
skoupidi
d753f8d700 blockchain: store each block db state diff 2024-10-15 21:24:24 +03:00
skoupidi
ea87f3767d chore: updated sled-overlay to new version 2024-10-15 18:18:29 +03:00
parazyd
7a3b554e0d chore: Use published darkfi-serial crate where applicable 2024-10-15 16:20:47 +02:00
parazyd
fbe6937a20 chore: Update crate dependencies 2024-10-15 16:08:54 +02:00
dasman
862abc537a event_graph: go full millis (this is a breaking change) 2024-10-01 21:02:50 +03:00
parazyd
242fe81658 chore: Update crate dependencies 2024-10-01 14:15:03 +02:00
dasman
07460df363 event_graph: remove check_version_match() and compare peers version with a const in taud and darkirc 2024-09-29 05:21:52 +03:00
dasman
75b18d684e event_graph: use millis for events timestamp, bump the versions of darkirc and taud and are changed slightly to accordigly interact with both old and new versions 2024-09-15 15:27:31 +03:00
darkfi
15c3fab459 Cargo.lock: regenerate 2024-09-08 13:42:52 +02:00
darkfi
757f466ca3 added evgrd 2024-09-06 11:32:05 +02:00
dasman
93de245db6 tau: remove unused dependency 2024-08-30 00:52:41 +03:00
parazyd
165cb8434b chore: Update crate dependencies 2024-08-29 20:39:22 +02:00
skoupidi
fdfc96a902 Cargo.toml: replaced sled references with sled-overlay import 2024-08-29 19:18:00 +03:00
skoupidi
67604acf47 chore: removed duplicate features imports 2024-08-29 18:47:21 +03:00
skoupidi
130582d6a9 Cargo.toml: updated sled-overlay version 2024-08-29 16:06:47 +03:00