智能合约-Solidity官方文档(1)

2023-11-19

写在前面:HiBlock区块链社区成立了翻译小组(以太坊中文社区),翻译区块链相关的技术文档及资料,本文为solidity官方文档翻译的第一部分《智能合约概述》,特发布出来邀请solidity爱好者、开发者做公开的审校,您可以添加微信baobaotalk_com,验证输入“solidity”,然后将您的意见和建议发送给我们,也可以在文末“留言”区留言,有效的建议我们会采纳及合并进下一版本,同时将送一份小礼物给您以示感谢。

1
简单的智能合约


让我们先看一下最基本的例子。现在就算你都不理解也不要紧,后面我们会有更深入的讲解。


存储

pragma solidity ^0.4.0;


contract SimpleStorage {
   uint storedData;

   function set(uint x) public {
       storedData = x;
   }

   function get() public constant returns (uint) {
       return storedData;
   }

}


第一行就是告诉大家源代码使用Solidity版本0.4.0写的,并且使用0.4.0以上版本运行也没问题(最高到0.5.0,但是不包含0.5.0)。这是为了确保合约不会在新的编译器版本中突然行为异常。关键字 pragma 的含义是,一般来说,pragmas(编译指令)是告知编译器如何处理源代码的指令的(例如, pragma once )。


Solidity中合约的含义就是一组代码(它的 函数 )和数据(它的 状态 ),它们位于以太坊区块链的一个特定地址上。 代码行 uint storedData; 声明一个类型为 uint (256位无符号整数)的状态变量,叫做 storedData 。 你可以认为它是数据库里的一个位置,可以通过调用管理数据库代码的函数进行查询和变更。对于以太坊来说,上述的合约就是拥有合约(owning contract)。在这种情况下,函数 set 和 get 可以用来变更或取出变量的值。


要访问一个状态变量,并不需要像 this. 这样的前缀,虽然这是其他语言常见的做法。


该合约能完成的事情并不多(由于以太坊构建的基础架构的原因):它能允许任何人在合约中存储一个单独的数字,并且这个数字可以被世界上任何人访问,且没有可行的办法阻止你发布这个数字。当然,任何人都可以再次调用 set ,传入不同的值,覆盖你的数字,但是这个数字仍会被存储在区块链的历史记录中。随后,我们会看到怎样施加访问限制,以确保只有你才能改变这个数字。



子货币(Subcurrency)例子


下面的合约实现了一个最简单的加密货币。这里,币确实可以无中生有地产生,但是只有创建合约的人才能做到(实现一个不同的发行计划也不难)。而且,任何人都可以给其他人转币,不需要注册用户名和密码 —— 所需要的只是以太坊密钥对。


pragma solidity ^0.4.21;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

