揭秘以太坊与Solana双链开发:如何用Python构建高性能DApp?

第一章:区块链与Web3开发:Web3.py智能合约与PySolana实战教程

随着去中心化应用(DApps)的快速发展,Python 在区块链开发中的角色日益重要。通过 Web3.py 和 PySolana 等工具,开发者能够以简洁高效的方式与以太坊和 Solana 区块链进行交互,实现智能合约部署、交易签名及链上数据读取等核心功能。

连接以太坊节点并发送交易

使用 Web3.py 连接以太坊网络前,需配置 RPC 服务端点。以下代码展示如何通过 Infura 连接并查询账户余额:

# 安装依赖: pip install web3
from web3 import Web3

# 连接到以太坊主网(替换 YOUR_INFURA_PROJECT_ID)
infura_url = "https://mainnet.infura.io/v3/YOUR_INFURA_PROJECT_ID"
web3 = Web3(Web3.HTTPProvider(infura_url))

# 检查连接状态
if web3.is_connected():
    print("成功连接到以太坊节点")

# 查询指定地址余额(例如:vitalik.eth)
address = "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
balance = web3.eth.get_balance(address)
print(f"余额: {web3.from_wei(balance, 'ether')} ETH")

在 Solana 上使用 PySolana 发送代币

PySolana 是 Python 中用于与 Solana 区块链交互的轻量级库,支持钱包管理与交易构建。

  1. 安装 PySolana:pip install pysolana
  2. 生成密钥对并获取测试代币(可通过 Solana 测试网水龙头)
  3. 构建并签名转账交易

常用区块链开发库对比

库名称支持链主要功能安装命令
Web3.pyEthereum智能合约调用、事件监听pip install web3
PySolanaSolana交易构建、钱包操作pip install pysolana

第二章:以太坊开发环境搭建与Web3.py核心应用

2.1 以太坊节点连接与Web3.py基础配置

要与以太坊区块链交互,首先需建立与节点的连接。最常见的方式是通过HTTP或WebSocket连接本地或远程的Geth、Infura等节点服务。
安装与初始化Web3.py
使用pip安装Web3.py库:
pip install web3
该命令安装支持以太坊交互的核心库,包含RPC封装、合约调用、事务签名等功能模块。
连接到以太坊节点
通过Infura提供的API连接以太坊主网:
from web3 import Web3

# 使用Infura的HTTP端点
infura_url = "https://mainnet.infura.io/v3/YOUR_PROJECT_ID"
web3 = Web3(Web3.HTTPProvider(infura_url))

# 验证连接状态
if web3.is_connected():
    print("成功连接至以太坊网络")
    print(f"当前区块高度: {web3.eth.block_number}")
代码中YOUR_PROJECT_ID需替换为Infura项目ID;web3.eth.block_number获取最新区块号,验证数据同步有效性。

2.2 使用Web3.py读取链上数据与事件监听

在区块链应用开发中,获取实时链上数据和监听智能合约事件是核心需求。Web3.py 提供了简洁的接口来实现这些功能。
连接以太坊节点
通过 HTTP 或 WebSocket 连接节点是第一步:
from web3 import Web3

# 使用 Infura 或本地节点
w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/YOUR_PROJECT_ID'))
if w3.is_connected():
    print("成功连接到以太坊节点")
Web3.HTTPProvider 指定节点地址,w3.is_connected() 验证连接状态。
读取区块与交易信息
可同步获取最新区块及其中的交易数据:
# 获取最新区块
latest_block = w3.eth.get_block('latest')
print(latest_block['number'])
返回的区块对象包含 transactions 列表,可用于进一步解析。
监听智能合约事件
使用过滤器监听合约日志事件:
  • 创建事件过滤器:监听特定合约的特定事件
  • 轮询新事件:通过 get_new_entries() 获取增量事件
  • 处理回调逻辑:对每条事件执行业务操作

2.3 编译、部署Solidity智能合约的Python自动化流程

