Reach — November Update

Christopher Swenor
Reach Platform
Published in
6 min readNov 7, 2020

Time flies when you’re having fun. October flew by, and a lot of great things happened. Our main focus was to complete the Algorand integration, but a few more exciting things snuck in. We are humbled and extremely appreciative of the support of our community, and we are fired up to keep pumping out product. But before that happens let’s jump into the update.

Product Update

Algorand Phase 2 Complete
Jay and Dan have been working hard to expand upon the work they completed last month. There were a couple of hurdles that they had to work through to make the Algorand integration work with all of our test applications.

One of the issues we faced was that Algorand has strict limits on the size of TEAL programs: they are limited to at most 1,000 bytes, including their arguments. The initial compilation of our Tic-Tac-Toe program used 6,000 bytes for a single step. Jay implemented a variety of general optimizations into the Reach compiler, such as common sub-expression elimination and merging identical continuations, which reduced this program to about 1,300 bytes. He submitted a pull request to Algorand which adds a few more opcodes to TEAL to get the original 6,000 byte step to fit in 763 bytes. The majority of these optimizations apply to Ethereum too, so it is a win for all Reach deployments!

Safe Math
Reach now guarantees that all arithmetic operations do not overflow the limits on their respective chains. This guarantee is available in two different flavors. First, the compilation can use protected operations on-chain and abort if an overflow would occur. This strategy is typical in existing Ethereum DApps and built into Algorand. Second, and more powerfully, Reach can verify during the compilation process that your program contains sufficient checks to ensure that no such overflow would ever occur. This second approach is better for honest participants because it ensures that they locally check that numbers are within bounds before submitting them to the consensus network.

Browser Integration for Ethereum
We always believed that Reach applications would automatically work in the browser, because of the way that Reach’s standard library abstracts away the details on connecting to the consensus network. But, we had yet to test it.

Dan performed exactly this test and we can now report that no changes were required to the compiler or the standard library. He has created a couple of examples of applications, extended the reach runner to aid in the testing of a React-based Web application, and has also expanded the tutorial to walk users through how to add browser support to their own applications.

Overview of a Blockchain Application Using Only JavaScript

We are currently waiting for a couple of features to be added to the AlgoSigner by the Pure Stake team so that we can also have browser DApps for Algorand.

VSCode Extension
We sponsored ETHOnline last month, and the best thing that we got out of it was an awesome VSCode extension created by Eric Lau. He also created a YouTube video to walk you through how it works. We can’t be happier with what he created. It gives you tooltips and much more utility directly in VSCode. We are going to spend some time this month working with Eric to make some tweaks and add some additional functionality.

Business Update

New Team Member
We recently hired Chris Nevers to join our engineering team. His focus will be building and testing DeFi Applications on Reach. It’s one thing to have an example of how to build Rock-Paper-Scissors, but even better to show how to build a full-featured Decentralized Exchange. We are very excited to have him join the team.

Next Stage of the CDL Accelerator
The CDL Accelerator program is divided into multiple phases, and at the end of each phase, at least one CDL mentor must volunteer their time to support each startup until the next session otherwise the venture is dropped from the program.

We were happy to learn that two CDL mentors were eager to volunteer their time to work with Reach. Moving forward our mentors will be Ethan Buchman, Co-founder of Cosmos, and Konstantin Richter, Co-founder, and CEO of Blockdaemon, are working with us to bring Reach to as many developers as possible.

Live Events
Last month we presented at a couple of live events, and we had a lot of fun talking about Reach. Jay and Dan did a walkthrough for the Encode Club. I participated in a panel for Boston College’s Shea Center for Entrepreneurship, which will be shared with their network of university blockchain clubs, including Blockchain at Berkeley, Blockchain at Michigan, Tufts Blockchain Club, and more.

YouTube
We started producing a bunch of videos and throwing them up on YouTube. We have been doing a video every Wednesday to give you a demo of something cool to do in Reach. I plan on continuing this until I run out of ideas, so if you want to see anything specific, please let me know. Here are the links to this month’s videos.

Community Member Highlight
Lastly, I want to do a shout out to a community member. Kwame Bryan has been absolutely killing it. He created a YouTube video giving a tutorial on a “Hello World” style application written in Reach, and he just recently decided to take a crack at helping with the AlgoSigner integration.

We are extremely appreciative of all of our community members, but he has truly been a standout this month. Thank you!

Next Month

Now that the Algorand integration has been buttoned up, we can now shift our focus back to improving the functionality of Reach.

Participant Classes
Our next feature will be participant classes. This feature will really open the doors to the types of applications that can be created. Currently, when a Reach program specifies a Participant, it designates a single principal, like the precise funder of an account, or the originator of a loan. But, it is common for DApps to deal with entire categories of principals, like all of the bidders in an auction, or the investors in a crowd-funding campaign. The next major feature of Reach will be to support these ‘classes’ of Participants, as well as aggregating operations to allow them all to contribute to the consensus state simultaneously. This will allow you to build applications like auctions, raffles, crowd-funding, or any kind of application when you don’t know exactly how many participants will want to take part in your DApp.

This is a pretty huge feature, and it might take longer than just this month to implement, but we will have more to report about it by the end of the month.

VS Code Adoption
We will work with Eric to modify the existing functionality, and add more features to the extension. VSCode is one of the most popular IDEs for traditional full-stack development, and we want to make sure that you have all the tools that you are accustomed to. Our goal is to make decentralized development as easy as centralized development, and we believe IDE functionality is important to achieve that goal.

Browser Integration
Dan did a lot of hard work with our browser integration, but we know that the browser will be the most used interface for the future of decentralized applications. So we will continue to focus on improving the development experience.

So like I said, another exciting month in the books. Now, let’s do it again!

--

--