Skip to main contentOpenGDP’s execution environment is designed to feel instantly familiar to developers. This is achieved through a deep integration of the Ethereum Virtual Machine (EVM), combined with native extensions that expose OpenGDP’s unique features.
EVM and Geth Integration
The EVM is the runtime that executes smart contracts. It processes opcodes deterministically to update the blockchain state.
OpenGDP achieves full compatibility by directly integrating Go-Ethereum (Geth), the most widely used Ethereum client. This choice provides key benefits:
- Exact Compatibility: OpenGDP’s EVM is not an imitation but Geth itself. Any smart contract that runs on Ethereum will execute identically on OpenGDP, with no behavioral differences.
- Security and Reliability: By adopting Geth, OpenGDP inherits years of audits, optimizations, and real-world battle-testing from Ethereum, offering a proven execution environment.
For developers, this means Solidity contracts behave exactly as expected, without any changes.
Applications, wallets, and developer tools interact with the EVM through JSON-RPC. Because OpenGDP integrates Geth, it exposes the same RPC interface as other major EVM chains.
This enables direct use of the existing Ethereum tooling ecosystem:
- Frameworks: Hardhat and Foundry can compile, test, and deploy contracts on OpenGDP with minimal configuration changes.
- Wallets: MetaMask and other wallets connect to OpenGDP and sign transactions seamlessly.
- Frontend Libraries: Ethers.js, Web3.js, Viem.sh work out of the box for building dApps.
- IDEs: Remix and similar environments can be used for prototyping and deployment.
This parity allows developers to reuse existing infrastructure and tools, therefore removing any learning curve required to build on OpenGDP.
Precompiled Contracts
While the EVM is flexible, it is sandboxed for security. Precompiled contracts, also known as precompiles, provide a secure way to extend it with OpenGDP’s native functionality.
Precompiles work as follows:
- Reserved Addresses: Certain addresses are reserved for precompiles and do not contain bytecode.
- Native Implementation: Logic is implemented directly in Go within the OpenGDP node, allowing for execution to be fast and efficient.
- CALL Handling: When a contract issues a CALL to a precompiled address, the EVM diverts execution to the native Go implementation.
- Return to EVM: The result is returned to the contract as if it had called another Solidity contract.
Precompiles are used for two purposes:
- Performance: Accelerating heavy cryptographic operations that would be costly inside the EVM.
- Native Features: Exposing OpenGDP-specific capabilities, such as governance or exchange primitives, to staking.