Patrick O'Grady 🔺 Profile picture
Aug 11 12 tweets 4 min read Twitter logo Read on Twitter
1/ 🛠️ 🛠️ #Avalanche Cortina 8 is out: 🛠️ 🛠️

This is the last release in a series of database migrations. It is optional but recommended.

🔍 Release Focus: P-Chain Pruning/Indexing + Primary Network Partial Sync + Subnet Validator Diff Regression Fix https://t.co/bUw5r0urpCgithub.com/ava-labs/avala…

Image
Image
2/ ✅ Compatibility Check: VM Interface (v27) ✅

Cortina 8 does NOT modify the VM interface. If you are running a Custom VM on v1.10.5-v1.10.7, it will work with v1.10.8.
3/ 🚧 ATTENTION OPERATORS 🚧

AvalancheGo@v1.10.8 prunes unused P-Chain block data when starting up for the first time (in the background).

You will see elevated disk/CPU/memory usage for the first ~10 hours after upgrading. **This is expected.**
4/ P-Chain Height Pruning/Indexing

Cortina 8 deletes rejected blocks from disk (we stopped writing them a few releases ago) and reformats the disk format of accepted blocks to be more minimal. Additionally, this release indexes blockIDs by height.

github.com/ava-labs/avala…
5/ P-Chain Height Pruning/Indexing (continued)

With this release, all chains on the Primary Network are now height indexed. This unblocks the rollout of concurrent block fetching during bootstrapping (which should dramatically reduce the time it takes to sync a new node).
6/ Primary Network Partial Sync

One of the most common feature requests we've heard is to reduce the overhead of running an #Avalanche Subnet.

Cortina 8 introduces a new sync mode that allows **Subnet API** nodes to ONLY INDEX THE P-CHAIN (no X/C).

github.com/ava-labs/avala…
7/ Primary Network Partial Sync (continued)

The mode can reduce Primary Network overhead (CPU/Disk) by 80%+ for node operators that only support Subnet APIs without disabling the ability to verify AWM messages.
8/ PNPS (continued pt. 2)

WARNING: This mode makes it impossible to verify the integrity of P-Chain Atomic Imports (which require validating Atomic Exports on X/C).

You will rely on the consensus of the Primary Network alone to determine tx validity in this mode.
9/ Subnet Validator Diff Regression Fix

Cortina 7 introduced a regression in validator diff calculation on nodes running Subnets (can cause sputtery block production and temporary instability after a validator unstakes). Cortina 8 fixes this.

github.com/ava-labs/avala…
10/ Validator Diff Regression

All Subnet operators running v1.10.7 should update to v1.10.8 to avoid any inconvenience due to this regression.

Shoutout to the @dexalot team for helping to debug this issue. 🙏
11/ As always, if you are looking for a job in crypto, check out my mega thread covering all the roles we are hiring for at @avalabsofficial 👀 👀 👀:
12/ You can read the unrolled version of this thread here: typefully.com/_patrickogrady…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Patrick O'Grady 🔺

Patrick O'Grady 🔺 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @_patrickogrady

Aug 8
1/ Unlike other VMs on #Avalanche, HyperVMs now produce blocks continuously (even if empty). #HyperSDKJournal



Why build a block if it doesn't include any state transitions? Although it may sound "wasteful", it has a number of benefits...github.com/ava-labs/hyper…
2/ Benefit #1: Worst-Case AWM Verification Performance

AWM verification requires fetching the validator set of the P-Chain at the height included in the ProposerVM header of the HyperVM block (computed using reverse diffs).

github.com/ava-labs/avala…
3/ Benefit #1 (cont.)

If there are long periods with no blocks, producers can reference anything between the P-Chain height in the last accepted ProposerVM header and the current P-Chain height.

(It is prohibited to use a height < the P-Chain height in the last accepted header)
Read 9 tweets
Aug 1
1/ New #Avalanche HyperSDK release is out (probably the biggest yet by LOC):

🔎 Primary Focus: MorpheusVM + Codec Optimizations + Millisecond Block Times + Remove BlockCost

#HyperSDKJournal https://t.co/DqNnXdBwTlgithub.com/ava-labs/hyper…
Image
Read 6 tweets
Jul 24
Reminder: #Avalanche Warp Messaging **DOES NOT** require the use of a hosted/dedicated relayer or an ordered/unordered channel between Subnets.

Anyone can relay their own message when/if they want.

I elaborated on how this works (in the HyperSDK) here: github.com/ava-labs/hyper…
If you prefer code, I implemented this as a CI check that runs on each TokenVM commit here: github.com/ava-labs/hyper…
You can also view this in action in the demo I filmed here:
Read 4 tweets
Jul 24
1/ I've been asked dozens of times over the last few months to create a minimal demo of using the #Avalanche HyperSDK.

Today, I'm excited to share our "Morpheus Example":

#HyperSDKJournalgithub.com/ava-labs/hyper…
2/ First ... yes, I am obsessed with The Matrix:

3/ "Morpheus Examples" are a minimal glimpse (simple transfers) into what is possible with some new technology/paradigm (HyperSDK).

They should be just enough to give "Neo" (you) just enough to make a choice: go down the rabbit hole or turn back to what is known? Image
Read 9 tweets
Jul 20
1/ Spent the last few days migrating the #Avalanche HyperSDK to use millisecond-denominated block times instead of second-denominated (like all other Avalanche VMs):

Why? So we can remove "block cost" and "surplus fee", of course! ❤️

#HyperSDKJournalgithub.com/ava-labs/hyper…
2/ First, some context...

Block production on Snowman is dynamic (i.e. there is no "slot time" like "every 2s"). Rather, the VM triggers when it wants to build and the consensus engine will ask it to build if it is a preferred producer or no blocks have been produced lately.
3/ I wrote about the unique properties of Snowman/Snowman++ before if you want to dive into this concept:
Read 12 tweets
Jul 19
1/ 🛠️ 🛠️ #Avalanche Cortina 5 is out: 🛠️ 🛠️

This version (v1.10.5) is backwards compatible to v1.10.0. It is optional but recommended.

🔍 Release Focus: Add Height-Based Index to X-Chain, Update AWM Message Format, Fix Trace API Regression on C-Chain https://t.co/enQtCSCRyNgithub.com/ava-labs/avala…

Image
Image
2/ 🚧 Compatibility Check: VM Interface (v27) 🚧

Updating the AWM message format is a breaking change to the VM interface (which provides functions to sign/verify said messages).

If you run a Custom VM, you must update it to v27 for AvalancheGo@v1.10.5.
3/ 🚧 Elevated DB Usage on Restart 🚧

AvalancheGo@v1.10.5 creates a height-based index of the X-Chain (used in state sync) when starting up the first time (in the background).

You will see elevated disk/CPU usage for the first ~10 minutes after upgrading. **This is expected.**
Read 11 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(