Truebit Verify Nodes
Truebit Nodes Used For Testing Truebit Tasks
Task Developers aiming to create Truebit tasks should utilize the Truebit CLI to build, test, and deploy their work. The CLI connects directly to a hosted Truebit Node, eliminating the need for developers to install the node themselves if they are focused solely on development. This setup simplifies and streamlines the development process.
Truebit Nodes Providing Decentralized Execution
Startup/Shutdown Process
Whenever the node starts or shuts down, it registers or deregisters with the blockchain making it available for task's execution.
Node Selection Process
When a Task Requester executes a Truebit Function task, the Truebit Verify Hub selects a decentralized group of nodes responsible for verifying the task.
The Truebit Verify Hub randomly selects a subset or union of Node subsets. This selection relies on random bits generated by concatenating three seeds: the Task Requester’s message timestamp, the Dispatcher’s message timestamp, and a recent, unpredictable blockchain block hash. These immutable and verifiable random bits are accessible to anyone with the task transcript and can also serve as optional inputs for the task.
This process ensures transparency and auditability by preventing collusion between the Truebit Verify Hub and any registered Truebit Verify Node on the network.
Verification
During this phase, selected nodes from the "Node Selection" process will execute the Truebit task and submit an encrypted solution to the Verify Hub before the execution timeout. This ensures that any Truebit Verify node assigned to the task can access the response until all selected nodes provide the solution or the protocol initiates the execution timeout. Afterwards, the Truebit Verify Hub logs a "Solution revealed" message in the transcript.
Local Storage
To make sure the Truebit Verify Hub behaves in a trustworthy way, all the nodes store every message sent to and from the Hub. This way, if something goes wrong, like an incorrect payment to the node, it has all the information needed to dispute it.
All the messages are stored within the folder app/datadb.
The file names are defined as:
${process.env.LOCALSTORE}/${process.env.NODE_ENV}-${process.env.ADDRESS}-eventDB.json
This is the list of stored messages:
task_created
node_outcome
computed_outcome
invoice (Only for Function Tasks execution)
Last updated
Was this helpful?