No funded issue found.
Check out the Issue Explorer
Be the OSS Funding you wish to see in the world.
Looking to fund some work? You can submit a new Funded Issue here .
Time left
Opened
Issue Type
Workers Auto Approve
Project Type
Time Commitment
Experience Level
Permissions
Accepted
Reserved For
[Ethereal Hackathon] GraphQL EIP-1767 Implementation for Pantheon
pegasyseng
# Description
Implement a GraphQL interface to expose data about a [Pantheon](https://github.com/PegaSysEng/pantheon/) node that conforms to [EIP-1767](https://eips.ethereum.org/EIPS/eip-1767). As the EIP specifies, the implementation should allow “a complete replacement to the read-only information exposed via the present JSON-RPC interface”.
**Note: if you wish to work on this bounty for the hackathon, please comment on the Github issue so that others know you are working on it. This bounty could be split across two teams, if there is collaboration from the start agreed upon by all parties.**
The RPC calls to have an interface implemented for are the 24 ones marked as “IMPLEMENTED” in the “Backwards Compatibility” section of the EIP, namely:
1. eth_getBlockByHash (_please implement this first, see below_)
2. eth_getBlockByNumber
3. eth_blockNumber
4. eth_call
5. eth_estimateGas
6. eth_gasPrice
7. eth_getBalance
8. eth_getBlockTransactionCountByHash
9. eth_getBlockTransactionCountByNumber
10. eth_getCode
11. eth_getLogs
12. eth_getStorageAt
13. eth_getTransactionByBlockHashAndIndex
14. eth_getTransactionByBlockNumberAndIndex
15. eth_getTransactionByHash
16. eth_getTransactionCount
17. eth_getTransactionReceipt
18. eth_getUncleByBlockHashAndIndex
19. eth_getUncleByBlockNumberAndIndex
20. eth_getUncleCountByBlockHash
21. eth_getUncleCountByBlockNumber
22. eth_protocolVersion
23. eth_sendRawTransaction
24. eth_syncing
**Note: Please start by implementing `eth_getBlockByHash`. Once that is done, you can submit a WIP PR and our team will happily give feedback.**
The implementations should use a coding style consistent with the rest of Pantheon. Please see our [Contribution Guideline](https://github.com/PegaSysEng/pantheon/blob/master/CONTRIBUTING.md)s for more information, along with the following similar classes for reference:
- [JsonRpcConfiguration](https://github.com/PegaSysEng/pantheon/blob/master/ethereum/jsonrpc/src/main/java/tech/pegasys/pantheon/ethereum/jsonrpc/JsonRpcConfiguration.java) as an example of CLI and configuration
- [JsonRpcHttpService](https://github.com/PegaSysEng/pantheon/blob/master/ethereum/jsonrpc/src/main/java/tech/pegasys/pantheon/ethereum/jsonrpc/JsonRpcHttpService.java) as an example of the persistent network service
- [tech.pegasys.pantheon.ethereum.jsonrpc.internal.methods](https://github.com/PegaSysEng/pantheon/tree/master/ethereum/jsonrpc/src/main/java/tech/pegasys/pantheon/ethereum/jsonrpc/internal/methods) for method bodies reference
- [EthGetWorkTest](https://github.com/PegaSysEng/pantheon/blob/master/ethereum/jsonrpc/src/test/java/tech/pegasys/pantheon/ethereum/jsonrpc/internal/methods/EthGetWorkTest.java) as a model unit test
**Note: If time-constrained, please prioritize quality of implementation over implementing all calls. If only a subset of RPC calls are implemented, we can pay a bounty proportional to the number of implemented calls. See “Submission Requirements” for more information.**
# Submission Requirements
- Implementations for all RPC calls marked as “IMPLEMENTED” in the “Backwards Compatibility” section of EIP-1767 according to specification.
- Please start by implementing `eth_getBlockByHash`. Once that is done, you can submit a WIP PR and our team will happily give feedback in the 24hrs after the PR is submitted.
- Unit test code to validate correct behavior.
- Integration test to demonstrate correct behavior.
- All libraries and dependencies must use Apache 2.0 friendly licenses
- A `demo.md` file that explains how PegaSys engineers can verify that the code works as intended, ideally without the use of 3rd party tools.
## Submission Deadline
April 30th, with the option of a partial bounty payout if not all calls are implemented. See “Judging Criteria” below for details.
# Judging Criteria
- The bounty will be awarded to the best submission based on the [EIP specification](https://eips.ethereum.org/EIPS/eip-1767), code and testing quality, compliance with [Contribution Guidelines](https://github.com/PegaSysEng/pantheon/blob/master/CONTRIBUTING.md), and the Submission Requirements above, according to PegaSys.
- Assuming a complete implementation, the bounty awarded will be 5,000 DAI.
- Again, if time-constrained, please prioritize quality of implementation over implementing all calls. **If only a subset of RPC calls are implemented, we can pay a bounty proportional to the number of implemented calls.**
- Given the overhead of implementing the first call, the breakdown would go as follows:
- First call (eth_getBlockByHash): 1,000 DAI
- Subsequent calls: 1/23 * 4,000 DAI ~= 173.91 DAI / call.
For example, assuming that 20 calls were implemented, the bounty paid would be at least 1,000 DAI + 19/23 * 4,000 DAI ~= 3304.35 DAI.
## Judging Date
May 3, 2019
Setup your profile
Tell us a little about you:
Skills
No results found for [[search]] .
Type to search skills..
Bio Required
[[totalcharacter]] / 240
Are you currently looking for work?
[[ option.string ]]
Next
Setup your profile
Our tools are based on the principles of earn (💰), learn (📖), and meet (💬).
Select the ones you are interested in. You can change it later in your settings.
I'm also an organization manager looking for a great community.
Back
Next
Save
Enable your organization profile
Gitcoin products can help grow community around your brand. Create your tribe, events, and incentivize your community with bounties. Announce new and upcoming events using townsquare. Find top-quality hackers and fund them to work with you on a grant.
These are the organizations you own. If you don't see your organization here please be sure that information is public on your GitHub profile. Gitcoin will sync this information for you.
Select the products you are interested in:
Out of the box you will receive Tribes Lite for your organization. Please provide us with a contact email:
Email
Back
Save