Fiducia Computation Network (FCN) provides the data sources for the Fiducia Interoperable Data blockchain. Data in the Fiducia Network ecosystem may be provided by data sources, APIs, or cloud computation processes.
The goal of this design is to separate data source execution processes from processes related to the FID blockchain validator node itself.
The FCN subsystem allows execution of long-running and possibly non- deterministic tasks (e.g. web requests, encryption/decryption and signing of data, random number generation, CPU-intensive computations, enumeration/aggregation of on-chain data, etc.) that could otherwise require longer than the block execution time.
FCN has its own Wasm execution environment outside of the FID runtime. This separation of concerns is to make sure that the block production is not impacted by the long-running tasks. However, FCN can easily access on-chain state for their computations.
This separation of execution will be beneficial in cases where the data sources are not working correctly ( infinite loop, bad code execution, for example). In those cases, such separation can prevent validator nodes from overloading or crashing due to the error. Also, from a FID validator perspective, all they have to do to execute a data source is to send an executable file content in JSON format (the data source script), along with the relevant calldata, to an endpoint, thus minimizing the work they have to do themselves.
Simpler tasks in FCN can be performed by serverless functions in the cloud. The serverless functions can be deployed by the developers according to the FCN specifications. FCN can be extended to work with Grid Computing Nodes to form complex computation tasks and even run existing full-fledged applications. In those more complex computation tasks, the interchange is the result data from the Grid Computing Nodes back to the FID blockchain.
FCN return data verification is separate from the FID block transaction verification process. The developers have a choice of data verification mechanisms for the return data from the FCN. Developers may choose voting, averaging, sender signature verification, trusting the source, and other custom data verification mechanism for its own deployment.