宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > ETH > 正文

布朗尼(Brownie):以太坊的智能合约基础框架

作者:

时间:1900/1/1 0:00:00

编者按:本文来自量化踢马河,Odaily星球日报经授权转载。一提到到布朗尼,可千万不要以为就是那种黑色巧克力味的美味小蛋糕,这里说到的布朗尼,指的是以太坊上,名为布朗尼的智能合约基础框架。布朗尼用于开发以太坊智能合约,其稳健性和易于使用性都非常的高,常被用来进行:部署:自动将许多合同部署到区块链上,初始化或者集成它们所需的任何交易。交互:编写脚本,或者使用控制台与主网上的合同进行交互,或是在本地环境中进行快速测试。调试:在事务恢复时获取详细信息,以帮助您快速查明问题。测试:用Python编写单元测试,并基于堆栈跟踪分析评估测试覆盖率。接下来我们来试着在Solidity中创建一个非常简单的智能合约,仅公开两个外部函数getValue和setValue.把这个智能合约保存在文件smart_contract.sol.

接下来通过布朗尼部署此智能合约并与之交互。设定此次尝试使用的是Python3.7和virtualenv隔离我们的环境。如果没有安装Python3.7,可以按照以下步骤操作。

第58届格莱美奖最佳说唱歌手克里斯·布朗发行The Auracles NFT:4月26日消息,第58届格莱美奖最佳说唱歌手克里斯·布朗(Chris Brown)在其官方社交媒体账号上宣布推出全新NFT系列The Auracles,旨在为NFT领域的黑人创意人士提供支持,这也是克里斯·布朗发行的首个NFT。Auracle是一个穿越时空影响世界的超级英雄,以黑人形象出现,据悉,该NFT将与洛杉矶品牌Renowned进行合作,在5月10日正式发行并同步推出实体街头服饰。[2022/4/26 5:12:45]

我们将会使用Ganache,它是用于以太坊开发的个人区块链。你也可以改为安装ethereum-testrpc,但会导致无法运行图形界面。安装Ganache时,要按照步骤进行。为你的Solidity项目创建虚拟环境。此处已创建,并命名为TestBrownie.安装布朗尼。

要初始化一个空项目,先从创建一个新文件夹开始。在该文件夹中,键入:

NBA巨星勒布朗·詹姆斯申请NFT相关商标:3月10日消息,据Mike Kondoudis律师在推特上披露的文件,NBA巨星勒布朗·詹姆斯(LeBron James)已经申请了四个与NFT相关的商标。有关NFT的具体信息未披露。此前2月份,他曾于美国最大的体育赛事超级碗期间出现在Crypto.com的广告中。(Coiningape)[2022/3/10 13:48:09]

项目结构每个布朗尼项目均含以下文件夹:contracts/:合同来源interfaces/:接口源scripts/:用于部署和交互的脚本tests/:用于测试项目的脚本brownie-config.yaml:项目的配置文件下面这些文件夹也由布朗尼创建,并在内部用于项目管理,不可编辑或删除。build/:项目数据,例如编译器工件和单元测试结果reports/:在GUI中使用的JSON报告文件编译smart_contract.sol在contracts目录中复制您的智能合约。编译contracts/项目子文件夹中的所有合同源:

每次编译器运行时,布朗尼都会将每个合同源的哈希值与现有已编译版本的哈希值进行比较。如果合同没有更改,则不会重新编译。如果你希望强制重新编译整个项目,请使用browniecompile–all。如果要编译具有其它版本的Solidity合同,只需要在.sol文件的使用说明中提及该合同即可。如果不存在,它将自动安装。此处应该注意:编码器的设置位于brownie-config.yaml。

声音 | 丹布朗·卡卡:BTC属于跟涨ETH 不是真正走强:据币圈分析师丹布朗·卡卡分析,BTC目前处于反复的建仓期,走势经常快速冲高回落,主动吸筹的状态已经出现。在ETH的刺激之下,今早再次冲上3700区域,属于被动跟涨,并不是真正走强。未来三天是否站稳3700区域才能确认有效突破,假突破会继续探底确认3600区域,上方4000区域将是高压。目前熊市阶段反复无常,建议不必急于一时追涨,每一次暴力拉升,都会迎来凶狠的砸盘。[2019/2/18]