在区块链开发中,使用Python自动化编译与部署Solidity智能合约可显著提升开发效率。通过`solc`编译器与`web3.py`库的结合,开发者能够在本地完成完整部署流程。
环境准备与依赖安装
首先需安装`py-solc-x`用于调用Solidity编译器,以及`web3.py`连接以太坊节点:
pip install py-solc-x web3
该命令安装核心依赖,确保后续编译和链上交互功能可用。
自动编译Solidity合约
使用以下代码读取并编译`.sol`文件:
from solcx import compile_source

compiled_sol = compile_source(
    open('SimpleStorage.sol').read(),
    output_values=['abi', 'bin']
)
compile_source解析Solidity源码,返回ABI接口和字节码(bin),为部署做准备。
通过web3.py部署到本地链
连接Ganache或本地Geth节点后,加载账户并发送部署交易:
w3 = Web3(Web3.HTTPProvider("http://127.0.0.1:8545"))
contract = w3.eth.contract(abi=abi, bytecode=bin)
tx_hash = contract.constructor().transact({'from': w3.eth.accounts[0]})
constructor()初始化合约构造函数,transact发起部署交易,最终实现自动化部署闭环。

2.4 基于Web3.py实现钱包交互与交易签名

在以太坊生态中,Web3.py 是与区块链节点交互的核心工具。通过它,开发者可轻松管理钱包、构建并签名交易。
连接以太坊节点
使用 Infura 或本地 Geth 节点建立连接:
from web3 import Web3
w3 = Web3(Web3.HTTPProvider("https://mainnet.infura.io/v3/YOUR_PROJECT_ID"))
if w3.is_connected():
    print("成功连接至以太坊网络")
HTTPProvider 指定节点地址,is_connected() 验证连接状态。
钱包与交易签名
加载私钥生成账户对象,并对交易进行本地签名:
account = w3.eth.account.from_key("YOUR_PRIVATE_KEY")
transaction = {
    'to': '0x...',
    'value': w3.to_wei(0.1, 'ether'),
    'gas': 21000,
    'gasPrice': w3.eth.gas_price,
    'nonce': w3.eth.get_transaction_count(account.address),
    'chainId': 1
}
signed_txn = account.sign_transaction(transaction)
tx_hash = w3.eth.send_raw_transaction(signed_txn.rawTransaction)
sign_transaction 在本地完成签名,确保私钥不暴露;send_raw_transaction 广播交易。
关键参数说明
  • nonce:防止重放攻击,需获取当前账户的发送次数
  • chainId:标识网络类型,主网为1,避免跨链重放
  • rawTransaction:签名后的原始字节数据,用于上链提交

2.5 Gas优化策略与链上操作性能调优

在以太坊等智能合约平台中,Gas消耗直接影响交易成本与执行效率。优化Gas使用不仅是降低用户开销的关键,更是提升系统整体性能的核心手段。
存储访问优化
频繁的存储读写是Gas消耗的主要来源。应优先使用memory而非storage,并尽量减少状态变量修改。

// 优化前:多次写入存储
for (uint i = 0; i < list.length; i++) {
    data[i] = i; // 高Gas消耗
}

// 优化后:使用内存暂存,最后统一更新
uint[] memory temp = new uint[](list.length);
for (uint i = 0; i < temp.length; i++) {
    temp[i] = i;
}
data = temp;
上述代码通过将循环中的存储写入改为内存操作,显著减少了SSTORE指令调用次数,从而节省Gas。
函数调用与可见性设置
  • 内部函数使用internal或private可避免外部调用开销
  • 纯函数标注pure或view有助于编译器优化

第三章:Solana生态与PySolana开发实战

3.1 Solana架构解析与PySolana库快速入门

Solana核心架构概述
Solana采用独特的历史证明(PoH)机制,结合验证者节点的时间戳排序,实现高吞吐与低延迟。其架构包含账本复制、权益加权投票与Tower BFT共识协议,支持每秒数万笔交易。
PySolana库安装与初始化
通过pip安装PySolana客户端:
pip install pysolana
该库提供与Solana区块链交互的Python接口,适用于构建钱包、查询交易及部署程序。
连接到Solana网络
使用PySolana连接主网或开发网:
from solana.rpc.api import Client
client = Client("https://api.devnet.solana.com")
参数说明:传入Devnet RPC端点可进行测试环境交互,生产环境应替换为Mainnet-B地址。client实例支持get_balance、send_transaction等链上操作。

