2018-4-20 技术文章 Web3.js是以太坊官方的Javascript API,可以帮助智能合约开发者使用HTTP或者IPC与本地的或者远程的以太坊节点交互.实际上就是一个库的集合,主要包括下面几个库: web3-eth用来与以太坊区块链和智能合约交互 web3-shh用来控制whisper协议与p2p通信以及广播 web3-bzz用来与swarm协议交互 web3-utils包含了一些Dapp开发有用的功能 搭建测试链 在开发初期,我们并没有必要使用真实的公链,为了开发效率,一般选择在…
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper 部署合约 1.账户问题 2. 连接到geth 3. 部署合约 4. 测试部署结果 golang 查询合约 官方提供的使用web3来进行智能合约的部署,调用等,实际上使用go也是可以的,这样更接近geth源码,更多的库可以使用. 此例子的目录结构 方便大家对照使用 我是在windows下进行的,在li…
先了解相关指令,再观看比较合适:http://truffle.tryblockchain.org/ 安装: 先完成上一条博客的安装,再来进行下面的操作:http://www.cnblogs.com/tianlongtc/p/8877579.html #第一个终端 sudo apt install npm #安装npm sudo npm install npm@latest -g #升级npm sudo npm install -g n #安装nodejs的模块n sudo n stable #下…
译注:原文首发于ConsenSys开发者博客,原作者为Eva以及ConsenSys的开发团队.如果您想要获取更多及时信息,可以访问ConsenSys首页点击左下角Newsletter订阅邮件.本文的翻译获得了ConsenSys创始人Lubin先生的授权. 有些人说以太坊太难对付,于是我们(译注:指Consensys, 下同)写了这篇文章来帮助大家学习如何利用以太坊编写智能合约和应用.这里所用到的工具,钱包,应用程序以及整个生态系统仍处于开发状态,它们将来会更好用! 第一部分概述,讨论了关键概念,…
以太坊系列之二十一 使用web3部署比较复杂的智能合约 搭建私链上的雷电网络 以太坊系列之二十一 使用web3部署比较复杂的智能合约 1 雷电网络智能合约简单介绍 2 remix 无法部署使用了library的contract 3 使用web3部署完整的雷电网络合约 3.1 部署NettingChannelLibrary.sol 3.2 部署ChannelManagerLibrary 3.3 部署EndpointRegistry.sol 前面博文中已经有一篇介绍如何使用web3部署智能合约了,但…
1.事件的基本概念 事件是指在文档或者浏览器中发生的一些特定交互瞬间,比如打开某一个网页,浏览器加载完成后会触发 load 事件,当鼠标悬浮于某一个元素上时会触发 hover 事件,当鼠标点击某一个元素时会触发 click 事件等等. 事件处理就是当事件被触发后,浏览器响应这个事件的行为,而这个行为所对应的代码即为事件处理程序. 2.事件操作:监听与移除监听 2.1 监听事件 浏览器会根据一些事件作出相对应的事件处理,事件处理的前提是需要监听事件,监听事件的方法主要有以下三种: 2.1.1 HT…
目录 目录 1.基本概念 1.1.什么是智能合约? 1.2.什么是Solidity? 1.2.1.Solidity的语言特性 1.3.什么是 Browser-solidity? 2.Browser-solidity 的源码在哪里? 3.如何在本地安装 Browser-solidity? 4.使用 Browser-solidity 编译代码 4.1 将 Browser-solidity 编译后的合约部署到 Geth 目录 1.基本概念 上篇文章中,已经讲过 Go-Ethereum 1.7.2 如何…
智能合约的优点 与传统合同相比,智能合约有一些显著优点: 不需要中间人 费用低 代码就是规则 区块链网络中有多个备份,不用担心丢失 避免人工错误 无需信任,就可履行协议 匿名履行协议 以太坊(Ethereum) – 智能合约开发概述 支持智能合约的区块链 虽然以太坊(Ethereum)是最流行支持智能合约的区块链平台,但它并不是唯一支持智能合约的平台. 超级账本(Hyperledger) 是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目.通过创建分布式账本的公开标准,实…
以太坊系列之十六: 使用golang与智能合约进行交互 以太坊系列之十六: 使用golang与智能合约进行交互 此例子的目录结构 token contract 智能合约的golang wrapper 部署合约 1.账户问题 2. 连接到geth 3. 部署合约 4. 测试部署结果 5. 等待成功部署到区块链上 golang 查询合约 调用合约 1. 直接构造合约 2. 创建账户 3.进行转账(函数调用) 4. 等待tx完成 5.通过remix来查询结果 官方提供的使用web3来进行智能合约的部署…
2017-12-07 芯链团队 小明微思考 原文地址:https://mp.weixin.qq.com/s?__biz=MzA4Mzk2MzUzNg==&mid=2651223347&idx=1&sn=a243a8b171709fbcc8cbffda1190218d&chksm=841caeccb36b27da3cd5a36243c0b1846d77bd2d7f5f8d0ccf42f3532f4ac997fb544f909311&mpshare=1&scen…
暂时看到篇文章写的不错,先收集下来,后面有机会自己也整理一个 Solidity语言学习(一)Solidity语言学习(二)——Solidity的安装与编译Solidity语言学习(三)——智能合约编程案例一投票系统Solidity语言学习(四)——智能合约的结构 似乎还缺少合约继承的东西? 继承(Inheritance) 还缺少合约升级? web3.js介绍 web3.js入门web3与智能合约的交互 solidity中constant.view和pure三个修饰函数的关键词的作用: view和…
一.智能合约介绍 智能合约是指把合同/协议条款以代码的形式电子化地放到区块链网络上.FISCO BCOS平台支持两种智能合约类型:Solidity智能合约与预编译智能合约 Solidity与Java类似.代码写好后,都需要通过编译器将代码转换成二进制,在Java中,编译器是Javac,而对于Solidity,是solc.生成后的二进制代码,会放到虚拟机里执行.Java代码在Java虚拟机(JVM)中执行,在Solidity中,是一个区块链上的虚拟机EVM.目的,是给区块链提供一套统一的逻辑,让相…
使用Truffle 部署智能合约 之前我们使用Geth,原生的以太坊Golang工具,分析了创世区块的参数内容,在本地创建了私有以太坊区块链,并使用两个账户进行了挖矿和转账操作,对以太坊有了基本了解. 该篇章开始使用一个新的平台Truffle Suite,学习部署示例的智能合约,和一个稍微复杂一些的实用智能合约,学习Solidity语言的基本语法和智能合约的使用. 本文绝大多数参考资料来源于Solidity官方文档和Truffle官方文档. 1. 安装Truffle Truffle Suite套…
传送门: 柏链项目学院   EOS的智能合约与以太坊区别很大, EOS 的智能合约基于 WebAssembly(WASM) 技术执行用户生成的应用程序和代码.WASM是一项新兴的网络标准,得到了谷歌,微软,苹果等公司的广泛支持.目前,用于构建编译为WASM的应用程序的最成熟工具链是使用C / C ++编译器的clang / llvm.目前EOS的智能合约仅支持C和C ++编写.我个人认为,EOS的智能合约相较于以太坊的智能合约上手难度要更大一些.一个简单的EOS智能合约都要由多种种文件构成,而以…
系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源.命名拍卖.基础数据准备.生产者信息.投票等能力.本篇文章将会从源码角度详细研究system合约. 关键字:EOS,eosio.system,智能合约,name类型,native.hpp,newaccount,bidname,core token init,onblock,更新已入选生产节点 eosio.system 概览 笔者使用的IDE是VScode,首先来看eosio.system的源码结构.如下图所示. 本文分析的源码来自于…
上午 1>部署智能合约网络 语法 require 2>利用第三方的节点 同步到以太坊 3>智能合约部署的步骤: 1.查看区块 2.发布合约 deploy后台经历的事情:就是部署合约的代码 显示部署到的智能合约 前端和测试用例的开发 编译合约 测试合约 创建账户 提供 测试 交互 使用web3转账 以太坊水龙头 下午 使用web3转账 1.脑子里是整个流程 2.细化到每一个api的使用 新建空工程,操作步骤 1> 2> 老师笔记 node开发环境搭建 nodejs的版本必须大于…
官方只支持用C++写智能合约 用C++写智能合约门槛过高,会把许多开发者挡在门外,C++的复杂性也会让智能合约的设计变得困难. Wasm智能合约的效率并不是最优 由于C++最终也是编译成wasm字节码并在虚拟机中运行,效率并不能达到和编译成native code一样高.Wasm可以在三种模式下运行:binaryen, wavm和wabt.其中,binaryen的运行模式是字节码的方式,运行速度最慢.wavm模式是JIT运行方式,速度最快,但是由于需要预编译,加载速度实在是太慢了,并不能为Eos的…
Move是一种新的编程语言,旨在为Libra Blockchain提供安全可编程的基础.Libra Blockchain中的帐户是任意数量的Move资源和Move模块的容器.提交给Libra Blockchain的每个事务都使用Move中编写的事务脚本来编码其逻辑.事务脚本可以调用模块声明的过程来更新区块链的全局状态. 在本指南的第一部分中,我们将对Move语言的主要功能进行高级介绍: 移动事务脚本启用可编程事务 移动模块允许可组合智能合约 移动有一流的资源 对于好奇的读者,Move技术论文包含…
这里的智能合约仅包含Init函数和Invoke函数. 为什么一定是这两个方法? 因为在源码中的智能合约模块有这样的接口,如果要完成智能合约的相关编程,就需要实现源码中定义的接口,接口中定义了这两个方法.空口无凭,下面我给大家看一个图: 文件路径:github.com/hyperledger/fabric/core/chaincode/shim 这个文件中的内容如下: go语言 package main import ( "github.com/hyperledger/fabric/core/ch…
前言 在上个实验 Hyperledger Fabric 多组织多排序节点部署在多个主机上 中,我们已经实现了多组织多排序节点部署在多个主机上,但到目前为止,我们所有的实验都只是研究了联盟链的网络配置方法(尽管这确实是重难点),而没有考虑具体的应用开发.本文将在前面实验的基础上,首先尝试使用 Go 语言开发了一个工作室联盟链的项目信息智能合约,并成功将其部署至联盟链上:然后依据官方示例,使用 fabric-gateway 模块实现了一个能够管理项目信息智能合约的客户端:之后对比了 fabric-g…
以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实现上,它通过RPC 调用与本地节点通信.web3.js可以与任何暴露了RPC接口的以太坊节点连接. web3中有eth对象 - web3.eth 具体来表示与以太坊区块链之间的交互.shh对象 - web3.shh表示Whisper协议的相关交互.后续我们会继续介绍其它一些web3协议中的对象.可用…
写在前面 在最初学习以太坊的时候,很多人都是自己创建以太坊节点后,使用geth与之交互.这种使用命令行交互的方法虽然让很多程序员感到兴奋(黑客帝国的既视感?),但不可能指望普通用户通过命令行使用Dapp.因此,我们需要一种友好的方式(比如一个web页面)来与智能合约交互,于是问题的答案就是web3.js. Web3.js Web3.js是以太坊官方的Javascript API,可以帮助智能合约开发者使用HTTP或者IPC与本地的或者远程的以太坊节点交互.实际上就是一个库的集合,主要包括下面几个…
作为WEB设计者,为了在网页展示上加强用户体验,经常会利用图象载入显示状态方法,这自然需要Image对象的onload事件. 在firefox浏览器下完成开发后,可是在IE浏览器中进行调试总不能被调用.不管是最新版的IE8还是旧版本的IE7和IE6都无效,最初的代码简化后如下: var img = new Image(); img.src = "test.gif"; img.onload = function(){ alert(this.src); //other }; 简单看过以后貌…
传送门: 柏链项目学院 使用web3.js监听以太坊智能合约event   当我们在前端页面调用合约时发现有些数据不会立即返回,这时还需要再调用更新数据的函数.那么这样的方法使用起来非常不便,监听event就可以很好的解决这样的问题,下面我们来看看如何监听event.以下内容基于web3.js1.0版本,版本不同可能会代码差异. 1. 修改geth启动参数 全部参数如下 geth --datadir ./data --networkid 15 --port 30303 --rpc --rpcad…
参考:https://www.jianshu.com/p/7e541cd67be2 部署智能合约的方法有很多,比如使用truffle框架,使用remix-ide等,在这里的部署方法是使用nodejs一步步编译部署实现的: const Web3 = require('web3'); const web3 = new Web3();//使用web3来进行区块链接口的调用 //通过rpc连接区块链,这里连接的是本地私有链 web3.setProvider(new Web3.providers.Http…
Web3.js API 中文文档 http://web3.tryblockchain.org/Web3.js-api-refrence.html web3对象提供了所有方法. 示例: //初始化过程 var Web3 = require('web3'); if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); } else { // set the provider you want from Web3.…
一.环境安装: 1.安装web3工程:npm install web3 2.安装solc工程:npm install solc二.在node环境中使用 先引用所需环境: var fs = require ('fs');var solc = require ('solc');var solc = require ('web3'); //注:eth_token.sol 是在node工程中已经写好的要发布的智能合约. //加载需要发的智能合约,我这里用ERC20标准合约测试.代码看之前的博客var s…
[ASP.NET Core]EF Core - “影子属性”   有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. 老周觉得,视频直播可能会好一些,虽然我的水平一般,不过直播时,老周可以现场演示,可能会比看博客效果要好(因为现场演示,有时候会有失误,没办法,水平有限).还有一个,就是.NET 的资料其实很多,毕竟也发展了十几年了,有些东西如果别人都写过了,那我也不好意思重复了..NET Core 尽管是跨平台版本…
本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读. 智能合约(Contracts) 智能合约相关的 API,接口的参数说明请参考Etherscan API 约定, 文档中不单独说明. Newly verified Contracts are synced to the API servers within 5 minutes or less 获取已经验证代码合约的ABI Verified Contract Source Codes ht…
背景 在计量领域中,计量检定是一种重要形式,主要用于评定计量器具的计量性能,确定其量值是否准确一致,实现手段包括计量检验.出具检定证书和加封盖印等. 在检定证书这一环节,存在一个难点,就是无法在线预览以及智能生成. 1.证书管理不能满足用户精准打印.特殊字符或多页打印的需求.因为在计量行业中,精密仪器较多,往往会存在一些特殊字符的应用或者会使用某些较为复杂的测量单位. 2.系统不支持批量证书更新以及批量打印等功能,在常见的场景中,出具证书是需要进行批量导出的过程. 3.无法满足实时打印预览或者P…