Skip to content
This repository has been archived by the owner on Jun 3, 2024. It is now read-only.

[Core] Clique engine for Parity Ethereum #9

Closed
5chdn opened this issue Nov 14, 2018 · 17 comments
Closed

[Core] Clique engine for Parity Ethereum #9

5chdn opened this issue Nov 14, 2018 · 17 comments

Comments

@5chdn
Copy link
Contributor

5chdn commented Nov 14, 2018

Parity Ethereum is a blockchain client and full-node implementation written in Rust programming language. It supports multiple different chains based on the Ethereum Virtual Machine (EVM) or Parity's WebAssembly VM (pWasm). The client comes with "pluggable consensus," so it has different consensus engines, among others the "Ethash" proof-of-work engine, the "AuRa" proof-of-authority engine, and some developer presets like "Instant Seal" and "Basic Authority."

We want to add the "Clique" proof-of-authority engine to that list and allow users to synchronize the Rinkeby, Görli, and Kotti Classic testnets. That breaks down into these major components/tasks:

  1. The "Clique" proof-of-authority core engine with proper block validation logic as per EIP-225, full chain synchronization, and light/headers verification.
  2. The sealing logic to enable the node to be run in "authority mode:" creating, proposing, and sealing new blocks; voting for new validators; unvoting validators to remove them.
  3. The "Clique" JSONRPC-APIs that allow users to control the engine via HTTP/WS/IPC APIs.
  4. Configurations and chain specifications for the Rinkeby, Görli, and Kotti Classic networks.
  5. Tests! Everything should be covered. (This is actually part of all the tasks above, just making sure this is not forgotten about.)

... Profit? All tasks can be claimed via bounties. What is a bounty? That's a fixed amount of money that is claimable by anyone who is submitting a working solution to any of the tasks listed above and sufficient quality. What is sufficient quality? You certainly should have written Rust before and be familiar with the concepts and best practices of the language. Knowing Parity Ethereum or blockchain experience in general is a bonus. How to claim a bounty? Reach out, name your price and agree on a date for code delivery.

Communication happens on Gitter: goerli/clique

@jwasinger
Copy link

jwasinger commented Dec 4, 2018

For the parity implementation, I see two milestones that need to be completed before we reach MVP (parity functioning as a signer):

  • implement voting logic
  • implement the RPC method for voting

We can create meta-issues to track these but I'd like to break the list down a bit more into granular work tasks for visibility and so that they can be assigned.

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 15000.0 DAI (15000.0 USD @ $1.0/DAI) attached to it as part of the Görli Testnet Initiative fund.

@gitcoinbot
Copy link

gitcoinbot commented Jan 22, 2019

Issue Status: 1. Open 2. Cancelled


Work has been started.

These users each claimed they can complete the work by 3 months, 1 week ago.
Please review their action plans below:

1) thefallentree has been approved to start work.

I'm already looking into it and I've cleared my schedule to work on it. should be doable in next two weeks.
2) jwasinger has been approved to start work.

Finishing:

I have some experience with Rust, and blockchain, and some time free now to work. I understand this is group effort, and I'd like to get involved and help out
4) jamesray1 has been approved to start work.

I will need to spend some time studying this before I can start contributing.

Learn more on the Gitcoin Issue Details page.

@StevenJNPearce
Copy link

StevenJNPearce commented Jan 23, 2019

Could you not abuse Gitcoin? This is not a bounty. It's not clear what it is. Pay people for work done previously however you deem fit, but don't post it as a bounty when it has nothing to do with bounties.

@jwasinger
Copy link

jwasinger commented Jan 23, 2019

@5chdn , @thefallentree and I have been working on implementing this for months:
openethereum/parity-ethereum#9981

@5chdn
Copy link
Contributor Author

5chdn commented Jan 23, 2019

@StevenJNPearce I'm sorry this is not clear what it is. I will improve the description. This is not for previous work. This will be paid out to whoever helps getting the clique engine merged into Parity Ethereum.

@5chdn 5chdn pinned this issue Jan 23, 2019
@5chdn
Copy link
Contributor Author

5chdn commented Jan 27, 2019

Seeing a big bounty, and then realizing that it is already allocated

I'm still accepting bounty hunters, at least one more. We need some help.

because some funds were delayed

Unfortunately, that's our problem.

shouldn't upcoming tiny issues be solved and merged (to upstream) prior to the "big merge" ?

I'm open for suggestions. The problem is that this is a massive feature and you cannot implement RPCs before having the engine, and the engine is pretty useless without voting etc.

Are you interested working on this?

@5chdn
Copy link
Contributor Author

5chdn commented Jan 28, 2019

Thanks for your suggestions, could you join us on Gitter maybe? https://gitter.im/goerli/clique

@5chdn
Copy link
Contributor Author

5chdn commented Jan 28, 2019

"go" ;)

@thefallentree
Copy link
Contributor

I ddin't quite follow the discussion here. I mean we already have a working sync + sealing codebase, I'm just in process tidying everything up, so it can be merged. can we try not to over project-manage this further?

@thefallentree
Copy link
Contributor

@lazaridiscom Right now what needs to be done in this issue (clique implementation in parity) is to write the code for clique consensus engine in parity, and I'm just doing that. And when code is working, cleaned up and submit for review, maybe need some help from parity on review and approval.

If you want to discuss other tasks in the overall goerli project, you should collaborate with @5chdn , which he owns. and create other issues tracking that.

The bounty allocation is also entirely 5chdn responsibility, and I have been writing this without any bounty in the first place. but I, just like @jwasinger , also would like to understand what is the deliverable for task A and curious about that who actually asked for it.

@5chdn
Copy link
Contributor Author

5chdn commented Jan 29, 2019

sealing codebase

I wasn't aware, we can run Parity as authority now?

@thefallentree
Copy link
Contributor

sealing codebase

I wasn't aware, we can run Parity as authority now?

yep, just pushed my latest code, and made an release

@gitcoinbot
Copy link

Issue Status: 1. Open 2. Cancelled


The funding of 15000.0 DAI (15000.0 USD @ $1.0/DAI) attached to this issue has been cancelled by the bounty submitter

@thefallentree
Copy link
Contributor

@5chdn what's the best way to contact you right now?

@gitcoinbot
Copy link

Black Lotus ⚡️ A *Black Lotus* Kudos has been sent to @thefallentree for this issue from @5chdn. ⚡️

Nice work @thefallentree!
Your Kudos has automatically been sent in the ETH address we have on file.

@gitcoinbot
Copy link

Rockstar ⚡️ A *Rockstar* Kudos has been sent to @jwasinger for this issue from @5chdn. ⚡️

Nice work @jwasinger!
To redeem your Kudos, login to Gitcoin at https://gitcoin.co/explorer and select 'Claim Kudos' from dropdown menu in the top right, or check your email for a link to the Kudos redemption page.

@soc1c soc1c closed this as completed Apr 19, 2019
@q9f q9f unpinned this issue Sep 25, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants