揭秘Python操作ETH链:5步实现钱包地址生成与交易签名

第一章:Python与以太坊生态的深度融合

Python 作为当前最流行的编程语言之一,在区块链开发领域,尤其是以太坊生态系统中扮演着至关重要的角色。其简洁的语法、丰富的库支持以及强大的社区生态,使得开发者能够高效地与以太坊节点交互、部署智能合约、监听链上事件并构建去中心化应用(DApp)。

连接以太坊节点

通过 web3.py 库,Python 能够轻松连接到以太坊主网或测试网络节点。使用 Infura 或 Alchemy 提供的 HTTPS/RPC 端点,开发者可快速建立连接:
# 安装依赖: pip install web3
from web3 import Web3

# 连接到 Infura 的 Goerli 测试网
infura_url = "https://goerli.infura.io/v3/YOUR_PROJECT_ID"
web3 = Web3(Web3.HTTPProvider(infura_url))

# 检查连接状态
if web3.is_connected():
    print("成功连接到以太坊节点")
else:
    print("连接失败")
上述代码展示了如何初始化 Web3 实例并验证连接状态,是所有后续操作的基础。

读取链上数据

Python 可用于查询账户余额、交易记录和区块信息。例如,获取指定地址的 ETH 余额:
address = "0x742d35Cc6634C0532925a3b8D4C107C5d52eBDB8"
balance_wei = web3.eth.get_balance(address)
balance_eth = web3.from_wei(balance_wei, 'ether')
print(f"余额: {balance_eth} ETH")

常用工具与库对比

  1. web3.py:官方推荐库,支持完整的 JSON-RPC 接口
  2. eth-account:用于安全地管理私钥和签名交易
  3. py-solc-x:编译 Solidity 智能合约
库名称用途安装命令
web3.py与以太坊节点通信pip install web3
eth-account钱包账户管理pip install eth-account
py-solc-xSolidity 编译器接口pip install py-solc-x

第二章:以太坊钱包地址生成原理与实现

2.1 椭圆曲线加密基础与secp256k1算法解析

椭圆曲线加密(ECC)是一种基于代数曲线数学特性的非对称加密技术,在相同安全强度下比RSA更高效,广泛应用于区块链和数字签名。
椭圆曲线数学基础
ECC依赖于有限域上的椭圆曲线方程:y² ≡ x³ + ax + b (mod p)。在secp256k1中,该曲线定义为 y² = x³ + 7,其参数由标准固定。
secp256k1核心参数
参数说明
p素数模数,定义有限域大小
G基点,生成循环子群
n基点阶数,私钥最大值
密钥生成示例
// Go语言片段:基于secp256k1生成密钥对
privKey, err := ecdsa.GenerateKey(secp256k1.S256(), rand.Reader)
if err != nil {
    log.Fatal(err)
}
pubKey := privKey.PublicKey
上述代码调用Go的crypto库生成符合secp256k1标准的ECDSA密钥对。私钥为[1, n-1]范围内的随机整数,公钥由私钥与基点G的标量乘法得出。

2.2 使用eth-account库生成私钥与公钥对

在以太坊开发中,安全地生成密钥对是账户管理的基石。`eth-account` 库提供了简洁且符合标准的接口,用于生成符合 ECDSA 椭圆曲线加密算法的私钥与公钥。
安装与导入
首先通过 pip 安装库:
pip install eth-account
该命令安装了支持以太坊账户操作的核心工具,包括密钥生成、签名和地址推导功能。
生成密钥对
使用以下代码生成新的私钥与对应公钥:
from eth_account import Account

# 生成随机账户
account = Account.create()

# 输出私钥(十六进制)
private_key = account.key.hex()
print("Private Key:", private_key)

# 输出公钥(基于私钥推导)
public_key = account._key_obj.public_key.to_hex()
print("Public Key:", public_key)

# 输出以太坊地址
print("Address:", account.address)
上述代码调用 `Account.create()` 方法生成符合 SECP256k1 曲线的私钥,并自动推导出压缩格式的公钥与校验和地址。私钥以字节形式存储,`.hex()` 转换为可读字符串;公钥通过 `_key_obj.public_key` 获取并转为十六进制表示。最终地址遵循 EIP-55 标准,确保跨平台兼容性。

2.3 从公钥推导以太坊地址的数学过程详解

