harmony-one / bounties

Bounty program is to help the community take part in the development of the Harmony blockchain. It covers from core feature to validator tooling, from dApp development to DeFi integration.
MIT License
59 stars 23 forks source link

RPC: replace JSON-encoder #68

Open jacksteroo opened 2 years ago

jacksteroo commented 2 years ago

Description

Based on the discussion raised at this GitHub issue, we could gain performance improvements by using a faster JSON encoder such as GoJay.

Context

RPC response times are becoming more and more critical as Harmony is integrating across multiple chains, requiring a resilient and responsive service. By replacing standard Ethereum Harmony API JSON encoder with a faster json encoder will help speedup API responses that have larger payloads. There are other methods of speeding up the RPC service, but those are out of scope.

Acceptance Criteria

Reward

USD $1,000 (in ONEs)

gitcoinbot commented 2 years ago

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


This issue now has a funding of 6852.5862 ONE (1005.32 USD @ $0.15/ONE) attached to it.

gitcoinbot commented 2 years ago

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


Work has been started.

These users each claimed they can complete the work by 265 years, 1 month from now. Please review their action plans below:

1) jsha1 has started work.

Hi, I can take a look at this one. Research json encoder packages that won't mutate responses Test eth rpc with GoJay and different encoders against baseline

Learn more on the Gitcoin Issue Details page.

mellertson commented 2 years ago

I have a clarifying question to make sure I am on the right track.

I have reviewed how the Harmony One RPC uses the json encoder. I see there are usages of json.Encoder, in harmony/core/state.dump.go. And usages of json.Marshal and json.Unmarshal in harmony/rpc/common/types.go, just to name a few.

Is it in scope to update usages of the json encoder in harmony/core or just in /harmony/rpc/?

I understand this might be a silly question, but I would rather ask the silly questions than do silly things. :smile:

LeoHChen commented 2 years ago

both, thanks.

mellertson commented 2 years ago

both, thanks.

Sounds good. Thanks for the clarification.

mellertson commented 2 years ago

I can whip together a smart contract to send data to. But, wanted to ask does a smart contract already exists, which can handle data of varying size? I'm thinking a contract similar to an echo program would suffice.

gitcoinbot commented 2 years ago

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


The funding of 6852.5862 ONE (1328.68 USD @ $0.18/ONE) attached to this issue has been cancelled by the bounty submitter

gitcoinbot commented 2 years ago

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


The funding of 6852.5862 ONE (1328.68 USD @ $0.18/ONE) attached to this issue has been cancelled by the bounty submitter