Agoric’s Technology Stack and Testnet Experience
[Phase 2: Infrastructure] Incentivized Testnet Article Post
This blog is written in accordance with Agoric Testnet [Phase 2: Infrastructure]
Agoric’s Technology Stack
Cosmos SDK — An open-source framework for building Proof-of-Stake(PoS) blockchains. Cosmos SDK based chains are created through composable modules.
Tendermint — A Byzantine Fault Tolerant (BFT) middleware that securely and consistently replicates applications on multiple machines. Simply put, it is a consensus software that defines how blocks are created and agreed upon.
Agoric VM (SwingSet) — The virtual machine that provides a distribued Javascript environment. Agoric starts with several vats, which are units of isolation or units of synchrony. By using vats, objects and functions can communicate synchronously if they are within the same vat. Vats are important since it prevents users from blocking another user’s code execution.
Electronic Rights Transfer Protocol (ERTP) — The token standard for Agoric in Javascript. ERTP enables the issuance of digital assets that share the same security and transferring properties. Using mint
, users can issue a token on top of Agoric. Remember that newly issued tokens are stored in either Payments
or Purses
. Purses
is where the digital assets are stored until the user withdraws them and Payments
are created when users withdraw their tokens for payment.
Zoe — The smart contract framework which handles the escrow and guarantees “offer safety”. Offer safety means that users will not lose their funds; they either receive what they have asked for or get a total refund. This is a unique feature Agoric provides compared to other smart contract platforms. Since the smart contract and escrow is separate, even buggy smart contracts will not lead to fund loss.
User Defined Contracts — Any type of smart contract that a user intends to develop. User defined contracts will automatically execute when certain conditions are met. Examples could be AMMs, DEXs, and DAOs.
Phase 2 Tasks Expercience
Phase 2 testnet was scheduled to commence on April 15th just two weeks after phase 1 ended. The second phase of the Agoric’s incentivized testnet was initiated through a coordinated chain restart. More than two thirds of the validator nodes had to be up and running for the network to launch.
Fortunately, the network kicked off on block height 295228 after 67% of the validators were live. During Phase 2, however, there were a few tasks that caught our attention and we would like to share them through this post.
The first task was [Emergency Upgrade: Restart node]. On April 19th (2021–04–19T19:00:00Z) block height 338314, the agorictest-9 chain node halted. The validator community had to collaborate to restart the network using a newly released software.
Right after the team released agoric-10 genesis, we downloaded the new software and prepared for the network bootstrap. However, the freshly released genesis file had an issue. So based on the guidance from the team, we used the agorictest-8 genesis instead.
Coincidentally, our machine was also having a problem. Our validator and sentry node was disconnected. We used the below command for server connection but it did not work.
curl ‘localhost:26657/dial_peers?persistent=true&pers=\[“node-id@node-ip:node-port"\]’
An error as the following popped out.
{
"jsonrpc": "2.0",
"id": -1,
"error": {
"code": -32603,
"message": "Internal error",
"data": "no peers provided"
}
}
Going through past feedbacks we have found out that it was a Tendermint related bug. Thus, we switched our servers and resolved the issue. Since points are awarded to validators who participated in the start of the network, our team worked hard not to lag behind other network participants.
Last but not least, we want to mention the [Cause your validator to be jailed and then recover] task. Our team has participated in numerous testnets but we have never experienced such task before. This task demonstrates how much effort the Agoric team is putting in to educate and test the validator community’s fitness. This made us feel proud to support a project that is being built by a passionate group of people. Keep up the great work Team Agoric!
About Provalidator
Provalidator is a professional Proof-of-Stake validator and decentralized infrastructure provider. We provide enterprise-level validation services to pivotal blockchain networks. Our team — spread across EU and Asia forming a distributed personnel — have multiple years of operating various Proof-of-Stake blockchain validator nodes.
Our team is available 24/7 to respond to any validator node issue and has built multiple layers to protect and monitor our infrastructure. Using private/public and multi-cloud, multi-region sentry node architecture, we try to protect our delegator’s interest.
Our mission is to support blockchain infrastructure.
We support base layer networks along with early stage blockchain applications through a holistic and long term approach.
Follow us for the latest updates and contact us for building partnerships.
Email: business@provalidator.com