3.2 使用PySolana实现账户管理与代币转账

创建与管理Solana账户
在PySolana中,可通过Keypair类生成新的账户密钥对。每个账户由公钥和私钥组成,是链上身份的基础。
from pysolana.keypair import Keypair

# 生成新账户
account = Keypair()
print(f"Public Key: {account.public_key}")
print(f"Secret Key: {account.secret_key}")
上述代码生成一个符合Ed25519算法的密钥对,public_key用于接收资产,secret_key必须严格保密。
执行代币转账
使用Transaction构建转账操作,需指定发送方、接收方及金额(以lamports为单位)。
  • 连接到Solana主网或测试网RPC节点
  • 构建交易并签名
  • 发送至网络并查询状态
from pysolana.transaction import Transaction
from pysolana.connection import Connection

# 建立连接
conn = Connection("https://api.devnet.solana.com")

# 构建交易
tx = Transaction().add_transfer(
    from_pubkey=account.public_key,
    to_pubkey="RecipientPublicKey",
    lamports=1000000  # 0.001 SOL
)

# 签名并发送
tx.sign(account)
tx_id = conn.send_transaction(tx)
print(f"Transaction ID: {tx_id}")
该流程确保资金安全转移,所有操作均在链上验证。

3.3 Anchor框架下智能合约调用与状态读取

在Anchor框架中,智能合约的调用通过客户端生成的RPC请求实现,开发者可利用TypeScript SDK自动生成的接口方法与链上程序交互。
合约调用示例

const tx = await program.methods
  .increment()
  .accounts({ counter: counterPubkey })
  .rpc();
上述代码调用名为increment的方法,指定关联账户counter并发送RPC交易。其中program为Anchor生成的客户端实例,methods映射合约中的指令函数。
状态读取机制
通过fetch方法可读取PDA(程序派生地址)对应的状态:

const accountData = await program.account.counter.fetch(counterPubkey);
返回对象包含反序列化后的字段,如count: BN,便于前端展示。Anchor自动处理Borsh序列化格式解析。
  • 调用前需确保账户已初始化
  • 所有方法均返回Promise,需异步处理

第四章:双链DApp架构设计与高性能实现

4.1 跨链状态同步机制与数据一致性保障

在跨链系统中,确保不同区块链之间的状态同步与数据一致性是核心挑战之一。为实现这一目标,通常采用中继链或轻客户端验证机制。
数据同步机制
跨链通信依赖于轻客户端验证源链区块头,并通过默克尔证明验证特定状态。该过程可形式化如下:
// 验证跨链消息的 Merkle Proof
func VerifyMerkleProof(root []byte, proof [][]byte, leaf []byte, index uint64) bool {
    hash := leaf
    for _, sibling := range proof {
        if index%2 == 0 {
            hash = sha256.Sum256(append(hash, sibling...))
        } else {
            hash = sha256.Sum256(append(sibling, hash...))
        }
        index /= 2
    }
    return bytes.Equal(hash[:], root)
}
上述代码实现了默克尔路径验证逻辑:从叶节点出发,逐层向上计算哈希,最终与已知根哈希比对,确保数据未被篡改。
一致性保障策略
  • 使用最终性确定机制(如 Tendermint 共识)防止分叉回滚
  • 引入超时与重试机制应对网络延迟
  • 通过事件序列号保证操作顺序一致

4.2 构建统一API层整合以太坊与Solana后端服务

