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.