What Monad has so far: - High quality open-source C++/rust codebase with many HFT-style optimizations and architectural changes - Public audits and clear docs that put the technology first. Transparency -- no hand-waving, no unsubstantiated claims - High-performance system focused on true decentralization, running continuously in testnet with 186 globally distributed validators at 5000-10000 tps - MonadBFT, a frontier consensus mechanism featuring 400ms block times, 800ms finality, large globally-distributed validator set, and tail-fork resistance - Async Execution (while supporting EIP-7702 through the Reserve Balance mechanism) - MonadDb for efficient merkle trie storage - Native code compiler for frequently used contracts - Interconnected community of smart, thoughtful crypto-natives who will grow in influence over the next few years - Ecosystem of promising young startup founders, ready to take their shot - Over $100m in ecosystem funding pre-mainnet - Founder support through DeltaV, the Monad Founder Residency, Monad Madness, and more - Monad Momentum, an incentives program focused on efficient UA and repeatable growth loops to help decentralized apps acquire normie users - A north star of making open-source, decentralized systems more powerful But there's still so much more to do. Are you excited?
1,506
594
3,931
671,888
The goal was never just to build a fast blockchain. If that were the only goal, we could have been done three and a half years ago by running geth, or erigon, or reth, or solana, with minor changes, on a bigger box, on a few nodes located close to each other. We could have done that quickly, and people might have been excited for a little while. But we would not have really contributed anything, and the hype would quickly fade, and you would already have forgotten about us. Every startup needs a north star, a reason for being. Market sentiment is inherently volatile, but without a reason, faith falters when sentiment wanes. A team and a community can keep moving consistently forward, gaining new strength and experience every day, regardless of the sentiment, if there is a clear raison d'être and a clear plan of attack. For our team, the north star has always been decentralization. Empowering decentralized systems with new architecture that makes the most of every cache line, every SSD IOP and every bit of bandwidth. Existing blockchain systems don't have the performance engineering advancements that characterize modern finance (Nasdaq ITCH, CME Globex, Goldman SecDb). We can change that, and support an ecosystem of ambitious builders who take advantage of these new superpowers. We can change that. Rolling out the last round of features soon, open sourcing the execution client soon, audit contest soon, mainnet soon. The future is indeterminate and incredibly exciting.
2,107
2,012
7,372
512,077
The total initial supply of native gas tokens on the Monad blockchain network will be 100 billion Thank you for your attention to this matter
2,218
1,165
6,144
1,404,637
v0.11.1 has been deployed on testnet-2 Notable behavioral changes: - Staking - Reserve balance logic - EIP-7702 - Opcode repricing - Raised block gas limit from 150M to 200M (from 375Mgas/s to 500Mgas/s) - Dynamic base fee as per the Monad Initial Spec Proposal (MISP) + raise min basefee from 50 MON-gwei to 100 MON-gwei - Execution events SDK - EIP-2935 (historical block hashes in state) + blockhash buffer - EIP-7951: P256VERIFY precompile - Extend eth_call support for preStateTracer and stateDiffTracer with debug_traceCall Notable performance changes: - Relaxed merge validation - optimization to reduce number of re-executions - Kernel caching of db reads and writes - Improve RPC Db Node Cache and make it memory bounded This is a huge upgrade, and there's a lot more to say about each of these changes! Next stop: deployment on testnet (testnet-1)
1,081
1,269
4,817
293,958
Monad
2,932
630
4,942
296,284
Happy Claim Portal Day! A few quick things to point out about the claim portal: - the ONLY valid website is claim.monad.xyz - there will be lots of imposter websites trying to phish you. Check where you are and how you got there before signing anything. Be very cautious! - the claim period goes until Nov 3. There is NO incentive to claiming really fast, so take your time. Triple check everything - the portal uses Privy for authentication. You can sign a message with your EVM or Solana wallets to prove ownership. You can also link your Twitter, Discord, and other social accounts. Everything uses Privy. Only sign messages that you've reviewed carefully - also, as a matter of best practice, it's a good idea to switch to Monad Testnet before signing (for EVM addresses) so that only testnet tokens are at stake If you're not sure about something, just slow down and ask. There is no rush to do anything
1,781
876
4,878
711,042
Community is everything. In crypto, community is the X-factor. There are a few components of a community that I think are crucial towards putting any project in a position to succeed. These aspects are: Culture, Interconnectedness and Loyalty. On Culture: While finance and money are an inherent part of the happenings of crypto, a community’s strength is measured by the wealth of personality, creativity, and talent. Anyone, regardless of their current wealth or level of CT fame, can have a massive impact on a community by being creative and thoughtful. And creativity itself takes many forms - from art and design, to writing, to coding, to just being weird and memorable. RayJ constructed deep lore. Lydicius became a notorious spammer. Purpleman became a plushie philanthropist. Happy wrote his candid thoughts. Skilly turned the discord purple. Hanriver created a distinctive style in Microsoft Paint. On Interconnectedness: The relationships between community members are the basis of a healthy and powerfully-positioned ecosystem. These relationships are more important than the relationships between a community member with any one team member. This creates a bottom-up approach that is more organic and sustainable for the long term. On Loyalty: The loyalty that one has to a community may be the defining characteristic of someone being a community member at all. These are people who are not only attached to the vision, but actively contribute towards advancing the project towards that end goal. These people will be there on good days and bad. These individuals are the heart and soul of your community. Monad is fortunate to have a large group of people who are cultured, interconnected and loyal. These are the “Nads” as they call themselves. As I reflect during the holiday season, I want to center in on one of these components that means the most to me: loyalty. Loyalty is everything. While the Nads are loyal to Monad, I think it’s equally important that the team is loyal towards the community. Let me take this opportunity to tell the Nads just how loyal I am to you. I work every single day for you. I fly around the world to meet as many of you as possible. I try to talk to as many of you online as I can. I wear the hats, I sing the karaoke, I eat the onions. I do all of this because I deeply appreciate each and every one of you. I have seen many of you grow tremendously, and I am so proud of what this community has evolved into. I am even more excited to see what is to come. I will do everything in my power to make monad a success, but none of it matters without the Nads. Monad is nothing without YOU! To express my loyalty, gratitude and appreciation for the Monad community, I want to list some of the Nads who make a real difference in the monad mission day in and day out... (Let me apologize in advance as I will undoubtedly miss many loyal members.)
933
1,013
3,493
899,210
Telegram sells ads targeted at a single public channel. Scammers have purchased ads on the Monad Announcements telegram channel. Crazy that telegram will push content directly into a channel that otherwise only contains content from one party. We are working on getting this removed. The ONLY valid link for the claim portal is claim.monad.xyz. There is no urgency to complete anything; the portal will be open for 3 weeks. Do not act with urgency, and always triple-verify before doing anything. Also, for avoidance of doubt, the claim portal is NOT open now. It opens roughly 22 hours from now.
902
584
3,236
314,080
User feedback is incredibly valuable to builders because the most important thing is to iterate toward product-market fit. If you're using testnet apps, pls share your feedback! You can DM the creators, tweet your observations, or (now) use this form: tally.so/r/w4EaG5
846
898
2,956
212,075
This is a big milestone: half of the codebase, implementing MonadBFT, RaptorCast, blocksync, statesync, mempool, etc. is open source! This codebase is a treasure trove of performant systems engineering work. We hope this materially pushes the space forward. Step by step.
Monad consensus client is now open source (link below). This is the result of thousands of hours of effort by the team at @category_xyz. Enjoy
730
754
2,991
131,112
Happy Chogtober
1,265
386
3,244
150,542
Community matters.
1,415
418
3,111
261,060
Today we are launching Monad Cards - an initiative to give Crypto Twitter a token of appreciation. Around 5,000 real members of CT have been identified through a reputation network-based approach designed to reflect the social graph of CT. This was done by looking at accounts followed by numerous reputable people across various crypto verticals. Each member was then given a handpicked role in an effort to identify the unique value they provide to the crypto community. We know that it is impossible to fully capture the social graph of CT on our own. This is why card claimers can then nominate mutuals to capture those that were missed. Each eligible member can nominate up to 3 of their mutuals to claim a Monad Card later on. There are 10,000 nominations up for grabs on a first come, first serve basis. Also, apologies in advance, but I am going to tag each member of CT who is eligible to claim a Monad card in a thread on this tweet. Claim your card now at cards.monad.xyz and nominate your mutuals before it's too late! Thank you.
1,285
319
3,115
642,510
The Monad Foundation team has sent out initial invitations to participate in Testnet-2. With that said, I can't help but shake the feeling that we have missed some deeply technical solo validators that enjoy hacking on Proof-of-Stake networks. If you think this describes you, please send a brief email to tinkering@monad.foundation with some links to things you've built in the past and we'll get back to you asap. Thanks!
459
548
2,713
148,113
Staking is live on testnet-1! You can try delegating your testnet MON Try it out at gmonads.com/staking Shoutout to @rev1ck for shipping his staking UI super fast! Pls direct any UI feedback to him, or staking functionality feedback here
1,889
519
2,710
497,836
🚨 Beware of impersonators! 🚨 I will not DM or call you on telegram with urgency. I will not DM you from a new account that has no username and has my normal username as its bio
768
551
2,946
108,807
Doing a little testing of 1000-4000 sustained TPS
365
627
2,654
155,243
Appreciation post for all the amazing women on the Monad Foundation team 💜: • @0x_eunice@Clee_tech@ackenn_@thetinaverse@sailorninis • @si_anitta • @jinglingcookies@thisisfin_@annelisehan@sophiekornchip@wagmigently@junavuon@lulu70191243@ljtiedeman • AB
332
573
2,653
187,176
Is everyone ready for mainnet??
1,462
206
2,866
168,360
310
1,170
273
2,706
357,093
Today, we are announcing the Monad Foundation, an independent organization dedicated to the growth and decentralization of the Monad blockchain protocol. As part of this announcement, @0x_eunice and I will be joining a number of others in departing the Monad Labs team and joining the Monad Foundation. When Eunice and I started Monad Labs with @_jhunsaker in early 2022, we had a vision for helping highly decentralized systems to scale through new software architecture. The past three years have been exhilarating, as the team pioneered multiple new technologies, benchmarked a new blockchain client on the full history of Ethereum, launched a devnet, and developed initiatives like Monad Madness to elevate builders. Most of all, we witnessed the incredible growth of the Monad Community, a group of incredibly kind, talented, long-term-minded individuals who are passionate about the ideals and growth of decentralized tech. The strength of the Monad Community, even in these early stages of the Monad protocol’s life, is a sign that decentralization will be front and center within the future Monad network. --- Our move to the Monad Foundation today marks the next step in the launch of the Monad protocol. The Foundation needs a strong team to properly execute on its mission of helping to maximize the growth and adoption of decentralized tech. We reject the legacy of inefficient and uncreative foundations. Decentralized tech is still in the early innings of adoption. Foundations must be lean and mean to truly impact the world. --- Monad Labs will continue on its mission of researching and developing the performant technology which underlies the initial client for the Monad protocol. It will do so under a new name, Category Labs, but it will continue to be led by @_jhunsaker, who is assuming the role of CEO. To the 40+ incredibly talented engineers and researchers in Category Labs, I want to say: thank you. Thank you for joining us on this journey to tackle impossible problems. Thank you for responding to my cold DMs and joining a company that no one had heard of, to work on an extremely ambitious plan that no one thought was possible. Thank you for building through a deep bear market, and for imagining a brighter future. Thank you for your trust. I am grateful for the opportunity to work with you and I know that you will continue to grow as individuals, and as an awesome team. You are changing what is possible and I am so proud of you. --- As our team takes the next step in the evolution of the Monad blockchain, I am so optimistic for the future. Category Labs will continue its progression into a preeminent contributor in the blockchain research and engineering space. Meanwhile, the Monad Foundation will start on a new journey, contributing with singleminded focus to support builders around the world. Together with the contributions of so many incredible members of the Monad Community, anything is possible. Thank you and gmonad!
560
542
2,634
333,233
Monad enjoyers, ily
1,178
222
2,628
90,924
testnet-2 is pretty active right now! gmonads.com/?network=testnet…
534
308
2,628
87,904
The goal of the MON airdrop is to make people who eat, sleep, and breathe crypto the stakeholders in Monad, a new network built for true decentralization. That includes both longtime Monad Community members as well as people who are new to Monad but active traders, collectors, or participants in crypto more generally. It is still incredibly early in the story of Monad. If you are a longtime Monad Community member, you are a respected Unc here. Your influence and voice will have an outsized impact in shaping the culture of Monad and crypto more generally. Monad is growing, so please welcome the new folks as we prepare for the start of mainnet.
1,148
281
2,721
317,081
It's going to be a big year!
1,014
258
2,535
91,386
Nads are up next
1,139
284
2,601
139,877
LOCKED MONAD TOKENS ARE NOT STAKEABLE Monad has been built painstakingly over the past 3.5 years. We take a long term view and aren’t afraid to do things differently from others. Today, ahead of the launch of the Public Mainnet, I’d like to share an important element of the Monad tokenomics design: locked MON may not be staked. Time and time again in previous blockchain launches, the crypto community has had the same complaint: insiders’ ability to stake and earn rewards (liquid or otherwise) on locked tokens. We heard those complaints and are taking a firm stance on this matter, in an effort to set a new standard for the space. The north star of Monad is true decentralization. The network will go live with 200 globally distributed validators that are run on consumer-grade hardware. While it would have been easier to cut corners, our team has taken the hard road in designing a system that delivers both performance and decentralization. What we build must stand the test of time. I believe that this firm stance on staking of locked tokens similarly positions Monad toward long-term success through better token distribution. On a personal note, I appreciate the support of investors including @paradigm, @dragonfly_xyz, @ElectricCapital, and @CastleIslandVC. We build for the long term and are grateful for the long-term-oriented thinking and support of Monad’s earliest backers. No shortcuts!
787
350
2,673
533,127
625
249
2,476
87,250
Please read this insanely good blog post from @category_xyz about RaptorCast - enabling efficient broadcast of huge blocks while retaining fault tolerance while also minimizing bandwidth reqs You'll learn a lot! category.xyz/blogs/raptorcas…
432
285
2,259
231,628
There is an open source "real-world AI hedge fund" github repo going around twitter that's getting a lot of interest. Since in my previous life I was using ML for trading, I wanted to share some notes on the repo and how one would actually create a "real-world AI hedge fund". First, about the repo: The core logic of the repo is about 750 lines of python. The 6 "agents" are each about 100 lines; each one is computing some very explicitly-defined metric that is something like "count the number of insider trades, if there are more buys than sells, return 1, else return -1". The main use of "AI" in this repo is to spin up gpt-4o from OpenAI and present it with the following prompt (I'm abbreviating to give the gist, but see line 569 of agents . py in the repo): """ You are a portfolio manager. Your job is to make a trading decision based on the team's analysis while strictly adhering to risk management constraints. Quant Analysis signal: {some number from say 1 to 5 which was calculated by one of the aforementioned 'agents'} Fundamental Analysis signal: {'bullish' or 'bearish'} Please output whether to 'buy', 'sell', or 'hold'. """ Then there is a backtester which converts the 'buy', 'sell', or 'hold' actions into actual trades using daily (end-of-day price) data. What's wrong with this Quant finance is the practice of generating measurements ("signals") that are relevant to predicting future price action; combining those signals somehow into a more complicated model that actually predicts the future price action; and trading on those predictions. A quant at a quant trading firm will typically spend a good portion of their time thinking up new trading signals that might have predictive power: - For example, a quant who is trying to predict the price of AAPL might notice that AAPL and MSFT are pretty correlated, and write a signal to measure how much the price of MSFT has changed recently relative to AAPL to measure some notion of price change that hasn't been priced in. - Another quant might hypothesize that whenver there are way more shares on the bid side than on the offer side, the price is more likely to go up, and write a signal to encode that particular metric. There could be thousands+ of these signals, especially when you consider that some of these signals have parameters which should be searched over. After devising all of these signals, the quant needs to combine them somehow into a model that predicts the future. This means setting up a prediction problem, which means (at least) 4 things: 1. Choosing a set of signals to pull; 2. Choosing a set of sampling points (for example, every hour, every second, every time there is a trade, etc); 3. Choosing a ground truth (or "target") to try to predict (typically the delta between AAPL's price at the sampling point and at some future point in time, e.g. 1 second into the future); and 4. Choosing a model for combining the signals. One of the reasons that AI/ML is very applicable to finance is because advanced models can be good at capturing nonlinear relationships between signals, provided that we can train the models with a lot of data (part 2 above) and have a good ground truth (part 3). Prediction problems that effectively use an AI/ML model usually involve large datasets with millions of rows and hundreds or thousands of columns. If it helps, imagine putting yourself in the shoes of the computer. At each row in the dataset, you are presented with all of the values of all of the signals, along with information about what ended up happening to the price. Your job as the computer is to figure out how to utilize those signals to predict the outcome with great accuracy. Thankfully, we have amazing algorithms like feed-forward neural nets which do a good job of memorizing relationships between the signals whose data is being presented and making predictions that do a good job of matching ground truth. The power of Machine Learning is in learning what to do from a large, well-curated dataset with a well-chosen target. Now back to the repo The repo constructs a couple of signals with very low granularity (basically just "bullish" or "bearish") The repo doesn't actually train an AI model to figure out how useful (or useless) the signals are at making a prediction of future price action The repo instead asks ChatGPT "what would you do if your quant told you that MACD was bearish but RSI was bullish, would you 'buy', 'sell', or 'hold'?" There is no learning here. There is no utilization of the actually amazing powers of AI to combine signals into a prediction. There is no feedback loop to even tell the model that it did a good or bad job. (The backtest also has a lot of issues but I won't get into that.) If you are interested in the subject, I would recommend playing with "Stock Market Analysis + Prediction Using LSTM" on Kaggle. Although roughly equally simple in terms of the number of signals and granularity of sampling, that Kaggle notebook actually shows the process of constructing a dataset and target, and training an actual ML model. If you try adding more signals, or training over more interesting sampling points, or thinking about what target you should actually be predicting, you will end up gradually getting a better model and learning a lot about quant trading in the process :)
130
215
2,430
523,902
I love Nigerianads
939
261
2,338
134,503
Maximalism isn’t a bad thing if it is rooted in conviction. I’m grateful to the Monad Maximalists
927
280
2,377
75,170
Monad takes a path towards scaling that has never been tried before By re-designing the EVM, we're able to provide an additional path towards scaling alongside all of the great innovations that currently exist Why more is better for the ethereum ecosystem: 1/6
307
288
1,998
284,570
GMI When I was in college I would read a lot about startups. One of the common refrains even back then was the notion that even if you fail the first time, or the second time, or the third time… you’ll be fine, you will grow stronger and smarter from each experience, and if you simply keep trying you will eventually succeed. Reflecting on this now, the truth in this piece of wisdom is clear. Startups are environments of incredible growth, and consistent, compounding growth is the key to success. At the same time, opportunity is incredibly random; luck plays a huge part in any success story. If you put yourself out there, and become a bit better every day at building, or writing, or communicating, or leading, or organizing, or pitching, or thinking… then you make yourself more powerful every day, and you put yourself in a position to capitalize on luck. This dynamic is equally true for the participants in crypto. The world is so open; the established practices are still so new; the number of ways to create value through creativity and hard work are so many. The people seen today as industry titans were nobodies just a few years ago, and many of the movers and shakers of the next few years are seemingly unknown right now. --- As I look around the Monadverse, I see so many talented, smart, principled, hungry individuals who are putting themselves out there, and waiting for their chance to be called up. I am struck by the sense that we are surrounded by giants. When I read writing by Happy, or Zayn, or Aris, or g-van, or Mary, I feel that I’m reading the thoughts of someone who everyone in crypto will be following in a year. When I watch RayJ’s AI creations on loop, I’m taken aback by the incredible craftsmanship and humor - the ability to master a month-old tool and add the spark to make something great. When I hear T_H explain his team’s approach to building in a new vertical, or Ivan describing the power of swarm inference, or Fravashi’s deep strategy on user acquisition, I feel inspired by the drive and creativity of these individuals and their teams. When I hear Ketama’s determination to create a game that is deeply meaningful to us, or hear Chandler’s war stories in getting his team to where it stands today, I know that we are among builders who will go the distance. I love Hanriver’s quirky creations - each one is so weird and unexpected. I obsessively admire each of Fury’s Monadolls, each of Linad’s Monshapes, each of Gleader and Grimjow’s Mouches, each of Blu’s Daks, each of Mari’s playing cards, each of Yot’s Yots, each of Shai’s sharks. I am so impressed by the bold style of Saddamovic’s art. Evo Yudha’s clean lines. The big, optimistic eyes in Medusa’s creations. Juju’s playful worlds. Puichii’s complex characters. Syderal’s fantastical creatures, full of motion and fluidity. I enjoy chilling out listening to Friday Vanning, and I firmly believe that the crew of G-Van, King Loui, Smol Mobster, 2red, KB and JohnW (and guests) is the funniest banter in CT. More generally, the Monad Community unironically has some of the craziest, most observant, most engrossing yappers in the space. I love Dr Preballin’s tracks and Rakko’s AR creations and Leemo’s masterful woodcrafts and Francis’s knitted dolls and Yassy’s claymations. I love the beautiful songs sung by Zella and Zeraa and Claire. I can’t believe the lengths to which Purpleman has gone to accelerate the spread of Plushies. I get a laugh everytime Papayou inserts himself unexpectedly into a photo, or when Clawrence sends a cheeky meme, or when 2red… does what he does. I am blown away by the organizing skill of the planning teams behind our Monad Meetups, and the initiative behind awesome subcommunities for self-improvement like the Monad Run Club, Ironnads, Monlingo, Quantico, and Mouch Media. I am inspired by so, so, so, so many more. The list can go on for so long; there are so many talented people in Monad. We are truly surrounded by giants. --- Recently, we’ve just started to see a few folks in the Monad Community get a bit more mainstream attention. To those in the limelight, it probably feels completely crazy, like a switch was just flipped. This trend will assuredly continue, with more projects and individuals in the Monad Community becoming stars of the broader cryptosphere. I know it will, because the talent is there. The dedication is there. The passion is there. When the switch flips for you, it still won’t be easy. You will have to work incredibly hard to keep up. You will feel underprepared. You will feel like there is so much more you can do with more time. All you can do is trust yourself and do your best. I am confident that you will excel because I have seen how capable you are. To see what I see, you have to understand my perspective. My perspective is that the people that are lauded today as thought leaders, or as the leading builders in the space - they are all just ordinary people who had a long-term vision and the willingness to put in the work day after day. They are people who chipped away at their app, or podcast, or community group, or twitter account, or small business, until one day they started getting regarded as Someone Whose Opinions Matter. But if you ask these people if they feel differently, they will invariably tell you they don’t. The values and goals are the same, just with slightly more confidence. Further: when I came into crypto in 2020, the timeline was dominated by brash, entertaining, seemingly unstoppable thought leaders… but in the ensuing years, many turned out to simply be folks who were loud, overleveraged and in the right place at the right time. When the tide went out, they turned out to be naked. In short, our industry’s leaders aren’t uniquely qualified. I believe that you are equally capable. With growth, anything is possible. --- When the Monad mainnet goes live, the Monad Community will inevitably be a lot bigger than it is today. There will be many newbies looking to make sense of the new ecosystem, looking to try new apps and trade new coins, looking for new storylines that inspire them. To you who are here now: when the mainnet goes live, new folks will look to you as a leader. It will be up to you whether you wish to lean into your platform, your knowledge, your skills, to influence the ecosystem positively; to differentiate between long-term builders and short-term actors; and to grow the culture and build something lasting. If you choose to do that, I am sure that the opportunities will be limitless. Dearest Monad Community, happy 2025!
619
487
2,264
176,177
Summarizing the breakthrough in MonadBFT Yesterday Category Labs released the MonadBFT paper, describing the consensus mechanism that will power Monad at mainnet. MonadBFT is a significant development in consensus research since it is the first time that Pipelined HotStuff becomes resistant to tail-forking. Tail-forking occurs when a missed slot causes the previous proposal to be discarded and re-mined. It is a severe problem in previous Pipelined HotStuff formulations since it opens up multi-block MEV attacks that destabilize consensus. Alleviating this problem is a huge deal because it gives us all the benefits of Pipelined HotStuff - frequent blocks, low latency, large validator sets - while avoiding the biggest downside. MonadBFT also offers a huge upgrade for finality. It features single-slot (500 ms) speculative finality and two-slot (1s) hard finality. “Speculative finality” means “finality that will revert only in the event of equivocation (double-signing) by a majority of validators”. Equivocation is a major offense in most blockchain systems and is commonly penalized with slashing; the bigger the penalty for equivocation the closer you can think of “speculative finality” to finality. One-slot speculative finality is a huge unlock for high-performance applications, which can confidently display the updated state of the world immediately after the next block is received. These properties make MonadBFT a huge advancement in consensus, and a worthy complement to other compounding improvements in Monad including Asynchronous Execution, Optimistic Parallel Execution, and MonadDb. The rest of this article serves as a summary of how successive improvements in HotStuff have built upon each other, in order to explain the problem that MonadBFT solves. To summarize: 1. HotStuff gives us linear communication complexity so that we can have large validator sets, but it's not very efficient 2. Pipelined HotStuff gives us efficiency and low latency from proposing blocks every slot, but suffers from the problem of tail forks 3. MonadBFT gives us gives us tail-fork resistance and one-slot speculative finality --- HotStuff: Linear communication complexity enables large node counts HotStuff algorithms complete over the course of several rounds of communication, which generally take the form of “fan out, fan in” communication directly from leaders to validators back to leaders. Each round begins with the leader sending a message directly to other validators, who each send back a signed message attesting to having received the message. Provided that a supermajority (2/3) of the validators send back an attestation, each round ends with the leader aggregating the signed attestations into a Quorum Certificate (QC), which serves as proof that the supermajority attested to the previous message. HotStuff algorithms have multiple rounds of communication like this. - The first message from the leader is a block proposal - The second message is the QC for that block proposal - The third message is a QC about the previous QC (i.e. a QC-on-QC) - and so on If the procedure is interrupted at any time before finality, the block fails to finalize and is discarded; transactions from that block will have to be re-included in the next block. The original HotStuff protocol has no pipelining and has 3 rounds of communication before finality; the same validator plays the role of leader for each round. --- Pipelined HotStuff: A new block every slot raises efficiency Pipelining is what we all do intuitively when we have two loads of laundry to complete. Instead of waiting for load 1 to finish the full cycle before starting load 2, in pipelining we put load 1 in the dryer at the same time as load 2 goes in the washer. You can think of the original HotStuff as that naive approach to doing laundry (don't start on load 2 until load 1 is completely done), while Pipelined HotStuff is doing the intuitive behavior of progressing multiple laundry loads in a staggered fashion. In Pipelined HotStuff we stagger proposals, such that there is a new block proposed at each round, with the new block piggybacking on top of the message carrying the QC from the previous block. Block proposals march toward finality over the course of multiple rounds. The benefits of pipelining are significant. Pipelining raises the density of block proposals, since a block proposal is made in every slot, which raises throughput and lowers time-to-finality. However, there is one major drawback of pipelining, which is best illustrated with an example. Assume that the leaders for blocks N, N+1, and N+2 are Alice, Bob, and Charlie. If Bob misses his slot, then Alice’s proposal will be invalidated as well, because Bob’s message carries both his proposal and a QC for Alice’s proposal. When this happens, Charlie ends up being called upon to produce a block as if Alice’s proposal had never existed. We refer to this behavior as “tail-forking”, and it can be thought of as a mini-reorg of depth 1. The possibility of tail-forking has significant consequences, because missed slots aren’t necessarily by accident. If there is an opportunity to extract value by re-mining Alice’s block while re-ordering or omitting some of the transactions, then Bob and Charlie can collude to have Bob intentionally miss his slot, triggering an opportunity for Charlie to re-mine Alice’s block. This has been a significant drawback of Pipelined HotStuff protocols (some of which are in mainnet today). --- MonadBFT changes this MonadBFT is the first protocol to enable pipelining while making the algorithm tail fork-resistant. This tail fork-resistance comes from the fallback procedure when Bob misses his slot, which enables validators to piece together their collective knowledge of Alice’s proposal and its level of consensus within the validator set. In particular, under MonadBFT, if Bob misses his slot, then the fallback procedure has validators communicate to each other with signed attestations stating whether they saw Alice’s block. If the supermajority attests to Alice’s block, then Charlie is forced to re-propose Alice’s block. If Charlie wishes to propose a different block then he must provide a signed attestation from the majority of validators attesting to not seeing Alice’s block on time. In the typical case where Charlie re-proposes Alice’s block, he then gets to propose his block on the subsequent round. The result is two important properties: tail-forking resistance and speculative single slot finality. We have already spoken about tail-forking resistance, but let’s understand the impact on finality. As before, assume the leaders for blocks N, N+1, and N+2 are Alice, Bob, and Charlie. Under Pipelined 2-Phase HotStuff - i.e. before MonadBFT - as a validator (or a full node), you cannot finalize Alice’s block proposal until you see Charlie’s block proposal. Why? Because if you finalize as soon as you see Bob’s proposal, it is possible that Bob is messing with you by ONLY forwarding his proposal to you, and he actually plans to fail to send his proposal to everyone else, thus missing his slot. But in MonadBFT, as soon as you see Bob’s proposal, you can “speculatively” finalize Alice’s proposal because Bob’s proposal includes a QC on Alice’s proposal, which is proof that 2/3 of the network attested to Alice’s proposal. Even if Bob is messing with you by ONLY forwarding his proposal to you, and is going to end up missing his slot, you know that a supermajority of the network saw Alice’s proposal and, when they participate in the fallback procedure, will sign off on Alice’s proposal again. The only way that Alice's block won't get finalized is if the validators equivocate and sign off saying that they didn't see Alice's message. This fault is easily provable - we have signed conflicting messages from them. If the penalty for equivocation is substantial - and it should be - this “speculative” finality is actually not really that speculative. --- Takeaways MonadBFT is an extremely exciting development for consensus, and is a worthy complement to other compounding improvements in Monad including Asynchronous Execution, Optimistic Parallel Execution, and MonadDb. Huge congrats to @MohammadMJalal1 and @KushalBabel on this significant breakthrough. MonadBFT will be implemented shortly on Monad Testnet, which currently implements Pipelined 2-Phase HotStuff. For further reading, see the linked blog post and paper in the next tweet.
293
305
1,589
116,560
Today, Tue Aug 12, Monad Testnet will halt at 13:30 GMT for a brief upgrade to the consensus mechanism. The changes that happened to testnet-2 two weeks ago (linked in the next post) are going live on the primary testnet. This is a big upgrade, as it brings the following to the primary testnet: - MonadBFT - JIT EVM - Support for real-time data via websocket and shared memory queue - Reduction in block times to 400 ms - Support for the BLS12-381 precompiles (EIP-2537) - and more!
612
326
2,198
136,952
Making Consensus Great Again As the scale of the improvements in Monad's execution systems have evolved, the needs of the consensus mechanism have evolved as well. You can't drive a Formula One car on generic tires. Initially, the plan was to use Tendermint/CometBFT, but the quadratic communication was quickly deemed unacceptable because of its impact on decentralization (most Tendermint networks are ~50 nodes or less). If it's not decentralized, what's the point? The plan shifted to HotStuff, specifically Pipelined 2-Phase HotStuff, to get linear communication complexity and blocks every round of communication. This variant has many appealing properties and is based on excellent research, especially the Fast-HotStuff (2020) and Jolteon (2021) papers. @MohammadMJalal1, lead author of the Fast-HotStuff paper, joined the Monad Labs (now Category Labs) team in mid 2023. Meanwhile, engineering continued to iterate on extremely performant versions of all of the finer details of a consensus implementation, such as the block propagation mechanism, the signature aggregation scheme, statesync, blocksync, spam resistance mechanisms for asynchronous execution, and so on. But there was a problem. Pipelining the consensus is great for making the most of every round of communication. (Unpipelined protocols, where blocks are only produced every 3 or 4 rounds of communication, are inefficient.) But pipelined protocols suffer from variants of the same problem: when a leader misses their slot, the leader before them (and perhaps even the leader before that, depending on the number of rounds to finality) has their block proposal invalidated. We refer to this as a tail fork; others might call it a 1-block reorg. What are reorgs? A reorg is when, in the process of waiting for finality, the work that got done gets abandoned and has to be re-mined. In other blockchains, where finality could be multiple minutes, reorgs can be extremely annoying because most downstream users - block explorers, apps, wallets, and fast bridges - don't wait for finality. They don't wait for finality because that would be too long of a lag, they just show you what they think is going to happen. So when some blockchain has a 1000 block reorg, it technically isn't a violation of the protocol - because the protocol never finalized - but it is extremely annoying for all downstream users. In the consensus mechanism we planned to take to mainnet, reorgs would have been 1 block long, so in practice most everyone would just wait 1 second (2 slots) until finality and never have to deal with reorgs. So reorgs were never going to be as annoying as they are in other blockchains. But they are still very annoying. Why? Because slots aren't necessarily missed unintentionally. If Alice, Bob, and Charlie are the next 3 leaders, and Alice mines a block that has a lot of MEV in it, Charlie can pay Bob to skip his slot so that Charlie can re-mine it. Re-mining poses lots of problems. Some transaction senders want their transactions included only if the transaction (or sequence of transactions) has a particular outcome. They may submit transactions only if there is pre-trade privacy and would rather that the transaction never existed than have it included with a different outcome. Readers need look no further than the Low Carb Crusader attack on Ethereum in April 2023 as an example of the catastrophically different outcomes from re-mining a block. Because of this issue, we never felt truly good about the consensus in Monad. Work began on a variant to address tail forking, and after a lot of effort from Mussadiq and @KushalBabel, MonadBFT was born. Until now, Pipelined HotStuff protocols suffered from the problem of tail forking. MonadBFT is a huge step forward for these protocols because it allows blockchains to get the best of all worlds between validator set size, latency, and block density, without accepting the downside of tail forks. As a bonus, users also get "speculative finality" (finality if the majority of nodes don't equivocate - and equivocation is easily detectable and slashable) in a single slot. The landscape of consnsus protocols is forever changed.
234
595
1,669
139,223
At KBW Main Stage
432
170
2,155
62,392
monad testnet will be upgraded on Tuesday. for a preview of what will land then, the changelog describes the changes (which landed on testnet-2 about ten days ago)
556
309
2,095
118,541
Smol shoutout to the engineers from Monad Foundation, Category Labs, and 186 node operators, who are preparing to upgrade testnet-2 in the next 12h When this upgrade lands on testnet-2, it'll be the first prod instance of tail-fork-resistant pipelined HotStuff and a bunch of other new tech MonadBFT is coming to life! After that, you should stop seeing pairs of missed slots (the typical sign of tail forking in pipelined consensus algorithms)
856
249
2,086
100,625
Monad Cards and Monad Monad Boxes are our team's attempt to create a memorable, fun, and unique experience while distributing airdrop tokens ahead of the public network launch. Significant input went into the airdrop design. On the community side, we built completely new tools like the Recognizer app to gather community input. We analyzed a huge volume of social activity data using techniques like graph analysis. The Community team spent months manually reviewing profiles. And after the initial strength indicators became public, there also was a vouching process for community members to vouch for people that might have been missed. Your initial stake in the Monad network was a result of these factors. The airdrop also included wallets and social identities that are not currently members of the Monad Community. Monad is a big project, with big ambitions to be a significant epicenter of financial activity. It is important to offer people who are very active in crypto more generally and who create significant value through their DeFi/trading activity, investing activity on platforms like Echo or Legion, or membership in other communities, an opportunity to be a stakeholder in the future Monad network. I recognize that not everyone is satisfied with their allocations. It is an imperfect process, and when the stakes are this high, emotions run high. This is the start of the Monad Mainnet, and there will be many more opportunities. I would encourage everyone to be kind to each other, now but also more generally. Monad is a big and ambitious project, and if what our team - and all of the developers and community builders in the Monad Ecosystem - have built is meaningful, then it will be a point of discourse on Crypto Twitter for many years. In the future, critics will make Monad a big part of what comes out of their mouths, oftentimes preying on emotions, because cynicism and negativity get strong engagement. It is part of the price of relevance. To the members of the Monad Community, your voices have grown substantially over the past few years. As the mainnet begins and the Monad world grows, it is your time to step into your role as a larger commentator in the crypto community. What you do and say shapes the direction of the space, so wield the power with kindness and judiciousness.
1,350
253
2,117
434,669
1,099
173
2,001
88,555
if we ever launch a closed source mainnet, please FUD us mercilessly
619
155
2,028
115,904
We just launched a weekly newsletter with updates on everything happening around Monad Thanks to @denk_tweets and the @beehiiv team who have made it super easy to scale this Sign up here: monad.xyz/newsletter
531
304
1,904
74,346
When you log on and support for your favorite project, know that it makes a difference. As builders, we are working as quickly as possible, but building takes time. In this age of short attention spans, the moral support of a single thoughtful person makes a huge difference to any project. One of the truly unique things about Monad is the length of time that Monad Community members have vocally supported the effort and crafted the start of a social layer. Usually for a successful ecosystem, this only starts "right before mainnet" or maybe years afterward. Fans of other projects are skeptical - why should a pre-mainnet project deserve such excitement?! - but the answer lies in the individual members of the Monad Community. It's the creativity and thoughtfulness that you bring. You are built different. As we inch toward mainnet, you are what sets Monad apart, now and in the future. Keep crafting.
789
256
2,006
78,047
all in one.
speed + decentralization all in one
659
172
1,986
53,711
Some Monad community members are growing their audiences like crazy. The opportunity is there for those with a vision
710
170
1,991
54,926
My goal is to make it as easy as possible to build on Monad. That starts with the docs. Here's a one-pager with everything a developer needs to know before deploying: docs.monad.xyz/developer-ess…
404
287
1,983
80,946
I love the Monad Community
883
239
1,918
118,892
Mood
612
111
1,991
53,128
In Ethereum, when gas fees spike due to temporary congestion, they take too long to re-adjust. Consequently, users get overcharged. Monad features a base fee controller that responds more intuitively to congestion. It raises base fee cautiously, but reduces it in response to lower usage more rapidly. Check out the great blog post below!
Every blockchain (even Monad!) has limited capacity. Intuitively, as demand for limited blockspace increases, fees for users should rise. But how quickly? What percentage of block capacity should be the target utilization?
410
255
1,848
87,788
Today, the Monad execution client is being open-sourced under GPL-3.0, thus bringing the full client open source ahead of mainnet. The north star of Monad is decentralization through technology. Decentralized networks are much harder to build than centralized systems, but they are ultimately far more powerful - both due to their resilience and due to their neutrality. Open source code, in our view, is a basic prerequisite to a decentralized system. Open source is a prerequisite to trustlessness and transparency. In a closed-source network, how can anyone verify that the network has the properties that its proponents claim? As we say in crypto, "don't trust, verify". Open source is a prerequisite for decentralized control of the network. In a closed-source network, the party producing the binary can introduce whatever changes they see fit. A borderless, credibly neutral, censorship-resistant economy, where anyone may innovate, can only develop in a system with the technological and social prerequisites for decentralization. Open source is more resilient. Building decentralized systems that are resilient to individual incentives is extremely challenging, but open source codebases that adapt to the challenges of order flow monopolizers and selfish validators will gain in antifragility. Open source allows us to prove our best ideas and maximize their impact. I sincerely believe that MonadBFT is a game-changer for consensus mechanisms - that the no-tail-forking property is crucial to pipelined consensus. With the open-sourcing of monad-bft and benchmarking tools in monad-mock-swarm, you don't have to take my word for it, you can test it yourself. Same thing goes for RaptorCast, MonadDb, Async Execution with the Reserve Balance mechanism, and the JIT compiler. Lastly, open source is more collaborative and more fun. Anyone can read the code, learn from it, and contribute. As we say in the Monad Community - no shortcuts. You may look at the entire codebase and verify our claims. We are here for the long term. Building up a new blockchain system from scratch, while pioneering a several new technologies that I believe will meaningfully improve the space, has been a huge effort. And we're going to keep doing it. We are proud to share another piece of our Proof of Work today; now back to work.
526
333
1,937
100,505
Congratulations!
aPriori is excited to announce a $20M fundraise, bringing our total funding to $30M. We’re building the intelligent order flow coordination layer so traders, liquidity providers, and validators win together. Thank you to our investors and community.
321
136
1,878
52,642
Monad Public Testnet is almost here! Quick reminder, please be extra vigilant for scams. - Be wary of links - If your testnet tokens are in your regular wallet, consider transferring to a fresh wallet so you aren't signing w/ your regular one Stay safe & lets all have fun 💜
473
307
1,837
186,757
Today at 13:30 GMT, Monad Testnet will upgrade to behavioral revision MONAD_FOUR which enables the following behavioral changes:
533
223
1,892
145,649
How Monad Works Summary / Network Parameters - Monad is EVM bytecode-equivalent (you can redeploy bytecode without recompilation) - Cancun fork (TSTORE, TLOAD, MCOPY) is supported - Opcode to gas units mapping is same as Ethereum (e.g. ADD is 4) - RPC conforms to geth's RPC interface - Blocks are every 500 ms - Finality occurs in 1 second; finality of block N occurs at the proposal of block N+2 - Block gas limit in testnet is 150 million gas, i.e. gas rate is 300 million gas/s. This will increase over time - 100-200 validators expected in consensus - on Day 1 of testnet, Monad will have about 55 globally-distributed validators Frugality / Impact on Decentralization The driving goal of Monad is to have better software algorithms for consensus and execution, offering high performance while preserving decentralization These algorithms deliver high performance while relying on nodes with relatively modest hardware: - 32 GB of RAM - 2x 2 TB SSDs - 100 Mbps of bandwidth - a 16-core 4.5 GHz processor like the AMD Ryzen 7950X You can assemble this machine for about $1500 These algorithms deliver high performance while maintaining a fully-globally-distributed validator set and stake weight distribution There isn’t a reliance on a supermajority in one geographic region - one would think this is an obvious expectation but many “high-performance” L1s actually derive their performance from having a supermajority of stake weight in close proximity Node Monad node has 3 components: - monad-bft [consensus] - monad-execution [execution + state] - monad-rpc [handling user reads/writes] - Network is 100-200 voting nodes (we’ll call them “validators” for the rest of this doc) - Non-voting full nodes listen to network traffic - All nodes execute all transactions and have full state Consensus Mechanism Overall consensus mechanism is MonadBFT. MonadBFT has linear communication complexity which allows it to scale to far more nodes than quadratic-complexity algorithms like CometBFT In the happy path, it follows the pattern of “one-to-many-to-one” or “fan out, fan in”: - Leader (Alice) broadcasts a signed block proposal to all other nodes (fan out), who acknowledge its validity by sending a signed attestation the next leader Bob (fan in). - Bob aggregates the attestations into a “Quorum Certificate” (QC) - Attestation signatures use the BLS signature scheme for ease of aggregation - Bob broadcasts the QC to all the nodes, who attest to receiving it by sending a message to the 3rd leader (Charlie) who aggregates the attestations into a QC-on-QC - Charlie sends the QC-on-QC to everyone. Upon receiving the QC-on-QC, everyone knows that Alice’s block has been finalized In the above story, Bob and Charlie are only sending out QCs or QCs-on-QCs, but in reality the proposals are pipelined: - Bob’s message contains both the QC for Alice’s block and also the contents of a new block. - Charlie’s message contains the QC for Bob’s block (which is a QC-on-QC for Alice’s block) and also contains the transactions for a new block When validators send an attestation for Bob’s message they are attesting to both the validity of Bob’s block and the validity of the QC This pipelining raises the throughput of the network since every slot a new block gets produced. The below diagram shows how MonadBFT reaches consensus. Pipelining is tracked at the top: See the docs for a fuller description. Obvious questions addressed there are: - How the network handles the unhappy path where Bob doesn’t get enough a supermajority of attestations - How the above mechanism results in nodes being sure that the block has been finalized once they have received the QC-on-QC RaptorCast MonadBFT requires the leader to directly send blocks to every validator However, blocks may be quite large: 10,000 transactions/s * 200 bytes/tx = 2 MB/s. Sending directly to 200 validators would require 400 MB/s (3.2 Gbps). We don’t want validators to have to have such high upload bandwidth RaptorCast is a specialized messaging protocol which solves this problem In RaptorCast, a block is erasure-coded to produce a bunch of smaller chunks In erasure coding, the total size of all of the chunks is greater than the original data (by a multiplicative factor) but the original data can be restored using (almost) any combination of chunks whose total size matches the original data’s size For example, a 1000 kb block erasure-coded with a multiplicative factor of 3 might produce 150 20kb chunks, but (roughly) any 50 of the chunks can reassemble the original message RaptorCast uses a variant of Raptor codes as the encoding mechanism In RaptorCast, each chunk is sent to one validator who is tasked with sending the chunk to every other validator in the network That is, each chunk follows a two-level broadcast tree where the leader is the root, one other validator is at the first level, and all other validators are on the second level Validators are assigned chunks prorata to their stake weight Here's a diagram showing the RaptorCast protocol: each validator serves as a first-hop recipient for a range of chunks, and broadcasts those chunks to every other validator: Raptorcast properties: - Using the two-level broadcast tree ensures that message delivery occurs within 2x the longest hop - Upload bandwidth for the leader is limited to the block size times the replication factor (roughly 2) - Since chunks are assigned pro-rata to stake weight, and BFT assumes no more than 33% of stake is malicious, at most 33% of chunks could fail to reach their recipients. With a replication factor of 2x, nodes can reconstruct the original block despite a maximum 33% loss. Transaction Lifecycle - User submits pending transaction to RPC node - RPC node sends pending transaction to next 3 leaders based on the leader schedule - Pending transaction gets added to those leaders’ local mempools - Leader adds transaction to their block as they see fit [default: they order by descending fee-per-gas-unit, i.e. Priority Gas Auction] - Leader proposes block, which is confirmed by the network as mentioned above Note: directly forwarding to upcoming leaders (as opposed to flood forwarding to all nodes) greatly reduces traffic. Flood forwarding would take up the entire bandwidth Note: in the future, a behavior is being considered where leaders forward pending transactions (that they weren’t able to include in their block) to the next leader Leader Election - Leaders in the current testnet are permissioned. Staking will be added shortly - An epoch occurs roughly once per day. Validator stake weights are locked in one epoch ahead (i.e. any changes for epoch N+1 must be registered prior to the start of epoch N) - At the start of each epoch, each validator computes the leader schedule based on running a deterministic pseudorandom function on the stake weights. Since the function is deterministic everyone arrives at the same leader schedule Asynchronous Execution Monad pipelines consensus and execution, moving execution out of the hot path of consensus into a separate swim lane and allowing execution to utilize the full block time. - Consensus is reached prior to execution - Leader & validators check transaction validity (valid signature; valid nonce; submitter can pay for the data cost of the transaction being transmitted), but are not required to execute the transactions prior to voting. - After a block is finalized, it is executed; meanwhile consensus is already proceeding on subsequent blocks This is in contrast to most blockchains, which have interleaved execution. One way to understand the impact of asynchronous execution is to recognize that, in interleaved execution, the execution budget is necessarily a small fraction of the block time since in interleaved execution, the leader must execute the transactions before proposing the block, and validators must execute before responding For a 500 ms block time, almost all of the time will be budgeted for multiple rounds of cross-globe communication, leaving only a small fraction of the time for execution The below diagram contrasts interleaved execution with asynchronous execution. Blue rectangles correspond to time spent on execution while orange rectangles correspond to time spent on consensus. The budget for execution is much larger in async execution. Delayed merkle root Due to async execution, Monad block proposals don’t include the merkle root of the state trie, since that would require execution to have already completed. All nodes should stay in sync because they’re all starting from the same point and doing the same work. But it’d be nice to be sure! As a precaution, proposals in Monad also include a delayed merkle root from D blocks ago, allowing nodes to detect if they have diverged. D is a systemwide parameter, currently set to 3. If any of the validators makes a computation error (cosmic rays?) when computing the state root at block N, it will realize that it possibly erred by block N+D (since the delayed merkle root for N contained in that block differs from its local view). The validator then needs to wait until N+D+2 to see if 2/3 of the stake weight finalizes the block proposal at N+D (in which case the local node made an error) or if the block gets rejected (in which case the leader made the error). Block stages Assume that a validator has just received block N. We say that: - Block N is ‘proposed’ - Block N-1 is ‘voted’ - Block N-2 is ‘finalized’ (because block N carries the QC-on-QC of block N-2) - Block N-2-D is ‘verified’ (because block N-2 carries the merkle root post the transactions in block N-2-D, and block N-2 is the last block that has been finalized) Note that unlike Ethereum, only one block at height N is proposed and voted on, avoiding retroactive block reorganization due to competing forks Speculative execution Although only block N-2 is ‘finalized’ and can officially be executed, nodes have a strong suspicion that the lists of transactions in block N-1 and block N are likely to become the finalized lists Therefore, nodes speculatively execute the transactions included in each new proposed block, storing a pointer to the state trie post those transactions. In the event that a block ends up not being finalized, the pointer is discarded, undoing the execution Speculative execution allows nodes to (likely) have the most up-to-date state, which helps users simulate transactions correctly Optimistic parallel execution Like in Ethereum, blocks are linearly ordered, as are transactions. That means that the true state of the world is the state arrived at by executing all transactions one after another In Monad, transactions are executed optimistically in parallel to generate pending results. A pending result contains the list of storage slots that were read (SLOADed) and written (SSTOREd) during the course of that execution. We refer to these slots as “inputs” and “outputs” Pending results are committed serially, checking that each pending result’s inputs are still valid, and re-executing if an input has been invalidated. This serial commitment ensures that the result is the same as if the transactions were executed serially Here's an example of how Optimistic Parallel Execution works: Assume that prior to the start of a block, the following are the USDC balances: - Alice: 1000 USDC - Bob: 0 USDC - Charlie: 400 USD (Note also that each of these balances corresponds to 1 storage slot, since each is 1 key-value pair in a mapping in the USDC contract.) Two transactions appear as transaction 0 and 1 in the block: - Transaction 0: Alice sends 100 USDC to Bob - Transaction 1: Alice sends 100 USDC to Charlie Then optimistic parallel execution will produce two pending results: - PendingResult0: * Inputs: Alice = 1000 USDC, Bob = 0 USDC * Outputs: Alice = 900 USDC; Bob = 100 USDC - PendingResult 1: * Inputs: Alice = 1000 USDC; Charlie = 400 USDC * Outputs: Alice = 900 USDC, Charlie = 500 USDC When we go to commit these pending results: - PendingResult 0 is committed successfully, changing the official state to Alice = 900, Bob = 100, Charlie = 400 - PendingResult 1 cannot be committed because now one of the inputs conflicts (Alice was assumed to have 1000, but actually has 900) So transaction 1 is re-executed Final result: - Alice: 800 USDC - Bob: 100 USDC - Charlie: 500 USDC Note that in optimistic parallel execution, every transaction gets executed at most twice - once optimistically, and (at most) once when it is being committed Re-execution is typically cheap because storage slots are usually in cache. It is only when re-execution triggers a different codepath (requiring a different slot) that execution has to read a storage slot from SSD MonadDb As in Ethereum, state is stored in a merkle trie. There is a custom database, MonadDb, which stores merkle trie data natively This differs from existing clients [which embed the merkle trie inside of a commodity database which itself uses a tree structure] MonadDb is a significant optimization because it eliminates a level of indirection, reduces the number of pages read from SSD in order to perform one lookup, allows for async I/O, and allows the filesystem to be bypassed State access [SLOAD and SSTORE] is the biggest bottleneck for execution, and MonadDb is a significant unlock for state access because: - it reduces the number of iops to read or write one value - it makes recomputing the merkle root a lot faster - and it supports many parallel reads which the parallel execution system can take advantage of Synergies between optimistic parallel execution and MonadDb Optimistic parallel execution can be thought of as surfacing many storage slot dependencies – all of the inputs and outputs of the pending results – in parallel and pulling them into the cache Even in the worst case where every pending result’s inputs are invalidated and the transaction has to be re-executed, optimistic parallel execution is still extremely useful by “running ahead” of the serial commitment and pulling many storage slots from SSD This makes optimistic parallel execution and MonadDb work really well together, because MonadDb provides fast asynchronous state lookups while optimistic parallel execution cues up many parallel reads from SSD Bootstrapping a node (Statesync/Blocksync) High throughput means a long transaction history which makes replaying from genesis challenging Most node operators will prefer to initialize their nodes by copying over recent state from other nodes and only replaying the last mile. This is what statesync accomplishes In statesync, a synchronizing node (“client”) provides their current view’s version and a target version and asks other nodes (“servers”) to help it progress from the current view to the target version MonadDb has versioning on each node in the trie. Servers use this version information to identify which trie components need to be sent Nodes can also request blocks from their peers in a protocol called blocksync. This is used if a block is missed (not enough chunks arrived), as well as when executing the “last mile” after statesync completes (since more blocks will have come in since the start of statesync) Thanks for reading and be sure to check out the docs
352
419
1,818
263,081
Tomorrow's Tech, Today
480
259
1,853
54,860
To the person who predicted that Monad will flop on launch (whose opinions I generally respect, btw): You might be right, Monad might flop on launch. It might flop because our team is building everything from scratch. Everything is new and performant; nothing is forked, so everything has to be tested very very carefully The performant EVM is not a reth fork The high consensus throughput comes from a completely new consensus mechanism, and from tons of optimization at the networking layer. (An incredible paper is coming soon from researchers MJ and KB; it improves upon the frontier commit latency & adds resilience to classes of MEV attacks that historically have affected this kind of algo). Nodes are fully geographically decentralized, this isn't throughput through colocation The database is completely new and substantially improves the performance of EVM parallelism On top of that there are tons of other interesting features at the networking (block propagation, mempool propagation, state sync) and execution (parallel EVM, retry reduction, JIT compilation) layers Our team is highly motivated to deliver these techs right the first time, which means writing a ton of new, highly optimized C++ and rust code Which ALSO means testing the code very very thoroughly. Because everything is from scratch -- because Monad derives performance from software rather than hardware or colocation -- it is like flying a plane at 2000 miles per hour on the first flight And that plane could have a bug. Or maybe it could even just not live up to the super high expectations on day 1. Or maybe because of the intensive effort to rigorously test, the launch might take longer than everyone was hoping. So: Monad could flop And that would definitely suck. But if it does, our team will simply keep chipping away. Let me state this: I understand your implicit point. In crypto there is a strong momentum factor. By coming out of the gate guns blazing (or maybe just... blazing relative to carefully managed expectations) an L1 or L2 gets mindshare. Which attracts capital and builders. Which creates a snowball effect. If the expectations are too high, the thinking goes, then negative momentum sets in and the schelling point goes elsewhere. I can understand this thinking in a world where there are hundreds of undifferentiated OP stack rollups competing to be the canonical rollup for XYZ. These teams indeed need to nail the launch so that mindshare coalesces around them as the best place for XYZ. In an arena where blockspace, technology, and mission are ultimately not-too-different, flopping means a vicious cycle which means death. But the antidote to vicious cycles is consistency and intrinsic momentum. The Monad team is intrinsically motivated to solve tough performance problems with unique tech. And the Monad Community is intrinsically motivated to spread kindness, fun, optimism, personal growth and friendship. Our motivation beats like a drum. You're right that with such high expectations, we might not beat them. We might "flop". But we will keep going either way. We love doing this stuff, and respectfully say to any challenge: bring it on.
342
270
1,815
417,694
This is a primer on async execution: how we made it work in Monad, why EIP-7702 broke it, and how to fix it For context, async execution has been in Monad since the consensus and execution clients were wired up to each other. Async execution allows execution to lag consensus by a fixed number of blocks from an interaction perspective. Most blockchains have interleaved consensus. That is, execution happens before consensus, which means cramming execution into a time budget that is a small fraction of the block time (the rest is occupied by round-the-world messaging, aka consensus). This inherently limits the gas per second of the system. L2s get around this by not having consensus at all. But we want the behavior of a distributed, decentralized L1 that maintains high performance. Async execution lets us evade this problem by moving execution out of the hot path of consensus. Instead, consensus and execution happen in parallel swim lanes. Consensus on block 2 occurs while execution of block 1 is running in parallel. There still needs to be an agreement between consensus and execution though. Specifically, that agreement is: execution is only allowed to lag consensus by up to k blocks, because block proposals contain a delayed merkle root. Also, consensus is building blocks with a delayed view of state (delayed by k blocks). This means that there is a danger that consensus will include a transaction from a sender who, by the time we execute, turns out has an empty balance. It would be bad if the protocol allowed this to happen, because it would open up a Denial-of-Service (DOS) vector. Therefore, to address this problem and safely enable asynchronous execution, the Monad consensus client calculates the max MON debit of each transaction as MON_spent = gas_bid * gas_limit + value. The consensus client keeps a running list of available account balances for each sender after deducting MON_spent for each transaction they sent. Goign off of that running balance, the consensus client only includes transactions if it can be sure that the transaction can be paid for. This is a pessimistic approach to block-building since it doesn't take into account the possibility of any accounts gaining in balance from a transfer in. Let me explain what I mean with an example. Suppose that Alice's account has 100 MON. Then, the following 3 transactions are included in block 1000: Tx 1: Alice sends 20 MON to Bob, costing 1 MON in fees Tx 2: Alice spends 70 MON buying a memecoin, costing 1 MON in fees Tx 3: Charlie sends 100 MON to Alice, costing 1 MON in fees Now it is block 1001. The leader is deciding whether to include the following transaction: Tx 4: Alice sends 40 MON to Bob, costing 1 MON in fees When we eyeball this, we know that it would be safe to include tx 4 because Alice's balance is 100 - 21 - 71 + 100 = 108. But because of async execution, at time of consensus, we don't know the result of all execution, we only know the worst-case balance of Alice is 100 - 21 - 71 = 8. The old algorithm relied on this pessimistic running balance to utilize lagged state in consensus decisions. It works pretty well, aside from the fact that it can be too conservative sometimes (as seen in the example above where tx 4 can't be immediately included until the delayed merkle root catches up to include the block with tx 3 in it).
358
277
1,800
82,351
Monad to Millions Dear Founders, Startups grow in orbits. You have grown in the Monad ecosystem since Testnet launch. Many of you have user retention too. But you should also have a product that appeals to a wider audience than the Monad ecosystem. The way to find that out is to market outside the Monad Community. From the start of testnet until now, we saw founders who got traction in the Monad ecosystem. Many of you did very well in this orbit. Before the mainnet, it is time to test whether your product can get traction in the larger crypto industry and among non-crypto-natives. This is a chance to see if your product is differentiated enough from industry standards and appeals to the wider audience. Think in terms of orbits. Your home orbit is Monad. The Nads love your product and are having fun with it. So you are one of the best in Monad ecosystem. But now, with the same value proposition and product, can you excite rest of Crypto Twitter? That will be your next orbit. Eventually, you will have to prove whether your product appeals to people outside of Crypto Twitter altogether. That will determine whether you can go mainstream and achieve a massive outcome. In trying to achieve this, you will expose a lot of problems. You only solve those problems that are needed to get you the next level of growth. This helps you prioritize and allocate resources efficiently. Finding your wedge, cutting down unwanted features, running experiments to see what users desperately want, exploring different networks to onboard new users from, improving retention numbers in the existing users, all of this becomes your main job in the road to mainnet. Product and tech are the tools to achieve this growth. The outer rings of orbit await. 💜
493
296
1,743
132,873
What did you get done this week?
948
131
1,782
111,728
Mystery Boxes are Monad's way of making the airdrop a bit different from others We will continue to do things differently. Thank you for your attention to this matter
748
84
1,877
194,072
Monad Cards Wave 2 is now live - as a reminder, Monad Cards is an initiative to give Crypto Twitter a token of appreciation. Thank you to all of the members of Wave 1 who submitted your nominations - around ~4,000 members of Crypto Twitter are now eligible to claim their Monad Card. Apologies in advance, but I am going to tag each member of CT who is eligible to claim a Monad card in a thread on this tweet. Claim your card now at cards.monad.xyz before it's too late! Claims for all cards close in 8 days. Thank you.
606
188
1,822
164,963
this is where I post from
564
78
1,800
43,957
Testnet is back up after the scheduled upgrade - MonadBFT is live! - JIT EVM is live! - WebSocket support is live! and more
498
249
1,772
83,102
monad testnet, now live on metamask!
gmonad The @monad testnet is now live on MetaMask!
457
176
1,715
57,087
new MonadBFT docs are live
507
211
1,738
62,665
just @monad all in one
new handle, same @monad
591
131
1,695
70,604
Gmonad. What are your favorite apps on Monad Testnet?
1,332
219
1,600
75,179
Bringing JIT compilation to the EVM Just-in-Time (JIT) compilation is frequently cited as an interesting idea for how to optimize the EVM. But there are challenges: - it's hard to get all of the exact behavior (gas charges, error handling) to match. For example, even if the code is simplified by the compiler, the original gas charges must be preserved - compilation is expensive so not everything should be compiled, and it can't be done on the fly without affecting latency - compiled artifacts are a lot larger than the original bytecode - getting the most out of the compiler requires creativity to address unique facets of the problem. There is a ton of research, benchmarking, and repeated optimization of machine code generation required The @category_xyz team powered through and built a powerful compiler that addresses all of these problems, allowing contract code to execute faster and more efficiently than in existing EVM implementations. The Monad client analyzes frequently used contracts (measuring by cumulative gas consumed) and caches native code so subsequent calls execute more efficiently. Compilation runs asynchronously; before compilation has finished, the VM runs code using a separate low-latency, highly-optimized interpreter. This is now live on Monad Testnet as of the upgrade on Tuesday! Check out the docs for additional info, hot off the presses. Thank you to @__inshorts and the rest of the compiler team at Category Labs for a job well done!
372
235
1,518
102,844
Prior to Monad, every previous project that @_jhunsaker and I worked on involved inheriting super messy codebases. James is fairly opinionated about code style and structure, and his code (and the code of projects under his supervision) is fastidiously organized. Looking at it is a window into his brain. Anyway, check out the code. You will learn a lot! And until Oct 12, you can participate in the code4rena audit contest - great motivation to look at a codebase full of insights.
393
199
1,654
55,066
What did you get done this week? Brag!
886
121
1,626
68,900
Vote now, compute later
460
117
1,596
39,193
USDC will be live on day 1 of Monad mainnet ✊
organic grass-fed native USDC on Monad btw
390
151
1,622
64,559
Check out the new instructions on how to run a local Monad network: github.com/category-labs/mon… Open source. Don't trust, verify. Get hacking!
342
202
1,599
62,245
Honored to share that Monad Labs has raised $225M in funding from @paradigm and other leading investors. Thank you for this incredible vote of confidence. 💜 The funding provides our team with ample resources to bring Monad, the Parallel EVM L1 blockchain, to life.
233
204
1,515
158,259
Today, we are announcing the MON public sale - an effort to give everyday people the opportunity to become a stakeholder in the Monad network token, days before the public network launch. The public sale of MON will go live on Coinbase token sales, a new platform from Coinbase for token distribution, a week from today. This is the very first public sale that Coinbase has hosted, and it will be made available to 80+ countries, including the United States of America. 7.5% of the total monad supply will be sold at a price of $0.025/token. At the Monad Foundation, we think big. Over 285,000 accounts were made eligible for the MON airdrop, in an attempt to get people who eat, sleep, and breathe crypto to be the initial stakeholders of the Monad ecosystem. This public sale has the potential to extend the reach of Monad by extending the distribution of MON into the hands of millions of regular people. This sale is attempting to fulfill crypto’s founding promise: open, fair, and inclusive finance. Monad was built in part to onboard the general public to crypto, and provide them with the tech that is ready for mass adoption. The world is a big place, and crypto needs to grow far beyond the Crypto Twitter bubble. Onwards! ⚔️
584
154
1,640
187,995
Should we open source the execution client or just keep it closed?
596
135
1,545
71,926
I believe in the Nads
747
166
1,582
85,825
What did you get done this week?
834
110
1,569
59,253
Monad is in the WSJ today
395
144
1,636
74,564
Crypto will increasingly permeate tech in the coming months-years So many tech companies are investigating using stablecoins for payments, neobanking, and even treasury management But they need a decentralized, credibly neutral, borderless, highly performant network for it to make sense Huge opportunity which I am extremely excited about
546
162
1,453
59,125
We are working through a few issues with specific subtracks including Hyperliquid, Hypurr, Wassies, and user authentication with telegram. Also hearing some reports of issues connecting Solana wallets using Ledger, and of users not being able to connect using Solflare. Please continue to stay cautious of scams, and remember that there is no urgency to claim. The portal will be open until Nov 3
1,205
93
1,557
176,746
Whenever anyone asks “how is Monad different”, show them the validator map. gmonads.com/
541
152
1,527
65,507
First Down First Down First Down
538
85
1,538
60,069
Low-Latency Execution Events Today, we are documenting the Execution Events system in Monad, which allows developers to build high-performance applications that receive lowest-latency event data from a Monad node via shared memory queue. To consume this real-time data, you write software in C, C++, or Rust using a provided SDK, and run it on a host running a Monad full node. Here is a brief comparison to other such systems: - Geth Live Tracing - "hook" based API: your code is loaded into the Geth node as a plugin, and is run synchronously (via callbacks) during execution - Reth ExEx - async function based API: your code is loaded into a Reth node; execution sees events after the fact rather than synchronously - Solana Geyser - "hook" based API, a plugin that runs inside a Solana validator and invokes callbacks during execution All three of these are different from the Execution Events approach. In Execution Events: - You are seeing events "as-they-happen", as in the Geth Live Tracer and Solana Geyser. Unlike these approaches, your code is not running as a plugin inside the execution engine, but in parallel (about one microsecond later) in a separate process - Like the Geth Live Tracer (but unlike Reth's ExEx) you see each "piece" of the transaction - each log, each balance change, etc. - as a separate event - Unlike the Geth Live Tracer or Geyser, you do not install "hooks" and receive callbacks; instead you continuously poll for new event records, iterating through any new events that are returned to you (and ignoring events that you are not interested in) - Because the system is based on shared memory ring buffers, you can lose data if your consumer is too slow -- you must keep up!
302
228
1,448
80,168
Golden ticket values were originally rounded down slightly so that people choosing to post screenshots last week would be less likely to incidentally dox their Monad wallets. (Engineering trick: it also reduced the number of discrete videos we needed to generate) The round-down has been removed now to show the full allocation Always keep opsec in mind when deciding what to share!
485
93
1,517
114,903
What did you get done this week?
722
77
1,447
78,864
MonadExplorer has added staking. Love the clean interface! testnet.monadexplorer.com/va…
799
146
1,483
80,750
Happy Saturday! What did you get done this week?
445
94
1,085
51,300
Ramadan Mubarak! 🌙 💜
381
121
1,396
59,429
My personal goal for Monad Mainnet and beyond is to increase the level of optimism in the space. If you have any suggestions, let me know!
388
130
1,377
49,531
I joined the crypto team at Jump in 2021. People on the team were excited about a new blockchain called Solana because, during a time when many alt L1s were advertising high performance but were actually just forks of Ethereum with small parameter tweaks, Solana was actually performant and cheap. The Solana team had accomplished this by rebuilding everything from scratch. They were opinionated about the design and unafraid to reimagine the entire tech stack. This had clearly been no easy feat and the team had been grinding since 2017 to bring it to life. Solana made sense to me from day 1 because I had been building HFT systems for the past 10 years and had direct experience with the scale and speed that the real world requires. That experience helps. I think that anyone can do napkin math and estimate how many ads Google serves per day, or how many orders the NASDAQ processes per day, or how many clock cycles it probably costs to execute a smart contract or whatever. But in practice, it helps a lot to have built stuff at scale and know what it entails. In my case, my HFT team had built our system to process market data and send orders in less than a microsecond, or 1 millionth of a second. That required optimizing all parts of the information pipeline but it was possible. So at the time it seemed crazy to me that Ethereum L1 had set gas limits to target 10-20 tps. Granted, a decentralized blockchain is more complex than an HFT system because of the overhead of maintaining distributed consensus, but still! The computation and storage access in the average smart contract call is super simple. Very very roughly speaking, it seemed like execution throughput should be orders of magnitude higher than it was. And Solana was doing this, while no one else was. So why were so few people aware of it? --- The Degen Ape Academy mint happened a few months later. The mint initially failed, twice, due to high demand crashing the team's servers. Solana engineers stepped in to build an NFT minting service to handle high demand. That service helped Degen Ape Academy mint out smoothly and quickly became generalized into the Candy Machine for future use by other projects. The Candy Machine kicked off a wave of massive NFT mints on Solana, heralding the Solana Summer of 2021. To me, it felt like the world was rationalizing. Performance, throughput, scale, they matter. How could a decentralized world computer support even ten million users without, say, 100 million transactions per day? But in 2021, Solana was also in need of a ton of improvements. The system was performant relative to others, but it could still be a lot better. There were bugs and outages. Transaction scheduling was extremely simple; tons of work was being thrown away and re-executed. It was tough for developers to build using an isolated standard. I left Jump in January 2022 to tackle blockchain scaling head-on. Solana went through some dark times, but the team kept soldiering on, making performance and usability improvements while also scaling to a global hacker house and developer support platform. It doesn't surprise me that Solana is being given its flowers today because the team has made decentralized tech its backbone, and has kept true to its north star - Increase Bandwidth, Reduce Latency. --- I see commentators frequently saying: "technology doesn't matter, distribution is everything". "How is Monad going to compete with [insert OP stack rollup fork] when they can get to market faster?" "Decentralization doesn't matter, just get to mainnet ASAP." But for me, technology is at the core of everything. New technology is what allows us to push the boundaries of what is possible. With new technology, we can preserve decentralization - the attribute that allows permissionless finance and rapid innovation - while also serving millions of people. And technology gives our community a backbone to soldier through tough times when they do inevitably come. Because while hype waves and sentiment are circular in both directions, technology and capability are fundamental. There are no shortcuts. There are incredibly exciting times ahead. I give my congratulations to the Solana team and community for the well-deserved validation. And for EVM developers, our time is soon! Reach out if you'd like to try out the Monad testnet. DMs are open.
253
212
1,414
178,133
If you think about it, today, Mystery Boxes Day 3, is the low point for excitement in the Monad network’s future history
552
76
1,442
94,477
Gmonad, let's lock in
510
109
1,363
48,473
Happy Mothers' Day to my mama. I would not be here without all of your care, love, and sacrifice. Happy Mothers' Day to all moms out there! We'll do our best to make you proud!
331
174
1,337
76,005
Congrats @BlockSt_HQ team!
We’re excited to announce our $11.5M fundraise led by @hack_vc Blockstreet is building the execution & lending layer for tokenized equities powered by Aqua (RFQ intents) & Everst (hybrid liquidation) Next-gen infra for on-chain stocks is here. Launching on @monad this Q4.
231
130
1,333
68,302
What did you get done this week?
737
73
1,342
49,635