为实现跨链应用的无缝交互,构建统一API层成为连接以太坊与Solana的关键。该层屏蔽底层区块链差异,提供一致的接口供前端调用。
统一请求适配器设计
通过封装通用RESTful接口,将不同链的SDK抽象为统一服务:
// ChainAdapter 统一接口定义
type ChainAdapter interface {
    GetBalance(address string) (*big.Float, error)
    SendTransaction(txData []byte) (string, error)
    GetLatestBlock() (uint64, error)
}
上述接口在以太坊和Solana实现中分别调用ethclient与solana-go-sdk,确保上层逻辑无需感知链特异性。
响应格式标准化
使用统一JSON结构返回数据,便于前端解析:
字段类型说明
chainstring链标识(ethereum/solana)
blockNumbernumber最新区块高度
statusstring请求状态

4.3 利用异步IO与缓存提升DApp响应性能

在去中心化应用(DApp)中,区块链节点通信常带来高延迟。采用异步IO可避免阻塞主线程,提升并发处理能力。
异步数据读取示例
async function fetchBalance(address) {
  const response = await fetch(`/api/balance/${address}`);
  return response.json();
}

// 并发获取多个账户余额
Promise.all([
  fetchBalance('0x123'),
  fetchBalance('0x456')
]).then(balances => console.log(balances));
上述代码通过 async/await 实现非阻塞请求,并利用 Promise.all 并行处理多个IO任务,显著缩短总响应时间。
本地缓存优化策略
使用内存缓存(如Redis或浏览器Cache API)存储频繁访问的链上数据,减少重复请求。设置合理的TTL(Time-To-Live)以保证数据新鲜度。
  • 缓存键设计:结合地址与方法名生成唯一键
  • 失效机制:交易触发后主动清除相关缓存
  • 降级策略:缓存异常时回退至直接链读取

4.4 安全模型设计:私钥管理与用户身份验证

在分布式系统中,安全模型的核心在于私钥的生命周期管理与可靠的身份验证机制。为确保密钥不被泄露,推荐使用硬件安全模块(HSM)或可信执行环境(TEE)进行私钥存储。
密钥分片与恢复机制
采用 Shamir's Secret Sharing 方案将私钥分片存储,提升容灾能力:

// SplitKey 将私钥分割为 n 份,至少需要 t 份才能恢复
func SplitKey(secret []byte, total, threshold int) ([][]byte, error) {
    return shamir.Split(secret, total, threshold)
}
该函数输出的分片可分布式存储,仅当满足阈值数量时才能重构原始密钥,有效防止单点泄露。
多因素身份验证流程
用户登录需通过以下步骤:
  • 第一因素:密码哈希校验(PBKDF2-SHA256)
  • 第二因素:基于时间的一次性密码(TOTP)
  • 第三因素:设备指纹绑定
此三层验证显著降低账户盗用风险,结合速率限制策略可抵御暴力破解攻击。

第五章:总结与展望

技术演进中的实践路径
在微服务架构的持续演进中,服务网格(Service Mesh)已成为解决分布式系统通信复杂性的关键技术。以 Istio 为例,通过将流量管理、安全认证与可观测性从应用层剥离,开发者可专注于业务逻辑实现。
  • 基于 Envoy 的 sidecar 代理实现无侵入式监控
  • 使用 mTLS 自动加密服务间通信
  • 通过 VirtualService 实现灰度发布策略
代码级优化实例
以下 Go 语言示例展示了如何在 HTTP 客户端中启用连接复用,提升微服务调用性能:

client := &http.Client{
    Transport: &http.Transport{
        MaxIdleConns:        100,
        MaxIdleConnsPerHost: 10,
        IdleConnTimeout:     30 * time.Second,
    },
}
// 复用 TCP 连接减少握手开销
resp, err := client.Get("http://service.example/api")
未来架构趋势分析
技术方向当前挑战应对方案
Serverless 集成冷启动延迟预热机制 + 轻量运行时
边缘计算部署网络异构性自适应服务发现
[客户端] → (负载均衡) → [API 网关] ↓ [服务注册中心] ↔ [健康检查] ↓ [微服务A] ⇄ [Sidecar] ⇄ [微服务B]

相关推荐

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

anchor 智能合约 IDL 调用

