- 博客(255)
- 收藏
- 关注
原创 KingbaseES Docker速查表
本文总结了在KingbaseES Docker容器中管理数据库的核心命令与操作指南。主要内容包括: 基本容器操作:通过docker exec进入容器内部 数据库连接: 使用ksql客户端连接数据库(支持指定参数和免密登录两种方式) 默认用户system/密码123456或12345678ab SQL文件执行:在ksql中使用\i命令执行SQL脚本 数据库管理: sys_ctl工具查看状态和重载配置 数据库默认存储路径为/home/kingbase/userdata/data/ 常见问题: 端口映射和权限问题
2026-06-05 15:27:49
253
原创 十大管理中的数据收集数据分析数据表现技术汇总
本文总结了项目管理中常用的数据收集与数据分析技术。数据收集技术包括头脑风暴、访谈、德尔菲技术等,用于项目早期获取原始信息。数据分析技术分为五类:1)绩效评估与偏差分析(如挣值分析、趋势分析);2)风险与不确定性应对(如储备分析、模拟);3)问题追溯与根源挖掘(如根本原因分析);4)方案规划与决策支持(如备选方案分析);5)综合管理(如质量成本)。这些技术贯穿项目全生命周期,支持决策制定和风险管控。
2026-05-19 16:35:31
514
原创 十大管理与绩效域的管理角度区别
摘要:项目管理中,十大管理(静态视角)从专业职能角度分解项目,关注各领域的合规性;而绩效域(动态视角)从系统成效出发,强调整体平衡和价值实现。前者是基本功,确保各模块正确执行;后者是实战智慧,在复杂环境中动态权衡。二者相辅相成,共同推动项目成功。
2026-04-01 09:53:51
287
原创 Logstash本地日志文件读取写入Doris案例
本文介绍了Logstash-Doris日志系统的本地环境搭建与操作流程。系统架构为业务日志→Logstash→Kafka→Doris,实现了日志的实时采集、传输和存储。部署过程包括Logstash镜像加载、目录配置、日志文件创建、核心配置文件(logstash.yml和logstash.conf)设置等关键步骤。系统每天自动生成日志文件,通过Logstash解析后推送至Kafka,再由消费者组消费并存入Doris数据库。文章详细说明了库表结构、字段类型、权限设置及容器部署方法,为构建可靠的日志处理管道提供了
2026-03-10 20:35:59
385
原创 本地日志通过logstash写入Doris案例
本文介绍如何通过logstash-output-doris插件将Logstash数据导入Doris数据库。主要内容包括: 基础配置示例,包含必填的连接信息、数据格式设置和字段映射规则 关键配置项详解,重点说明Doris FE的HTTP端口(8030)与MySQL端口(9030)的区别 性能优化建议,包括调整批处理大小和延迟参数 完整使用流程示例,展示从日志文件输入到Doris输出的完整配置 常见问题排查,特别指出"json格式错误"可能由端口配置错误导致 文章提供了可直接运行的配置模板,
2026-02-24 14:11:38
368
原创 为什么要启动两个SecretNote?
摘要:启动两个SecretNote节点是为了模拟真实的隐私计算场景。隐私计算的核心是多方安全计算(MPC),需要至少两个参与方在保护原始数据隐私的前提下进行联合计算。双节点架构能完整演示数据分布、安全计算和结果获取的全流程,相比单节点更接近实际生产环境。在开发中,Alice和Bob节点分别处理私有数据,通过加密通信实现安全联合计算。这种架构为理解数据分隔、安全协议和分布式调试提供了实践基础,是从学习过渡到生产部署的关键步骤,体现了隐私计算"数据可用不可见"的核心价值。
2026-01-21 17:20:29
400
原创 SecretFlow & SecretNote 完整安装指南
本文详细介绍了SecretFlow环境的安装与配置过程,主要包括以下步骤: 安装Conda环境:创建安装目录、下载安装Miniconda、配置国内镜像源加速下载。 源码编译安装SecretFlow: 创建Python 3.9的Conda环境 安装系统编译依赖和Python构建工具 克隆SecretFlow源码仓库 使用多种方式构建wheel包并安装 安装验证: 运行测试脚本验证基础功能 测试安全计算功能 运行官方示例 安装SecretNote: 准备docker-compose配置文件 配置多节点环境参数
2026-01-21 17:16:34
626
原创 连接器中隐私计算:匿踪查询、隐私求交、联合计算、联合建模的原理及应用方向
在数据连接器中,匿踪查询、隐私求交、联合计算与联合建模是隐私计算的核心技术。它们共同实现“数据可用不可见”,保障数据流通安全。连接器通过集成这些技术,从简单管道升级为“数据价值安全交换机”,在金融风控、联合营销等场景中,安全地连接数据、对齐信息并进行深度分析与建模,是构建可信数据生态的基石。
2026-01-06 10:49:35
990
原创 Solidity中的require():工作原理与应用详解
摘要 Solidity中的require()函数是智能合约开发的核心验证工具,其工作原理是通过布尔条件判断执行路径:当条件为true时继续执行,为false时立即终止交易、回滚状态变更并退还剩余Gas。该函数主要应用于五大场景:(1)输入参数验证(如非零地址、正数金额);(2)合约状态检查(如拍卖活动状态);(3)权限控制(通过修饰器限制所有者权限);(4)时间条件约束(如资金锁定期);(5)复杂业务逻辑验证(如多签钱包的确认规则)。典型特性包括自动Gas管理和状态回滚机制,能有效提升合约安全性和资源利用效
2025-12-26 09:55:57
733
原创 Solidity中msg全局变量详解
Solidity中的msg全局变量是智能合约开发的核心组件,包含当前函数调用的关键信息。其主要属性包括:msg.sender(直接调用者地址,用于权限控制和转账)、msg.value(随交易发送的以太币数量,需payable函数)、msg.data(完整调用数据)和msg.sig(函数选择器)。文章还对比了msg.sender与tx.origin的区别,后者表示交易最初发起者但存在安全风险。此外介绍了其他重要全局变量如block相关信息和地址/Gas相关变量,并提供了权限控制、支付处理和时间锁等实际应用示例
2025-12-26 09:00:00
506
原创 Truffle中HDWalletProvider 语法详解
HDWalletProvider是Truffle框架中连接以太坊节点的核心工具,支持多种配置方式管理私钥和助记词。主要功能包括:1) 通过助记词字符串、带密码助记词或私钥数组初始化钱包;2) 支持单个URL、Provider对象或多个故障转移节点作为后端;3) 可自定义地址派生路径、索引和数量等BIP44参数;4) 提供链ID、轮询间隔等网络配置选项。典型应用场景包括安全部署合约(推荐使用环境变量存储敏感信息)和配置多网络开发环境。该组件支持灵活的参数组合,既能满足简单开发需求,也能适应复杂的生产环境配置。
2025-12-25 11:30:40
765
原创 Truffle 配置中provider和(host/port)两种方式配置网络连接的区别
Truffle配置中,provider和host/port是两种网络连接方式:host/port方式简单直接,适合本地开发,Truffle会自动创建HTTP provider;而provider方式更灵活,支持自定义连接、钱包管理和远程节点服务(如Infura),适用于测试网/主网部署。关键区别在于provider提供完全控制,支持WebSocket、自动签名等高级功能,而host/port仅限基本HTTP连接。两者不可混用,实际选择取决于项目需求复杂度。
2025-12-25 11:29:01
505
原创 Windows下Node.js 执行Web3.js 的智能合约环境搭建
本文介绍了Web3开发的完整环境搭建流程,包括:1) 安装Node.js、Python和Git等基础工具;2) 创建项目并初始化;3) 安装以太坊相关依赖(Web3.js、Truffle/Hardhat等);4) 配置Hardhat项目,包括网络设置和环境变量管理;5) 编写智能合约示例和交互脚本;6) 提供部署合约的完整脚本。文章提供了详细的命令行操作和代码示例,涵盖了从环境配置到合约部署的全流程,适合开发者快速搭建Web3开发环境。
2025-12-24 14:43:35
508
原创 Web3.js封装调用 VS 原生ABI编码调用合约深度对比
Web3.js与原生ABI编码调用在以太坊开发中存在显著差异。Web3.js提供高级封装,自动处理编码/解码、交易签名等流程,大幅降低开发难度;而原生ABI编码则需手动处理每个环节,包括函数选择器生成、参数编码等,虽然控制更精细但开发效率较低。Web3.js适合常规DApp开发,提供完善的交易处理功能;原生ABI编码则适用于需要底层控制的场景,如工具库开发。两者在易用性、控制粒度和适用场景上形成互补。
2025-12-24 14:38:05
692
原创 Web3.js 调用智能合约完全指南:从ABI编码到实战
本文详细介绍了如何使用Web3.js调用智能合约,重点解析了ABI编码规范及实际应用。主要内容包括:1)ABI作为智能合约与外部交互的接口规范,包含函数、事件和错误的定义;2)通过ethjs-abi库实现三种典型场景的编码(固定数组、基本类型和动态类型参数);3)常见错误分析与调试技巧;4)完整的Web3.js调用流程,包括合约初始化、数据读写和事件监听;5)最佳实践如错误处理和批量调用优化。文章强调参数类型匹配的重要性,并提供了实用的编码示例和调试方法,为开发者正确调用智能合约提供了全面指导。
2025-12-24 14:29:34
2358
原创 Ganache+Web3+Solidity实现智能合约调用案例
摘要 本文介绍了一个完整的Solidity智能合约开发流程,从部署到交互的全过程。合约MyContract.sol包含状态变量、结构体、映射、数组、事件、修饰器和多种功能函数,实现用户注册、资金管理、权限控制等功能。开发步骤包括:1)环境准备;2)合约编译;3)部署执行;4)初始化设置;5)交互测试;6)权限管理;7)状态修改;8)事件处理;9)批量操作;10)错误处理;11)系统监控。合约采用0.8.19版本,包含onlyOwner/onlyWhitelisted/whenActive修饰器确保安全性,并
2025-12-18 18:58:09
481
原创 Hyperledger Fabric与 FISCO BCOS深度对比
摘要: Hyperledger Fabric与FISCO BCOS是两大主流联盟链平台,各有侧重。Fabric以模块化设计见长,适合跨国协作与复杂业务场景,支持多语言链码和通道隔离;FISCO BCOS则主打高性能与国产化,采用PBFT共识和国密算法,适用于国内金融及政务场景。两者在隐私保护、跨链支持和生态工具上差异显著:Fabric依托国际社区和Docker化部署,BCOS则提供预编译合约和本土化工具链。选型建议优先考虑项目地域性(跨境选Fabric,国内选BCOS)、性能需求及合规要求,并可通过混合架构
2025-12-18 18:56:42
877
原创 Solidity 中的using for详解
Solidity中的using for指令用于将库函数附加到数据类型上,使函数可以直接在数据实例上调用。其基本语法为using LibraryName for DataType或using LibraryName for *。该功能主要有三种应用场景:1)扩展基本数据类型,如实现类似SafeMath的安全运算;2)数组操作,可添加查找、求和、去重等功能;3)结构体操作,可添加验证、修改和转换等方法。通过using for指令,开发者能够以更直观的方式调用库函数,提高代码可读性和维护性,同时保持类型安全的优势
2025-12-12 16:18:17
393
原创 Solidity 抽象合约与接口合约详解
摘要 Solidity中的抽象合约和接口合约是两种重要的代码抽象机制。抽象合约使用abstract contract声明,可以包含未实现和已实现的函数,允许定义状态变量和构造函数,适用于代码复用和模板模式。接口合约使用interface声明,只能包含函数签名且必须为external可见性,不能定义状态变量或构造函数,主要用于定义标准和合约间交互。关键区别在于:抽象合约支持部分实现和状态管理,而接口合约是纯定义规范。实际应用中,抽象合约常用于构建可扩展的模板(如ERC20基础合约),接口合约则用于标准化协议(
2025-12-12 16:01:20
590
原创 Solidity函数中包含return并使用修改器并执行顺序
Solidity修改器与return语句执行规则总结 核心规则: 修改器中的return会立即终止整个函数执行 函数体中的return不影响修改器后段代码执行 执行顺序严格遵循:修改器前段→函数体→修改器后段 典型场景分析: 修改器_;前有return:函数体完全不执行 函数体有return:修改器后段代码仍会执行 多个修改器时,任一修改器的return会中断后续所有执行 实际应用: 权限检查中常用修改器return实现提前终止 状态变更需注意修改器后段代码总会执行 带返回值的函数需考虑修改器return会
2025-12-11 10:41:26
377
原创 Solidity函数修改器中包含return的执行顺序
Solidity 修改器中 return 语句会立即终止当前函数执行,但会继续执行修改器 _; 之后的代码。通过示例分析发现:1) 在 _; 前 return 会跳过函数体和后续修改器;2) 在 _; 后 return 会执行函数体但跳过修改器剩余代码;3) 多个修改器时,前面的 return 会阻止后续修改器执行。这种机制特别适用于访问控制等场景,可实现条件检查后提前终止无效操作,同时保留修改器的日志记录功能。
2025-12-11 10:21:28
323
原创 Solidity函数修改器详解
Solidity函数修改器(Modifier)是一种特殊函数,用于在目标函数执行前后自动运行代码。它具有可重用性、一致性和安全性等特性,语法结构包含前置代码、_占位符和后置代码。修改器支持参数传递和多重组合,广泛应用于权限控制、状态检查、时间限制和防重入攻击等场景。高级技巧包括控制执行顺序、Gas优化和复合验证,通过合理使用可显著提升合约安全性和代码复用性。
2025-12-11 09:52:03
610
原创 HTTP正向代理 vs TCP反向代理:概念与使用场景详解
HTTP正向代理让客户端访问外网资源,反向代理将客户端请求转发到内网服务器,两者代理方向相反。
2025-12-09 18:25:38
632
1
原创 solidity中数据位置storage、memory、calldata的区别
Solidity中storage(永久存储)、memory(临时内存)和calldata(只读调用数据)是三种数据位置,分别对应区块链存储、函数执行内存和外部参数,影响着变量的生命周期、可修改性和Gas消耗成本。
2025-12-09 17:39:23
843
原创 深入浅出:以太坊虚拟机(EVM)存储模型设计与权衡
EVM存储架构与Gas优化策略 以太坊虚拟机(EVM)采用分层存储设计,根据数据持久性和访问成本划分为易变和不易变两大区域。易变区包括栈(临时计算)、内存(可读写临时存储)和calldata(只读输入数据),交易结束后即清除;不易变区包含code(合约字节码)和storage(持久化状态变量)。其中storage操作Gas成本最高,因其会修改区块链全局状态。优化核心在于:最小化storage操作,善用calldata避免数据复制,控制栈深度防止溢出,精简代码降低部署成本。这种架构平衡了性能与持久化需求,同时
2025-12-05 09:30:27
923
原创 Solidity的delete运算符详解
Solidity delete 操作符摘要 delete 是 Solidity 中用于重置变量到默认值的操作符,对不同类型有不同影响: 值类型:数值变为0,bool变为false,address变为0x0 数组:动态数组长度归零,固定数组所有元素重置 结构体:所有成员重置为默认值 映射:只能删除特定键值,不能删除整个映射 重要特性: 对存储变量使用 delete 可能获得 Gas 返还 不能删除包含映射的结构体 与 new 不同,delete 只重置内容而不创建新对象 应用场景包括合约状态重置、安全删除账户
2025-12-04 15:03:45
470
原创 Solidity高阶函数:函数参数的实战应用
Solidity 函数参数详解 Solidity 支持将函数作为参数传递,语法为 function(<参数类型>) <可见性> <状态可变性> returns (<返回类型>)。函数类型必须严格匹配参数和返回类型。常见应用场景包括数据处理管道、策略模式、回调机制和可配置业务规则。使用时需注意类型安全、Gas 优化和安全性,如验证函数来源防止重入攻击。Solidity 对函数参数有限制,不能传递构造函数或匿名函数,且需注意可见性兼容性。
2025-12-04 14:44:46
624
原创 深入解析:Solidity中call与delegatecall的核心区别——谁在修改谁的存储?
Solidity中call与delegatecall的核心区别 call()执行目标合约代码并修改其存储,address(this)指向目标合约,msg.sender为调用者合约。 delegatecall()执行目标合约代码但修改调用者存储,address(this)保持调用者地址,msg.sender为原始用户地址。 关键差异在于执行上下文:call切换至目标合约上下文,delegatecall保持调用者上下文。代理合约模式依赖delegatecall实现可升级逻辑,但需注意安全风险,如恶意合约可能通过
2025-12-03 17:00:55
425
原创 Solidity合约调用方式详解
本文对比了Solidity中三种关键调用方法的核心特性。call()执行标准外部调用,使用目标合约的存储和上下文,适合通用外部调用;delegatecall()执行委托调用,使用当前合约的存储但执行目标合约的代码,是实现代理/库模式的关键;而abi.encodeWithSignature()是数据编码工具,用于准备函数调用数据。三者本质不同:前两者是低级调用方法,后者是数据编码函数。表格清晰展示了它们在存储上下文、执行上下文、调用者识别、ETH传递和返回值等方面的差异,并提供了典型应用场景示例,帮助开发者正
2025-12-03 11:34:18
403
原创 Solidity结构体与构造函数详解:定义、用法与区别
本文介绍了 Solidity 中的结构体(struct)和构造函数(constructor)的关键概念。结构体用于定义自定义数据类型,允许组合多个变量,支持存储、内存和调用数据三种引用方式。构造函数是仅在合约部署时执行一次的特殊函数,用于初始化合约状态。两者核心区别在于:结构体是数据模板,用于组织数据;而构造函数是初始化逻辑,设置合约初始状态。文章通过学生管理合约示例展示了二者的实际应用,结构体定义学生数据类型,构造函数设置校长地址,共同实现合约功能。
2025-12-02 18:00:00
732
原创 为什么我不用“魔法数字”?论 Solidity 字面量表达式的重要性
本文阐述了在Solidity智能合约开发中使用表达式而非直接写结果的优势。通过多个代码示例对比,指出表达式能显著提高代码可读性、减少计算错误、便于后期修改、保持一致性,并获得编译器优化。文章特别强调在业务逻辑复杂的场景(如DeFi协议)中,表达式能清晰表达意图并便于验证。虽然极少数情况下可直接写结果(如固定标准值),但建议开发者遵循"优先使用表达式"的黄金法则,以提升代码质量和可维护性。
2025-11-26 11:23:54
484
原创 Solidity中的字面量表达式及核心运算规则
Solidity 字面量表达式运算规则 核心运算规则: 编译时求值:字面量运算在编译阶段完成,结果直接嵌入合约字节码,不消耗运行时Gas 类型推断: 整数运算保持原类型,超出范围会报错 除法会截断小数(如7/2=3) 类型提升:不同类型运算时自动向更高精度提升(如uint8+uint8=uint256) 单位转换:以太币单位字面量(如1 ether = 1e18 wei)可直接运算 示例: uint256 a = (100 + 200) * 3; // 编译时计算为900 uint256 b = 1.5 *
2025-11-26 11:17:36
897
原创 solidity可见性与状态可变性使用规则
本文介绍了Solidity中的变量和函数可见性规则。状态变量支持public、private和internal三种可见性,而函数支持external、public、internal和private四种。在继承关系中,子合约重写父合约函数时,可见性只能保持不变或更宽松,状态可变性则只能更严格。此外,函数状态可变性包括pure、view、payable和默认可修改状态四种类型。这些规则对合约安全性和继承设计至关重要。
2025-11-25 16:47:55
333
原创 智能合约开发Gas优化手册
本文系统介绍了以太坊智能合约的Gas优化策略,涵盖从基础到高级的多种技术。核心思路包括减少链上操作、利用数据打包、选择高效算法等。具体方法涉及使用unchecked块、缓存变量、优化数据结构、函数可见性调整等编码技巧,以及合约分解、状态通道等架构级优化。文章强调测量优先原则,建议权衡可读性与性能,优先优化高频操作。通过实施这些策略,开发者可显著降低交易成本并提升合约执行效率。
2025-11-24 17:15:29
828
原创 一文精通Solidity函数
Solidity 函数摘要 Solidity 函数用于封装可执行逻辑,支持多种可见性(public/external/internal/private)、状态可变性(pure/view/payable)和特殊功能(构造函数、接收ETH)。函数可定义参数、返回值和修饰器(如权限控制)。关键点包括: 可见性:控制函数调用权限(public默认,external仅外部,internal内部+继承,private仅当前合约)。 状态可变性:pure(无状态交互)、view(只读)、payable(接收ETH)。 特
2025-11-24 16:50:20
625
1
原创 Solidity开发四大框架深度对比:Remix、Truffle、Hardhat 与 Foundry
本文深入比较了以太坊智能合约开发的四大核心工具:Remix、Truffle、Hardhat 和 Foundry,旨在帮助开发者根据自身需求做出最佳选择。
2025-11-21 15:44:46
878
原创 Cookie与Token的原理、应用场景及常用工具类
Cookie和Token是Web开发中两种主流的身份验证方式。Cookie基于服务器存储在客户端的小型数据文件,适用于会话管理、个性化设置等场景;而Token(如JWT)则是无状态的认证机制,由服务器生成并发送给客户端,适用于API认证、移动应用等场景。本文提供了完整的工具类实现:CookieUtil类处理Cookie的创建、获取和删除操作,支持自定义配置;JWTTokenUtil类实现Token的生成、验证和刷新功能,基于HS256算法确保安全性。两种机制各有优势,开发者可根据具体需求选择使用。
2025-11-20 15:41:44
492
原创 深入探索Solidity函数选择器:解锁代理模式与可升级合约的密钥
ABI函数选择器是Solidity开发中的核心概念,它通过函数签名的Keccak-256哈希前4字节来唯一标识函数。摘要总结了四种关键应用场景:1)手动构造调用数据,2)多重调用优化Gas费,3)代理合约实现可升级功能,4)函数路由器构建模块化系统。文中提供了典型代码示例,包括如何用encodeWithSelector生成调用数据、实现批量交易的多重调用模式、以及通过代理合约和函数路由器实现灵活的功能扩展。这些技术广泛应用于智能合约交互、Gas优化和系统升级等场景,是高级Solidity开发者必备技能。
2025-11-15 09:00:00
614
原创 入门必学:深入理解 Solidity 中的函数与数据类型关键字
本文总结了Solidity中的核心关键字,分为函数关键字和数据类型关键字两大类。函数关键字包括可见性(public/private/internal/external)、状态可变性(view/pure/payable)和权限修饰(modifier/virtual/override等)三类。数据类型关键字涵盖数据位置(memory/storage/calldata)、常量(constant/immutable)以及复合类型(enum/struct/mapping)。文章提供了两个实用表格,清晰展示了各关键字的
2025-11-14 09:00:59
426
Everything是voidtools开发的一款文件搜索工具,官网描述为“基于名称实时定位文件和目录(Locate files and folders by name instantly)”
2025-10-11
vector-database (向量数据库)
2025-06-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