

Congrats to @SoldierJAW you won this DOPE @ChickenTribe in our Collab giveaway! Be sure to shoot them a DM to claim your NFT 🥳🥳 Bread Fam be sure to scope out a cool project with and awesome team @ChickenTribe #Solana #SolanaGiveaways
SoldierJAW😼
3.4K posts



Congrats to @SoldierJAW you won this DOPE @ChickenTribe in our Collab giveaway! Be sure to shoot them a DM to claim your NFT 🥳🥳 Bread Fam be sure to scope out a cool project with and awesome team @ChickenTribe #Solana #SolanaGiveaways


Slashing goes live on mainnet today! 🥳 The protocol is now feature-complete. Programmable trust is no longer a concept. It’s code. Let’s talk about what this unlocks & why it matters. 🧵

This week's upgrade of the MegaETH testnet includes an interesting new feature: realtime_sendRawTransaction. This new RPC method sets the foundation for realtime dapp frontends on MegaETH. It solves a simple yet important problem: how to retrieve the receipt of a transaction with absolutely minimum latency? Why it’s an important problem A key feature of realtime applications are short feedback loops. That is, apps will heavily depend on UX patterns where users can observe the effects of their transactions almost immediately after they send them. This gives users a feeling of interactivity and control like driving a race car, as opposed to remote controlling a Mars landing mission! The feedback loop of a user transaction is pretty simple. It consists of three parts: first, the transaction travels from the user to the chain; second, the chain executes the transaction, i.e., computes its effects; and third, the effects are communicated back to the user. The goal of every realtime application is to minimize the amount of time taken by each part. For applications on MegaETH, the first part is easy to optimize. The user simply sends transactions to the sequencer. It is the only entity (at any given point of time) that builds blocks, so the shortest path is to send transactions directly to it. The second part is equally easy. Thanks to MegaETH’s high throughput streaming EVM, transactions seldomly wait in the transaction pool. (Recall that significant queuing only happens when demand is close to or greater than capacity, of which MegaETH has a lot, or when service is bursty, of which stream processing is the exact opposite.) This leaves us with only the third part to worry about: communicating transaction results back to users. In EVM terms, this means retrieving the receipts. We need to minimize its latency. Solution prior to realtime_sendRawTransaction On non-realtime chains, executing transactions (the aforementioned second step) takes significant time such that optimizing receipt retrieval is not a priority. Shaving off 200ms is not that important when the overall latency can never go lower than the multi-second block time! As a result, standard EVM chains chose polling as the solution to receipt retrieval. Basically, the user (frontend) calls eth_getTransactionReceipt repeatedly until a non-null receipt is returned. (Examples: Viem #json-rpc-methods" target="_blank" rel="nofollow noopener">viem.sh/docs/actions/p…
, Ethers.js #L1476" target="_blank" rel="nofollow noopener">github.com/ethers-io/ethe….) Polling is suboptimal for latency because if a receipt unfortunately becomes ready for retrieval right after an eth_getTransactionReceipt attempt (that returned null), we must wait until the next attempt, which wastes time. In order not to waste too much time, we need to reduce the interval between two consecutive eth_getTransactionReceipt calls, i.e., the polling period. However, setting the polling period too low causes too many failed attempts, which burdens the infra. This is like going to the mailbox every 10 minutes to check on the delivery you look forward so much to. I guess many people would prefer a notification pushed to their phone instead! realtime_sendRawTransaction is eth_sendRawTransaction and eth_getTransactionReceipt bundled together Entering realtime_sendRawTransaction. The idea behind this new RPC method is quite simple. As mentioned, in MegaETH, almost every transaction is executed immediately after it arrives at the sequencer. So, by just waiting a little bit of extra time, the sequencer will have the receipt ready and can return it to the transaction sender, relieving the sender of polling. The most natural way to implement this idea is to let eth_sendRawTransaction (the RPC method that sends a transaction to the sequencer) wait until execution completes (which, again, is practical because it takes less than 10ms on MegaETH) and return the receipt of the executed transaction as the RPC response. In order not to break backward compatibility, we gave it a new name: realtime_sendRawTransaction. It takes the same parameter as eth_sendRawTransaction, but returns the receipt of the submitted transaction instead of just the hash. [The following figure compares polling (left) and realtime_sendRawTransaction (right).] Implementing realtime dapp frontends using realtime_sendRawTransaction is very easy, since each user interaction requires just one RPC call. There is no polling, subscription, or callback to worry about. The frontend simply uses realtime_sendRawTransaction in place of eth_sendRawTransaction, and it will get transaction receipts preconfirmed by the sequencer in responses. We believe it will greatly improve the DevEx when building realtime applications on MegaETH as well the end to end UX.




you: comparing other blockchains the guy she told you not to worry about: comparing speeds with google search

ideal life as a chain • 10ms block times • 6 fig TPS • apps that can't exist elsewhere • rabbits • ________
