@a16z/helios (韩语)
Helios是一个无信任,高效,可移植的Ethereum光客户端,由TypeScript为web和Node.js环境装订而成. 它同时作为UMD和ES模块而来.
安装和基本设置示例
1. 利用国家预防机制安装
安装软件包 :
npm install @a16z/helios
工程的基本用途(例如:, index.js 或者说 index.mjs 或者说 main.ts:
import { createHeliosProvider } from '@a16z/helios';
async function main() {
// Create provider - WASM initialization is handled automatically
const heliosProvider = await createHeliosProvider({
executionRpc: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY',
consensusRpc: 'https://ethereum.operationsolarstorm.org',
network: 'mainnet',
checkpoint: "0x..."
}, 'ethereum');
await heliosProvider.waitSynced();
console.log('Helios is synced and ready!');
// Example: Get latest block number
const blockNumber = await heliosProvider.request({ method: 'eth_blockNumber', params: [] });
console.log('Latest block number:', parseInt(blockNumber, 16));
}
main().catch(console.error);
2. 从CDN装入网页
对于快速测试,可以像unpkg一样使用CDN在HTML文件中直接尝试Helios.
作为UMD模块:
<!DOCTYPE html>
<html>
<head>
<title>Helios UMD Test</title>
<script src="https://unpkg.com/@a16z/helios/dist/lib.umd.js"></script>
</head>
<body>
<script>
async function main() {
// Helios is available via global variable `helios`
const provider = await helios.createHeliosProvider({
executionRpc: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY',
consensusRpc: 'https://ethereum.operationsolarstorm.org',
network: 'mainnet',
checkpoint: "0x..."
}, 'ethereum');
await provider.waitSynced();
console.log('Helios is ready!');
}
main().catch(console.error);
</script>
</body>
</html>
作为ES模块:
<!DOCTYPE html>
<html>
<head>
<title>Helios ESM Test</title>
</head>
<body>
<script type="module">
import { createHeliosProvider } from 'https://unpkg.com/@a16z/helios/dist/lib.mjs';
async function main() {
const provider = await createHeliosProvider({
executionRpc: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY',
consensusRpc: 'https://ethereum.operationsolarstorm.org',
network: 'mainnet',
checkpoint: "0x..."
}, 'ethereum');
await provider.waitSynced();
console.log('Helios is ready!');
}
main().catch(console.error);
</script>
</body>
</html>
作为EIP-1193供应商的使用
赫利俄斯可以用作EIP-1193供应商. 初始化和同步后(如上文实例所示), heliosProvider 与viem,ethes.js,web3.js等库一起使用.
有viem的示例:
import { createPublicClient, custom } from 'viem';
import { mainnet } from 'viem/chains';
import { createHeliosProvider } from '@a16z/helios';
// Create and sync Helios provider
const heliosProvider = await createHeliosProvider({
executionRpc: 'https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY',
consensusRpc: 'https://lodestar-mainnet.chainsafe.io',
network: 'mainnet',
checkpoint: "0x..."
}, 'ethereum');
await heliosProvider.waitSynced();
// Use with viem
const client = createPublicClient({
chain: mainnet,
transport: custom(heliosProvider)
});
const blockNumber = await client.getBlockNumber();
console.log('Latest block number:', blockNumber);
清理
如果赫利俄斯被用作运输工具 ethers 或者说 viem,电话 EthersProvider.destroy() 不破坏赫利俄斯的例子 也不停止背景任务.
适当清理,打电话 shutdown() (或其别名) destroy()在您的Helios提供方实例中正确释放资源:
// Clean up when done
await heliosProvider.shutdown();
此程序不订阅所有活动订阅, 中止背景任务, 删除事件听众, 并释放 WASM 内存 。 这种方法具有一能性——多次称呼是安全的. 在引用Helios供应商的例子之后,将收集垃圾.
文档
见 螺旋起重力 更多细节.
许可证
这个项目根据麻省理工学院许可证获得许可----详情请见主要存放处.