# Ognyan's CDAP Development Update 5 ### Portal Network Testing Framework The cross-client testing framework (for reference look my previous [dev update](https://hackmd.io/@ogenev/B1xG1KL-t)) is still in early stage and one of the previous goals was to add JSON-RPC handles to communicate with the dummy node and execute network request to a node under test. This brought on the table some more issues that we had to solve with priority and switched the focus more on JSON-RPC implementation and the overlay network. #### What has been done - Some small part of the json-rpc API for the dummy node has been implemented in the draft testing framework [PR](https://github.com/ethereum/trin/pull/78). This includes just simple endpoints for Ping, FindNodes and FindContent request messages. ### JSON-RPC Endpoints Of course, to provide an adequate json-rpc API, we need to cover more endpoints, good example is [ddht's](https://github.com/ethereum/ddht) json-rpc API listed [here](https://ddht.readthedocs.io/en/latest/jsonrpc.html). One of the requirements in [JSON-RPC 2.0 Specification](https://www.jsonrpc.org/specification) is to be able to pass parameters to the json request, this wasn't supported in Trin. #### What has been done - [This PR](https://github.com/ethereum/trin/pull/97) added support in Trin for params member in the json-rpc request. ### Overlay Network Protocol Providing more json-rpc endpoints requires extending and refactoring core Trin functionality to support extensive handles for the network specific requests and responses. Currently, some of the Trin development efforts switched to what it seems to be the most urgent task: providing support for the overlay network and dispatching portal request/responses via discv5 layer. The Overlay network is additional layer on top of [Discv5 protocol](https://github.com/ethereum/devp2p/blob/master/discv5/discv5.md). Draft specification for the Overlay network can be found [here](https://notes.ethereum.org/tPzmxQD_S3S3uvtpUSA0-g). The idea is every portal network implementation to support the overlay network protocol which will pass all network requests/receive responses via the base discv5 protocol. Every overlay network has to maintain it's own [DHT routing table](https://github.com/ethereum/devp2p/blob/master/discv5/discv5-theory.md#node-table). #### What has been done - [PR](https://github.com/ethereum/trin/pull/101) for decoupling discv5 protocol from the portal network layer - [Draft PR](https://github.com/ethereum/trin/pull/103) for refactoring the core Trin architecture and adding overlay network abstraction. ### What's Next? - Run concurrently history and state network in Trin. - Dispatch network specific requests and responses via discv5 layer. - Extend JSON-RPC API endpoints