本文介绍了使用Anchor框架开发Solana智能合约的完整流程。首先用Rust编写包含四个方法的智能合约(初始化、重置、累加、累减),部署到dev链并生成IDL文件;然后通过anchor-go库将IDL转换为Go代码;最后利用生成的Go代码调用智能合约,并通过区块链浏览器验证调用结果。整个过程展示了从合约开发到实际调用的完整技术链路,重点演示了如何使用IDL自动生成代码来简化合约调用流程。

唐僧的专栏 719

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

Infura

Infura

2301_78240244的博客 1112

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

Infura的基本用途和具体实例

Infura 是一个由 ConsenSys 开发的以太坊基础设施服务提供商,它可以让开发人员轻松地与以太坊网络进行交互,而无需自己运行和维护一个以太坊节点。

m0_70127749的博客 1520

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

用 Python 制作 NFT 区块链作品(上)

在本文中,我们将学习如何使用 Brownie、Python 和 Chainlink 来制作非同质化的 NFT 作品,并在 OpenSea NFT 市场上展示和销售我们的成果。什么是 NFT...

Python中文社区 3万+

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

手把手教你用Python部署智能合约(含以太坊与Solana双链对比)

掌握区块链与Web3开发核心技能,手把手教你使用Web3.py和PySolana部署以太坊与Solana智能合约。涵盖双链交互、合约编译部署、Python实战代码,对比性能差异与适用场景。深入浅出,适合开发者快速上手,区块链与Web3开发:Web3.py智能合约与PySolana实战教程值得收藏。

PixelShoal的博客 1098

西工大noj100题python2024第一季1-10

【代码】西工大noj100题python2024第一季1-10。

weixin_70523540的博客 1800

智能合约开发进阶之路,基于Python的Web3与Solana项目实战全解析

掌握区块链与Web3开发核心技能,本文深入讲解Web3.py与PySolana实战应用,涵盖智能合约部署、交互及Solana链上项目开发。适用于以太坊与高性能公链场景,提供完整Python实现路径,提升开发效率。区块链与Web3开发:Web3.py智能合约与PySolana实战教程,值得收藏。

CodeTrick的博客 687

QGC二次开发实战指南(一):从零构建自定义地面站界面

本文详细介绍了QGC二次开发实战指南,从零开始构建自定义地面站界面。通过QT和QML技术结合MAVLINK协议,开发者可以打造适合特定业务场景的无人机监控系统,提升操作效率与用户体验。文章包含环境搭建、界面设计、数据绑定等完整开发流程,是QGC二次开发的实用教程。

weixin_28693683的博客 496

HFSS实战:手把手教你设计微带发夹线滤波器(附完整参数计算流程)

本文详细介绍了使用HFSS设计微带发夹线滤波器的完整流程,包括参数计算、HFSS建模和优化策略。通过实战案例,帮助读者掌握微波滤波器设计的核心技巧,特别是奇偶模阻抗计算和HFSS仿真中的关键设置,适用于通信系统设计和射频工程应用。

weixin_29251567的博客 441

WEB3全栈开发——面试专业技能点P8DevOps / 区块链部署

工具特点适用场景Hardhat丰富插件体系,JS/TS 脚本灵活复杂 DApp,前后端联动FoundryRust 实现,编译和部署快速,Solidity 脚本轻量、快速原生合约开发部署如果你想,我可以帮你写完整 Hardhat 或 Foundry 部署脚本模板,或帮你配置环境!CI/CDCI(持续集成,Continuous Integration):开发人员频繁地将代码合并到主分支,并通过自动构建和测试保证质量。

Theoweb3|优快云 wwh1st|GitHub theoweb3|TG theo_liu|X theoweb33|gmail wwh9th 华语区Web3基础设施建设者;Web3开源社区共建者;博客沉淀去中心化等各类工程经验。 2175

openEuler系统下安装Google Chrome浏览器全攻略(附依赖问题解决方案)