智能合约-Solidity官方文档(1) 的相关文章

  • 最简单的区块链实现,不到50行代码!(一)

    什么是区块链 Blockchain 一个电子记账本 以比特币和其他密码加密货币进行的交易公开地 按照日期顺序记录其中 总的来说 它是一个公开的数据库 新的数据存储在一个称为区块的容器中 并且附加到一个 不可变 的链条 即区块链 上 链条上还
  • Gavin Wood Web3峰会最新演讲:波卡不是智能合约平台,而是平台的平台(全文)...

    在波卡上 每个平台都在用高性能 高效率和最优的方式做着自己擅长的事 而不必让它们的用户用底层平台的货币进行支付 从而将可定制性和灵活性提高了一个台阶 本文谨代表作者个人观点 不代表火星财经立场 该内容旨在传递更多市场信息 不构成任何投资建议
  • 2018年区块链人才趋势:降温、调节、蓄势待发

    2018年 戊戌年 是一个不平静的年份 自960年前的戊戌年王安石变法 到最近两百年的四个戊戌年 其间发生的大事无不与 变革 息息相关 年初 从科技圈 金融圈里 引爆出一个叫 区块链 的公众热点 从技术角度而言 这并非新生事物 但因其巨大的
  • 浅析『链上数据分析』 : 区块链 + 数据分析

    什么是链上数据分析 01 区块链 02 链上数据 03 为什么要分析链上数据 04 数据分析思维 05 数据分析技能 06 数据分析工具 07 业务逻辑理解 什么是链上数据分析 链上数据分析 顾名思义 就是对区块链上的数据进行分析 其实就是
  • 区块链应用开发(智能合约的开发和WeBASE合约IDE的使用)

    文章目录 四 智能合约的开发和WeBASE合约IDE的使用 一 实验概述 二 实验目标 三 实验环境及建议 四 实验步骤 4 1 启动Webase 4 2 智能合约开发 4 2 1 合约功能设计 4 2 2 存证合约开发 4 2 3 工厂合
  • 区块链程序要怎么去测试?

    区块链程序开发越来越多 区块链怎么做测试 让大家很好奇 与传统测试不同的是区块链系统边界模糊 不管是是独立的应用程序 还是客户端 服务器模式的应用程序 传统软件都具备明显的系统边界 可以通过UI用户界面或者客户端去进行测试 区块链底层则不同
  • 首个数字银行卡明年发行,广州出台区块链措施支持大湾区

    锌链接作为首个提出产业区块链的机构媒体 一直积极推动产业区块链落地 通过深度报道直戳行业痛点 通过分享会聆听行业声音 通过周报呈现行业大观 通过评论展现独特产业观察视角 本周 广州出台66条措施支持粤港澳大湾区金融发展 其中多项与区块链有关
  • Bridge Champ举办人机对战赛:NFT游戏与传统竞技共生发展编织新格局

    概要 现在 NFT与体育竞技正日益紧密地联系在一起 一些体育项目开始推出与赛事或球队相关的NFT 同时也有部分NFT游戏开始举办电子竞技赛事 这种共生发展正在改变体育竞技的生态 笔者采访了桥牌冠军项目相关负责人 探讨NFT游戏与传统体育竞技
  • 如何使用区块链技术保护个人隐私和数据安全

    区块链技术是一种分布式账本技术 它具有不可篡改 去中心化 透明度高等特点 区块链技术能够实现数据的可信存证 隐私保护和交易安全 并且能够通过智能合约的自动执行 因此被广泛应用于金融 电商 物流 社交网络等领域 区块链技术的核心是 分布式账本
  • AWS动手实验 - 创建一个Web3网站

    实验操作和录播 亚马逊云科技开发者社区 web3 dApp demo README CN md at main Chen188 web3 dApp demo GitHub 注意事项 按照操作手册进行即可 需要注意到的几个地方 1 EC2 的
  • 自己动手部署以太坊联盟链

    一个区块链学习项目 GitHub https github com xianfeng92 Love Ethereum 假设已经在Ubunbu 14 04 LTS上安装好了以太坊客户端Geth 使用Geth部署以太坊联盟链 以太坊Geth客户
  • 使用web3和infura开发以太坊ethereum区块链

    web3 Github https github com ethereum web3 js web3 js是以太坊提供的一个Javascript库 它封装了以太坊的RPC通信API 提供了一系列与区块链交互方法 使js与以太坊交互变得简单
  • 凌晨!比特币突破4万美元,本轮上涨分析与未来展望!

    比特币在上周五 1日 成功突破38000美元大关后 就持续震荡走高 在今晨06 30左右 更是一举突破4万大关 最高来到41750美元 再度刷下2023年新高 以太坊 ETH 在差不多同样时间 最高来到2265美元 刷新年内新高 近24小时
  • 工业互联网会是制造业数字化发展的未来吗?

    新工业革命正逐步形成 你认为工业互联网会是制造业数字化发展的未来吗 从这几年的工业互联网发展政策措施 就能看到答案 早在近三年前 工业互联网创新发展行动计划 2021 2023年 就提出了五方面 11项重点行动和10大重点工程 着力解决工业
  • 在区块链中看CHAT的独特见解

    问CHAT 谈谈对区块链以及区块链金融的理解 CHAT回复 区块链是一种去中心化的分布式数据库技术 这种技术通过加密算法 使数据在网络中传输和存储的过程变得更加安全可靠 区块链的出现引领了存储 交易等形式的革命 改变了诸多行业的运作模式 首
  • Moonbeam生态项目分析 — — 跨链借贷协议Orbiter One

    概览 Orbiter One 是一个非托管的借贷协议和DeFi中心 专注于跨链互操作性 通过使用从借贷中赚取的ORB Token铸造的Intergactic Whiskers Brigade NFT 用户可以质押并获得额外奖励 借贷和跨链存
  • 一文了解Substrate

    Substrate是用于构建特定类型区块链的工具箱 它本身并不是一个区块链 而是开发者用来创建独特而强大的区块链的一套工具 Substrate允许开发者可以自己创建所需所想功能的区块链 无需受限于现有的设计 Substrate使用FRAME
  • NFTScan | 01.01~01.07 NFT 市场热点汇总

    欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总 周期 2024 01 01 2024 01 07 NFT Hot News 01 空投 Mint Blockchain 将于 2024 年 1 月 10 号
  • 期权开户最低多少钱个人可以开?

    大家新年好 现在2024年龙年 很多想玩期权的小伙伴都知道期权开通需要50万的门槛 那么今天来给大家详细介绍下期权开户最低多少钱个人可以开 本文将对期权开户最低金额进行探讨 帮助投资者更好地了解期权交易的投资门槛 本文来自 期权酱 一 期权
  • 案例研究:YGG 如何通过 GAP 帮助 Pixels 扩大玩家群体

    在 Sky Mavis 联合创始人 Jeffrey Jihoz Zirlin 在 YGG Web3 游戏峰会 W3GS 上发表主题演讲时 他向在场的人们透露 MMO 农场游戏 Pixels 的日活跃用户数已经超过了 130 000 人 这使