以太坊地址并非随机生成,而是通过公钥经由确定性数学运算推导而来。该过程确保了从私钥到地址的唯一映射。
核心步骤概述
  • 输入:压缩或非压缩格式的椭圆曲线公钥(65字节)
  • 第一步:对公钥执行 SHA-3(Keccak-256)哈希运算
  • 第二步:取哈希结果的最后 20 字节作为以太坊地址
代码实现示例

const keccak256 = require('keccak256');
// 示例公钥(65字节,十六进制表示)
const publicKey = Buffer.from('04a1b2c3d...', 'hex');
// 计算 Keccak-256 哈希
const hash = keccak256(publicKey);
// 取最后 20 字节
const address = '0x' + hash.slice(-20).toString('hex');
上述代码中,keccak256 是以太坊使用的哈希函数,slice(-20) 提取尾部 20 字节,构成标准的以太坊地址。
关键说明
以太坊使用的是 Keccak-256 而非标准 NIST SHA-3,这一点在实现时必须注意,否则会导致地址不一致。

2.4 实现可复用的钱包地址生成器函数

在区块链应用开发中,频繁生成符合标准的钱包地址是常见需求。为提升代码复用性与安全性,需封装一个通用的钱包地址生成函数。
核心实现逻辑
使用椭圆曲线加密算法(如secp256k1)生成私钥,并推导出对应的公钥和地址。
func GenerateWalletAddress() (string, string, error) {
    privKey, err := ecdsa.GenerateKey(secp256k1.S256(), rand.Reader)
    if err != nil {
        return "", "", err
    }
    pubKey := append(privKey.PublicKey.X.Bytes(), privKey.PublicKey.Y.Bytes()...)
    hash := sha256.Sum256(pubKey)
    address := "0x" + hex.EncodeToString(hash[12:])
    privateKey := hex.EncodeToString(privKey.D.Bytes())
    return address, privateKey, nil
}
该函数返回钱包地址与私钥,参数说明:私钥通过随机数生成器创建,公钥拼接X、Y坐标后进行SHA-256哈希,取后20字节作为以太坊风格地址。
功能增强建议
  • 支持多链格式(如Bitcoin Base58、Cosmos Bech32)
  • 集成BIP39助记词派生机制
  • 增加校验和验证(如Keccak-256)

2.5 校验地址有效性与Checksum格式处理

在区块链应用开发中,确保地址有效性是防止用户资产损失的关键步骤。以以太坊为例,地址需符合EIP-55标准的Checksum校验机制。
Checksum校验原理
EIP-55通过将地址中的字母字符依据其哈希值大小进行大小写编码,实现校验功能。大写表示对应位为1,小写表示为0。

function validateChecksum(address) {
  const addr = address.toLowerCase().replace('0x', '');
  const hash = Web3.utils.sha3(addr);
  for (let i = 0; i < addr.length; i++) {
    const char = addr[i];
    const hashChar = parseInt(hash[i], 16);
    if ((hashChar >= 8 && char !== char.toUpperCase()) ||
        (hashChar < 8 && char === char.toUpperCase())) {
      return false;
    }
  }
  return true;
}
上述代码逐位比对地址字符与Keccak-256哈希结果,判断大小写是否符合规范。若输入为0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed,校验通过;反之则拒绝非法输入。
  • 提升用户输入安全性
  • 兼容主流钱包格式
  • 降低转账错误风险

第三章:交易数据结构与签名机制剖析

3.1 以太坊RLP编码原理及其在交易中的应用

RLP编码基本原理
递归长度前缀(Recursive Length Prefix, RLP)是以太坊中用于序列化结构化数据的核心编码方式,其目标是将任意嵌套的字节数组高效、唯一地编码为二进制格式。RLP仅处理两类数据:字符串(字节数组)和列表。
编码规则与示例
对于长度小于56字节的字符串,前缀为其长度;否则使用大端表示长度并添加偏移。列表编码方式类似,但以列表项的RLP拼接后递归编码。
// Go语言中RLP编码示例
type Transaction struct {
    Nonce    uint64
    GasPrice *big.Int
    GasLimit uint64
    To       *common.Address
    Value    *big.Int
    Data     []byte
}

data, _ := rlp.EncodeToBytes(tx) // 将交易对象编码为RLP字节流
上述代码将交易结构体序列化为RLP格式,确保在网络传输和区块存储中保持一致性。
在交易中的应用
每笔以太坊交易在签名后均需进行RLP编码,形成最终的交易哈希。该编码保证了数据结构的确定性,是共识机制中验证和传播交易的基础。

