草庐IT

Solidity vs. Vyper:不同的智能合约语言的优缺点

本文探讨以下问题:哪种智能合约语言更有优势,Solidity还是Vyper?最近,关于哪种是“最好的”智能合约语言存在很多争论,当然了,每一种语言都有它的支持者。这篇文章是为了回答这场辩论最根本的问题:我应该使用哪一种智能合约语言?为了弄清问题的本质,我们将先讨论语言的工具和可用性,然后再考虑智能合约开发者主要关心的问题之一:gas优化。具体来说,我们将研究四种EVM语言(可以在Ethereum、Avalanche、Polygon等链上运行的语言):Solidity、Vyper、Huff和Yul。Rust并不在其中,它应该出现在一篇关于非EVM链的文章。但首先,剧透一下结果。Solidity、

Solidity vs. Vyper:不同的智能合约语言的优缺点

本文探讨以下问题:哪种智能合约语言更有优势,Solidity还是Vyper?最近,关于哪种是“最好的”智能合约语言存在很多争论,当然了,每一种语言都有它的支持者。这篇文章是为了回答这场辩论最根本的问题:我应该使用哪一种智能合约语言?为了弄清问题的本质,我们将先讨论语言的工具和可用性,然后再考虑智能合约开发者主要关心的问题之一:gas优化。具体来说,我们将研究四种EVM语言(可以在Ethereum、Avalanche、Polygon等链上运行的语言):Solidity、Vyper、Huff和Yul。Rust并不在其中,它应该出现在一篇关于非EVM链的文章。但首先,剧透一下结果。Solidity、

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约

FISCOBCOSFISCOBCOS是一个稳定、高效、安全的区块链底层平台,经过多家机构、多个应用,长时间在生产环境运行的实际检验。说明文档:FISCOBCOS官方说明文档FISCO(一)搭建FISCOBCOS1、安装ubuntu依赖sudoaptinstall-yopensslcurl2、创建操作目录,下载安装脚本创建操作目录cd~&&mkdir-pfisco&&cdfisco下载脚本curl-#LOhttps://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh&&chmodu+xbuild_c

FISCO BCOS(联盟链)搭建并使用控制台部署智能合约

FISCOBCOSFISCOBCOS是一个稳定、高效、安全的区块链底层平台,经过多家机构、多个应用,长时间在生产环境运行的实际检验。说明文档:FISCOBCOS官方说明文档FISCO(一)搭建FISCOBCOS1、安装ubuntu依赖sudoaptinstall-yopensslcurl2、创建操作目录,下载安装脚本创建操作目录cd~&&mkdir-pfisco&&cdfisco下载脚本curl-#LOhttps://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.8.0/build_chain.sh&&chmodu+xbuild_c

【web3】使用web3.js发布并执行智能合约

前言昨天我们学习了使用web3.js库查询链上区块和交易的用法,今天我们来介绍一下使用web3.js与智能合约的交互。在学习本节前,你应该对智能合约有一定的了解。智能合约的生命周期包括创建、发布、执行以及销毁。创建:在Remix中编写智能合约,编译生成ABI和字节码文件。发布:对应Remix中的Deploy按钮的功能,也即web3.js中合约实例上的deploy方法。执行:对应web3.js中合约实例上的call和send方法。销毁:在合约中使用destruct(address)方法销毁指定合约。因此我们在使用web3.js与合约交互时也包括这几个步骤。与合约交互应用程序二进制接口(ABI)应

【web3】使用web3.js发布并执行智能合约

前言昨天我们学习了使用web3.js库查询链上区块和交易的用法,今天我们来介绍一下使用web3.js与智能合约的交互。在学习本节前,你应该对智能合约有一定的了解。智能合约的生命周期包括创建、发布、执行以及销毁。创建:在Remix中编写智能合约,编译生成ABI和字节码文件。发布:对应Remix中的Deploy按钮的功能,也即web3.js中合约实例上的deploy方法。执行:对应web3.js中合约实例上的call和send方法。销毁:在合约中使用destruct(address)方法销毁指定合约。因此我们在使用web3.js与合约交互时也包括这几个步骤。与合约交互应用程序二进制接口(ABI)应

基于Hardhat编写合约测试用例

基于Hardhat编写合约测试用例为智能合约编写自动化测试至关重要,毕竟写智能合约多多少少都会跟用户资金挂钩。场景这里假设自己正在开发一个NFT交易平台,这个平台可以让用户售卖自己的NFT,包括ERC721和ERC1155,并且用户可以指定购买者需要支付指定的ERC20Token购买。我们先确定自己的测试功能和目标,为了文章篇幅不要太长,我们就以卖家用户调用sell,创建售卖订单功能为目标做测试。合约代码我们需要4个合约文件:ERC20ERC721ERC1155NFTSwap(交易平台)前三种合约最简单的,我们不需要自己再去实现,直接引用Openzeppelin的合约代码即可。在contrac

基于Hardhat编写合约测试用例

基于Hardhat编写合约测试用例为智能合约编写自动化测试至关重要,毕竟写智能合约多多少少都会跟用户资金挂钩。场景这里假设自己正在开发一个NFT交易平台,这个平台可以让用户售卖自己的NFT,包括ERC721和ERC1155,并且用户可以指定购买者需要支付指定的ERC20Token购买。我们先确定自己的测试功能和目标,为了文章篇幅不要太长,我们就以卖家用户调用sell,创建售卖订单功能为目标做测试。合约代码我们需要4个合约文件:ERC20ERC721ERC1155NFTSwap(交易平台)前三种合约最简单的,我们不需要自己再去实现,直接引用Openzeppelin的合约代码即可。在contrac

区块链学习2-合约开发

概述智能合约本质上是运行在某种环境(例如虚拟机)中的一段代码逻辑。长安链的智能合约是运行在长安链上的一组“动态代码”,类似于Fabric的chaincode,Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。长安链的合约分为用户合约和系统合约。长安链·ChainMaker目前已经支持使用C++、Go、Rust、Solidity进行智能合约开发,这里介绍goland合约的开发参考。 环境依赖长安链运行docker-go合约的环境依赖如下:名称版本描述是否必须docker18+独立运行容器是7zip16+压缩、解压合约文件是2.2.0版本的合约开发:编写测试合约:2.2

区块链学习2-合约开发

概述智能合约本质上是运行在某种环境(例如虚拟机)中的一段代码逻辑。长安链的智能合约是运行在长安链上的一组“动态代码”,类似于Fabric的chaincode,Fabric的智能合约称为链码(chaincode),分为系统链码和用户链码。长安链的合约分为用户合约和系统合约。长安链·ChainMaker目前已经支持使用C++、Go、Rust、Solidity进行智能合约开发,这里介绍goland合约的开发参考。 环境依赖长安链运行docker-go合约的环境依赖如下:名称版本描述是否必须docker18+独立运行容器是7zip16+压缩、解压合约文件是2.2.0版本的合约开发:编写测试合约:2.2