Commit Graph

882 Commits

Author SHA1 Message Date
Luke Parker
7a75020dc8 Remove verify_rct_* from Mlsag
Both methods were ports from Monero, overtly specific without clear
documentation. They need to be added back in, with documentation, or included
in a node which provides the necessary further context for them to be naturally
understandable.
2023-07-03 18:41:14 -04:00
Luke Parker
56ee1eaf9c Tidy Mlsag 2023-07-03 18:36:26 -04:00
Luke Parker
23b19fcd91 Use a clearer algorithm for the merkle
Should also be more efficient due to not shifting as often.
2023-07-03 18:18:31 -04:00
Luke Parker
e066083404 Merge branch 'develop' into monero-legacy 2023-07-03 18:04:12 -04:00
Luke Parker
6ac57be4e3 Disable Rust caching
We hit the cache limit after just one or two builds, making it infeasible.
2023-07-03 18:03:09 -04:00
Luke Parker
06bbc5b1cf Corrections for recent processor commit 2023-07-03 12:45:08 -04:00
Luke Parker
3480b3cdc2 Merge branch 'develop' into monero-legacy 2023-07-03 12:41:04 -04:00
Luke Parker
08e7ca955b Correct depends for processor-messages 2023-07-03 12:40:56 -04:00
Luke Parker
06faeec5bc Stop caching the Monero block hash now in processor that we have Block::hash 2023-07-03 12:39:53 -04:00
Luke Parker
2bbd545704 Only pull in things only needed for experimental when experimental 2023-07-03 12:38:36 -04:00
Luke Parker
733a5c1f8a Write a new impl of the merkle algorithm
This one tries to be understandable.
2023-07-03 12:33:19 -04:00
Luke Parker
2b190851a7 Correct comments 2023-07-03 12:06:52 -04:00
Luke Parker
0453bfb4b2 Mark legacy EcdhInfo amount decryption as experimental 2023-07-03 10:25:57 -04:00
Luke Parker
15546b6e27 Tidy Borromean, fix bugs in last commit, replace todo! with unreachable! 2023-07-03 10:15:56 -04:00
Luke Parker
c20f85da64 Tidy block.rs 2023-07-03 09:45:30 -04:00
Luke Parker
239800cfcf Update monero-tests workflow to new name for the processor 2023-07-03 09:12:29 -04:00
Luke Parker
6d90c8b4f9 Merge branch 'develop' into HEAD
Also updates monero-generators per comments in
https://github.com/serai-dex/serai/pull/308.
2023-07-03 09:02:27 -04:00
Luke Parker
d49c636f0f Use serai- prefixes on Serai-specific packages
Fixes deny.toml, also runs a minor cargo update shrinking the tree.
2023-07-03 08:50:23 -04:00
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
Boog900
02750193f3 Add MgSig proving 2023-06-26 00:26:30 +01:00
Boog900
e4a615aa76 update MLSAG, ss2_elements will always be 2 2023-06-23 23:29:43 +01:00
Boog900
c1a2aafc83 fmt & clippy :) 2023-06-23 17:58:33 +01:00
Boog900
d1656d378e Add MLSAG verifying functionality 2023-06-23 13:29:59 +01:00
Boog900
ac30e3afaa Add Borromean range proof verifying functionality 2023-06-23 12:23:33 +01: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
Boog900
71ffcc8ef7 fix for the jokester that added unreduced scalars
to the borromean signature of
2368d846e671bf79a1f84c6d3af9f0bfe296f043f50cf17ae5e485384a53707b
2023-05-31 23:06:06 +01:00
Boog900
4a2f512b8d add block hash calculations 2023-05-31 20:44:11 +01:00
Boog900
f81f5c386d add borromean + fix mlsag 2023-05-31 19:32:47 +01:00
Luke Parker
c6982b5dfc Ensure canonical points in the cross-group DLEq proof 2023-05-30 22:05:52 -04:00
Boog900
d8b8ce9837 fix non-miner v1 txs 2023-05-30 21:05:45 +01:00
Boog900
eb7058801c fix miner v1 txs 2023-05-30 19:24:15 +01:00
Boog900
b014a78e3c fix last commit 2023-05-30 17:29:25 +01:00
Boog900
76f5c23b7f add mlsag 2023-05-30 16:29:57 +01: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