3.2 EIP-155标准与链ID防重放攻击机制

EIP-155 是以太坊改进提案之一,核心目标是通过引入链 ID(Chain ID)防止跨链重放攻击。在该标准之前,交易签名未包含链环境信息,导致同一笔签名交易可在多条链上重复提交。
链 ID 的嵌入机制
EIP-155 在交易签名中新增 Chain ID 字段,修改了原有 v 值的计算方式:

// 签名中 v 的新计算方式
v = CHAIN_ID * 2 + 35 + recovery_bit
此变更确保交易仅在指定链上有效,不同链生成的 v 值不同,从而阻断跨链重放。
支持的链 ID 示例
网络链 ID
以太坊主网1
Ropsten 测试网3
BNB Smart Chain56

3.3 手动构造原始交易参数并进行签名实践

在区块链开发中,手动构造原始交易是理解底层机制的关键步骤。通过构造裸交易,开发者可以精确控制输入、输出、手续费等参数。
交易结构组成
一笔原始交易通常包含版本号、输入列表、输出列表和锁定时间。每个输入引用前序交易的输出(UTXO),并提供解锁脚本。
签名流程实现
使用私钥对交易哈希进行数字签名,确保交易不可篡改。以下为使用Bitcoin Core风格的伪代码示例:

// 构造未签名交易
tx := &Transaction{
    Version: 1,
    Inputs: []TxInput{
        {PrevTxID: "abc123", Vout: 0, ScriptSig: ""}},
    Outputs: []TxOutput{
        {Value: 50000000, PkScript: "76a9...88ac"}},
}

// 计算待签名哈希
hash := tx.CalculateSignatureHash(0)

// 使用私钥签名
signature := privateKey.Sign(hash)
sigScript := BuildP2PKHScriptSig(signature, publicKey)

tx.Inputs[0].ScriptSig = sigScript
上述代码中,CalculateSignatureHash 生成需签名的数据摘要,BuildP2PKHScriptSig 构建符合P2PKH标准的解锁脚本。签名后交易可被广播至网络验证。

第四章:离线签名与链上广播实战

4.1 构建无网络依赖的离线签名模块

在高安全场景中,私钥必须避免暴露于网络环境中。离线签名模块通过分离交易构造与签名过程,实现物理隔离下的安全签名。
核心设计原则
  • 私钥永不触网:签名操作在完全离线设备中完成
  • 输入输出可验证:支持序列化交易数据导入与签名结果导出
  • 轻量级协议兼容:适配主流区块链交易格式
签名流程实现
// SignTransaction 对序列化的交易进行离线签名
func SignTransaction(txBytes []byte, privateKey *ecdsa.PrivateKey) (signedTx []byte, err error) {
    tx, err := Deserialize(txBytes)
    if err != nil {
        return nil, err
    }
    // 使用本地私钥生成数字签名
    signature, err := crypto.Sign(tx.Hash(), privateKey)
    if err != nil {
        return nil, err
    }
    tx.Signature = signature
    return Serialize(tx), nil
}
该函数接收原始交易字节流与本地私钥,执行确定性哈希与椭圆曲线签名(ECDSA),最终返回已签名交易。整个过程无需网络通信,确保密钥安全。

4.2 使用Web3.py连接Infura/Alchemy节点

在以太坊开发中,直接与区块链交互需依赖节点服务。Infura 和 Alchemy 提供了稳定可靠的远程节点,开发者可通过 Web3.py 轻松接入。
安装依赖与初始化连接
首先安装 Web3.py:
pip install web3
该命令安装核心库,支持 HTTP、WebSocket 等多种传输协议。
配置项目密钥并建立连接
通过 Infura 或 Alchemy 创建项目后,获取 HTTPS 端点 URL:
from web3 import Web3

# 替换为你的 Infura/Alchemy HTTPS URL
rpc_url = "https://mainnet.infura.io/v3/YOUR_PROJECT_ID"
web3 = Web3(Web3.HTTPProvider(rpc_url))

if web3.is_connected():
    print("成功连接以太坊主网")
else:
    print("连接失败")
代码中 Web3.HTTPProvider 指定使用 HTTP 协议连接远程节点,is_connected() 验证连接状态,确保网络可达性。

4.3 将签名后的交易序列化并发送至主网

在完成交易签名后,下一步是将其序列化为字节流格式,以便通过网络传输。大多数区块链协议使用特定的编码规则(如比特币的BIP-144或以太坊的RLP)对交易数据结构进行序列化。
交易序列化示例(Go语言)
txBytes, err := rlp.EncodeToBytes(signedTx)
if err != nil {
    log.Fatal("序列化失败:", err)
}
上述代码使用RLP编码将签名后的交易对象 signedTx 转换为字节切片。RLP能高效压缩嵌套结构,适用于以太坊等EVM链。
广播到主网节点
通过JSON-RPC接口调用 eth_sendRawTransaction 方法发送:
  • 参数:十六进制表示的原始交易字节(如 "0x...")
  • 返回:交易哈希,标识唯一性
节点验证通过后会将交易加入内存池,等待矿工打包上链。

4.4 交易哈希监控与链上状态验证

在区块链应用中,交易一旦广播,其状态需通过交易哈希持续监控。客户端可通过轮询或事件订阅机制获取链上确认状态。
交易状态查询流程
  • 广播交易后获取交易哈希(TxHash)
  • 调用节点RPC接口查询交易收据
  • 解析收据中的状态码判断执行结果
以太坊交易收据查询示例

// 使用ethers.js监听交易确认
const txHash = '0xabc123...';
provider.getTransactionReceipt(txHash).then(receipt => {
  if (receipt) {
    console.log('状态:', receipt.status ? '成功' : '失败');
    console.log('区块高度:', receipt.blockNumber);
  }
});
上述代码通过 provider 获取交易收据,status=1 表示交易执行成功,blockNumber 可用于确认最终性。
关键字段说明
字段含义
status交易执行状态(1: 成功, 0: 失败)
blockNumber交易被打包的区块高度
confirmations当前确认数,反映交易安全性

第五章:安全最佳实践与未来扩展方向

最小权限原则的实施
在微服务架构中,每个服务应仅拥有完成其功能所需的最低系统权限。例如,在 Kubernetes 中通过 Role-Based Access Control (RBAC) 限制 Pod 的 API 访问能力:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: payment-service
  name: limited-pod-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]
自动化安全扫描集成
CI/CD 流程中应嵌入静态应用安全测试(SAST)和软件成分分析(SCA)。以下为 GitLab CI 中集成 Trivy 扫描容器镜像的示例:
  • 在 .gitlab-ci.yml 中添加 scan-stage
  • 使用官方 Trivy 镜像执行漏洞检测
  • 设置关键漏洞阈值触发流水线中断
security-scan:
  image: aquasec/trivy:latest
  script:
    - trivy image --exit-code 1 --severity CRITICAL $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
零信任网络架构演进
传统边界防御已不足以应对横向移动攻击。采用基于 SPIFFE/SPIRE 的身份认证机制,为工作负载签发短期 SVID 证书,实现加密通信与强身份验证。
方案适用场景部署复杂度
Istio + mTLS服务网格内部通信高
OpenZiti跨云边缘接入中
安全监控与威胁狩猎
通过 OpenTelemetry 统一采集日志、指标与追踪数据,结合 Falco 实现运行时异常行为检测。例如监控容器提权事件:
rule: Privileged Container Started
condition: container.privileged == true
output: "Privileged container detected (container=%container.name)"

相关推荐

python ethereum 代码分析《2》

python ethereum 代码分析 《2》python 版本以太坊pyethapp 模块本章主要介绍pyethapp 模块中的ChainService 和 PoWService一些关键概念totalDifficulty 总难度: total difficulty总难度是当前某条链所有区块难度的总和,total difficulty被用来指示最长的那一条链,某个节点如果想从其他节点同步数据的

leon51639的博客 2513

python 创建 eth 钱包地址

eth钱包地址的创建不需要连网,可以离线创建。那有没有可能你创建出来的私钥,跟别人正在使用的巧合相同?理论上有可能,但实际上机率比起【用计算生成一个小数长度1万位的随机数,这个随机数跟圆周率的前1万位小数刚好相等】的几率还要小。

bigcarp的专栏 1300

以太坊开发必备:Python库eth_accounts使用教程

本文还有配套的精品资源,点击获取 简介: eth_accounts 是一个Python库,专为以太坊开发提供账户管理和交易签名等功能。这个库的2019年12月26日版本支持Python 2和3,通过Python wheel格式安装包 eth_accounts-***-py2.py3-none-any.whl ,用户可以快速地安装并应用此库进行以太...

