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
Replace the multilevel cache system with a journaling system
rsksmart
java
### Prize Bounty
The Prize Bounty is 21 ETH.
### Challenge Description
Currently the RSKj nodes employs a multi-level cache system to track changes to the world state.
This allows to revert the state in case of REVERT opcode or OOG.
The main class involved is MutableTrieCache.java. Every new contract called gets a new MutableTrieCache on top of the previous one.
This implementation is sub-optimal in terms of efficiency. Put/get are O(N) operations, where N is the level of the cache while revert is O(1).
It is preferable to use a journaling cache "JournalTrieCache" that:
- Stores the latest values for key/values that have changed, but it is a pass-through for keys that have not.
- Past values to changed keys are stored in a log, with entries of type (key,oldValue). Reversal implies going over the log in reverse order and reversing the changes made. Recursive deletion may require special functionality, as the current system marks accounts to imply recursive deletion.
The task is to change the structure of the node such that: for each block a MutableTrieCache is used, but for each transaction a JournalTrieCache is used (and the same object is is used for all internal CALL frames).
### Submission Requirements
A valid submission should modify the RSKj node to implement JournalTrieCache integrated to transaction processing, pass all unit tests and synchronize with the RSK mainnet.
The code should respect the contribution standards specified in https://github.com/rsksmart/rskj/blob/master/CONTRIBUTING.md
### Submission Deadline
The deadline for submissions is November 11, 2019.
### Judging Criteria
The prize will be awarded to the best valid submission.
### Winner Announcement Date
The submission will be reviewed between November 11 and November 18. Winners will be privately notified before a public announcement of all hackathon prices given by IOV Labs. The announcement and prize payouts will occur before November 31, 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