solana-labs / rbpf

Rust virtual machine and JIT compiler for eBPF programs
Apache License 2.0
267 stars 161 forks source link

eBPF Standardization #382

Open qmonnet opened 1 year ago

qmonnet commented 1 year ago

Hi folks,

This is not a regular issue about Solana's rbpf.

I'm writing to let you know that there is an undergoing effort to define a more formal specification of eBPF, and to publish it as a “standard” for eBPF (to be hosted by the eBPF Foundation). This specification tries to account for the different implementations existing to date, including in Linux, ebpf-for-windows, uBPF, and the initial rbpf project too.

I know that Solana has been using eBPF, but there are not many bonds between your community and the rest of the BPF developers/users on other platforms (as far as I know). You are likely the main users of rbpf, so I thought I'd let you know, in case you want to get involved in this effort (if you wanted to be compliant to the standard in the future - the original rbpf may need some adjustments to be compliant, and I have no idea to what extent Solana's fork diverged from it), or at least so that you are aware of it.

Some relevant links:

Of course, everybody's welcome to join the discussions.

[EDIT: This issue is just FYI, no action item here, so you can close it anytime.]

alessandrod commented 1 year ago

Hey 😊

Thanks for the heads up - those docs look great!

solana_rbpf has diverged significantly from eBPF and we have started calling our variant SBF to better reflect that. That said we did fix and harden a bunch of things in rbpf and have been talking about potentially contributing back some of our changes. It's just a bit tricky since we have diverged a lot in project structure etc.

qmonnet commented 1 year ago

Oh, I hadn't noticed that you were involved here. Good, more ties than I thought, then :)

OK, SBF as a name makes sense to me in that case. That's a good move, makes it less confusing.

Regarding upstreaming your changes to rbpf, I'm totally open to that, it would be great! The initial project has been pretty inactive so there shouldn't be much in terms of conflicts. About the changes on the project structure, I don't mind too much if it changes, given that you're the actual users of it. I'd like rbpf to comply with the eBPF standard under preparation, so maybe there will be friction around that (I don't know), but otherwise I'm pretty open.