随机推荐

  • qt sql 查询 正序,倒序

    QString str QString SELECT Date Time People Event FROM TB LOG WHERE People 1 order by Date desc limit 0 2000 arg 模式 orde
  • 请你介绍一下map的分类和常见的情况

    java为数据结构中的映射定义了一个接口java util Map 它有四个实现类 分别是HashMap Hashtable LinkedHashMap 和TreeMap Map主要用于存储健值对 根据键得到值 因此不允许键重复 重复了覆盖
  • 机器学习-线性回归总结

    最近学习了线性回归的模型 也是机器学习中最基础的一种模型 在此 总结一下线性回归的模型介绍 梯度下降以及正规方程 回归问题 线性回归 顾名思义 属于回归问题 既然是回归问题 那必然属于监督学习 在这里简单再介绍一下什么是回归问题 回归用于预
  • Matlab出错向量长度必须相同,代码已贴。错误使用plot3,向量长度必须相同

    clc clear all theta 60 半功率角 m log10 2 log10 cosd theta P LED 0 02 nLED 60 P total nLED nLED P LED Ar 1e 4 Ts 1 index 1 5
  • 智能科学工程毕业设计如何选题

    文章目录 0 简介 1 如何选题 2 最新智科毕设选题 3 最后 0 简介 学长搜集分享最新的智能科学工程与技术业专业毕设选题 难度适中 适合作为毕业设计 大家参考 学长整理的题目标准 相对容易 工作量达标 题目新颖 1 如何选题 最近非常
  • 【MicroPython RP2040】可编程IOs(PIO)示例介绍

    MicroPython RP2040 可编程IOs PIO 原文链接 https www cnx software com 2021 01 27 a closer look at raspberry pi rp2040 programmab
  • VSCode连接WSL2及VMware,WSL2安装GUI应用

    一 VScode 连接WSL2 参考文章 巨硬官方文档 知乎大佬教程 知乎大佬教程2 1 开启WSL2 支持 使用管理员权限的 Shell 才能安装 WSL2 按 Win X 找到 Windows PowerShell 管理员 并复制执行命
  • mysql (Errcode: 13 - Permission denied)没有权限找不到文件问题

    下午五点钟 突然反馈说某个页面报错 然后还想让我加班 并且很迅速的帮我点了外卖 我还打算今晚去健身房呢 1 首先从案发现场勘察 页面返回500 2 之后看后台发现某个数据表not found permission denied 3 最后到后
  • 第一次跑高光谱数据结果

    1 所用数据集 Bostwana Indian Pines 所用算法 SVM 2 数据分析 高光谱数据维数高 信息量大 冗余信息多 这些先都不考虑 先输入SVM数据再考虑 3 试验流程 加载数据 包括Data和label 数据预处理 归一化
  • python Pycharm出现“can't find '__main__' module”解决方案

    第一次运行Pycharm工程 出现 can t find main module 最后发现 原来是配置没配对 因为在配置时没有选择 py文件 而只选择了工程名 因此选择Edit Configurations 选择Edit Configura
  • 从“深度伪造”到“深度合成”:AI为啥需要一次“正名”?

    在世人对AI的 邪恶性 进行攻诘的浪潮中 AI造假 可能已经是现在排首位的理由了 自从2017年Deepfake 深度伪造 横空出世以后 人们惊呼原来AI在造假方面简直天赋异禀 此后 AI生成内容 技术 特别是GAN算法的突飞猛进更加印证了
  • ChatGLM-6b本地安装手把手教学

    什么是ChatGLM 6B ChatGLM 6B 是一个开源的 支持中英双语的对话语言模型 基于 General Language Model GLM 架构 具有 62 亿参数 结合模型量化技术 用户可以在消费级的显卡上进行本地部署 INT
  • 关于windows update 无法更新,以及.NET4.0安装失败

    故障 打开 Windows Update 出现红色盾牌图标 点击 检查更新 出现 Windows Update 当前无法检查更新 因为未运行服务 您可能需要重新启动计算机 查看 Windows Update 服务 正常 查看 Backgro
  • Linux环境下安装notepad++

    Notepad 在linux下名字为Notepadqq Centos下安装方法 sudo wget O etc yum repos d sea devel repo http sea fedorapeople org sea devel r
  • 爬虫(一):Python网络数据采集(爬虫)概述

    专栏介绍 结合自身经验和内部资料总结的Python教程 每天3 5章 最短1个月就能全方位的完成Python的学习并进行实战开发 学完了定能成为大佬 加油吧 卷起来 全部文章请访问专栏 Python全栈教程 0基础 文章目录 专栏介绍 什么
  • hack the box—Lame

    扫描 还是老方法nmap fscan得到开放的端口和服务 nmap sV sC sT v T4 10 10 10 3 看到开了445 先来波ms17 010 发现失败 这里还开个21 并且可以知道版本号 直接搜索ftp漏洞 msf正好有对应
  • Qiskit API架构介绍(一)

    API是一组类 函数和数据结构 用于与设备和模拟器进行接口 并运行实验 Qiskit实验概述 Qobj中的实验序列定义了运行在后端backend上的量子操作 单个Qobj定义了一批要并发运行的实验 即 Qobj中每个实验按列出的顺序运行一个
  • ttl一会255一会64_Ping TTL 的值越小越好?不对!

    我们在使用Ping命令的时候 通常关注的是 时间 这个值 忽略 TTL 这个值 但是细心的人会发现 TTL的值不是每次Ping都一样 也不是Ping每个域名都一样 这是什么原因呢 TTL 又是什么意思呢 可能不少人认为 TTL 的值越小越好
  • java8 sum_lambda – Java 8流由3个字段组合并按sum和count聚合产生单行输出

    前提 class Product public String name public String category public String type public int id todo implement equals toStri
  • 智能合约-Solidity官方文档(1)

    写在前面 HiBlock区块链社区成立了翻译小组 以太坊中文社区 翻译区块链相关的技术文档及资料 本文为solidity官方文档翻译的第一部分 智能合约概述 特发布出来邀请solidity爱好者 开发者做公开的审校 您可以添加微信baoba