algorand / go-algorand

Algorand's official implementation in Go.
https://developer.algorand.org/
Other
1.35k stars 473 forks source link

DA: Finish remaining work #5561

Open jasonpaulos opened 1 year ago

jasonpaulos commented 1 year ago

Summary

This catch-all issue contains miscellaneous items required to finish our DA MVP. It is the expectation that we will add new items here as we encounter them during development.

Completion Criteria / List of Outstanding Work

FrankSzendzielarz commented 1 year ago

FYI, just to let you guys know

The DA I am working on now has a different architecture and will not be re-usable as a general DA for AlgoD debugging. My tooling used for integrating Algorand with .NET projects will incorporate the DA directly into the built executable. For example, when authoring a .NET Core Console App, the Console App itself will become the DA. The IDE user will launch their debugger and debug the .NET Core executable. They will then launch a simultaneous debug connection to the same executable using the VIsual Studio IDE command for connecting to a DA using a launch.json. This allows the developer to place breakpoints directly in the sourcecode of the target executable AND in the Teal. The executable contains explicit debug-mode-only code that configures the TealDebugger component with Teal source code/app id/etc mappings. The tooling itself will wrap that TealDebugger component in such a way that it becomes transparent or irrelevant if the user is running in Release or Debug compilation moder....In debug mode the DA will execute the Simulate and if the transaction group succeeds it will automatically execute the Transactions v2 (to generate real artifacts) so that subsequent transaction group executions , dependent on prior, can complete without issue. In release mode the DA will not run.