-
-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop using CheckBridge ABCI #410
Comments
@johannbarbie @TheReturnOfJan @pinkiebell What are the implications of the setup where we are not stopping consensus in case of delayed period submission? Unsubmitted periods will be piling up, exits for younger utxos are not possible, but eventually all the periods should make it to the root chain in PoS setup as there is an incentive for other validators to submit stalling periods. Overall, the situation is not any different from the situation when we stop the consensus. |
As far as I know, the bridge contracts allows periods to be submitted only after each passing Imagine, if the tendermint network computes new blocks very fast, faster than period submissions are allowed to happen, then that could be a problem for chain security, no? 🤔 |
As @pinkiebell said, I think the main problem is if 32*(blocks/second) produced by tendermint is consistently bigger than periods/second swallowed by ethereum mainnet. In that case the non-finalised tip of the tendermint chain will only grow over time (the funds in blocks not commited to main net cannot be exited). |
Current implementation of contract doesn't allow missing periods — they chained to each other, and bridge will reject submission if the previous period is on submitted.
proposal is not addressing this, but, probably, the current implementation doesn't really address it as well: both stopped chain and not-checkpoint chain are unusable. Though, I admit, that running chain without checkpoints will be perceived as "safe". @pinkiebell @TheReturnOfJan thanks for the feedback 🙏I guess you are right, it is not safe in general. |
What if we introduce block time to the leap chain? E.g. block time of 3 seconds will create a 1.5 minute gap between periods. Though, anyway, in case of validator failure to submit period the chain will run unsecured. |
Bounty
We are using patched Tendermint which is not a great practice. This bounty is a second take to propose a solution to get rid of custom Tendermint and use vanilla one.
Original discussion: #357
Scope
periodProposal
object for the last complete period andstalePeriodProposal
object for the older period if it is not on the root chain yet. Proposing to replace both with an map of proposals:periodRoot
for proposal usingconst { periodRoot } = period.periodData();
(make sureperiod
has validator data set).startNewPeriod.js
) it is just added to the map. Store into local db and read it back on node start.submitPeriod
to updateupdatedAt
attribute of the proposal to the current timestamp. Make sure the change is saved to local db.checkBridge
to those withupdatedAt
older than 2 minutes (TODO: is it a good gap time?).checkBridge
handler (/src/period/index.js
)Deliverables
Gain for the project
reduce complexity, easier to upgrade tendermint, no consensus stops
Expert
TBD
Publicly visible delivery
Roles
bounty gardener: @troggy / 100 DAI
bounty worker: name / share
bounty reviewer: name / share
Funded by
Dev Circle
The text was updated successfully, but these errors were encountered: