zoukankan      html  css  js  c++  java
  • ethereumjs/browser-builds

    https://github.com/ethereumjs/browser-builds

    ethereumjs - Browser Builds

    This repository contains browser builds of the following ethereumjs libraries:

    这个存储库包含以下ethereumjs库的浏览器构建(其实就是将下面的ethereumjs库构造成浏览器能够使用的js文件形式)

    They are built using browserify with a known set of working dependencies.

    使用带着具有一组已知的工作依赖项的browserify来构建

    For every library/build collection there is a larger plain source version also including the source mappings (e.g. ethereumjs-vm-x.x.x.js) and a minified version for use in production (e.g. ethereumjs-vm-x.x.x.min.js).

    这里对每个库/构建收集有一个更大的包含资源映射(比如ethereumjs-vm-x.x.x.js) 的纯资源版本,以及在生产时使用的简化版本 (比如ethereumjs-vm-x.x.x.min.js)

    Note注意:

    This repository was just lately (October 2017) revived. Currently all builds are considered experimental in terms of API stability, functionality and security!

    这个存储库最近(2017/10)才恢复使用。目前,从API的稳定性、功能和安全性来看,所有构建都是实验性的

    Usage使用

    In your web application, include only one of the builds from the dist directory. All exports will be available under the global ethereumjs.

    在你的web应用中,只包含来自dist目录之一的构建。在全局变量ethereumjs下,所有的构建都是可用的

    Note: all packages expect ECMAScript 6 (ES6) as a minimum environment. From browsers lacking ES6 support, please use a shim (like es6-shim) before including any of the builds from this repo.

    注意:所有包都期待使用 ECMAScript 6 (ES6) 作为最小的环境。如果浏览器缺少ES6支持,从该存储库中包含任何构建之前,请使用shim(like es6-shim)

    Examples例子

    Examples for usage of the browser builds can be found in the examples directory:

    vm.html

    <!doctype html>
    
    <html lang="en">
    <head>
      <meta charset="utf-8">
      <title>EthereumJS VM - Browser Example</title>
    </head>
    
    <body>
      <script src="../dist/ethereumjs-vm/ethereumjs-vm-2.3.1.js"></script>
      
      <script>
        var vm = new ethereumjs.VM()
        
        var code = '7f4e616d65526567000000000000000000000000000000000000000000000000003055307f4e616d6552656700000000000000000000000000000000000000000000000000557f436f6e666967000000000000000000000000000000000000000000000000000073661005d2720d855f1d9976f88bb10c1a3398c77f5573661005d2720d855f1d9976f88bb10c1a3398c77f7f436f6e6669670000000000000000000000000000000000000000000000000000553360455560df806100c56000396000f3007f726567697374657200000000000000000000000000000000000000000000000060003514156053576020355415603257005b335415603e5760003354555b6020353360006000a233602035556020353355005b60007f756e72656769737465720000000000000000000000000000000000000000000060003514156082575033545b1560995733335460006000a2600033545560003355005b60007f6b696c6c00000000000000000000000000000000000000000000000000000000600035141560cb575060455433145b1560d25733ff5b6000355460005260206000f3'
        
        console.log('Code to be run in the VM:')
        console.log(code)
    
        vm.on('step', function (data) {
          console.log(data.opcode.name)
        })
    
        vm.runCode({
          code: ethereumjs.Buffer.Buffer.from(code, 'hex'),
          gasLimit: ethereumjs.Buffer.Buffer.from('ffffffff', 'hex')
        }, function (err, results) {
          console.log('returned: ' + results.return.toString('hex'))
          console.log('gasUsed: ' + results.gasUsed.toString())
          console.log(err)
        })
      </script>
    </body>
    </html>

    Start an http-server from the main directory of the repository to run the examples in the browser.

    从存储库的主目录开启 http-server去在浏览器中运行该例子

    Build构建

    Builds are done using the .js exports compilation files from the src/ directory and using the build.js script from the main directory to create the build in the dist/ folder.

    构建的完成需要先src/文件夹中使用.js输出编译文件,然后使用来自主目录build.js脚本在dist/文件夹中创建构建

    Version numbers for the builds are directly extracted from the versions installed in the local node_modules folder.

    构建的版本数目直接从安装在本地的node_modules文件夹的版本中抽取出。

    For creating new builds:为了创建新的构建

    1. Change package.json to require desired/up-to-date versions of the libraries 改变package.json去获取想要的/最新版本的库

    package.json

    {
      "private": true,
      "name": "browser-builds",
      "version": "0.0.0",
      "description": "Browser builds of ethereumjs libraries.",
      "scripts": {
        "build": "node build.js"
      },
      "repository": {
        "type": "git",
        "url": "git+https://github.com/ethereumjs/browser-builds.git"
      },
      "keywords": [
        "ethereum",
        "browser"
      ],
      "author": "Alex Beregszaszi <alex@rtfs.hu>",
      "license": "MIT",
      "bugs": {
        "url": "https://github.com/ethereumjs/browser-builds/issues"
      },
      "homepage": "https://github.com/ethereumjs/browser-builds#readme",
      "dependencies": {//这里写了所有的库,你可以根据你自己的需求进行删减,并更改相应的版本
        "ethereumjs-abi": "^0.6.2",
        "ethereumjs-icap": "^0.3.1",
        "ethereumjs-tx": "^1.3.1",
        "ethereumjs-units": "^0.2.0",
        "ethereumjs-vm": "^2.3.0",
        "ethereumjs-wallet": "^0.6.0"
      },
      "devDependencies": {
        "babel-preset-env": "^1.7.0",
        "babel-preset-react": "^6.24.1",
        "babelify": "^7.3.0",
        "browserify": "^14.4.0",
        "uglifyify": "^4.0.4"
      }
    }

      2.Reinstall/update local node_modules packages  重新安装/更新本地node_modules

    运行npm install

      3.Run npm run build to generate new set of builds  运行npm run build命令去生成新构建集

    返回:

    userdeMBP:browser-builds-master user$ npm run build
    
    > browser-builds@0.0.0 build /Users/user/browser-builds-master
    > node build.js
    
    
    ***ethereumjs-all***
    Creating debug version package dist/ethereumjs-all/ethereumjs-all-2018-12-07.js
    Creating minified package dist/ethereumjs-all/ethereumjs-all-2018-12-07.min.js
    
    ***ethereumjs-vm***
    Creating debug version package dist/ethereumjs-vm/ethereumjs-vm-2.5.0.js
    Creating minified package dist/ethereumjs-vm/ethereumjs-vm-2.5.0.min.js
    
    ***ethereumjs-tx***
    Creating debug version package dist/ethereumjs-tx/ethereumjs-tx-1.3.7.js
    Creating minified package dist/ethereumjs-tx/ethereumjs-tx-1.3.7.min.js
    
    ***ethereumjs-icap***
    Omitting debug version package dist/ethereumjs-icap/ethereumjs-icap-0.3.1.js (file exists)
    Omitting minified package dist/ethereumjs-icap/ethereumjs-icap-0.3.1.min.js (file exists)
    
    ***ethereumjs-wallet***
    Creating debug version package dist/ethereumjs-wallet/ethereumjs-wallet-0.6.2.js
    Creating minified package dist/ethereumjs-wallet/ethereumjs-wallet-0.6.2.min.js
    
    ***ethereumjs-wallet-hd***
    Creating debug version package dist/ethereumjs-wallet-hd/ethereumjs-wallet-hd-0.6.2.js
    
    ***ethereumjs-abi***
    Omitting debug version package dist/ethereumjs-abi/ethereumjs-abi-0.6.5.js (file exists)
    Omitting minified package dist/ethereumjs-abi/ethereumjs-abi-0.6.5.min.js (file exists)
    Creating minified package dist/ethereumjs-wallet-hd/ethereumjs-wallet-hd-0.6.2.min.js
    
    ***ethereumjs-wallet-thirdparty***
    Creating debug version package dist/ethereumjs-wallet-thirdparty/ethereumjs-wallet-thirdparty-0.6.2.js
    Creating minified package dist/ethereumjs-wallet-thirdparty/ethereumjs-wallet-thirdparty-0.6.2.min.js

    然后你的dist文件夹下就会得到你想要的构建了,然后你就能够在页面端使用这些构建了,就像上面的例子一样

  • 相关阅读:
    Demystifying Delegates
    Events
    存储过程与SQL语句的恩怨情仇 转载于-懒人居
    在ASP.NET中实现简单的URL重写
    C#基础概念二十五问
    Asp.Net结合JS在图层上显示记录信息 (转载于海东的技术资料的blog)
    debian 删除SWAP分区后启动报错笔记
    Log4net日志记录开源组件的初级使用
    股票API之新浪财经频道
    .Net Remoting && Web Service && WCF
  • 原文地址:https://www.cnblogs.com/wanghui-garcia/p/10084089.html
Copyright © 2011-2022 走看看