Bump google.golang.org/grpc in the go_modules group across 1 directory (#274)
Bumps the go_modules group with 1 update in the / directory: google.golang.org/grpc.
Updates
google.golang.org/grpcfrom 1.82.0 to 1.82.1
updated-dependencies:
- dependency-name: google.golang.org/grpc dependency-version: 1.82.1 dependency-type: direct:production dependency-group: go_modules …
Signed-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
fabric-x-evm
Run Ethereum smart contracts on Hyperledger Fabric-X.
fabric-x-evm adds an Ethereum-style JSON-RPC API and a native EVM to Fabric, so you can deploy unmodified Solidity contracts and use the tooling you already know - Hardhat, Foundry, MetaMask - against a permissioned, enterprise blockchain.
By embedding the EVM inside Fabric you get the Ethereum contract ecosystem and developer experience while keeping Fabric’s enterprise strengths: fine-grained access control, privacy, deterministic consensus, and high performance. Existing Ethereum assets, skills, and tools carry over with no rewrite — lowering the barrier for organizations that want Ethereum compatibility in a permissioned setting.
Highlights
:8545(chain ID4011/0xfab).Try it out
The fastest way to see Fabric-X EVM in action is in the samples repository. It includes a full network, a block explorer, and a token deploy-and-transfer demo. No need to clone or build this repo.
👉 hyperledger/fabric-x-samples → evm
Documentation
Building and running from source
This section is for developing against locally built code. If you just want to use the chain, the samples repo above is the easier path.
You’ll need Go and Docker (or Podman) for the Fabric-X network.
Build the
fxevmbinary:Bring up a local Fabric-X network (committer + application namespace):
Then run the gateway from your local build, pointed at that network. The sample config uses paths relative to
integration/, so run it from there:The gateway now serves Ethereum JSON-RPC at http://localhost:8545 (chain ID
4011) — point any Ethereum tooling at it. Stop the network with:Configuration
The gateway is configured via a YAML file passed to the
startcommand with-c:See
integration/fabx.yamlfor a complete annotated example. The top-level sections are:loggingnetworkfabricorfabric-x)gatewayendorsersEnvironment variable overrides
Any config field can be overridden at runtime without editing the file. The variable name is
GATEWAY_<SECTION>_<FIELD>, uppercased with dots and hyphens replaced by underscores. For example:Testing
Unit tests
Integration tests
Some integration tests rely on the
ethereum/testscorpus, vendored as a git submodule undertestdata/ethereum-tests. Initialize it once before running those tests:The newer
ethereum/execution-specsconformance fixtures (Osaka+) are fetched separately — they are downloaded and checksum-verified into a gitignoredtestdata/execution-specs-tests/directory rather than vendored as a submodule:Local
The simplest integration tests don’t require a Fabric network, but still exercise the basic functionality of creating read/write sets out of EVM transactions, and subsequently reading them.
Fabric-X
Generate the crypto material once:
Then start the Fabric-X testcontainer and create the namespace, run the integration tests against it, and stop it again:
The container does not keep state.
Fablo
Start the network, run the integration tests, and stop it again:
Build your own contracts
Because the gateway speaks standard Ethereum JSON-RPC, any Solidity tutorial works unchanged — just point the tool’s network at the gateway instead of a public testnet:
http://localhost:85454011Good starting points, pointed at the URL above:
forge create --rpc-url http://localhost:8545 ...or send transactions withcast send --rpc-url http://localhost:8545 ....hardhat.config.jswithurl: "http://localhost:8545"andchainId: 4011, then deploy as usual.A few things differ from a public chain — see Compatibility for the details (gas/fee fields are stubbed, access control is Fabric’s, etc.). For a complete worked example, see the samples repo.
License
This repository uses different licenses for different components:
LICENSE.LGPL3)LICENSE.Apache2)SPDX License Expression