27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
# The LAMPORT execution environment
|
||
|
||
## Introduction
|
||
|
||
With LAMPORT (Language-Agnostic, Memory-oriented, Parallel-friendly, Optimized
|
||
Run-Time), we can execute smart contracts concurrently, and written in the
|
||
client’s choice of programming language. Furthermore, we demonstrate Solana’s
|
||
built-in smart contract language Budget can target LAMPORT without any loss in
|
||
performance. The two features that allow LAMPORT to work:
|
||
|
||
Client-owned memory identified by public keys. By declaring ownership upfront
|
||
and separating the program’s state from the program, the runtime knows which
|
||
contracts can safely be executed concurrently. Solana’s blockchain-encoded VDF
|
||
tells validator nodes at precisely what times they need to end up in the same
|
||
state. Between those times, they are free to introduce non-deterministic
|
||
behavior as-needed to improve execution times.
|
||
|
||
## Toolchain Stack
|
||
|
||
<img alt="SDK tools" src="img/sdk-tools.svg" class="center"/>
|
||
|
||
As shown in the diagram above an untrusted client, creates a program in the
|
||
front-end language of her choice, (like C/C++/Rust/Lua), and compiles it with
|
||
LLVM to a position independent shared object ELF, targeting BPF bytecode.
|
||
Solana will safely load and execute the ELF.
|
||
|