Reverse Alphabet

Description

Reverse Alphabet is a simple yet powerful tool that takes any individual word as input and promptly returns its reverse.

Executing Reverse Alphabet

We use Truebit to execute the Reverse Alphabet task to get a verified result.

The Code

You can find the Reverse Alphabet example within the folder truebit-nextgen-examples/function-tasks/<language>/reverse-alphabet.

📁 src └─ 📄 main.rs 📄 Cargo.toml 📄 Cargo.lock

circle-info

The target folder and the Cargo.lock file are going to be generated after running the build command within the truebit-cli.

Source

main.rs

fn run_task(input: String) -> String {
    input.chars().rev().collect()
}

fn main() {
    let input: String =
        std::fs::read_to_string("input.txt").expect("Could not read from input.txt");
    let output = run_task(input);
    std::fs::write("output.txt", output).expect("Could not write to output.txt");
}

In/Out Parameters

In order to send parameters to the Truebit task, you need to open the "input.txt" file and get the value from there. For now, only one input parameter is allowed.

To retrieve the output value from the Truebit task, you need save it in the "output.txt" file.

Trying Out

We will use the Truebit CLI to compile and test our source code. Once finalized, we will deploy it to the Coordination Hub so that any user with the namespace and taskname can access or execute it.

Step 1: Create The Reverse Alphabet Source Code

Within the src folder you will find a file called main in the case of Rust, C, C++, JS, and task.py in the case of Python. This is the Reverse Alphabet implementation that will be used for testing purpose.

Step 2: Build The Source Code

Execute the build command against Truebit node to get an instrumented Truebit task

circle-info

This in an example of how to build a JS task.

Output

circle-info

The taskId will always starts with the language prefix + "_" + cID

Step 3: Try The Code

Execute the start command against the Truebit node to test our Algorithm. You will need to submit the instrumented task id + the input parameter.

[taskId]: Add the taskId generated in the previous step.

Output

Step 4: Deploy the task

Last, but not least, execute the deploy command to effectively deploy our task to the coordination hub, so that anyone with the namespace, taskname and the API key can execute it.

  • [taskId]: Add the taskId generated in step 2

Output

Last updated

Was this helpful?