Closed michielmulders closed 3 years ago
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
This issue now has a funding of 750.0 USDCa (750.0 USD @ $1.0/USDCa) attached to it as part of the algorandfoundation fund.
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
Work has been started.
These users each claimed they can complete the work by 265 years, 5 months from now. Please review their action plans below:
1) overhead525 has been approved to start work.
Hi Michiel,
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.
https://overhead525.github.io/algorand-error-handling/
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.
Best regards, Ritchel Cousar Jr.
Learn more on the Gitcoin Issue Details page.
Issue Status: 1. Open 2. Started 3. Submitted 4. Done
The funding of 750.0 USDCa (750.0 USD @ $1.0/USDCa) attached to this issue has been cancelled by the bounty submitter
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