You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Short Description: Improving handling of updates and errors in Algorand Sandbox
Bounty: 750 USDCa in USDCa or equivalent in ALGO tokens for non-US residents. (The amount of ALGO will be based on the 30-day average price of ALGO on the payment date) Recipient has to opt-in to receive USDCa asset on Algorand blockchain.
Estimated Time Commitment: 1-2 days
Category: Development
Experience Level: Intermediate / Advanced
Description
What is this task?
Sandbox is an easy way to create and configure an Algorand development environment with Algod and Indexer. This task contains several deliverables to improve the sandbox.
What are the requirements for the bounty taker?
The bounty taker must be knowledgeable in git, Docker, and bash scripts.
They also need to be familiar with the Algorand software (algod, indexer, and sandbox).
Ideally, the bounty taker should have access to a Windows, a macOS, and an Ubuntu 20.04 environment to be able to test sandbox in these three environments.
What are the deliverables?
Each deliverable consists of a pull request to github.com/algorand/sandbox.
In case multiple deliverables depend on each other, multiple deliverables may correspond to the same pull request.
But we recommend separating pull requests as much as possible.
Judging Criteria and Metrics
Clean, tested, well-documented code
Explanation of the rationals behind choices made by the bounty taker when implementing the requested features
Update of the README and other user-facing documentation
Pull request accepted and merged by the maintainers
1. Update algod/indexer during ./sandbox up
Description
Make a Pull Request to solve the issue algorand/sandbox#41.
The goal is to allow a sandbox user to easily update their sandbox node/indexer without losing all the data in the containers.
The bounty taker should ensure that the update mechanism fails gracefully in case of issues with network connectivity (or ideally also when the user cancels the update with Ctrl+C, but this may not possible to check).
In those cases, the sandbox should start with the previous version.
2. Force rebuild after cleaning
Description
Make a Pull Request to ensure that after ./sandbox clean, ./sandbox up rebuilds without cache the algod and indexer images, so that algod and indexer actually get updated.
One potential (untested) solution is that ./sandbox clean creates a file .clean, so that when ./sandbox up sees this file, it adds the option --no-cache to docker-compose.
Currently cleaning the sandbox via ./sandbox clean does not force the algod and indexer images to be rebuilt from scratch.
In particular, it does not update the version of algod and indexer.
Note that this deliverable complements the first deliverable. The first deliverable facilitates the update of a running sandbox environment (i.e., sandbox containers) but does not update the actual images. This means that after cleaning the sandbox and starting it again, algod and indexer need to be updated again.
The above explanation of the difference between the two update mechanisms needs to appear in the README.
3. Improve error handling
Description
Make a Pull Request to improve error handling in the sandbox and make it easier for a sandbox user to debug issues.
This deliverable is open-ended and the Algorand Foundation may offer higher bounties for outstanding error management.
It should at least solve the issue algorand/sandbox#23.
Power users should have the option to see the full logs (in case default error handling hides part of the full log).
All contributions/PRs to public (Algorand) repositories should be open source and should follow the contributions rules of the relevant repository.
All non-codes documents should be using Markdown format.
In the project description or repository readme, there should be a proper security notice. E.g., it should tell the visitor the project is not audited and should not be used in a production environment.
The text was updated successfully, but these errors were encountered:
I've spent yesterday evening checking out this issue on gitcoin. It definitely falls within my skillset, so I'd like to work on it. I made a proposal with some information about me, my setup, and my approach that you should find useful.
You should see that I'm capable of getting the sandbox to update in a convenient manner for your users, as well as getting the error handling on par with version 1.0.
The link is a working draft that I'll update as I progress through the bounty.
Overview
Description
What is this task?
Sandbox is an easy way to create and configure an Algorand development environment with Algod and Indexer. This task contains several deliverables to improve the sandbox.
What are the requirements for the bounty taker?
The bounty taker must be knowledgeable in git, Docker, and bash scripts.
They also need to be familiar with the Algorand software (algod, indexer, and sandbox).
Ideally, the bounty taker should have access to a Windows, a macOS, and an Ubuntu 20.04 environment to be able to test sandbox in these three environments.
What are the deliverables?
Each deliverable consists of a pull request to github.com/algorand/sandbox.
In case multiple deliverables depend on each other, multiple deliverables may correspond to the same pull request.
But we recommend separating pull requests as much as possible.
Judging Criteria and Metrics
1. Update algod/indexer during
./sandbox up
Description
Make a Pull Request to solve the issue algorand/sandbox#41.
The goal is to allow a sandbox user to easily update their sandbox node/indexer without losing all the data in the containers.
The bounty taker should ensure that the update mechanism fails gracefully in case of issues with network connectivity (or ideally also when the user cancels the update with Ctrl+C, but this may not possible to check).
In those cases, the sandbox should start with the previous version.
2. Force rebuild after cleaning
Description
Make a Pull Request to ensure that after
./sandbox clean
,./sandbox up
rebuilds without cache the algod and indexer images, so that algod and indexer actually get updated.One potential (untested) solution is that
./sandbox clean
creates a file.clean
, so that when./sandbox up
sees this file, it adds the option--no-cache
todocker-compose
.Currently cleaning the sandbox via
./sandbox clean
does not force the algod and indexer images to be rebuilt from scratch.In particular, it does not update the version of algod and indexer.
Note that this deliverable complements the first deliverable. The first deliverable facilitates the update of a running sandbox environment (i.e., sandbox containers) but does not update the actual images. This means that after cleaning the sandbox and starting it again, algod and indexer need to be updated again.
The above explanation of the difference between the two update mechanisms needs to appear in the README.
3. Improve error handling
Description
Make a Pull Request to improve error handling in the sandbox and make it easier for a sandbox user to debug issues.
This deliverable is open-ended and the Algorand Foundation may offer higher bounties for outstanding error management.
It should at least solve the issue algorand/sandbox#23.
Power users should have the option to see the full logs (in case default error handling hides part of the full log).
Other Requirements
The text was updated successfully, but these errors were encountered: