Testing and validation

The proposed solution was deployed and tested on a virtual test Ethereum network using Remix IDE. The smart contract code was implemented and debugged. All function calls can be viewed in the console to verify the functionality of the methods, the output and cost of execution.
To perform the functionality testing, the Registration contract was first deployed. The Registration smart contract owner registered several oracles that report statistics about the number of cases. Each of these oracles has a different Ethereum address used from the available addresses in the IDE. The reputation score is initialized automatically by the smart contract and linked to the address of the oracle. Oracles can only be registered by the smart contract owner for security reasons.
After the oracles were registered, each oracle provides periodic input regarding the number of cases infected with COVID-19, number of recovered patients and number of deaths. The smart contract is updated with these statistics that it records the source along with the timestamp. For instance, Fig. 5 shows an event-triggered upon receiving an update from an oracle. The event reports the oracle address as well as the updated statistics from this oracle.