This is final dev update concluding developments of ethRPCtoREST
occurred during Fellowship period.
Goal was to create a simplified REST API interface for interacting with Execution layer APIs of Ethereum. Or simply, a REST Wrapper around JSON-RPC APIs.
It started with deciding a rough structure through project proposal.
There were mainly two sub-missions under this proposal.
One was specing out all APIs in REST format and another was implementing them.
I started with OPENAPI specifications on a .yaml
file and after specing out 10 of the methods I moved on with implementation. After some time, there were multiple methods and OPENAPI specs got lagged.
Jordan had also shown intent for working on REST wrappers and he took the responsibility of docs generation.
Till now, in total there are 17 REST endpoints with around 18 execution layer methods wrapped. Their relation isn't one-to-one. In some cases, one REST endpoint acts as an umbrella over multiple methods, automatically figuring out appropriate methods depending upon input. In other cases, multiple endpoints are wrapped around single method with default values as input parameters.
for example:
/eth/block/:identifier
wraps eth_getBlockByNumber
and eth_getBlockByHash
both while/eth/balance/:address
& /eth/balance/:address/:identifier
wrap around single method eth_getBalance
with latest
as block number to be balance checked at.After project proposal, a new repository ethRPCtoREST
, a markdown for weekly development updates, proposal presentation slides & EPF Day Presentation slides upto 14th slide. were created during fellowship period.
Apart from that I found some inconsistencies in documented specs of execution APIs sitting unnoticed from such a long time, one of them is currently in review.
ethRPCtoREST
with all of 20 methods supported.I am overall grateful for such a great experience through Ethereum protocol Fellowship. I had started as a permissionles contributor and later got accepted as official fellow. I ended up learning an entirely new language(Golang) which I was intending to learn from such a long time but haven't been able to find out time or say an excuse or purpose for learning it. I am thankful to JoshD and Mario for driving the whole program with amazing excitement and energy. I am proudful for being able to make substantial contribution to ethereum ecosystem. Thanks, to our mentor - lightclient who supported and suggested changes as required on my small updates and proposals through out this period, in our telegram group. Also, can't miss to thank all those office hours guests that were inspirational for exploring other parts of ethereum ecosystem.