Skip to content
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

Childchain relayer service #26

Closed
1 of 3 tasks
mwaa opened this issue Sep 9, 2020 · 3 comments · Fixed by #56
Closed
1 of 3 tasks

Childchain relayer service #26

mwaa opened this issue Sep 9, 2020 · 3 comments · Fixed by #56
Assignees

Comments

@mwaa
Copy link
Contributor

mwaa commented Sep 9, 2020

Bounty

Listener and handler functionalities to relay transactions in the child-chains

Scope

  • Handler function that receives lock events from CKB relayer service
  • Collect validator signatures via contract method collectLock
  • Listen for burn/unlock events on childchain
  • Once a burn occurs trigger validator signing
  • Collect the validator signature via contract method collectUnlock
  • Listen for the BurnQuorum event
  • Send BurnQuorum event data to CKB relayer service
  • Use same json file to configure environment for both relayer services

listener sleep time
url endpoints for child chain
url endpoints for ckb relayer service
current chain mainent/testnet
bridge script hash
etc

Deliverables

  • Deploy-able code with instructions on running service
  • Service allow's validator to sign transactions for collectUnlock
  • Service allow's relay of BurnQuorum to parent bridge

Funding Circle

Nervos

Bounty Owner/Gardener

@mwaa as LeadLink

Roles

bounty gardener: @mwaa / 50 DAI @johannbarbie / 50 DAI
bounty worker: @mwaa / 710 DAI
bounty reviewer: name / 90 DAI

Gardener checklist

This was referenced Sep 9, 2020
@mwaa mwaa self-assigned this Sep 9, 2020
@johannbarbie
Copy link
Member

johannbarbie commented Sep 14, 2020

Use http calls to relay the transactions from indexer to child chain

This actually requires a signing over a lock receipt.

Provide an http endpoint to receive burn transcations from childchain

This requires a service to scan for EVM events on the child chain. Once an event has been found, it should be signed by validators again.

Provide an http endpoint to query bridge balances from the deposit cell

why is this needed?

Provide an http endpoint to receive deposit requests from UI

why is this needed?

@mwaa can you help me understand the above points? specifically i don't see how you integrate with the validator wallet. I'm getting the gut feeling that there is no other way but to write this as a go-lang module to ethermint, otherwise you can't access the wallet of the validators for signing receipts, can you?

@mwaa mwaa changed the title Relay Server between chains Chilchain relayer service Sep 17, 2020
@mwaa mwaa changed the title Chilchain relayer service Childchain relayer service Sep 17, 2020
@mwaa
Copy link
Contributor Author

mwaa commented Sep 17, 2020

@johannbarbie

No need for validator to manually sign with wallet as they wouldn't be able to do so for even a minimum of 10TPS.
Since the contract collects the signatures 2/3 validators would have to collude to have a fraudulent unlock
In such a case then the auditDelay script would come in play

@mwaa mwaa mentioned this issue Sep 17, 2020
3 tasks
@mwaa
Copy link
Contributor Author

mwaa commented Oct 23, 2020

Testing of functionality as been forked out to new ticket #55.
Ran out of time because initial child chain bridge contract was not relaying events as expected on ethermint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants