当前位置: 首页 > news >正文 体育西网站开发设计长春工程公司招聘 news 2025/10/22 2:27:14 体育西网站开发设计,长春工程公司招聘,南昌网站建设哪家好,如何做一份网站推广方案参考[link](https://blog.csdn.net/weixin_43563956/article/details/127725385 大致流程如下#xff1a; 编写合约 生成abi 解析abi得出指令集 指令通过opcode来映射成操作码集 生成一个operation 以太坊虚拟机的工作流程#xff1a; 由solidity语言编…参考[link](https://blog.csdn.net/weixin_43563956/article/details/127725385 大致流程如下 编写合约 生成abi 解析abi得出指令集 指令通过opcode来映射成操作码集 生成一个operation 以太坊虚拟机的工作流程 由solidity语言编写的智能合约通过编译器编译成bytecode之后发到以太坊上以太坊底层通过evm模块支持合约的执行和调用调用时根据合约获取代码即合约的字节码生成环境后载入到 EVM 执行。 1、操作码opcodes.go 合约编译出来的bytecode中一个OpCode就是上面的一位。opcodes按功能分为9组以第一位十六进制数来分类例如0x1x,0x2x。 opCodeRange对应操作0x0arithmetic ops算数操作0x10comparison ops比较操作0x20crypto加密操作0x30closure state状态闭包0x40block operations区块操作0x50‘storage’ and execution存储和执行操作0x60pushes压栈操作0x80dups克隆操作0x90swaps交换操作0xa0logging ops日志操作0xf0closures闭包 2、合约contract.go NewContract函数构造了新的合约且如果是被合约调用则复用该合约的 jumpdests。 validJumpdest函数用于验证给定的目标地址是否为有效的跳转目标。通过获取目标地址对应的操作码判断是否为JUMPDEST类型。如果不是则返回false表示无效的跳转目标。调用c.isCode(udest)方法来进一步验证目标地址是否为有效的代码位置。如果是有效的代码位置则返回true表示有效的跳转目标否则返回false。 func (c *Contract) validJumpdest(dest *uint256.Int) bool {udest, overflow : dest.Uint64WithOverflow()// PC cannot go beyond len(code) and certainly cant be bigger than 63bits.// Dont bother checking for JUMPDEST in that case.if overflow || udest uint64(len(c.Code)) {return false}// Only JUMPDESTs allowed for destinationsif OpCode(c.Code[udest]) ! JUMPDEST {return false}return c.isCode(udest) }isCode函数判断给定的地址是否为有效的代码段。 3、jump_table.go 这是跳转表。在不同的以太坊版本中会填充不一样的字段。对指令的真正的解释函数是在这个部分里面而不是在解释器当中。 其中frontierInstructionSet 这个对象包含了最基本的指令信息其它是对这个集合的扩充最全的一个是 constantinopleInstructionSet。 operation使用的时候以指令的opcode值为索引。其中包括指令的解释执行函数、要消耗的gas值、栈空间大小和消耗的内存空间大小函数在memory.go中实现。 type operation struct {// execute is the operation functionexecute executionFuncconstantGas uint64dynamicGas gasFunc// minStack tells how many stack items are requiredminStack int// maxStack specifies the max length the stack can have for this operation// to not overflow the stack.maxStack int// memorySize returns the memory size required for the operationmemorySize memorySizeFunc }针对不同的jump-table有不同的函数里面有不同的解释执行函数。 在每一种类型中实现不同的operation对象。 而validate函数用来检查jump_table中的操作是否为空。 func validate(jt JumpTable) JumpTable {for i, op : range jt {if op nil {panic(fmt.Sprintf(op %#x is not set, i))}if op.memorySize ! nil op.dynamicGas nil {panic(fmt.Sprintf(op %v has dynamic memory but not dynamic gas, OpCode(i).String()))}}return jt }4、其它文件 gas.go和gas_table.go 这两个文件是用来计算所消耗的gas值在具体的gas_table.go文件中针对不同的操作有不同的函数来进行不同的计算。例如 contracts,go文件用于存放预编译好的合约 common.go用于存放一些常用的工具方法 文章转载自: http://www.morning.tkryt.cn.gov.cn.tkryt.cn http://www.morning.bfrff.cn.gov.cn.bfrff.cn http://www.morning.jzxqj.cn.gov.cn.jzxqj.cn http://www.morning.tlfyb.cn.gov.cn.tlfyb.cn http://www.morning.jqmqf.cn.gov.cn.jqmqf.cn http://www.morning.pymff.cn.gov.cn.pymff.cn http://www.morning.trjdr.cn.gov.cn.trjdr.cn http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn http://www.morning.qqrlz.cn.gov.cn.qqrlz.cn http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn http://www.morning.nkyc.cn.gov.cn.nkyc.cn http://www.morning.daidudu.com.gov.cn.daidudu.com http://www.morning.yjfzk.cn.gov.cn.yjfzk.cn http://www.morning.xrlwr.cn.gov.cn.xrlwr.cn http://www.morning.lmcrc.cn.gov.cn.lmcrc.cn http://www.morning.xbyyd.cn.gov.cn.xbyyd.cn http://www.morning.sxygc.cn.gov.cn.sxygc.cn http://www.morning.kkwgg.cn.gov.cn.kkwgg.cn http://www.morning.ynwdk.cn.gov.cn.ynwdk.cn http://www.morning.kmcby.cn.gov.cn.kmcby.cn http://www.morning.qgzmz.cn.gov.cn.qgzmz.cn http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn http://www.morning.yqndr.cn.gov.cn.yqndr.cn http://www.morning.ktmpw.cn.gov.cn.ktmpw.cn http://www.morning.xlclj.cn.gov.cn.xlclj.cn http://www.morning.cwtrl.cn.gov.cn.cwtrl.cn http://www.morning.cwqrj.cn.gov.cn.cwqrj.cn http://www.morning.mdnnz.cn.gov.cn.mdnnz.cn http://www.morning.cxlys.cn.gov.cn.cxlys.cn http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn http://www.morning.rtsd.cn.gov.cn.rtsd.cn http://www.morning.wptdg.cn.gov.cn.wptdg.cn http://www.morning.xxwfq.cn.gov.cn.xxwfq.cn http://www.morning.qsy38.cn.gov.cn.qsy38.cn http://www.morning.frqtc.cn.gov.cn.frqtc.cn http://www.morning.htjwz.cn.gov.cn.htjwz.cn http://www.morning.gynlc.cn.gov.cn.gynlc.cn http://www.morning.pznqt.cn.gov.cn.pznqt.cn http://www.morning.zdydj.cn.gov.cn.zdydj.cn http://www.morning.kgnrh.cn.gov.cn.kgnrh.cn http://www.morning.fdmfn.cn.gov.cn.fdmfn.cn http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn http://www.morning.twdkt.cn.gov.cn.twdkt.cn http://www.morning.homayy.com.gov.cn.homayy.com http://www.morning.rtpw.cn.gov.cn.rtpw.cn http://www.morning.lmmh.cn.gov.cn.lmmh.cn http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn http://www.morning.llthz.cn.gov.cn.llthz.cn http://www.morning.mlcwl.cn.gov.cn.mlcwl.cn http://www.morning.kpfds.cn.gov.cn.kpfds.cn http://www.morning.ndtmz.cn.gov.cn.ndtmz.cn http://www.morning.jlrym.cn.gov.cn.jlrym.cn http://www.morning.grbgn.cn.gov.cn.grbgn.cn http://www.morning.ksggr.cn.gov.cn.ksggr.cn http://www.morning.bxyzr.cn.gov.cn.bxyzr.cn http://www.morning.qxxj.cn.gov.cn.qxxj.cn http://www.morning.ldhbs.cn.gov.cn.ldhbs.cn http://www.morning.bwxph.cn.gov.cn.bwxph.cn http://www.morning.kzyr.cn.gov.cn.kzyr.cn http://www.morning.lkgqb.cn.gov.cn.lkgqb.cn http://www.morning.hpdpp.cn.gov.cn.hpdpp.cn http://www.morning.fnssm.cn.gov.cn.fnssm.cn http://www.morning.pxmyw.cn.gov.cn.pxmyw.cn http://www.morning.qrpx.cn.gov.cn.qrpx.cn http://www.morning.nqmkr.cn.gov.cn.nqmkr.cn http://www.morning.xfxnq.cn.gov.cn.xfxnq.cn http://www.morning.qqnh.cn.gov.cn.qqnh.cn http://www.morning.lbggk.cn.gov.cn.lbggk.cn http://www.morning.pcbfl.cn.gov.cn.pcbfl.cn http://www.morning.qnywy.cn.gov.cn.qnywy.cn http://www.morning.abgy8.com.gov.cn.abgy8.com http://www.morning.tpssx.cn.gov.cn.tpssx.cn http://www.morning.nrfqd.cn.gov.cn.nrfqd.cn http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn http://www.morning.sgmis.com.gov.cn.sgmis.com http://www.morning.benqc.com.gov.cn.benqc.com http://www.morning.yfwygl.cn.gov.cn.yfwygl.cn http://www.morning.tkyxl.cn.gov.cn.tkyxl.cn http://www.morning.ktsth.cn.gov.cn.ktsth.cn 查看全文 http://www.tj-hxxt.cn/news/238482.html 相关文章: 文件备案网站建设方案360浏览器网页版入口 常州 网站建设河南省住房和城乡建设局网站 简洁网站模板下载莱芜金点子广告信息港 沧浪企业建设网站价格建筑网站在哪里找 株洲网站建设团队wordpress 企业 哈尔滨建设工程交易中心网站阜阳万维网站建设 招投标 网站建设网页制作公司 山东省环保厅官方网站建设项目国际新闻最新消息十条摘抄 企业网站的价值体现是在seo优化培训班 织梦的网站收录不好微网站和手机站区别 门户网站建设自查电子商务网站建设指导思想 网站怎么做qq微信登陆哪儿能做邯郸网站建设 贵州省建设厅官方网站考证扬州市开发区建设局网站首页 什么网站比较容易做权重建设工程查询系统 校园网站建设管理工作制度蓬莱建网站 厦门网站建设手机做农村电子商务的网站有哪些内容 深圳市建设主管部门门户网站小程序推广收费价目表 广州市网站建设制作费用品牌网站设计制作哪家正规 重庆网站备案必须到核验点微信公众好可以上传wordpress 免费室内设计素材网站东莞企业网站制作 在一个网站下建设多个子网站wordpress 网址补全 专业网站模仿域名备案网站建设书模板 濮阳门户网站开发wordpress做登录 北京哪家公司做网站浏览小城镇建设的网站 中英文微信网站开发国产cms 建筑公司网站怎么设计怎么建网站做推广 网站的网站制作西樵营销网站制作 html格式的网站地图WordPress目录加密 江苏省建设通官方网站wordpress如何修复 哪个网站做音基的题不花钱桥东区网站建设