Boog900
30834fe4d2
std-shims: six Read
for &[u8]
2023-07-03 07:13:06 -04:00
GitHub Actions
d928b787f7
Update nightly
2023-07-03 07:10:53 -04:00
Luke Parker
c7b232949a
Correct deny.toml with inclusion of message-queue
2023-07-03 07:09:35 -04:00
Luke Parker
acf2469dd8
cargo update
...
Resolves https://github.com/serai-dex/serai/security/dependabot/29
2023-07-01 20:27:03 -04:00
Luke Parker
6267acf3df
Add a message queue
...
This is intended to be a reliable transport between the processors and
coordinator. Since it'll be intranet only, it's written as never fail.
Primarily needs testing and a proper ID.
2023-07-01 08:53:46 -04:00
Luke Parker
a95ecc2512
Represent RCT amounts with None, not 0.
...
Fixes #282 .
Does allow any v1 TXs which exist, and v2 miner-TXs, to specify Some(0). As far
as I can tell, both were/are theoreitcally possible.
2023-06-29 13:16:51 -04:00
Luke Parker
ac708b3b2a
no-std support for monero-serai ( #311 )
...
* Move monero-serai from std to std-shims, where possible
* no-std fixes
* Make the HttpRpc its own feature, thiserror only on std
* Drop monero-rs's epee for a homegrown one
We only need it for a single function. While I tried jeffro's, it didn't work
out of the box, had three unimplemented!s, and is no where near viable for
no_std.
Fixes #182 , though should be further tested.
* no-std monero-serai
* Allow base58-monero via git
* cargo fmt
2023-06-29 04:14:29 -04:00
Luke Parker
d25c668ee4
Replace lazy_static with OnceLock inside monero-serai
...
lazy_static, if no_std environments were used, effectively required always
using spin locks. This resolves the ergonomics of that while adopting Rust std
code.
no_std does still use a spin based solution. Theoretically, we could use
atomics, yet writing our own Mutex wasn't a priority.
2023-06-28 21:45:57 -04:00
GitHub Actions
8ced63eaac
Update nightly
2023-06-28 18:42:19 -04:00
Luke Parker
f6a497f3ac
Slight terminology correction in sync test
...
Also correct a mistake from merging the most recent polkadot version.
2023-06-28 15:20:50 -04:00
akildemir
790fe7ee23
fix tributary sync test
2023-06-28 15:01:55 -04:00
Luke Parker
8c020abb86
Update to substrate polkadot-v0.9.43
2023-06-28 14:57:58 -04:00
Luke Parker
21f0bb2721
Pin setup-protoc to v2.0.0
2023-06-28 12:28:14 -04:00
Luke Parker
385ed2e97a
Build no-std tests with RISC-V 32 IMAC
...
Turns out wasm still has std, making it suboptimal to use here.
2023-06-28 12:26:53 -04:00
Luke Parker
fca567f61d
cargo update
...
Resolves an openssl advisory and nets ~-8 crates.
2023-06-22 06:25:33 -04:00
Luke Parker
dfa3106a38
Fix incorrect sig_hash generation
...
sig_hash was used as a challenge. challenges should be of the form H(R, A, m).
These sig hashes were solely H(A, m), allowing trivial forgeries.
2023-06-08 06:38:25 -04:00
Luke Parker
c6982b5dfc
Ensure canonical points in the cross-group DLEq proof
2023-05-30 22:05:52 -04:00
Luke Parker
1aa293cc4a
Fix for prior commit
2023-05-27 04:15:57 -04:00
Luke Parker
8a24fc39a6
Only scan v2 Monero TXs
2023-05-27 04:13:40 -04:00
Luke Parker
40b2920412
Remove signed Substrate TXs from Coordinator
2023-05-13 22:43:13 -04:00
Luke Parker
47f8766da6
Use proper messages for ValidatorSets/InInstructions pallet
...
Provides a DST, and associated metadata as beneficial.
Also utilizes MuSig's context to session-bind. Since set_keys_messages also
binds to set, this is semi-redundant, yet that's appreciated.
2023-05-13 04:40:16 -04:00
Luke Parker
663b5f4b50
Add a context to MuSig key aggregation
2023-05-13 04:04:14 -04:00
Luke Parker
227176e4b8
Correct various no_std definitions
2023-05-13 04:03:56 -04:00
Luke Parker
f069567f12
Use a MuSig signature to publish validator set key pairs to Serai
...
The processor/coordinator flow still has to be rewritten.
2023-05-13 02:15:41 -04:00
Luke Parker
84c2d73093
Do the minimal amount of work for dkg to compile under no-std
...
The Substrate runtime requires access to the MuSig key aggregation function.
\#279 related.
2023-05-12 23:25:17 -04:00
Luke Parker
4d50b6892c
Add a dedicated function to get a MuSig key
2023-05-11 03:21:54 -04:00
Luke Parker
3eade48a6f
cargo update
...
Resolves a yanked crate and removes some duplicated dependencies.
2023-05-10 07:34:07 -04:00
Luke Parker
89974c529a
Correct 2/3rds definitions throughout the codebase
...
The prior formula failed for some values, such as 20.
20 / 3 = 6, * 2 = 12, + 1 = 13. 13 is 65%, not >= 67.
2023-05-10 06:29:21 -04:00
Luke Parker
ffea02dfbf
Implement MuSig key aggregation into DKG
...
Isn't spec compliant due to the lack of a spec to be compliant too.
Slight deviation from the paper by using a unique list instead of a multiset.
Closes #186 , progresses #277 .
2023-05-10 06:25:40 -04:00
Luke Parker
f55e9b40e6
Have coordinator publish batches to Substrate
2023-05-10 01:46:20 -04:00
Luke Parker
a70df6a449
Remove TODO about code de-duplication
...
It's infeasible to write a macro/function there. Does add a type alias which
makes things cleaner.
2023-05-10 01:19:01 -04:00
Luke Parker
168f2899f0
Create a vote transaction upon GeneratedKeyPair
2023-05-10 00:46:51 -04:00
Luke Parker
c95bdb6752
Properly get genesis for a Processor message
2023-05-09 23:51:05 -04:00
Luke Parker
88f0e89350
Ensure Tributary commits are minimal
2023-05-09 23:45:05 -04:00
Luke Parker
7b7ddbdd97
Move the coordinator to a n-processor design
2023-05-09 23:44:41 -04:00
Luke Parker
9175383e89
Spawn a new async task for each block message
...
This probably should be done with n-long lived tasks, one per Tributary. While
this may not be suitably performant long-term (potential DoS vector), this at
least resolves the halting concerns.
2023-05-09 17:05:33 -04:00
Luke Parker
029b6c53a1
Use U448 for Ed448 instead of U512
2023-05-09 04:12:13 -04:00
Luke Parker
219adc7657
Rename uid to intent
2023-05-08 22:21:41 -04:00
Luke Parker
964fdee175
Publish ExternablBlock/SubstrateBlock, delay *Preprocess until ID acknowledged
...
Adds a channel for the Tributary scanner to communicate when an ID has been
acknowledged.
2023-05-08 22:20:51 -04:00
Luke Parker
a7f2740dfb
Correct Serai Dockerfile
2023-05-08 02:08:31 -04:00
Luke Parker
0c9c1aeff1
Correct processor's handling of the new Monero RPC code
2023-05-02 03:40:49 -04:00
Luke Parker
adfbde6e24
Support arbitrary RPC providers in monero-serai
...
Sets a clean path for no-std premised RPCs (buffers to an external RPC impl)/
Tor-based RPCs/client-side load balancing/...
2023-05-02 02:39:08 -04:00
Luke Parker
5765d1d278
Update to May's nightly
...
Doesn't use the PR due to the needed changes.
2023-05-01 04:58:50 -04:00
Luke Parker
78c00bde3d
Correct error message in ff-group-tests
2023-05-01 03:18:11 -04:00
Luke Parker
c0001f5ff2
Update to substrate polkadot-v0.9.42
2023-05-01 03:17:37 -04:00
Luke Parker
6032af6692
Have Coordinator MainDb take a mutable borrow
2023-04-26 00:10:06 -04:00
Luke Parker
7824b6cb8b
Document the processor/tributary/coordinator/serai flow
2023-04-25 15:05:58 -04:00
Luke Parker
78d5372fb7
Initial code to handle messages from processors
2023-04-25 03:14:42 -04:00
Luke Parker
cc531d630e
Add a UID function to messages
...
When we receive messages, we're provided with a message ID we can use to
prevent handling an item multiple times. That doesn't prevent us from *sending*
an item multiple times though. Thanks to the UID system, we can now not send if
already present.
Alternatively, we can remove the ordered message ID for just the UID, allowing
duplicates to be sent without issue, and handled on the receiving end.
2023-04-25 02:46:18 -04:00
Luke Parker
09d96822ca
Document a pair of panics requiring 256 GB of RAM/4 GB of a context
2023-04-24 23:49:06 -04:00