KDAG Monthly Report (July Month)

KDAG Foundation
2 min readAug 28, 2023

--

Monthly Report of KDAG

Technology Development:

1. Made 22 code commits on GitHub, adding and modifying 21 files.

2. Continuous development and testing of technical support for exchanges and communities, currently in the testing phase for the testnet.

Details:

1. Internal/kdagapi: optimized & cleane up EstimateGas. Previously, if a transaction was reverting, EstimateGas would exhibit worst-case behavior and binary search up to the max gas limit. This change allows EstimateGas to return after only a single unconstrained execution in this scenario. Uses the gas used from the unconstrained execution to bias the remaining binary search towards the likely solution in a simple way that doesn’t impact the worst case.

2. kdag/downloader: fix rare crash when parent header missing in db. ReadBlockHeader can return nil if the header is missing, so we should not access fields on it. Note that calling .Hash() on a nil header is fine, so there is no need to actually check for nil.

3. core/txpool/native: protect cache with mutex. This change fixes the a potential race by using mutexes when the m.cache is read or modified.

4. core/forkid: correctly compute forkid when timestamp fork is activated in genesis. This changes the forkID calculation to ignore time-based forks that occurred before the genesis block. It’s supposed to be done this way because the spec says: If a chain is configured to start with a non-Frontier ruleset already in its genesis, that is NOT considered a fork.

5. kdag/node: increase batch limits for auth rpc API. This raises the JSON-RPC batch request limits significantly for the engine API endpoint. The limits are now also hard-coded, so users won’t get them wrong. I have chosen these limits. While it would also be possible to disable batch limits completely for the engine API.

6. kdag/tracers/js: use t.toBig on tx.gasPrice for js tracing. This change fixes a bug in js tracer, where tx.gasPrice.toString(16) returns a number string in base 10.

7. core/types: support for optional blob sidecar in BlobTx. This removes the newly added txpool. Transaction wrapper type, and instead adds a way of keeping the blob sidecar within transaction. It’s better this way because most code in go-kdag does not care about blob transactions, and probably never will. This will start mattering especially on the client side of RPC, where all APIs are based on types.Transaction. Users need to be able to use the same signing flows they already have.

Community Development:

1. Released the June 2023 Monthly Report of KDAG.

2. Shared information about KDAG through infographic tweets.

✨Website: https://kdag.io/
✨Telegram : https://t.me/KingDAGGroup

--

--