# Rust Engineer Interview Task This document outlines a take-home assignment for the Rust Engneer position at Bilinear Labs. ## Important Information * The task should take no more than 3 hours to complete. Please report the total time spent and a breakdown of how that time was used. * You are expected to ask questions. Some parts are intentionally left ambiguous. * You are encouraged to use AI tools during the task. ## The Task Implement a service called `merkle-tree-service` in Rust that manages a Merkle Tree. The Merkle Tree shall: * Be incremental. Meaning that only appending leaves is allowed. No modifications nor removal are allowed. * Have fixed depth. The tree shall have a fixed depth of 32. No matter how many leaves were inserted. Consider the empty leaves to be zero. The service shall have the following endpoints: * `/add-leaf`: Adds a single `leaf` to the Merkle Tree. * `/add-leaves`: Adds multiple leaves to the Merkle Tree. * `/get-num-leaves` Returns the number of leaves in the Merkle Tree. * `/get-root`: Returns the Merkle root of the tree. * `/get-proof`: Returns the Merkle proof for the leaf at the given `index`. ## Deliverables * The AI model(s) you used and the prompts. * The code, along with a README explaining how to use the service. Please share it via a **private** GitHub repository.
{"title":"Rust Engineer Interview Task","description":"The following documents presents a task for an intervi","contributors":"[{\"id\":\"51720de9-5b8b-4038-9cb6-3de23a46febe\",\"add\":4137,\"del\":2804,\"latestUpdatedAt\":1755951645765}]"}
Expand menu