首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏网络安全攻防

    以太智能合约

    文章前言 智能合约是一个运行在安全环境下的计算机程序,它可以直接控制数字资产,本篇文章我们主要介绍如何在公链环境中编译、部署、运行合约~ 合约部署 合约创建 以太支持使用solidity编写的智能合约 a) public returns(uint d){ return a *7; } } 合约编译 关于合约的编译我们可以使用solc也可以使用在线编译工具Remix来对合约进行编译操作 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x9D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE9 至此,合约在链上的部署流程演示完毕~ 文末小结 本篇文章只是对如何在公链环境中部署智能合约做了一个简单的介绍,而我们知道智能合约是运行在EVM上的,后续我们将对以太虚拟机源码进行分析,这里暂且不对此展开分析

    1.5K11发布于 2021-07-21
  • 来自专栏Web技术学苑

    以太合约交互

    背景 主要学习了解如何写一个合约,如何在前端进行合约交互,以一段最简单的合约代码学习合约交互的流程 我们知道以太合约代码是用solidity语言来写的,我们使用hardhat初始化一个编写合约开发环境文档参考 [1],以下是一篇学习笔记,希望看完有所帮助 初始化项目 npx hardhat init 我们在contracts文件夹下新建一个Count.sol合约代码 // SPDX-License-Identifier : MIT pragma solidity ^0.8.28; // 定义了一个Hello合约 contract Hello { // 申明公有变量 string public name = ,我们需要编译合约,执行npx hardhat compile,当我们执行命令后,会生成一个artifacts存储合约编译后的文件,这个abi数据映射的就是合约代码,在前端调用需要这个abi数据 { 总结 参考hardhat官方文档写一个简单的测试合约代码 如何编译并部署本地合约 在前端如何测试合约并调用合约代码与钱包进行交互 code example[2] 参考资料 [1] 文档参考: https

    37210编辑于 2025-07-30
  • 来自专栏汇智网教程

    以太智能合约示例

    目前的智能合约基本都是运行在以太上。本文将通过一个简单而具体的智能合约实例来帮助大家理解智能合约的编写、部署与调用。这个例子很简单,但通过它你可以了解开发一个以太的智能合约的完整过程。 我们希望你能在实践中逐步理解学习智能合约的开发语言solidity,理解智能合约的运行原理,并掌握必要的以太智能合约编程技能。 如果你希望马上开始学习以太DApp开发,可以访问汇智网提供的出色的在线互动教程: 以太DApp实战开发入门 去中心化电商DApp实战开发 开发语言和开发环境选择 目前智能合约最受欢迎的编程语言为Solidity Remix支持编写、测试和部署智能合约。 编写代码 学一门语言的第一个程序毋庸置疑都是HelloWorld,那么我们就来写一个HelloWorld的智能合约吧。合约代码如下。 结语 在本文中,我们编写了一个最简单的智能合约,并部署和运行了该合约。我们并没有将合约部署到实际的链上,只是在JS 沙箱虚拟机中执行了它。后面的文章中我们将会继续讲解如何将合约部署到链上。

    3.7K100发布于 2018-05-17
  • 来自专栏极客编程

    以太智能合约Demo

    智能合约开发用solidity编程语言部署在以太这个区块链平台,本文提供一个官方实战demo示例快速入门,用demo例子深入浅出智能合约开发,体会以太构建去中心化可信交易技术魅力。 以太软件的一个硬分叉在时限到期之前完成了攻击者的资金回收工作。 以太智能合约中的问题包括合约编程Solidity、编译器错误、以太虚拟机错误、对区块链网络的攻击、程序错误的不变性以及其他尚无文档记录的攻击。 部署智能合约的经典案例有: 以太在其区块链上实施了一种近乎图灵完备的语言,这是一个突出的智能合约框架。 RootStock (RSK) 是一个智能合约平台,通过侧链技术连接到比特币区块链。 RSK兼容为以太创造的智能合约

    1.9K20发布于 2018-09-04
  • 来自专栏Seebug漏洞平台

    以太合约审计 CheckList 之“以太智能合约编码隐患”影响分析报告

    “数据可靠性”、“gas消耗优化”、“合约用户”、“日志记录”、“回调函数”、“Owner权限”、“用户鉴权”、 “条件竞争”等,统一归类为“以太智能合约编码隐患”。 我们利用该平台针对上述提到的《知道创宇以太合约审计CheckList》中“以太智能合约编码隐患”类问题在全网公开的智能合约代码做了扫描分析。 详见下文: 二、漏洞详情 以太智能合约以太概念中非常重要的一个概念,以太实现了基于solidity语言的以太虚拟机(Ethereum Virtual Machine),它允许用户在链上部署智能合约代码 截止2018年10月31日,以太合约审计Checklist的所以问题完成了第一轮扫描,第一轮扫描针对以太公开的所有合约,其中超过80%的智能合约存在1个以上的安全隐患问题。 在接下来的扫描报告中,我们会公开《以太合约审计Checklist》并使用HaoTian对以太公链上的所有智能合约进行基于opcode的扫描分析。

    77420发布于 2018-12-11
  • 来自专栏Seebug漏洞平台

    以太合约审计 CheckList 之“以太智能合约规范问题”影响分析报告

    中,把“未触发Transfer事件问题”、“未触发Approval事件问题”、“假充值漏洞”、“构造函数书写错误”等问题统一归类为“以太智能合约规范问题”。 我们利用该平台针对上述提到的《知道创宇以太合约审计CheckList》中“以太智能合约规范”类问题在全网公开的智能合约代码做了扫描分析。 详见下文: 二、漏洞详情 ERC20[1]是一种代币标准,用于以太区块链上的智能合约。 ERC20定义了一种以太必须执行的通用规则,如果在以太发行的代币符合ERC20的标准,那么交易所就可以进行集成,在它们的交易所实现代币的买卖和交易。 2018年6月22日,知道创宇404区块链安全研究团队跟进应急,并输出了《以太智能合约构造函数编码错误导致非法合约所有权转移报告》。

    90920发布于 2018-08-16
  • 来自专栏极客编程

    以太智能合约升级策略

    本文是对以太中可升级智能合约领域的各种实现策略的总结 ,目的是汇总迄今为止的相关资源,以帮助我们在设计智能合约时,考虑如何对其进行升级和更新。 这方面已经有一些很好的案例: 以太名称服务ENS:ENS核心合约是一个非常简单的合约,不能更改。 域名注册商则可以由管理员升级。 : 以太智能合约最佳实践 Evoluchain : Evoluchain 代理合约 2018-02-22 Jorge Izquierdo : ERC DelegateProxy #897 2018- 02-15 经济学 : 可升级的以太智能合约 , Github项目 2018-01-11 B9lab团队 : upgradable - Github项目 2018-01-10 Manuel Araoz 可升级合约接口设计 , Github项目 2016-06-08 Elena Dimitrova : 在Solidity中编写可升级合约 英文原文链接 如果你希望马上开始学习以太DApp开发,可以访问汇智网提供的在线互动教程

    1.2K20发布于 2018-09-04
  • 来自专栏Netkiller

    以太智能合约开发入门

    以太智能合约开发入门 本文作者最近在找工作,有意向致电 13113668890 Mr. 启动以太 5.3. Maven pom.xml 文件 5.4. Java 与 Solidity 数据类型映射关系 5.5. 连接到服务器获取版本号 5.6. 账号管理 5.6.1. 智能合约语言 Solidity Solidity 是什么?Solidity是以太智能合约的编程语言。 4.1.  启动以太 首先启动服务 neo@netkiller ~ % geth --networkid 123456 --rpc --rpcaddr="0.0.0.0" --rpccorsdomain "*" Netkiller.java -rw-rw-r-- 1 neo neo 5.9K Feb 3 23:02 java/cn/netkiller/ethereum/contract/Netkiller.java 启动以太

    6.1K60发布于 2018-02-04
  • 来自专栏Netkiller

    以太智能合约开发入门

    启动以太 5.3. Maven pom.xml 文件 5.4. Java 与 Solidity 数据类型映射关系 5.5. 连接到服务器获取版本号 5.6. 账号管理 5.7. 智能合约语言 Solidity Solidity 是什么?Solidity是以太智能合约的编程语言。 4.1. 智能合约入门演示 这里我们先做一个 Helloword 演示,让你初步对智能合约有一个大概的认识。 启动以太 首先启动服务 neo@netkiller ~ % geth --networkid 123456 --rpc --rpcaddr="0.0.0.0" --rpccorsdomain "* Netkiller.java -rw-rw-r-- 1 neo neo 5.9K Feb 3 23:02 java/cn/netkiller/ethereum/contract/Netkiller.java 启动以太

    2.7K90发布于 2018-03-02
  • 来自专栏服务端技术杂谈

    区块链智能合约以太

    以太为代表的智能合约,被认为是区块链2.0的产物。 区块链可以看作是一个操作系统,而比特币则可以看作其上面生长的明珠。 区块链开发可以看作是自己开发一套系统,比如ios,android操作系统。 基于以太可以开发智能合约,可以看作一个已经成型的操作系统,比如android。 在这个操作系统之上我们可以开发自己的应用,比如一个匿名交易系统。 所有安装,部署了以太应用的计算机节点都会产生一个对应的以太虚拟机。 这些节点的虚拟机组成了区块链所谓的去中心化节点。 基于以太之上的应用的每次交易都需要消耗一定的计算力和存储,于是以太发行了自己的以太币,这些上层应用需要购买一定数量的以太币作为计算力和存储消耗的补偿。 网络上的节点通过工作量证明获取一定的以太币作为补偿。 测试环境开发以太可以采用类似于js或者py的编程语言,但是真实场景中最好采用go,c++这种分布式环境友好的编程语言。

    2.1K60发布于 2018-04-17
  • 来自专栏cwl_Java

    快速学习-以太合约应用

    合约应用一 维护一个数据存储(账本),存放对其他合约或外部世界有用的内容 最典型的例子是模拟货币的合约(代币) 合约应用二 通过合约实现一种具有更复杂的访问策略的普通账户(EOA),这被称为“转发合同” :只有在满足某些条件时才会将传入的消息 重新发送到某个所需的目的地址;例如,一个人可以拥有一份转发合约,该合约会等待直到给定三个私钥中的两个确认之后,再 重新发送特定消息 钱包合约是这类应用中很好的例子 合约应用三 管理多个用户之间的持续合同或关系 这方面的例子包括金融合同,以及某些特定的托管合同或某种保险

    39610发布于 2020-04-10
  • 来自专栏极客编程

    以太智能合约设计模式

    设计模式是许多开发场景中的首选解决方案,本文将介绍五种经典的以太智能合约设计模式并给出以太solidity实现代码:自毁合约、工厂合约、名称注册表、映射表迭代器和提款模式。 1、自毁合约 合约自毁模式用于终止一个合约,这意味着将从区块链上永久删除这个合约。 一旦被销毁,就不可能调用合约的功能,也不会在账本中记录交易。 现在的问题是:“为什么我要销毁合约?”。 在处理一个被销毁的合约时,有一些需要注意的问题: 合约销毁后,发送给该合约的交易将失败 任何发送给被销毁合约的资金,都将永远丢失 为避免资金损失,应当在发送资金前确保目标合约仍然存在,移除所有对已销毁合约的引用 > 0); buyers[msg.sender] = 0; require(msg.sender.send(amount)); } } 如果你希望高效的学习以太 DApp开发,可以访问汇智网提供的最热门在线互动教程: 适合区块链新手的以太DApp实战入门教程 区块链+IPFS+Node.js+MongoDB+Express去中心化以太电商应用开发实战 其他更多内容也可以访问这个以太博客

    1.4K31发布于 2018-09-04
  • 来自专栏深入浅出区块链技术

    Truffle以太合约部署实战

    概述 truffle 是世界级的以太开发框架 •内置智能合约编译、连接、开发和二进制管理•快速开发的自动化合约测试•脚本、可扩展性部署和迁移框架•用于部署到任意数量的公网和私网的网络管理•为合约通信提供交互式控制台 创建项目 truffle init 目录结构 •contracts: 存放合约•migrations:存放部署脚本•test:测试文件•truffle-config.js: 配置文件,配置不同网络 创建合约 storedData =x; } function get() public view returns (uint){ return storedData; } } 编译合约

    65510发布于 2020-07-14
  • 来自专栏Seebug漏洞平台

    以太合约审计 CheckList 之“以太智能合约设计缺陷问题”影响分析报告

    作者:LoRexxar'@知道创宇404区块链安全研究团队 发布时间:2018/08/22 本系列上一篇:以太合约审计 CheckList 之“以太智能合约规范问题”影响分析报告 一、 简 介 在知道创宇 404区块链安全研究团队整理输出的《知道创宇以太合约审计CheckList》中,把“条件竞争问题”、“循环DoS问题”等问题统一归类为“以太智能合约设计缺陷问题”。 我们利用该平台针对上述提到的《知道创宇以太合约审计CheckList》中“以太智能合约设计缺陷”类问题在全网公开的智能合约代码做了扫描分析。 ,循环是一种很常见的结构,但由于以太智能合约的特殊性,在循环也有很多需要特别注意的点, 存在潜在的合约问题与安全隐患。 ,我发现有一类问题比较特殊,这些问题的诞生根本原因都是因为以太智能合约本身的设计缺陷,再加上开发者对此没有清晰的认识,导致了合约本身的一些隐患。

    70940发布于 2018-09-30
  • 来自专栏Seebug漏洞平台

    以太合约审计 CheckList 之“以太智能合约编码设计问题”影响分析报告

    一、简 介 在知道创宇404区块链安全研究团队整理输出的《知道创宇以太合约审计CheckList》中,把“地址初始化问题”、“判断函数问题”、“余额判断问题”、“转账函数问题”、“代码外部调用设计问题 ”、“错误处理”、“弱随机数问题”等问题统一归类为“以太智能合约编码设计问题”。 我们利用该平台针对上述提到的《知道创宇以太合约审计CheckList》中“以太智能合约编码设计”类问题在全网公开的智能合约代码做了扫描分析。 详见下文: 二、漏洞详情 以太智能合约以太概念中非常重要的一个概念,以太实现了基于solidity语言的以太虚拟机(Ethereum Virtual Machine),它允许用户在链上部署智能合约代码 8万笔交易「封死」以太网络,只为抢夺Fomo3D大奖?

    72740发布于 2018-10-23
  • 来自专栏极客编程

    深入以太智能合约 ABI

    开发 DApp 时要调用在区块链上的 Ethereum 智能合约,就需要智能合约的 ABI。本文希望更多了解 ABI,如为什么需要 ABI?如何解读 Ethereum 的智能合约 ABI? 从智能合约的代码到使用智能合约,大概包含几个步骤: 编写智能合约的代码(一般是用 Solidity 写) 编译智能合约的代码变成可在 EVM 上执行的 bytecode(binary code)。 同时可以通过编译取得智能合约的 ABI 部署智能合约,实际上是把 bytecode 存储在链上(通过一个transaction),并取得一个专属于这个合约的地址 如果要写个程序调用这个智能合约,就要把信息发送到这个合约的地址 Etherscan 许多知名合约会把合约 source code 放上 Etherscan 做验证,可以同时看到h 合约ABI。 ? 安利两个区块链、以太开发DApp的实战教程: 1.适合区块链新手的以太DApp开发: http://xc.hubwiz.com/course/5a952991adb3847553d205d1 2.用区块链

    5.3K31发布于 2018-09-04
  • 来自专栏FutureTester

    Solidity学习--初识以太合约

    Solidity 的代码都包裹在合约里面. 一份合约就是以太应币应用的基本模块, 所有的变量和函数都属于一份合约, 它是你所有应用的起点. 简单的合约: // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.4.16 <0.9.0; contract SumTest{     uint ,这是一个简单的计算合约,世界上任何人都可以调用set方法为a和b赋值,传入不同的值,覆盖你的值,但是这个值仍会被存储在区块链的历史记录中;sum方法会获取到链上a和b两个数字的和。 这是为了确保合约不会在新的编译器版本中突然行为异常。 ,再部署到以太链上去,最后调用合约方法

    48110编辑于 2022-04-18
  • 来自专栏Seebug漏洞平台

    以太智能合约审计 CheckList

    作者:知道创宇404区块链安全研究团队 时间:2018年11月12日 在以太合约审计checkList中,我将以太合约审计中遇到的问题分为5大种,包括编码规范问题、设计缺陷问题、编码安全问题、编码设计问题 其中涵盖了超过29种会出现以太智能合约审计过程中遇到的问题。帮助智能合约的开发者和安全工作者快速入门智能合约安全。 (https://paper.seebug.org/626/) (2) 重入漏洞 智能合约中避免使用call来交易,避免重入漏洞 在智能合约中提供了call、send、transfer三种方式来交易以太 真实世界事件 call注入 以太智能合约call注入攻击(https://paper.seebug.org/624/) 以太 Solidity 合约 call 函数簇滥用导致的安全风险(https: 关于owner权限问题,应该遵循几个要求: 1、合约创造后,任何人不能改变合约规则,包括规则参数大小等 2、只允许owner从合约中提取余额 (9) 用户鉴权问题 合约中不要使用tx.origin做鉴权

    1.3K31发布于 2018-12-13
  • 来自专栏深入浅出区块链技术

    使用hardhat 开发以太智能合约-测试合约

    本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太智能合约-测试合约[3] 第三节:使用 hardhat 开发以太智能合约-发布合约[4] 第四节:使用 hardhat 开发以太智能合约-验证合约[5] 上一章我们讲解了如何搭建基本的 hardhat 开发环境,这一章我们来讲一下如何测试、部署合约 特别提醒 ,以及网络的选择,小伙伴们我们下节课见咯 参考资料 [1] 全干攻城尸: https://learnblockchain.cn/people/5344 [2] 使用hardhat开发以太智能合约-搭建环境 : https://learnblockchain.cn/article/4885 [3] 使用hardhat开发以太智能合约-测试合约: https://learnblockchain.cn/article /4930 [4] 使用hardhat开发以太智能合约-发布合约: https://learnblockchain.cn/article/4929 [5] 使用hardhat开发以太智能合约-验证合约

    1.4K20编辑于 2022-11-07
  • 来自专栏深入浅出区块链技术

    使用hardhat 开发以太智能合约-发布合约

    本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太智能合约-测试合约[3] 第三节:使用 hardhat 开发以太智能合约-发布合约[4] 第四节:使用 hardhat 开发以太智能合约-验证合约[5] 通过我们前面两节课程的学习,我们掌握了 hardhat 开发环境的基本搭建流程以及合约的测试方法, 1、本地合约部署 hardhat 作为强大的合约开发辅助工具,其本身自带了一套以太区块链环境,当我们在执行部署命令时,如果不指定网络,默认是使用自带的区块链环境 npx hardhat run . : https://learnblockchain.cn/article/4885 [3] 使用hardhat开发以太智能合约-测试合约: https://learnblockchain.cn/article /4930 [4] 使用hardhat开发以太智能合约-发布合约: https://learnblockchain.cn/article/4929 [5] 使用hardhat开发以太智能合约-验证合约

    2K20编辑于 2022-11-07
领券