本文详细介绍了在openEuler系统上安装Google Chrome浏览器的完整指南,包括环境准备、多种安装方式、依赖问题解决方案及性能优化技巧。针对openEuler特有的软件生态和依赖管理机制,提供了实用的命令和配置方法,帮助用户克服安装过程中的常见障碍,实现流畅的Chrome使用体验。

hadoop5ranger的博客 1149

获取Infura项目ID 详细的步骤

infuraURL = “https://mainnet.infura.io/v3/你的Infura项目ID” // 替换为你的Infura项目ID。在项目详情页面,你可以看到“Project ID”和“Project Secret”。将Project ID复制下来,稍后将用于替换代码中的你的Infura项目ID。在弹出的窗口中,输入项目名称和描述(可选),然后点击“Create”按钮。创建项目后,你会被带到项目的详细信息页面。登录后,进入你的Infura控制面板。使用你的账户信息登录Infura。

klasp的博客 833

Python爬虫实战:实时监控美国SEC官网文件更新,助你第一时间掌握市场动态

在资本市场中,信息就是财富。美国证券交易委员会(SEC)官网公开了大量公司披露文件,涵盖财报、招股说明书、内幕交易等重要信息。对投资者、分析师及法律合规人员来说,实时监控这些公开文件具有重要价值。

2201_76125261的博客 594

西南科技大学模拟电子技术实验七(集成运算放大器的非线性应用)预习报告

将电位器Rp调至中心位置,用双综示波器观察并绘制方波U0的波形,测量其幅值和频率;将电位器RP调至中心位置,用示波器观察并绘制锯齿波U0的波形,记录;示波器基线调零,Ui输入1000HZ、幅值为2V的正弦信号,观察并记录Ui与U0波形,读出图中波形跳变时的Ui临界值;用万用表电位器RP调至预测结果位置,用示波器观察并描绘三角波输出U0及方波输出uo’,测其幅值、频率及Rp值,记录之。示波器基线调零,U输入1000HZ、幅值为2V的正弦信号,观察UI与U0波形。理论算法公式:当Ui

Welcome To My6n Blog 3937

Web3.js 库使用指南

是一个强大的 JavaScript 库,它提供了一系列工具和方法,使开发者能够轻松地与以太坊区块链进行通信、查询数据、发送交易以及与智能合约交互。Infura 是一个可靠的区块链节点服务,你需要在 Infura 上注册并获取自己的项目 ID,然后替换。发送交易调用合约函数时,需要先估计交易所需的 gas 数量,然后构建交易对象,使用私钥对交易进行签名,最后发送交易并获取交易哈希。是一个功能强大的库,为开发者提供了与以太坊区块链进行交互的便捷方式。在区块链开发中,与以太坊区块链进行交互是一项关键任务。

m0_57836225的博客 1524

YOLOv11改进 | 注意力篇 | YOLOv11引入24年最新的ELA注意力机制,并构建C2PSA_ELA

为了解决这些限制,本文介绍了一种高效的本地注意力(ELA)方法,实现了一个简单的结构,大幅度的性能改善。我们精心设计了ELA中的三个超参数,产生了四个不同的版本:ELA-T,ELAB,ELA-S和ELA-L,以满足不同视觉任务的具体要求,如图像分类,目标检测和语义分割。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 1285

零基础用python开发区块链(五web3进阶)

web3.py是一个功能强大的 Python 库,用于与以太坊区块链进行交互。它提供了一系列功能,使得开发者可以轻松地与以太坊网络进行交易、查询数据、调用智能合约、管理账户、监听事件等。下面是web3.py。

2341

Firefox卸载卡住不动的解决方案

本文主要介绍了Firefox卸载卡住不动的解决方案,希望能对使用Windows的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 15万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

揭秘以太坊智能合约交互:如何用Web3.py实现高效链上通信

auto-generated

FastProceed的博客 800

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: Python项目依赖混乱的救星来了(5大实战策略曝光)
下一篇: 【技术人才成长双引擎】:校企实训营与开源贡献如何打造职场竞争力
CodeWhim
博客等级 码龄1年 153粉丝 2003原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值