The cutting edge never stops in web3. Give developers the tools to stay ahead of the curve with devnets that they can compose to their needs… like you would a kebab. Spin up future proofed environment packages, spun up with one line, now for Arbitrum.
How would you describe kebabs? They’re composable. You can pick your meat and veggies, cook them the way you want, season them the way you want - just like how your devnet should be. Why do you need composable devnets? Because blobs are coming, among other things.
Innovations like Arbitrum stylus change the game for web3 developers. Yet even newer incoming innovations like proto-dank-sharding have ripple effects across our current favorite tools and projects. Being able to quickly against these changes, test them thoroughly, and stay ahead of these advancements is key.
Blobs are coming. Are you ready?
Current nitro devnets on Ethereum can already be spun up with one line through a complex docker compose and bash script implementation. However they are challenging to keep updated in a first class way, let alone account for incoming changes like blobs and customizations like changing contract size limits. Furthermore, current devnets only spin up one node using outdated images and flags, meaning developers aren’t able to build against true L1 behavior, leaving blindspots as Ethereum advances underneath.
The Arbitrum Stylus Package sets up a full Arbitrum Stylus development environment in a single command, over Docker or Kubernetes, and comes with a full Ethereum node with EIP4844 support out-of-the-box.
We are using an environment packaging and runtime tool called Kurtosis to define and run this composable Arbitrum devnet. In addition to helpful properties including parameterization and high readability due to a Pythonic syntax, our devnet inherits benefits from the ethereum-package and its sub-components, an environment definition currently used by the Ethereum Foundation, Flashbots, and many other client teams to test Dencun
Beyond blobs, reasons why Arbitrum Stylus Package slaps like a fresh old town kebab:
Blobs are only part of the story. The key is that our environment is easy to build on with low switching cost due to the high readability and walk up usability of Starlark, opposed to the relative monolith complex Docker Compose files and bash scripts are without a high degree of specific expertise. We want our environment to provide developers the freedom to customize and parameterize their environments to build what they want, how they want, to scale the future of Arbitrum and beyond.
The real blobs are the friends we made along the way.
The Arbitrum Stylus package uses a developer tool called Kurtosis to instantiate a full, bleeding edge Arbitrum Stylus development environment over Docker or Kubernetes with a single command. The environment that gets spun up will work over Docker or Kubernetes, is easier to maintain/read, and comes with a full Dencun-ready Ethereum node for EIP4844 blob testing.
The package is written using a Python dialect called Starlark which is an imperative scripting language that is well suited for handling sequential set up logic, dynamic dependency passing, and file generation & mounting required for spinning up complex systems like blockchains.
Specifically, the package gracefully handles:
Under the hood, the Kurtosis package uses:
To demonstrate the capabilities of this package, we used the Cargo Stylus CLI to deploy a Rust smart contract onto the Arbitrum node. Our sample smart contract uses the Ink! smart contract library for the Substrate blockchain framework. The contract represents a staking system with rewards. Key functionalities include:
In summary, the contract facilitates staking, rewards accumulation, and withdrawal, all while integrating with ERC20 tokens.