weixin_36444661的博客 1949

ETH公钥转地址

注意: point_x+point_y是bytes相加,组成64bytes,也就是非压缩公钥。我发现很少有地方强调这个,自己傻傻得直接用公钥计算,结果总不对!mod_sqrt是根据椭圆曲线上的模开方,不是数学开方,具体需要自己代码实现,或者借用现成库。

永不止步的博客 688

基于MATLAB的电池等效电路模型(ECM)仿真,用于分析电气行为和动态响应.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

隔离型全桥LLC谐振变化器建模及参数设计资料【仿真+设计报告+计算书】

内容概要:本文档系统性地提供了隔离型全桥LLC谐振变换器的建模、仿真与参数设计全套技术资料,涵盖Simulink/Plecs仿真模型、详细设计报告及Mathcad计算书,内容涉及开环与闭环控制、软启动过程、恒压恒流双闭环竞争控制等多种工况。资料还拓展至多相交错LLC、双向CLLC拓扑以及V2G(Vehicle-to-Grid)电动汽车充放电等前沿应用场景,并融合状态估计算法(如卡尔曼滤波、扩展卡尔曼滤波、粒子滤波)与神经网络技术进行系统性能优化,配套PPT说明与高水平EI期刊复现案例,为电力电子领域的科研与工程设计提供完整的技术支撑; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校研究生、科研人员,以及从事高频DC-DC变换器、新能源电源系统开发的工程师,具备扎实电路理论基础和Matlab/Simulink仿真能力者尤佳; 使用场景及目标:①支撑LLC谐振变换器相关的科研课题、学位论文或项目开发;②开展高频高效电源的参数设计、效率优化与动态响应分析;③学习并复现高水平期刊中先进的控制策略,如变频控制、混合移相控制及智能优化算法;④掌握Simulink/Matlab在电力电子系统建模、控制算法实现与状态估计中的综合应用; 阅读建议:建议结合仿真模型、Mathcad计算书与设计报告三位一体同步研习,重点理解主电路参数设计与闭环控制逻辑之间的耦合关系,优先运行典型算例并调试关键模块,有条件者可进一步推进至硬件原型验证,并积极探索状态估计与人工智能算法在电力系统动态建模中的融合应用。

Python如何从私钥创建以太坊钱包地址!

从私钥创建比特币钱包地址有点复杂。在这里,我们会使过程更加简单化。我们需要应用一个哈希函数来获取公钥,另一个哈希函数来获取地址。让我们开始吧。 公钥 我们需要做的第一件事是将ECDSA或椭圆曲线数字签名算法应用于我们的私钥。椭圆曲线是由等式 y²=x³+ax+b 定义的曲线,选择a和b。有一整套这样的曲线是公认并在使用的。比特币使用secp256k1曲线。 以太坊使用相同的椭圆曲线secp2...

Pythoncxy的博客 3484

标准材质转物理材质 对应脚本:标准转物理材质转x.ms 一、插件用途 将 3ds Max 场景中的 StandardMaterial 标准材质转换为 PhysicalMaterial 物理材质

标准材质转物理材质 对应脚本:标准转物理材质转x.ms 一、插件用途 将 3ds Max 场景中的 StandardMaterial 标准材质转换为 PhysicalMaterial 物理材质,并递归处理 Multi/Sub 多维子材质及 Blend 混合材质中的标准材质。 二、转换内容 脚本尝试进行以下参数映射: - 漫反射颜色 → Physical Material 基础颜色。 - 漫反射贴图及启用状态 → 基础颜色贴图。 - 凹凸贴图、启用状态及强度 → 物理材质凹凸槽;强度会按脚本比例换算。 - Opacity 贴图 → 物理材质透明颜色贴图。 - 标准材质自发光颜色和强度 → 物理材质发光颜色和发光强度。 - 反射贴图强度 → 粗糙度的反向换算。 - Glossiness → Metalness 数值换算。 三、使用方法 1. 在 3ds Max 中运行脚本。 2. 出现“赵山河材质转换”小窗口。 3. 点击“标准材质转物理材质”。 4. 脚本扫描整个场景的材质库,并将场景物体所使用的标准材质转换为物理材质。 5. 转换完成后刷新视口。 四、处理范围 - 不是只处理当前选择对象,而是扫描整个场景的材质库。 - 对 Multi/Sub 材质递归转换其中的标准材质子项。 - 对 Blend 材质递归转换 map1、map2 中的材质。 - 非 StandardMaterial 的材质会按脚本逻辑保留,不会强制全部转成 PhysicalMaterial。 五、注意事项 - 这是参数近似转换,不是渲染结果完全一致的材质转换。 - 标准材质中的高光、反射、透明度、特殊贴图和高级参数不一定有一一对应关系。 - 脚本把 Glossiness 映射到 Metalness,属于