修改任何编译器设置将会导致项目的完全重新编译。如果在配置文件中设置了编译器版本,则将使用该版本来编译项目中的所有合同。版本应以格式的字符串形式给出0.x.x.如果版本设置为null,则布朗尼会查看每个合同的版本使用程序,并使用已安装的最新匹配编译器版本。关于evm_version,布朗尼根据编译器设置规则集。Byzantium:Solidity<=0.5.4Petersburg:Solidity>=0.5.5<=0.5.12Istanbul:Solidity>=0.5.13,Vyper你也可以手动设置EVM版本。有效的选项为byzantium,constantinople,petersburg和istanbul.还可以使用EthereumClassic规则集atlantis和agharta,在传递给编译器之前,它们会转换为等效的以太坊。注意:布朗尼支持的Solidity版本>=0.4.22和Vyper版本0.1.0-b16。成功编译后,布朗尼将SimpleContract.json在builds/contract文件夹中创建一个文件。部署打开brownie-config.yaml,它有一个网络部分,你可以自定义现有网络,也可以在网络下创建一个新块。此处使用在端口7545上运行的GanacheGUI。

布朗克斯区摩托车手团伙成员被控200万美元以太币绑架:据ccn,去年11月,35岁的Louis Meza在三名帮派成员的帮助下绑架了他的朋友,以盗取受害者加密货币。2017年12月,Meza被曼哈顿检察官指控绑架和抢劫受害者。当时,该事件的视频片段被用来抓捕Meza,然而其余的嫌疑犯却无处可寻。本周《纽约每日新闻》报道说,布朗克斯区的摩托车手团伙成员因在以太币抢劫中帮助Meza而被起诉。幸运的是,执法人员能够找回大部分加密货币。这三名帮派成员对指控不认罪,目前被关押,每人保释金为5万美元。[2018/6/18]

在网络下创建一个私有块。

保存此文件。现在使用布朗尼控制台部署编译的智能合约。它与常规Python解释器非常相似。从项目文件夹中,通过键入以下内容加载它:

布朗兄弟哈里曼:委内瑞拉石油币只是个噱头:布朗兄弟哈里曼银行(BBH)称,委内瑞拉“石油币(petro)”只是一个噱头,虽是世界上第一个主权加密货币,但其诞生只是为了规避现有制裁,避免解决国家深层结构问题。[2018/2/27]

使用在GanacheGUI上可见的账户来交叉检查输出中的账户。

每个单独的账户都由Account可以执行操作的对象表示,例如查询余额或发送ETH。

每个可部署的合同和库都有一个ContractContainer用于部署新合同和访问现有合同。所有已编译的合同都可以作为同名变量使用。

部署带有账户的合同0:

如果键入SimpleContract,则可以看到SimpleContract作为ContractContainer对象的已部署实例的列表。

相互作用参阅此合同上可用的方法:

从在智能合约中设置变量开始。

每个交易返回一个TransactionReceipt对象。该对象包含有关交易的所有相关信息,以及各种有助于恢复交易的调试方法。要获取有关交易的可读信息,使用TransactionReceipt.info()。

检查时使用:

以上就是关于布朗尼的基础知识,如果有兴趣,可用自行进行尝试。本文编译自Graphicaldot的“LearntheBasicsofBrownie”。

标签:CONRACTRACONTconflux币手机怎么挖drac币价格BitradioContent Coin

ETH热门资讯
曾经的山寨币血亏者:它们就是垃圾,我不碰了

编者按:本文来自哔哔News,作者:小苹果啊,Odaily星球日报经授权转载。 BTC减半行情下,加密货币市场整体回暖,沉默2年的山寨币迎来普涨,山寨币持有者却心情复杂.

1900/1/1 0:00:00
Eth2信标链:你首先该知道的事

编者按:本文来自:以太坊爱好者,作者:ethos.dev,翻译:阿剑,Odaily星球日报经授权转载.

1900/1/1 0:00:00
DAO:来自未来的组织形式

什么是DAO DAO,即DecentralizedAutonomousOrganization,中文为去中心化自治组织。下面是维基百科的定义:去中心化自治组织,是一个完全受参与者控制的,不受任何一个集权主体影响的组织.

1900/1/1 0:00:00
揭秘尼日利亚:为什么是全球最爱比特币的国度?

:"\u003Cp\u003E编者按:本文来自\u003Cahref=\"https:\u002F\u002Fmp.weixin.qq.

1900/1/1 0:00:00
bZx事件的启示:利用DeFi协议和产品的一次套利操控

编者按:本文来自蓝狐笔记,Odaily星球日报经授权转载。黑客在ETHDenver大会期间对bZx发起攻击,就像是对DeFi精心策划的一次精准伏击。虽然损失的金额不大,但它显然对过去两天的市场行情产生了一些影响.

1900/1/1 0:00:00
区块链+人工智能:实现AI自主创建交易金融工具

编者按:本文来自量化踢马河,Odaily星球日报经授权转载。作为一名加密爱好者,你对金融科技领域一定有所涉猎,想必对于人工智能一词也必然不会陌生.

1900/1/1 0:00:00