Andrew Fitzgerald Profile
Andrew Fitzgerald

@apfitzge

Followers
697
Following
199
Media
5
Statuses
81
Explore trending content on Musk Viewer
@apfitzge
Andrew Fitzgerald
2 months
Backported the (reward/cost) prioritization to the new scheduler in version 1.18. Devs & users get higher priority if you request fewer CUs! This also begins to consider base fees, so simple transfers, even without priority fees, have **some** priority in queue!
7
8
51
@apfitzge
Andrew Fitzgerald
4 months
I am never going to financially recover from this
Tweet media one
4
0
41
@apfitzge
Andrew Fitzgerald
4 months
Currently priority-order leader buffer is done by the cu_price in the compute budget ixs. This totally ignores the non-priority rewards leader gets for including a transaction. #34888 will instead prioritize by total_fee / cost, hoping to land in 1.18 w/ new scheduler.
6
6
30
@apfitzge
Andrew Fitzgerald
4 months
mean fee brought up by high priority fees on jup action; median fees staying low. love to see it. we can still do better
Tweet media one
2
2
21
@apfitzge
Andrew Fitzgerald
3 months
This was fun to do, looking forward to seeing other devs present on other parts of the code!
@jacobvcreech
Jacob Creech
3 months
There's so much to Solana that help make it fast and efficient, but not everyone knows how Solana works I spent time with @apfitzge learning how the current scheduler works and how 1.18's scheduler further improves Solana Learn about the scheduler 👇
14
41
152
2
2
22
@apfitzge
Andrew Fitzgerald
4 months
Happy to announce I'll be moving to Anza. I'm so pumped for everything going on in the network/ecosystem rn!
@anza_xyz
Anza
4 months
1/ We're thrilled to announce Anza — a next-gen, @Solana focused dev shop. Founded by execs & engineers from @SolanaLabs , Anza will build a forked validator client called Agave & contribute to major Solana protocols.
61
174
664
1
0
14
@apfitzge
Andrew Fitzgerald
3 months
I just had to sign a document online, but it made me re-sign using mouse for every box. 27 signatures. This is hell.
0
0
6
@apfitzge
Andrew Fitzgerald
4 months
An example of why we want this: 2 txs each with 1 sig, one requests 5000 cus, the other requests 200000 cus both with cu_price=1 lamport/cu. currently these have same priority. But Tx2 uses much more of block limits. Reward/cost is almost double for Tx1, it should be prioritized!
1
0
5
@apfitzge
Andrew Fitzgerald
4 months
Without user adjustment, lower-cu txs will naturally have higher reward/cost and be prioritized. By making accurate requests for compute_unit_limit, you naturally get higher priority since the denominator is lower! Also taking unneccessary write-locks gives you lower priority!
1
0
4
@apfitzge
Andrew Fitzgerald
4 months
Trying to give some notice on this change since it will likely require user/dev adjustment. This is outside of consensus and any operator is free to use similar logic if they so choose.
0
0
4
@apfitzge
Andrew Fitzgerald
7 months
@aeyakovenko @7LayerMagik @solflare_wallet credit where credit's due, the vote changes were from Ashwin not me! my scheduler changes are coming in 1.18
1
0
4
@apfitzge
Andrew Fitzgerald
4 months
yesterday I woke up at 3:30am, just randomly couldn't sleep. coulda used that energy today, damn off by one error
0
0
3
@apfitzge
Andrew Fitzgerald
4 months
@7LayerMagik Just a reminder, in 1.18 the scheduler will still be opt-in via cli - there will be a note in there when the call to upgrade goes out.
1
0
3
@apfitzge
Andrew Fitzgerald
4 months
@0xShitTrader Until SIMD-0096 gets implemented they are essentially the same just off by a factor of 2. We want the reward to leader as numerator
1
0
3
@apfitzge
Andrew Fitzgerald
3 months
@0xMert_ @Cypherj_sol I want it too man, but its' a big changeset that is very unlikely to make it through the backport reviews. At least 1500 loc added, ignoring any changes AND ignoring all the stuff outside the transaction_scheduler mod for hooking up and enabling it.
Tweet media one
Tweet media two
0
0
3
@apfitzge
Andrew Fitzgerald
4 months
@buffalu__ this is true, i love my job
0
0
2
@apfitzge
Andrew Fitzgerald
4 months
Oh great, well my bad then. rust lifetime error messages
Tweet media one
2
0
2
@apfitzge
Andrew Fitzgerald
4 months
@dj_d_sol It's called "Comic Code". it's a monospace adaptation of Comic Sans
0
0
2
@apfitzge
Andrew Fitzgerald
11 months
@7LayerMagik @aeyakovenko yeah, but then just do what I said. Shuffle tx to move your hot account and get the non-elevated fees for your users. As long as this is done in a predictable pattern (maybe w/ some cut-over period) then seems the apps can get around it
1
0
2
@apfitzge
Andrew Fitzgerald
9 months
@bqbrady seems like a reasonable thing to be able to search to me, I'll ask internally about it. What's the primary use-case for being able to search the blockhashes?
1
0
2
@apfitzge
Andrew Fitzgerald
1 year
This app is making me tweet this to unlock my account. @hey_wallet bonk me 0xSOL9DE21F4B0-B4E5-43F5-8544-E4F3F3C991D6
0
0
1
@apfitzge
Andrew Fitzgerald
11 months
1
0
2
@apfitzge
Andrew Fitzgerald
9 months
@bqbrady we've got a unique leader for each slot, so iirc there's only gonna be 1 block(hash) for each valid block. could have malicious leader produce multiple blocks, which we have some special handling for. potentially leads to forking w/ multiple blockhashes per slot, not sure.
0
0
2
@apfitzge
Andrew Fitzgerald
5 months
@0xMert_ @PierreArowana your rpcs forward to leaders until tx is processed or expired, right?
1
0
0
@apfitzge
Andrew Fitzgerald
5 months
TIL git rebase has an —update-refs flag!? 🤯
0
0
1
@apfitzge
Andrew Fitzgerald
5 months
@CantelopePeel It’s a loose term, so depends what you mean. But there are definitely things that are essentially effortless to parallelize. Monte Carlo simulation is a classic example
1
0
1
@apfitzge
Andrew Fitzgerald
1 year
@CantelopePeel @ceterispar1bus @0x_Osprey @markodayan @7LayerMagik Not as familiar with the purpose the tick boundary serves, it doesn’t seem necessary to me either though. Not sure I agree with structuring entries as DAGs. I go the other way and feel should remove restrictions on entries rather than further restricting the format.
2
0
1
@apfitzge
Andrew Fitzgerald
5 months
@0xMert_ @PierreArowana 1.18 will not 100% fix this - nothing will. If there are a million higher-paying that conflict with your tx, it will likely expire. No amount of optimization in the scheduler will let us get around the current account/block limits.
1
0
1
@apfitzge
Andrew Fitzgerald
1 year
@fd_ripatel @markodayan @7LayerMagik Current labs client uses pessimistic concurrency (locks held from start of execution to end of commit). This is a consequence of synchronous execution - and there’s a few protocol reasons we do this to ensure valid block creation. These could be relaxed in the future
0
0
1
@apfitzge
Andrew Fitzgerald
7 months
@aeyakovenko @7LayerMagik @solflare_wallet need to think about it more, but I think if we go towards async we'll need to separate vote-processing from non-vote txs. That processing should also be optimized... At that point, might make sense to also explicitly separate vote/non-vote block limits?
1
0
1
@apfitzge
Andrew Fitzgerald
1 year
@CantelopePeel @ceterispar1bus @0x_Osprey @markodayan @7LayerMagik I suppose my thought is that I already don’t trust their transactions, by some DAG ordering now I have to check they did that correctly as well. I’m not sure that’s less expensive than me just building a DAG myself
0
0
1
@apfitzge
Andrew Fitzgerald
1 year
@CantelopePeel @ceterispar1bus @0x_Osprey @markodayan @7LayerMagik Think the validating node should receive and accept minimal set of info from leader in order to check their block is valid
0
0
1
@apfitzge
Andrew Fitzgerald
4 months
this is not at time of launch, just when i happen to grab the screenshot off of @SolanaCompass
0
0
1
@apfitzge
Andrew Fitzgerald
1 year
@mfrager @7LayerMagik @thehasheddude @dubbel06 @0xMert_ @cryptomiester Separating state would help to a point - too much and you increase cost/execution time from loading a bunch of accounts. And will only help if they are written to separately. If they all write to some common account then that'd still be a bottleneck
0
0
1
@apfitzge
Andrew Fitzgerald
5 months
@0xMert_ @PierreArowana yeah sounds right. it's still not gonna be totally deterministic, and you want to get to leader as early as possible. if tx has highest priority when scheduling starts it will still get in before a higher-priority tx that shows up near end of block. we don't re-order after record
0
0
1
@apfitzge
Andrew Fitzgerald
6 months
@aeyakovenko 546 just started recently, I'm guessing this spike will go down as the epoch continues. I'd guess seeing congestion early on that makes this look exaggerated.
1
0
1
@apfitzge
Andrew Fitzgerald
5 months
@0xMert_ @PierreArowana 1.18 scheduler will greatly increase the changes you get included if you are close to top-priority for whatever state you're accessing.
1
0
1