Ⅰ 在以太坊编辑器remix中调试合约使用的是remix的那项功能
Remix是一个IDE (integrated development environment 集成开发环境),用于智能合约开发,使用的语言是solidity,是一个基于浏览器的IDE。也是以太坊官方的IDE。
Ⅱ 以太坊合约中一个合约是否可以调用另外一个合约
可以的,参考合约之间的交互。数字货币交易平台币汇。比如我正试图从另一个工厂合约中签智能合约,然后重新部署新智能合约的地址。然而,它返回的地址是交易哈希值而不是合约地址。我相信这是因为当地址被返回时合约尚未开采。当我使用Web3部署智能合约时,它似乎一直等到智能合约被部署完成后才输出合约地址。
Ⅲ 以太坊和以太经典的区别
关于区块链的可变性。
ETH,假如大部分人同意修改链条也就是可变性,那么就可以修改区块链记录和合约。
ETC,区块链记录和合约不可修改,也就是不可篡改性。
下面是关于两种方法的利弊。
可变性的好处是人们可以适时地改变以做出正确的决定,因此,修改规范比找漏洞更实用。
不可修改性是人们不管当时有多聪明,但也不可能会不出错,因此,应对此方案出现问题的时候,最好是通过现有的法律框架来寻找和解决漏洞。
关于发展的不同
ETH,不管是有意安排或者从诞生就如此,区块链核心决策都是在社区的参与下由以太坊基金会制定并大部分由它开发。
ETC,区块链的决策主要是通过三个松散的,有协作关系的团队在社区参与下得到反馈而决定的。
在任何情况下,任何人都可以为两种区块链提出改进建议,这正是开源之好处,也是很常见的,你会发现,这两条链的开发人员通过Github和Reddit来相互沟通,我希望为了实现共同目标,提高沟通和交流的频率。
关于兼容性
目前,这两种区块链都相互兼容,ETH写的合约,或应用程序,可以在ETC上应用,反之亦然。
ETH,专注于eWASM,致力于为越来越多的开发者提供平台,而对于合约安全性的问题是次要的,例如:Viper。
ETC,专注于让开发者创造出更安全的合约,例如:Viper,IOHK研究,代价是消耗潜在的开发者人数。
很明显,这两条链都可以互相接纳,不管它们的意愿是否相同,我的看法是,开发人员的数量并不一定与产品的质量挂钩。
关于交易速度
ETH,平均25秒,升级之后会缩短。
ETC,平均14秒,升级之后维持在10-14秒,根据ECIP-1010 和 ECIP-1036协议。
关于区块容量
ETH,随着ETH日交易量逐渐达到5百万,区块容量日渐饱和,这种情况跟最近比特币的交易费用问题类似,这个问题可以通过对区块扩容得到解决,通过增加默认的燃料限制。
ETC,目前区块容量还有很大空间,随着越来越多的人接受ETC,区块容量也会随着增加,跟ETH一样。
关于社区
ETH,主要在Reddit上讨论
ETC,主要在Slack上讨论
关于货币政策
ETH,计划供应稳步增长,导致ETH区块链在生命周期里平均有3%的通货膨胀。
ETC,2025年之前,通货膨胀达到3%,届时总供应量将达到2亿ETC,之后会通货紧缩。
关于交易量的地区分布
ETH,中国占20%,南韩25%,美国25%。
ETC,中国占50%,南韩25%,美国10%。
关于证券
ETH,目前投资者没有交易证券的选择权,最近ETH的一个ETF,交易型开放式指数基金,产品被监管层否定了。
ETC,拥有ETC交易信托基金,该基金允许投资者拥有ETC,而不用拥有这个资产本身。
Ⅳ solidity 智能合约(3):使用truffle编译部署及测试合约
先找源码敲一遍,跑起来,后面慢慢讲怎么用solidity编写以太坊智能合约。
这个文件编写在 contracts 目录下
这个文件在 migrations 目录下
这个文件可以创建一个 test 目录,然后放进去,我这里直接放在了根目录,不太规范。
要编译Truffle项目里的合约,请切换到项目工程所在根目录,然后在终端中键入以下内容:
首次运行时,将编译所有合约。 在后续运行中,Truffle将仅编译自上次编译以来有更改的合约。如果我们想覆盖此行为,可以使用 --all 选项运行上面的命令。
编译的目标文件 Artifacts 将放在 build/contracts/ 目录中,相对于项目根目录(如果该目录不存在,将创建该目录。)
这些 Artifacts 是Truffle内部工作的组成部分,它们在成功部署应用程序中起着重要作用。 不要去编辑这些文件,因为这些文件将被合约编译和部署覆盖。
编译成功后
迁移脚本(JavaScript文件)可帮助我们将合约部署到以太坊网络。 这些文件负责暂存我们的部署任务,并且假设我们的部署需求会随着时间的推移而发生变化。 随着项目的发展,我们将创建新的迁移脚本,以进一步推动区块链的发展。 先前运行的部署记录通过特殊的 Migrations 迁移合约记录在链上,详细信息如下。
部署命令
要运行部署,请运行以下命令:
这将部署在项目的 migrations 目录中的所有迁移文件。 最简单的迁移只是一组管理部署脚本。 如果我们的迁移先前已成功运行,则 truffle migrate 将从上次运行的迁移开始执行,仅运行新创建的迁移。 如果不存在新的迁移, truffle migrate 将不会执行任何操作。 我们可以使用 --reset 选项从头开始运行所有迁移。 对于本地测试,确保在执行 migrate 之前安装并运行了 Ganache等 测试区块链。
测试脚本中输入数值 100 ,取出的数值为 64 (这个值是16进制格式,转为十进制就是 100 ).