19677
gilbert

@0xgib #19677

Onboarding the next 1M devs to web3 • Author of LearnEVM.com • Cofounder of 0xMacro.com
516 Follower 113 Following
just got back to austin. why is it still hot
It's time to start casting again
Hey @v sorry for the ping but my friend's casts are not showing up in any channels. Did he get shadowbanned or something?
I can't seem to find this cast that was posted /founders recently. Bug? https://warpcast.com/harsh/0x190e3716
Solana uses a fixed size stack frame of 4KB. This means if a function call uses more than 4KB of parameters, local vars, etc. then the program (thankfully) crashes
One way to bridge assets (or send messages in general) to/from Solana is to use the Wormhole protocol.

Wormhole has an off-chain network of "Guardians" that pass these messages across chains.

However, there are exactly 19, and only 19... anyone know something about this? https://wormhole.com/blockchains/#guardians
Lido's stETH is a rebasing token. Rebasing tokens are problematic to integrate with for the majority of protocols, due to holder balances constantly shifting.

Fortunately Lido recognizes this and offers wstETH, representing *shares* instead, which are stable across rebases, making it compatible with defi in general.
On Solana, you can have a single transaction that makes multiple top-level program calls.

In contrast, an EVM tx only supports sending calldata to a single contract address.
Security question: If deploying a contract can take 100-1000x transactions, then how does upgrading a contract work for that same number of transactions?

Will the contract still function? As its old version? Or do you upload to a buffer and switch to it in 1 tx instead?
Raise your hand and drop a link if your company survived the crypto bear market 👋
EVM smart contracts don't really have a max size, since an SSTORE opcode has an entire 256 bits of address space to write to (in theory, anyway)

Solana accounts have a max size of 10 MiB, which must be incremented to via the limit of 10 KiB per instruction.
"Deploying a program on Solana requires hundreds, if not thousands of transactions, due to the max size limit of 1232 bytes for Solana transactions"

🧐🧐🧐

https://solana.com/docs/programs/deploying
In a Solana transaction, a program cannot arbitrarily read data from just any address.

You MUST specify which accounts you wish to read from, upfront, BEFORE the program even begins to run 😦

https://warpcast.com/0xgib/0xa0a411ba
Correction: Rent doesn't really exist anymore as a mechanism in Solana.

As of June 2022, all storage MUST deposit 2 years worth of "rent" to be accepted on-chain.

"Deposit" means you get it back when you delete that same storage.

https://warpcast.com/0xgib/0x5247264a
Solana storage fees are not one-and-done. You have to pay "rent" over time to maintain that data's persistence on-chain.

If you don't pay, your data could get garbage collected 🗑️
By default, Solana programs are upgradable 😮

The deployer can update the program bytecode at any time

This feature is built into Solana, so no proxy patterns are required
Useful (EVM → Solana) Terms

EOA → User account
Opcode → Instruction
Address → Account
Gas limit → Compute budget
Wei, 1e-18 → Lamport, 1e-9
External call → Cross-program invocation (CPI)
Smart contract → Program; executable account

1/n
Not related to security, but in Solana they're called "programs" not "smart contracts" 🙊
Solana programs ("executable accounts") don't contain their own data. Instead, they spawn and exclusively own "non-executable accounts" whose only purpose is to hold data.

They write data to user accounts too (also considered non-executable), but supposedly this is less flexible.

https://warpcast.com/0xgib/0xa0a411ba
Hey all, I'm the author of LearnEVM.com

I'm diving into Solana this month. If you're curious, you can follow my progress on /solana-security
Should be interesting if you want to learn security facts from the perspective of the EVM 🤓
diving into solana this month, you can follow my progress on /solana-security
The Solana program call stack limit is 64

However, programs calling other programs is limited to a depth of 4
`ecrecover`-like operations are built-in on Solana. You can check if an involved account signed the current transaction by checking the `foo_account.is_signer` boolean
Solana account data can be read by any on-chain program. This is unlike an EVM smart contract's data which is encapsulated, and thus only accessible on-chain if the sc chooses to expose it
tried uninstalling and reinstalling, now hubble thinks it doesn't have enough ram? (I have 96GB)