GETH Node - Build Custom Golang Tracer

Closed Posted 2 years ago Paid on delivery
Closed Paid on delivery

Hi,

I am currently running a GETH node on BSC. Using one of the inbuilt "debug_traceCall" function, specifically the "callTracer". However it's very limited in its capacity. The main issue is it only returns internal contract call information and does not provide the state change from the execution of these trace calls.

The desired custom trace_call I wish to develop would allow for multiple batched trace_calls to be submitted on the current pending block, it would then return the state change of impacted contracts that the trace call transactions interacted with.

(Similar to parity's trace calls stateDiff feature)

[login to view URL]

I am looking for a Golang engineer to build a custom tracer for my node called "multiTraceCallWithReserves".

debug_multiTraceCallWithReserves(pendingTransactions, targetContractAddresses)

What it does?

Receives a batch of pending transactions to trace. These will run similar to the existing callTracer method which unfurls internal calls, looking for interactions with any of our targetContractAddresses. If the unfurled traced call interacts with an address found within the targetContractAddresses array, then we save the altered state of the public reserves impacted by this trace call.

param: pendingTransactions - An array of transactions objects we wish to run a trace on to determine if they interact with any targetContractAddresses.

param: targetContractAddresses - An array of contract addresses we wish to detect state change on from traced pendingTransactions

storage object: stateDiffMap - If a traced call interacts with any of the addresses in the targetContractAddresses array, then we should store the changed state of the filtered contract to a hash map. We are only looking to store a single public object from the contract to the hash map, we are not interested in returning the full trace call.

stateDiffMap is returned at the end of the trace execution

Example of returned stateDiffMap where object key is the targetContractAddress which was called by one or many trace calls & the final state value it has after all traces were complete.

{

"0x16b9a82891338f9ba80e2d6970fdda79d1eb0dae": {_r0: 54367654546, _r1: 213223245},

"0x8af064410c0ceaef0014f78d87d8c4ff5d4eb7a1": {_r0: 123324532453, _r1: 23444},

}

Notes:

- Traces should happen in natural mining order as to ensure the most accurate stateDiffMap is returned.

- Filtering of unnecessary state must be well optimised to ensure execution time is extremely quick (Goal is 100ms-1000ms).

Looking for someone who has strong experience with Golang, Ethereum & Geth Nodes.

Links to Geth Tracers (Github):

Go-Ethereum Javascript Tracers:

[login to view URL]

Go-Ethereum Golang Tracers:

[login to view URL]

Golang Ethereum Blockchain

Project ID: #31589836

About the project

8 proposals Remote project Active 2 years ago

8 freelancers are bidding on average $7188 for this job

irfanui

Hey, This is Mohammad Full Stack Ethereum and Golang Developer. Your Project Title is GETH Node - Build Custom Golang Tracer Right? Sure You have come to the right place And I am ready to work over your project. Sure More

$5000 USD in 22 days
(1 Review)
0.0
heenafullstacken

Hi There, i m Expert for Ethereum and Golang. I am ready to work over your project. i have checked your Project Title is GETH Node - Build Custom Golang Tracer . its according my skills. Please visit my portfolio: More

$5000 USD in 44 days
(0 Reviews)
0.0
Vizzwebsolutions

Hello, Greetings! We have gone through your initial project requirements and we understood that we need to develop an Crypto website Which API do you want to integrate for it ? How many currencies do you want ? Kin More

$4000 USD in 7 days
(1 Review)
0.1
AwaisChaudhry

Hello there, How are you doing? Just saw your project posted. I read the brief details and I felt I could help you with it because I have good skills with Blockchain, BSC & Geth NODE Experience. Lets start the chat and More

$5000 USD in 60 days
(0 Reviews)
0.0