jjzjj

Solidity

全部标签

go - 以太坊简单存储 : get() func always returns zero?

https://github.com/ethereum/go-ethereum/wiki/Native-DApps:-Go-bindings-to-Ethereum-contractshttps://decentralize.today/introducing-perigord-golang-tools-for-ethereum-dapp-development-60556c2d9fd简单存储.sol:pragmasolidity^0.4.4;contractSimpleStorage{uintstoredData;functionset(uintx)public{storedData

solidity开发智能合约

文章目录1Solidity与智能合约2智能合约概述3以太坊简介4以太坊交互工具5开发环境搭建5.1remix在线编译器5.2搭建本地网络5.2.1安装本地remix-ide5.2.2安装remixd5.3编译合约5.4编译原理6常见概念7Solidity基础语法7.1数据类型分类7.2remix的使用--第一个智能合约7.3值类型7.3.1布尔bool7.3.2整形intuint7.3.3函数类型7.3.4地址(Address)7.3.5枚举类型(enums)7.3.6定长字节数组7.4引用类型7.4.1不定长数组7.4.2字符串(string)7.4.3引用类型的内存分配(memory和st

如何用 Solidity 创建一个“Hello World”智能合约

最近发几篇简单的入门文章,帮助刚刚进入行业的工程师。这篇文章将带你学习如何使用智能合约开发语言Solidity创建一个名为“HelloWorld”的智能合约。这篇文章不需要先验知识,初学者也很容易上手,跟着下面的步骤操作也可以轻松地的创建你的第一个智能合约。什么是智能合约智能合约是在区块链环境中发布和运行的计算机程序。由于它运行在区块链上,所以其运行不需要中心化的组织或服务器。由于区块链的不变性,智能合约一旦被发布,就无法对其更新或修改。但智能合约中可能编写有具有更改数据功能的函数。信息可以在一个块中记录并在另一个块中删除,其历史记录会被保存并可以对其审核。Solidity编程语言Solidi

Solidity中的calldata,storage,memory

目录calldatamemorystorage三者之间的转换storage作为参数,赋值到memory(1)(2)(3)storage作为参数,赋值给storagememory作为参数,赋值给memorymemory作为参数,赋值给storagecalldata官方文档对calldata的描述:Calldataisanon-modifiable,non-persistentareawherefunctionargumentsarestored,andbehavesmostlylikememory.翻译:Calldata是一个不可修改的、非持久化的区域,函数参数存储在这里,其行为主要类似于内存。

Solidity – 数组

数组是存储相同数据类型元素的固定集合的数据结构,其中每个元素都有一个称为索引的特定位置。我们不需要创建大量相同类型的单独变量,而是声明一个所需大小的数组并将元素存储在数组中,并且可以使用索引进行访问。在Solidity中,数组可以是固定大小或动态大小。数组有一个连续的内存位置,其中最低的索引对应于第一个元素,而最高的表示最后一个元素创建一个数组要在Solidity中声明数组,应指定元素的数据类型和元素的数量。数组的大小必须是正整数并且数据类型应该是有效的Solidity类型句法:[大小]=固定大小的数组数组的大小应该是预定义的。元素的总数不应超过数组的大小。如果未指定数组的大小,则创建足够大小

【区块链技术开发】 关于Windows10平台Solidity语言开发环境配置

目录1、安装Node.js2、安装Solidity编译器3、安装RemixIDE4、安装MetaMask浏览器插件5、环境配置与问题解决6、安装Ganache:以太坊区块链开发测试工具7、安装Web3.js库8、VsCode配置Solidity语言环境并运行示例代码编译方法1:运行上述示例只需在终端输入编译命令Solcjs编译方法2:安装Solidity插件9、在VSCode运行合约参考文献在Windows上配置Solidity语言开发环境需要进行以下步骤:1、安装Node.jsSolidity编译器需要Node.js环境来运行,因此需要先安装Node.js。可以从Node.js官网(http

Solidity 开发环境搭建

 目录如何在以太坊上编写智能合约设置开发环境编写合约部署如何在以太坊上编写智能合约Solidity是用于开发以太坊智能合约的最受欢迎的语言之一,因此,作为一个想要成为区块链开发人员的人,需要学习如何使用Solidity开发智能合约。设置开发环境我们将使用的IDE是Remix,在浏览器输入RemixURL。完成后,你应该会看到一个类似以下的界面:在左侧,我选择了两个主要组件。第一个图标是文件浏览器,在这里可以查看你所有的Solidity文件,第二个图标是插件管理器,从中可以添加新插件。我们将需要添加两个插件,因此请单击插件管理器图标,然后输入“Soliditycompiler(编译器)”。然后通

solidity 合约入金出金(eth)

合约入金(eth)    合约入金有四个方式:        合约函数入金,只需合约函数用publicpayable修饰即可        回调函数入金(无参数函数也叫callback函数)用publicpayable修饰即可如            function()publicpayable{}        外部账户直接给已存在的合约地址转入eth        外部地址部署智能合约时转入eth                合约出金(eth)    合约要出金给他人账户,必须在合约内执行调用,调用方式有三种        receiveAddress.transfer(uint256

solidity中转账接收者与发起者的问题

转账接收者、发起者问题问题描述基础知识1、address(this)2、msg.sender2.2账户地址分析问题解决1、我的问题2、到底谁是转账的发送者呢?总结问题描述准备写个转账的代码时,发现solidity语言中转账的函数有三个,分别是send、transfer、call。用法也很简单: 目标接收者地址.transfer(金额); 目标接收者地址.send(金额); 目标接收者地址.call.value(金额)();但使用过程中,总是转账失败,返回revert错误,显示没有钱发送。此时我就很想知道到底是谁再给目标地址转账了。可以很明显的看出,代码很明显指出接收者是谁,但是发送

Solidity - 安全 - 重入攻击(Reentrancy)

TheDAO事件首先简要说明下一个很有名的重入攻击事件,再模拟重入攻击。TheDAO是分布式自治组织,2016年5月正式发布,该项目使用了由德国以太坊创业公司Slock.it编写的开源代码。2016年6月17上午,被攻击的消息开始在社交网站上出现,到6月18日黑客将超过360万个以太币转移到一个childDAO项目中,childDAO项目和TheDAO有着一样的结构,当时以太币的价格从20美元降到了13美元。当时,一个所谓的”递归调用“攻击(现在称为重入攻击)名词随之出现,这种攻击可以被用来消耗一些智能合约账户。这次的黑客攻击最终导致了以太坊硬分叉,分为ETH和ETC,分叉前的为ETC(以太坊