Python 使用 Web3.py 进行 ETH 和代币转账

Python使用Web3

haeasringnar的博客 2万+

三电平Buck直流变换器双闭环、单闭环、开环仿真【附参考文献】(Simulink仿真实现)

内容概要:本文介绍了名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该模型基于Plecs仿真平台,用于构建和分析全桥LLC谐振变换器的工作特性。作为一种高效率、高功率密度的DC-DC变换器,全桥LLC谐振变换器广泛应用于现代电源系统中。该仿真模型完整包含了全桥逆变器、由谐振电感、谐振电容和变压器构成的谐振腔,以及整流与滤波电路等核心组件。用户可通过该模型开展开环与闭环仿真,深入研究变换器在不同负载、输入电压及频率条件下的动态响应、转换效率、软开关实现能力,并分析关键参数如谐振频率、变比和负载变化对系统性能的影响。该模型不仅可用于理论验证,也为控制器设计与参数优化提供了高效平台,有助于加深对LLC变换器运行机理的理解。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生、从事开关电源研发的工程师以及对LLC谐振变换器有研究兴趣的科研人员。; 使用场景及目标:①用于课堂教学与实验,帮助学生掌握LLC谐振变换器的拓扑结构与工作原理;②用于科研项目中新型控制策略(如变频控制、移相控制)的仿真验证与性能评估;③用于工业产品研发前期,实现变换器的快速原型设计、关键参数优化与控制算法调试。; 阅读建议:在使用该仿真模型前,建议用户系统学习LLC谐振变换器的基础理论,包括基波分析法(FHA)、谐振网络阻抗特性及零电压/零电流开关的实现条件。仿真过程中应结合理论计算设定初始参数,并细致观察电压、电流波形与频率响应,以全面评估变换器的稳态与动态性能,进而实现理论与实践的有效结合。

双Buck电路并联VDCM下垂控制(Simulink仿真实现)

内容概要:本文系统阐述了基于Simulink平台实现的双Buck电路并联运行系统中采用VDCM(虚拟直流电机)下垂控制策略的建模与仿真方法。该技术通过引入VDCM控制理念,模拟直流电机的动态外特性,有效提升了多模块并联系统在负载突变等工况下的均流精度与动态响应性能,增强了直流电源输出的稳定性与可靠性。文中提供了完整的双闭环控制Simulink仿真模型,并结合参考文献深入剖析了VDCM控制模块的设计原理、下垂控制律的构建、关键参数(如下垂系数)的整定方法以及系统稳定性分析过程,为研究多模块并联DC-DC变换器的协同控制与均流机制提供了详实的技术参考。; 适合人群:具备电力电子技术、自动控制理论及Simulink仿真基础,从事新能源发电、直流微电网、分布式电源系统或高可靠性直流供电装置研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解双Buck电路并联运行时实现精确均流的控制原理与挑战;②掌握VDCM下垂控制这一先进策略在直流系统中的具体建模步骤与实现技巧;③为多模块并联变换器的自主均流、冗余设计及系统级协调控制研究奠定坚实的仿真基础并提供直接的技术借鉴; 阅读建议:建议学习者结合所提供的Simulink仿真模型与文末参考文献进行对照研习,重点剖析VDCM控制模块的内部逻辑、下垂系数对系统静态均流度和动态响应速度的权衡影响,并通过反复调整控制器参数进行仿真对比实验,以深刻理解其内在机理与优化设计方法。

订单簿去中心化交易所深度解析:EtherDelta 合约源码与 Solidity 0.8 升级实战(Dapp-Learning)

