Bringing solana's ebpf based smart-contract execution to polkadot

hey guys! just wanted to know what you guys think about bringing ebpf to the polkadot ecosystem. for those who don’t know, solana uses ebpf runtime in the userland to execute their smart contracts.

the reason why i like their execution model is because of the program verification done by the ebpf runtime before it is executed.

what do you all think?

more info here:

1 Like

I’d be keen to see a parachain bringing this to the ecosystem.

What a coincidence. @pepyakin and me did a hackathon last week with exactly this subject. We ported pallet-contracts to to accept eBPF contracts to see if it is viable to support this bytecode. It isn’t Solana compatible but uses the pallet-contracts API.

We got a proof of concept working. There will be a writeup posted later this week.


@abhi , could you explain more about this? I tried searching but couldn’t find a good explanation of what kind of verification is being done.

1 Like

I think what they are talking about here is the static verification that the kernel uses to elide gas metering and bound checks. However, Solana uses a modified eBPF which is turing complete and does all of this at runtime.

So this doesn’t really apply here. Using the original eBPF would be a real PITA. Contracts would need to be written in a way to be statically proofen to terminate. Gas metering doesn’t add enough overhead to justify this IMHO.


@Alex thanks for explaining.

What does that stand for?

As promised here is my part of the report eBPF contracts hackathon