A REVIEW OF THE ALGORAND’S PECULIAR FEATURES
Algorand recently released upgrade to her BetaNet on 5th of August, 2020, which thus introduced three powerful features indicates they are yet to go live on mainnet. Developers can immediately upgrade their nodes for accessibility. It is of utmost importance to understand the peculiarities of these features and how they play so as to be able to use them effectively when they go live on Mainnet. Developers are advised to carefully scrutinize and refer to the documentation for further technical details.
What are these peculiarities?
- Stateful Smart Contracts
- Fast catchup
Seems the names does not carry serious weight as they were foreran. But we shall examine vividly why they are exceptional and peculiar to Algorand blockchain, how they interact with the protocol and why they are very useful. Emphasis is on stateful Smart Contract.
Stateful Smart Contracts
When a contract is rendered stateful, it connotes that we can write to the blockchain either temporarily or permanently equivalent to locally or globally storing variable on the blockchain. This uses some spaces on the chain.
- Local storage – are variables we define in functions that are not accessible to the outside objects and contracts. They are simply discarded after used up in a single transaction hence they take lesser memory space. In the case of account transaction, local storage holds values in the recording balance of an account so long that account has approval to participate in the current round of transaction or as may be defined by the contract or application. It is useful only in stateless transactions, where the sole aim is to either approve or reject transactions that involves sending values. The disadvantage with this method is that, interactivity with outside object is not possible.
- Global storage is the other side of local storage. That is, storing values for future use. It encourages interaction by allowing both internal and external objects to manipulate or other the values we have in storage.
In the blockchain term, global storage represents data that is stored on the blockchain for future use. It categorically belongs to the contract which enables other contracts to access its functionalities or services.
How is this useful?
Just as I heralded, enabling writing to the blockchain permanently can bring greater advantages among which are:
- Dynamics: It creates ground for expansion and exposure of a contract thus bringing rapid growth.
- Encouraging interactions, interrelationships and harmonization among objects in the network.
- Rapid increase in the network participants and expand ecosystem.
- Contract will not only approve or reject spending transactions but will also have ability to do creative things.
- Updating and deleting values in storage is possible with this feature though the number of values that can be created largely depends on the initial configuration.
- It will create fertile soil for decentralized applications to grow very fast to mention but a few.
Does this have implications?
In the universe of 1s and 0s, there is every tendency for an exploit. Bad actors are never happy with good things. Just as Ethereum-based contracts face devastating attack, the public door is the fact that everyone can come in through open door. But only the authorized allowed are recognized and admit into the network. Algorand is an improved and sophisticated blockchain protocol with regards to security, scalability and decentralization. I look forward to interoperability which enables interaction with other known blockchain protocols. This, I am optimistic is imminent. So you do not have to water down your beautiful idea as you will be fine if you follow simple and standard rules of writing efficient and secure code. To get started, refer to the following resources:
- Guide to building application on Algorand
- Guide to stateful smart contract
- Walk through the developer’s resources.
Take an instance where you own an Algorand account. Your public key is an identifier visible and shareable to anyone you wish. A friend who cares about you sometimes surprises you by sending you some ALGO having using the address you gave him months back but now you lost his contact or your previous employer promised to pay what you are owed or cannot remember number of places you have shared your address. Carelessly, you displayed your private key to outside view and your mind is unrest seeing the costly mistake. To pacify your mind, you should either create a new account, pass it on to every where the previous address is recognized. This seems very tedious.
The new Rekeying feature of Algorand is a panacea for this headache. You only need to rekey your private key to a new private key while still retaining your public key. The old pass key becomes useless to whoever could get hold of it. How the network relates and identifies the new pass key to the public key is left for the Algorand protocol.
Fast catch up
As a developer, you have three options for connecting to the Algorand network.
- Set up and run your own node. This is synonymous to a block producer in blockchains with delegated proof-of-work algorithm. You will need a computer with considerably high storage capacity. While you initiate start to synchronized with other nodes, your node will need to have the exact copy of data contained in other nodes to be validator-ready. The process may take hours or days to complete depending on the number of block to the snapshot date. Snapshot is the time at which the the ledger in the chain becomes active, ie time at which the blockchain becomes operative.
- Use Docker Sandbox.
- API service. Purestake as an example offers this service.
Connecting to BetaNet running your own node without sitting on the fence for so long is made possible with the Fast catch up feature. You do not have to wait for too long to get sync to the network. In minutes, you should catch up. We wait eagerly to see implementation on Testnet and Mainnet. Refer to this article for detail. As an Algorand developer, much of the work is done for you. That’s pretty good job from the Algorand developers/core developers community.