Luke Parker
f36bbcba25
Flatten the map of preprocesses/shares, send Participant index with DkgParticipation
2025-01-15 14:24:51 -05:00
Luke Parker
7312fa8d3c
Spawn PublishSlashReportTask
...
Updates it so that it'll try for every network instead of returning after any
network fails.
Uses the SlashReport type throughout the codebase.
2025-01-15 12:08:28 -05:00
Luke Parker
b5a6b0693e
Add a proper error type to ContinuallyRan
...
This isn't necessary. Because we just log the error, we never match off of it,
we don't need any structure beyond String (or now Debug, which still gives us
a way to print the error). This is for the ergonomics of not having to
constantly write `.map_err(|e| format!("{e:?}"))`.
2025-01-12 18:29:08 -05:00
Luke Parker
0ce9aad9b2
Add flow to add transactions onto Tributaries
2025-01-12 07:32:45 -05:00
Luke Parker
e7de5125a2
Have processor-messages use CosignIntent/SignedCosign, not the historic cosign format
...
Has yet to update the processor accordingly.
2025-01-12 05:52:33 -05:00
Luke Parker
d854807edd
Make message_queue::client::Client::send fallible
...
Allows tasks to report the errors themselves and handle retry in our
standardized way.
2025-01-11 21:57:58 -05:00
Luke Parker
c05b0c9eba
Handle Canonical, NewSet from serai-coordinator-substrate
2025-01-11 03:07:15 -05:00
Luke Parker
542bf2170a
Provide Cosign/CosignIntent for Tributaries
2025-01-11 01:31:28 -05:00
Luke Parker
47a4e534ef
Update serai-processor-signers to VariantSignid::Batch([u8; 32])
2025-01-07 15:26:23 -05:00
Luke Parker
0a611cb155
Further flesh out tributary scanning
...
Renames `label` to `round` since `Label` was renamed to `SigningProtocolRound`.
Adds some more context-less validation to transactions which used to be done
within the custom decode function which was simplified via the usage of borsh.
Documents in processor-messages where the Coordinator sends each of its
messages.
2025-01-03 06:57:28 -05:00
Luke Parker
bcd3f14f4f
Start work on cleaning up the coordinator's tributary handling
2025-01-02 09:11:04 -05:00
Luke Parker
6272c40561
Restore block_hash to Batch
...
It's not only helpful (to easily check where Serai's view of the external
network is) but it's necessary in case of a non-trivial chain fork to determine
which blockchain Serai considers canonical.
2024-12-31 18:10:47 -05:00
Luke Parker
8c9441a1a5
Redo coordinator's Substrate scanner
2024-12-31 10:37:19 -05:00
Luke Parker
5a42f66dc2
alloy 0.9
2024-12-30 11:09:09 -05:00
Luke Parker
b584a2beab
Remove old DB entry from the scanner
...
We read from it but never writ to it.
It was used to check we didn't flag a block as notable after reporting it, but
it was called by the scan task as it scanned a block. We only batch/report
blocks after the scan task after scanning them, so it was very redundant.
2024-12-30 11:07:05 -05:00
Luke Parker
26ccff25a1
Split reporting Batches to the signer from the Batch test
2024-12-30 11:03:52 -05:00
Luke Parker
f0094b3c7c
Rename Report task to Batch task
2024-12-30 10:49:35 -05:00
Luke Parker
458f4fe170
Move where we check if we should delay reporting of Batches
2024-12-30 10:18:38 -05:00
Luke Parker
1de8136739
Remove Session from VariantSignId::SlashReport
...
It's only there to make the VariantSignid unique across Sessions. By localizing
the VariantSignid to a Session, we avoid this, and can better ensure we don't
queue work for historic sessions.
2024-12-30 06:16:03 -05:00
Luke Parker
445c49f030
Have the scanner's report task ensure handovers only occur if Batchs are valid
...
This is incomplete at this time. The logic is fine, but needs to be moved to a
distinct location to handle singular blocks which produce multiple Batches.
2024-12-30 06:11:47 -05:00
Luke Parker
5b74fc8ac1
Merge ExternalKeyForSessionToSignBatch into InfoForBatch
2024-12-30 05:34:13 -05:00
Luke Parker
e67e301fc2
Have the processor verify the published Batches match expectations
2024-12-30 05:21:26 -05:00
Luke Parker
147a6e43d0
Split task from serai-processor-primitives into serai-task
2024-12-19 10:08:13 -05:00
Luke Parker
9593a428e3
alloy 0.8
2024-12-11 01:02:58 -05:00
Luke Parker
5b3c5ec02b
Basic Ethereum escapeHatch test
2024-12-09 02:00:17 -05:00
Luke Parker
3192370484
Add Serai key confirmation to prevent rotating to an unusable key
...
Also updates alloy to the latest version
2024-12-08 20:42:37 -05:00
Luke Parker
8013c56195
Add/correct msrv labels
2024-12-08 18:27:15 -05:00
Luke Parker
834c16930b
Add a bitmask of OutInstruction events to Executed
...
Allows explorers to provide clarity on what occurred.
2024-11-02 21:00:01 -04:00
Luke Parker
2920987173
Add a re-entrancy guard to Router.execute
2024-11-02 20:12:48 -04:00
Luke Parker
26230377b0
Define IRouterWithoutCollisions which Router inherits from
...
This ensures Router implements most of IRouterWithoutCollisions. It solely
leaves us to confirm Router implements the extensions defined in IRouter.
2024-11-02 19:10:39 -04:00
Luke Parker
2f5c0c68d0
Add selector collisions to Router to make it IRouter compatible
2024-11-02 18:13:02 -04:00
Luke Parker
8de42cc2d4
Add IRouter
2024-11-02 13:19:07 -04:00
Luke Parker
cf4123b0f8
Update how signatures are handled by the Router
2024-11-02 10:47:09 -04:00
Luke Parker
6a520a7412
Work on testing the Router
2024-10-31 02:23:59 -04:00
Luke Parker
b2ec58a445
Update serai-ethereum-processor to compile
2024-10-30 21:48:40 -04:00
Luke Parker
8e800885fb
Simplify deterministic signing process in serai-processor-ethereum-primitives
...
This should be easier to specify/do an alternative implementation of.
2024-10-30 21:36:31 -04:00
Luke Parker
2a427382f1
Natspec, slither Deployer, Router
2024-10-30 21:35:43 -04:00
Luke Parker
ce1689b325
Expand tests for ethereum-schnorr-contract
2024-10-28 18:08:31 -04:00
Luke Parker
2c8af04781
machete, drain > mem::swap for clarity reasons
2024-09-19 23:36:32 -07:00
Luke Parker
a0ed043372
Move old processor/src directory to processor/TODO
2024-09-19 23:36:32 -07:00
Luke Parker
2984d2f8cf
Misc comments
2024-09-19 23:36:32 -07:00
Luke Parker
554c5778e4
Don't track deployment block in the Router
...
This technically has a TOCTOU where we sync an Epoch's metadata (signifying we
did sync to that point), then check if the Router was deployed, yet at that
very moment the node resets to genesis. By ensuring the Router is deployed, we
avoid this (and don't need to track the deployment block in-contract).
Also uses a JoinSet to sync the 32 blocks in parallel.
2024-09-19 23:36:32 -07:00
Luke Parker
7e4c59a0a3
Have the Router track its deployment block
...
Prevents a consensus split where some nodes would drop transfers if their node
didn't think the Router was deployed, and some would handle them.
2024-09-19 23:36:32 -07:00
Luke Parker
294462641e
Don't have the ERC20 collapse the top-level transfer ID to the transaction ID
...
Uses the ID of the transfer event associated with the top-level transfer.
2024-09-19 23:36:32 -07:00
Luke Parker
ae76749513
Transfer ETH with CREATE, not prior to CREATE
...
Saves a few thousand gas.
2024-09-19 23:36:32 -07:00
Luke Parker
1e1b821d34
Report a Change Output with every Eventuality to ensure we don't fall out of synchrony
2024-09-19 23:36:32 -07:00
Luke Parker
702b4c860c
Add dummy fee values to the scheduler
2024-09-19 23:36:32 -07:00
Luke Parker
bc1bbf9951
Set a fixed fee transferred to the caller for publication
...
Avoids the risk of the gas used by the contract exceeding the gas presumed to
be used (causing an insolvency).
2024-09-19 23:36:32 -07:00
Luke Parker
ec9211fd84
Remove accidentally included bitcoin feature from processor-bin
2024-09-19 23:36:32 -07:00
Luke Parker
4292660eda
Have the Ethereum scheduler create Batches as necessary
...
Also introduces the fee logic, despite it being stubbed.
2024-09-19 23:36:32 -07:00