草庐IT

Web3.js的基本使用(与以太坊智能合约的交互)

目录标题web3.js介绍web3模块加载异步回调(callback)回调Promise事件(v1.0.0)常用API——基本信息查询查看web3版本查看web3连接到的节点版本(clientVersion)基本信息查询获取networkid获取节点的以太坊协议版本网络状态查询是否有节点连接/监听,返回true/false查看当前连接的peer节点Provider查看当前设置的web3provider查看浏览器环境设置的web3provider(v1.0.0)•web3.givenProvider设置providerweb3通用工具方法以太单位转换数据类型转换字符编码转换地址相关coinbas

Fabric智能合约——Chaincode(一)简介

Fabric智能合约整体介绍,首先看一下Fabric交易流程 在这张图中,5、6步是public数据的步骤,7、8、9是private数据的步骤,除了这一部分外,其他步骤均相同。FabricChaincode简介        Fabric中智能合约称为链码(Chaincode),使用计算机语言描述合约条款、交易的条件、交易的业务逻辑等,通过调用链码实现交易的自动执行和对账本数据的操作,是应用程序与底层交互的媒介。       链码在一个独立于Peer节点的Docker容器中执行,通过gRPC与背书节点连接,双方通过发送ChaincodeMessage来进行交互通信。       一个Chai

剖析Solidity合约创建EVM bytecode

1.引言前序博客有:EthereumEVM简介揭秘EVMOpcodes在以太坊中,当合约创建时,initcode将作为交易的一部分发送,然后返回该合约的实际bytecode——runtimecode。详细可参看以太坊黄皮书第7章。当交易中的recipient地址为空(即0)时,该交易为创建合约交易:创建合约交易中可包含value值,即创建合约的同时也给新创建的合约转账(此时,Solidity合约的构造函数需标记payable关键字)。执行交易中的initcode,返回存储在新创建合约的bytecode(runtimecode)。【返回用到RETURNopcode,从虚拟机memory取outp

智能合约开发~~安全性

最低安全限度:~所有代码应该被存在于一个版本控制系统当中,例如git~所有的代码修改都应该通过拉取请求来进行~所有的拉取请求都应该有至少一个审核员。 如果这是一个个人项目,请考虑寻找另一位个人作者和一个交易代码审核员。~使用开发以太坊环境(请参阅:Truffle),只需一个命令就可以编译、部署和运行一套针对您的代码的测试~已经通过Mythril和Sliter等基本代码分析工具运行了代码,最好是在合并每个拉取请求之前,比较输出中的差异。~Solidity代码编辑器不会发出任何警告~您的代码有据可查上面的这些条目是编写智能合约的一个良好的开始,但是在编写代码过程中还有很多要值得注意。关于更多条目及

手把手教你区块链java开发智能合约nft-第一篇

文章目录手把手教你区块链java开发智能合约nft-第一篇安装基础环境编写智能合约使用web3j开源框架生成java代码手把手教你区块链java开发智能合约nft-第一篇刚接触区块链开发,使用java开发,真的是太难了,自己一步步摸索,从新手小白一路碰壁,动不动就报错,去网上搜索对应错误,还真什么都搜索不到,摸索了三四个月,今天终于有了一些进展,今天开始分享出来,希望能帮助到需要的朋友我作为一个java后端的程序员,不会写智能合约,但是可以找对应会的人写,或者自己网上找资料自己写。这里只介绍怎么将智能合约转为java代码如何将智能合约转成java代码?我了解的有好2两种方式,具体可以参考:区块

智能合约开发笔记-hardhat入门

Hardhat是什么?Hardhat是一个编译、部署、测试和调试以太坊应用的开发环境。怎么安装?先安装nodejs环境;然后打开命令行执行以下命令, 在项目目录pj_220509下安装hardhat环境:mkdir pj_220509cd   pj_220509npminstall--save-devhardhat怎么创建项目?pj_220509目录下,执行命令npxhardhatD:\01steven-disk\blockchain\workspace\pj220509>npxhardhat888888888888888888888888888888888888888888888888888

智能合约安全性

以太坊智能合约是极为灵活的。它能够存储超过非常大量的虚拟货币(超过十亿美元),并且根据先前部署的智能合约运行不可修改的代码。虽然这创造了一个充满活力和创造性的生态系统,但其中包含的无信任、相互关联的智能合约,也吸引了攻击者利用智能合约中的漏洞和以太坊中的未知错误来赚取利润。智能合约代码通常无法修改来修复安全漏洞,因此从智能合约中被盗窃的资产是无法收回的,且被盗资产极难追踪。由于智能合约问题而被盗取或丢失的价值总额很容易超过10亿美元。  审核不是完美的解决方案几年前,用于编写、编译、测试和部署智能合约的工具还非常不成熟,许多项目被随意地编写Solidity代码,并将其交给审查员,审查员将审查代

智能合约安全性

以太坊智能合约是极为灵活的。它能够存储超过非常大量的虚拟货币(超过十亿美元),并且根据先前部署的智能合约运行不可修改的代码。虽然这创造了一个充满活力和创造性的生态系统,但其中包含的无信任、相互关联的智能合约,也吸引了攻击者利用智能合约中的漏洞和以太坊中的未知错误来赚取利润。智能合约代码通常无法修改来修复安全漏洞,因此从智能合约中被盗窃的资产是无法收回的,且被盗资产极难追踪。由于智能合约问题而被盗取或丢失的价值总额很容易超过10亿美元。  审核不是完美的解决方案几年前,用于编写、编译、测试和部署智能合约的工具还非常不成熟,许多项目被随意地编写Solidity代码,并将其交给审查员,审查员将审查代

以太坊Solidity合约升级策略

1.引言前序博客有:以太坊proxy合约以太坊的proxycontractpattern合约升级示例代码可参看:https://github.com/celo-org/optics-monorepo/tree/main/solidity/optics-core/contracts/upgrade其中,主要由三部分组成:1)UpgradeBeacon.sol:存储了implementation合约的地址,支持controller对该implementation地址进行升级操作。2)UpgradeBeaconController.sol:设置为UpgradeBeacon合约的controller,

关于【可变合约】的二三事(下)

代理合约delegatecall函数要比较好地理解代理合约,必须对delegatecall函数有所了解。delegatecall是solidity中比较底层的函数,其主要作用就是委托调用,在日常的业务开发中,其实用的比较少,与之类似的函数还有call函数,也是比较底层的函数,其作用是调用。如果你当前不太理解,没有关系,我直接给一个具体的例子,让你比较好地理解delegatecall。首先,在进行编码前,你需要知道delegatecall的语法:目标合约address.delegatecall(合约方法对应的二进制编码)。怎么获得二进制编码?这需要理解SolidityABI(Applicatio