本文以 Dapp-Learning 仓库 [basic/13-decentralized-exchange/EtherDelta](https://link.gitcode.com/i/34b2f97eda48a40cbd8c053838aa11ab) 模块为主线,完整拆解 EtherDelta 这一经典订单簿(Order Book)去中心化交易所的合约设计:从资产托管(deposit/withd

gitblog_00842的博客 296

半桥LLC谐振变换器开环+闭环仿真设计资料(Simulink仿真实现)

内容概要:本文主要介绍了名为“Plecs全桥LLC谐振变换器仿真模型”的技术资源,该资源聚焦于电力电子领域中全桥LLC谐振变换器的建模与仿真研究。文档虽名为“文章”,实则为一系列技术资料的集合标题,核心内容是基于Plecs软件平台构建的全桥LLC谐振变换器的高精度仿真模型,涵盖开环与闭环控制系统设计,重点分析其软开关特性、谐振网络参数优化、动态响应能力及稳压性能。通过该仿真模型,用户可深入探究变换器在不同负载与输入条件下的工作效率、谐振元件选型、ZVS/ZCS实现机制以及控制策略(如变频控制)对系统性能的影响,为高频高效开关电源、新能源变换系统及电动汽车车载充电机等实际工程应用提供坚实的理论支撑与设计指导。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校研究生与科研人员,以及从事开关电源、新能源发电、电动汽车充电技术、工业电源设计等领域的研发工程师;尤其适合需要进行高频谐振变换器拓扑研究与控制算法验证的中高级技术人员。; 使用场景及目标:①用于高校教学与课程设计,帮助学生深入理解LLC谐振变换器的工作原理与非线性动态特性;②用于科研项目中新型谐振拓扑与先进控制算法(如混合控制、数字控制)的理论验证与性能对比;③用于企业产品研发前期的方案论证、参数扫掠优化与可靠性评估,显著缩短从理论到原型的开发周期。; 阅读建议:此资源以高保真仿真模型为核心,使用者应具备扎实的电力电子电路理论基础和Plecs或Simulink等仿真工具的操作经验。建议在学习过程中,结合文献资料深入理解LLC变换器的基波分析法(FHA)与时域仿真差异,主动修改谐振参数、控制环路增益与负载条件,观察系统稳定性与效率变化,通过对比仿真结果来深化对设计规律的认知,并尝试将仿真结论应用于实际硬件设计中。

UVR5 人声分离:免费 AI 分离干声与伴奏的完整教程

Ultimate Vocal Remover(UVR5)是一款免费开源的 AI 人声分离工具,图形界面里整合了 MDX-Net、Demucs v3/v4、VR Architecture 三套分离算法,把一首混音拆成人声干声和伴奏轨,本地跑、个人使用零费用。 ## 它能干什么:三种分轨需求各有一条路 先用一个说法理解它:一首混音就像一整麻袋没拆的快递,人声、吉他、鼓混装在一起。传统"消人声"是把

gitblog_00468的博客 94

深入了解torch框架

大国的游戏,政府支持到位,是未来;AI : Artificial Intelligence,旨在研究、开发能够模拟、延伸和扩展人类智能的理论、方法、技术及应用系统,是一种拥有自主学习和推理能力的技术。它模仿人类大脑某些功能,包括感知、学习、理解、决策和问题解决。AI本质​ NLP(说话,听)、CV(眼睛)、自动驾驶、机器人(肢体动作)、大模型三要素:数据、网络、算力① 神经网络:找到合适的数学公式;② 训练:用已有数据训练网络,目标是求最优解;③ 推理:用模型预测新样本;PyTorch,简称Torch

qq_74732076的博客 1135

单目标跟踪算法及其复现过程---SiamFC(一)

在test.py文件中,就是利用训练出来的模型进行测试,需要更改预训练模型的路径,测试集的路径,以OTB100为例,最后输出的是对每一帧目标位置的坐标点。代码如下:首先需要下载got10k官方库,只需要在终端输入(注意:在终端安装各种库的时候不能使用网络代理),在环境已经配置到的情况下,只需要该其中的路径和就可以运行。这个系列博客仅为了记录各目标跟踪算法的复现(大多为跑通大佬们实现的代码),包括其中出现的很多问题和错误,学到的新知识等等。解决,而且只使用在线的方法,限制了他们可以学习的模型的丰富性。

weixin_58244117的博客 4761

libxposed API 环境搭建完整清单:Gradle 依赖配置、SDK 版本与模块打包一步到位

搭建 **libxposed API** 开发环境?本文是一份手把手的完整清单,覆盖 Gradle 依赖配置、SDK 版本参数、项目结构、模块打包与常见坑位五大环节,照着做即可一次配好现代 Xposed 模块开发环境,无需反复踩坑。 ## 📌 一、libxposed API 是什么 libxposed API 是一个**现代 Xposed 模块开发 API**(Modern Xposed M

gitblog_00834的博客 836

RK3588 Ubuntu 20.04 编译 eglinfo 踩坑实录:从 Python 环境配置到 Mali 驱动调试

本文详细解析了在RK3588平台上使用Ubuntu 20.04编译eglinfo的全过程,包括Python环境配置、waf构建系统升级、Mali驱动调试等关键步骤。通过系统级软链接方案、驱动状态诊断和EGL环境验证技巧,帮助开发者快速解决常见问题,构建可靠的图形调试环境。

weixin_29158047的博客 373

DNS协议深度解析:从报文结构到DNSSEC实战

DNS(域名系统)是互联网基础协议之一,其核心功能是实现域名到IP地址的映射。它基于UDP/TCP传输,采用分层查询机制,包含递归、迭代与转发三种典型模式。协议设计强调高效性与可扩展性,EDNS0扩展突破512字节限制,支撑现代CDN调度与DNSSEC安全验证。DNSSEC通过RRSIG、DNSKEY和DS记录构建信任链,提供数据完整性与来源认证,是抵御缓存投毒的关键技术。实际应用中,DNS广泛用于Web访问、邮件路由、服务发现等场景,并深度集成于云平台、Kubernetes集群及零信任架构中。本文聚焦DN

aobai7842的博客 428

【Claude】Not logged in · Please run /login 报错已解决

意味着 Claude Code 没有找到任何有效凭证。直接/login——交互式首选;检查——排查环境变量污染;CI 用——自动化场景标准方案;macOS Keychain 异常——/logout/login重置;时钟偏差——校准系统时间。参考:Claude Code 官方《错误参考》"身份验证"章节、官方认证优先级文档、社区 Token 过期排查记录。

博客 9976

当AI学会写“自传”:OpenClaw 的 SOUL.md 如何把配置文件变成一颗会变形的心

SOUL.md。

步子哥的博客 1309

Perl在90年代网络工程中的实战价值与工程智慧

DNS配置管理是网络运维的基础能力,其核心在于结构化文本处理、原子化变更与高可靠验证。Perl语言凭借原生正则支持、动态作用域机制和零依赖单行命令能力(如perl -p -i),成为早期BIND时代批量修改zone文件、同步SOA序列号、关联日志分析的不可替代工具。它不追求代码优雅,而专注在电源不稳、网络受限、无CI/CD的现场约束下,以最小心智负担达成最高执行确定性。这种‘小任务大影响’的工程范式,至今仍深刻影响着自动化脚本设计、DevOps实践及故障快速恢复逻辑。

chuji3953的博客 405

Android性能分析——hprof文件分析(一)

hprof  文件是 Java 堆转储文件(Heap Dump File)的标准格式,用于保存 Java 虚拟机(JVM)在某个时间点的内存快照。这种文件对于分析内存泄漏、内存使用情况和对象分配模式非常有用。

小旭的专栏 1877

Python与以太坊交互实战

Python与链上交互 环境 安装 运行 Python与链上交互 环境 Linux VM-0-11-ubuntu 4.4.0-130-generic Python3.6 vim 8.0 安装 node 和 npm 安装 testrpc和truffle ,教程里面写的很清楚 安装web3.py $ sudo pip3.6 install web3 需...

北大虫师的博客 2607

021、反激变换器的软启动设计

本文分享了反激变换器软启动设计的实践经验。作者通过一次上电炸机事故引出软启动的重要性,分析了启动瞬间电流冲击和环路饱和问题。介绍了三种软启动方案:效果差的RC电路、推荐使用的数字芯片方案以及分立元件实现方法,重点指出数字方案的一致性优势。文章还探讨了软启动与过流保护的配合问题,提供了实测波形、温度影响等调试要点,并总结出软启动时间选择、批量生产一致性等实用建议。最后强调软启动是电源可靠性的关键设计,不应为节省成本而忽略。全文包含多个工程实践细节,对电源设计人员具有重要参考价值。(149字)

Jack010169的博客 174

【C语言】初识C语言(上篇)

初识C语言第一部分

StackFrame 4007
上一篇: 程序员节交流群里的大神都在学什么?:深度剖析Top 10技术趋势
下一篇: 表锁问题全解析,深度解读MySQL表锁问题及解决方案
LearnFlow
博客等级 码龄1年 150粉丝 2113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值