AgustinBadi
89bc896bd2
Improve anynomous assets page - Clarify terms of the explanation
2024-04-02 08:41:16 +02:00
skoupidi
e8cb2d1f51
script/research/blockchain-explorer: updated to latest darkfi structures
2024-04-01 22:34:54 +03:00
skoupidi
85c80e1bd3
blockchain: store txs locations using the new tree
2024-04-01 21:48:14 +03:00
skoupidi
dad7577bed
blockchain/tx_store: new tx location tree added
2024-04-01 21:28:43 +03:00
zero
83f5898de5
DAO::vote(): now with SMT flavor
2024-04-01 18:31:57 +02:00
zero
732b9ae38a
drk: 'fix' make clippy error (just a temp patch)
2024-04-01 17:57:07 +02:00
zero
98fb3af981
runtime::{smt, merkle}: add missing call_idx to db_roots data
2024-04-01 17:50:52 +02:00
zero
9074440105
runtime: remove call_idx from the payload, and add it as a Runtime param
2024-04-01 17:46:27 +02:00
zero
69cf9c3a1a
runtime: add missing get_tx_hash()
2024-04-01 17:04:09 +02:00
zero
fbe13ed480
DAO::propose(): goodbye nullifiers, hello SMT
2024-04-01 15:52:58 +02:00
draoi
cb821b651e
chore: move excessively verbose debug statements to trace
2024-04-01 15:43:14 +02:00
skoupidi
34dd60a9b7
blockchain/block_store: unified all trees into a single store structure
2024-04-01 16:40:12 +03:00
skoupidi
ea93623ff8
blockchain/contract_store: unified wasm and states trees into a single store structure
2024-04-01 15:56:02 +03:00
skoupidi
70aeb839f5
blockchain/tx_store: unified main tree with the pending tree into single store structure
2024-04-01 15:24:58 +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
c794507458
store: fix logic error in is_connection_to_self()
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
11c65a7705
store: cleanup move_host() to reduce code reuse
...
also makes store_or_update() and remove_if_exists() properly atomic.
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
skoupidi
7d4151c230
sdk: fn get_tx(hash) added
2024-04-01 14:19:22 +03:00
skoupidi
0475a8e2d3
runtime/import/util: corrected some log targets
2024-04-01 13:25:29 +03:00
skoupidi
254af116f4
blockchain/*: minore code look cleanup
2024-04-01 13:14:56 +03:00
zero
9878fff12d
runtime::{merkle, smt}: change value for roots_db from (blk_height:3, tx_idx:2, call_idx:2) to (tx_hash:32, call_idx:2)
2024-04-01 12:07:25 +02:00
zero
0967744635
runtime: add tx_hash to runtime params
2024-04-01 11:59:17 +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
skoupidi
f9a58ca5ad
runtime/import/util: minor optimizations retrieving block info stuff
2024-04-01 12:57:21 +03:00
zero
4f2f660d61
money/integration: add missing import for darkfi_sdk::blockchain::expected_reward
2024-04-01 10:59:04 +02:00
zero
affcde18d8
book/arch/dao: change (block_height, tx_idx) to simply tx_hash since mempool txs won't have this data.
2024-04-01 10:42:22 +02:00
zero
51d7f2996a
dao::propose(): when a proposal is made, we snapshot the current coins root (old) AND nullifiers root (newly added)
2024-04-01 10:28:16 +02:00
zero
2919a595f1
runtime/merkle & smt: implements DB_roots format documented in the book arch/dao page. We store all merkle roots together with information about exactly when that root occurred. To store when the root occurred, we use an absolute location of (block_height, tx_idx, call_idx). Right now tx_idx and call_idx are hardcoded to 0 since the env doesn't yet have access to this info.
2024-04-01 09:23:07 +02:00
zero
bfcd383f3b
doc: on disk states, use (block_height, tx_index) tuple instead of tx_hash since it's 1. more compact 2. the info we actually need
2024-03-31 11:23:05 +02:00
zero
f92fc9b096
sdk: add missing "0x" prefix to unit test strings
2024-03-30 09:32:53 +01:00
draoi
6504ceceb7
net: fix bug in outbound session that was restricting slot connections
...
Previously we were using the wrong variable in
fetch_addrs_with_preference, such that Greylist entries were always
returned when in fact we want to select from the Gold and White list
first.
We also clean up the code and simplify the associated net settings.
2024-03-30 09:06:42 +01:00
zero
37e642922b
doc: add section specifying DB formats for sets
2024-03-30 07:51:28 +01:00
zero
ef71a31ffe
sdk: fix broken unit test
2024-03-29 12:20:21 +01:00
draoi
1c5586cf6e
store: fix bug in filter_addrs() that was causing peers with the same ports as us to get dropped
2024-03-29 11:18:05 +01:00
zero
031aac7f65
fee/swap: migrate nullifiers to SMT to match money::transfer()
2024-03-29 10:06:44 +01:00
zero
45f0e1ab5e
bench: add sled benchmark
2024-03-29 09:42:56 +01:00
foo
1383e7bd47
doc: Remove reference to quarantine settings
...
They have been deleted and replaced with the greylist system
2024-03-28 20:12:06 -04:00
zero
2527dd0812
doc: add laptop nullifier vs SMT benchmarks
2024-03-28 13:47:39 +01:00
zero
5bfd718575
doc: add desktop nullifier/SMT benchmarks comparison
2024-03-28 12:05:56 +01:00
zero
edf36acc88
Cargo.toml: add bench=false to disable libtest benchmarker
2024-03-28 11:26:57 +01:00
zero
452a6740f2
Makefile: s/bench_zk-from-json/bench-zk-from-json/ and add bench* to PHONY
2024-03-28 10:39:42 +01:00
zero
dd5c4d747f
Makefile/bench: add -f to rm so nonexistent files don't block target
2024-03-28 10:35:52 +01:00
zero
79b6276fc8
Makefile: add missing dependency 'contracts' to bench target and rm src/contract/test-harness/*.bin
2024-03-28 10:33:05 +01:00
zero
03ca4794eb
bench: simplify and improve zk-from-json benchmark
2024-03-28 10:26:31 +01:00
zero
b2d29aaa0a
sdk/python: add missing SparseMerklePath
2024-03-28 09:47:24 +01:00
zero
cb80b9a69f
money/dao: regen zk witness json files, and comment out zk::export_witness() from money clients
2024-03-28 07:28:02 +01:00
zero
61661052ce
sdk/util: rename Fp.to_str() to Fp.to_string(), and encode/deocde hex strings with 0x prefix.
2024-03-28 07:21:20 +01:00