阅读本文前,你应该对以太坊.智能合约有所了解,如果你还不了解,建议你先看以太坊是什么 除此之外,你最好还了解一些HTML及JavaScript知识. 本文通过实例教大家来开发去中心化应用,应用效果如图: 项目背景 Pete有一个宠物店,有16只宠物,他想开发一个去中心化应用,让大家来领养宠物. 在truffle box中,已经提供了pet-shop的网站部分的代码,我们只需要编写合约及交互部分. 环境搭建 安装Node 安装 Truffle :npm install -g truffle 安装G…
本文的方案无需自建节点,因为BCH当前区块数据大小已经达到200G以上,BTC区块数据也已超过300G,若每个币都自建节点,对云服务器的消耗会非常大. 认识BitcoinCash(BCH) Bitcoin Cash(BCH)是比特币的分叉币,与比特币相同,是一种基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的加密货货币.比特币社区围绕扩容问题争论了三年之久,终于在2017年8月1日,比特币现金在区块高度478558执行硬分叉,按照比特币1:1分发,总量2100万,删除…
以太坊(Ethereum)是一提供个智能合约(smart contract)功能的公共区块链(BlockChain)平台. 本文介绍了一个简单的以太坊智能合约的开发过程. 开发环境 在以太坊上开发应用,首先需要安装其客户端,本文使用基于Go语言的Geth, 其官网为https://github.com/ethereum/go-ethereum. 第一步 在命令行环境中输入以下命令, 连接到以太坊测试网络 geth --testnet --fast --cache=512 console 第二步…
本文给大家介绍了 Web3j Java 版本的框架的基本使用,大家可根据本文的内容进行扩展性的练习,对其他 API 的使用进行尝试. 使用web3j对接以太坊钱包 一.开发准备事项 启动 Geth 此操作在(二)中已经详细介绍过了,可以参考其内容进行 Geth 节点启动,也算是对之前内容的复习,这里不再赘述操作步骤. 开发环境准备 JDK 版本 1.8: 开发工具 Intellij idea(本教程使用,也可以使用 Eclipse 等其他 IDE): Maven 版本管理(本教程使用,要依赖一些…
ETH  全节点Archive(归档)模式数据量增长图 上述图表可通过链接查看:https://etherscan.io/chartsync/chainarchive 通过上表,可以看到截止2019年8月12日,以太坊的全部区块数据已经高达2.8T,如果按照比特币的方式搭建全节点,会是一个很痛苦的事,毕竟云硬盘也不是那么便宜的. 做数字钱包或交易所的开发人员里,有聪明人可能会意识到一个问题,在处理用户账户充值时,我们所关注的数据仅仅是从当前开始到未来这段时间的区块数据,那么巨大体积的历史区块数据…
书中所列举的以太坊 etherscan 浏览器,原链接已经不能使用国内网络正常访问了,需要翻墙,下面的链接不需要翻墙,也是 etherscan 的官方浏览器链接: 以太坊浏览器:https://cn.etherscan.com/ 这个链接不用翻墙 内容勘误: 书页 43,文字 "因此不是UXTO" 应该是 UTXO,这里的 X 和 T 英文位置调乱了. 书页 55,图2-40 中的 "key: a71" 应该是"key: a7":"ke…
USDT是基于BTC发的稳定币,它是比特币的一条侧链,说简单点,就是在比特币区块数据的不可篡改性与区块唯一性的基础上,再封装了一层.具体原理可网上查资料.总之理解一点:USDT的钱包节点就是BTC的钱包节点,BTC的区块高度是多少,USDT的区块高度也是多少.从节点区块数据上来说,BTC与USDT没有区别. 1.什么是Omni Layer  Omni Layer是一种通信协议,它使用比特币区块链实现“智能合约”,用户货币和分散式点对点交换等功能. Omni Core是基于比特币核心代码库的快速,…
BTC钱包对接流程 一.   部署BTC钱包节点 二.   分析BTC钱包的API 三.   通过JSON-RPC访问BTC钱包API 四.   部署测试 一.部署钱包节点 交易平台对接BTC之前,要在自己的服务器上部署一个钱包节点,首先要找到虚拟币钱包的下载地址和Github地址, 钱包下载地址:https://bitcoin.org/zh_CN/choose-your-wallet 根据不同的服务器系统,选择不同钱包下载文件,进行安装,钱包同步的区块文件比较大,建议安装钱包的目录要有足够的硬…
本文代码应用场景: 每个用户在交易所充值时,每个人都分配了独立的USDT地址,而交易所需要将所有独立的地址中USDT汇集到一个钱包地址(一般是冷钱包),从而实现资产归集与安全保障. 注意: 理解以下代码最好先搭建好一个USDT的节点,再在命令行中体验以下RPC的调用效果. package com.bizzan.col; import com.googlecode.jsonrpc4j.JsonRpcHttpClient; import org.apache.commons.codec.binary…
对接Ripple(XRP),不需要本地部署钱包,直接访问Ripple API,本文包括访问Ripple API及如何免费获取测试的XRP. 对接流程 安装Ripple API Ripple API 接口说明 免费获取测试的XRP 一.安装Ripple API Ripple API GitHub地址:https://github.com/ripple/ripple-lib/ 需要的环境:NodeJS 安装命令:yarn add ripple-lib 或 npm install ripple-lib…
以太坊是区块链开发领域最好的编程平台,而truffle是以太坊(Ethereum)最受欢迎的一个开发框架,这是我们第一篇区块链技术文章介绍truffle的原因,实战是最重要的事情,这篇文章不讲原理,只搭建环境,运行第一个区块链程序(Dapp). 安装truffle $ npm install -g truffle 依赖环境 NodeJS 访问https://nodejs.org 官方网站下载安装 系统:Windows, Linux or Mac OS X,推荐Mac OS X,不建议使用Wind…
我在白皮书里提到过,asch使用的是不同于以太坊和比特币的侧链架构,dapp是运行在侧链上的,每套侧链对应一个dapp. 侧链的独立性 侧链架构的好处是代码和数据独立,不增加主链的负担,避免数据过度膨胀,实际上是一种天然的分片机制. 侧链有独立的区块链,有独立的受托人或者说见证人,同时也有独立的节点网络,就是说一个侧链产生的区块只会在所有安装了该侧链的节点之间进行广播. 独立性既是优点,也是缺点.开发者完成了dapp的开发工作之后,还要考虑运维,也就是说要寻找足够的节点来运行它,否则难以维持足够…
账号创建完成之后,账号余额是0,但是部署合约是需要消耗GAS的,因此需要获取一定的以太币才能够继续本次实现.在测试网中获取以太币可以通过挖矿的方式,在开发菜单中可以选择打开挖矿模式,但是这需要将Syn Mode模式修改为Full,这意味着需要将测试网的全部区块数据同步下来才可以进行挖矿,这些数据非常大且同步缓慢,因此建议采用第2种方案:到以太坊基金会申请以太币,读者可以自行搜索“获取测试网以太坊币”,会有相关的网址获取以太币,一般需要输入读者自己的测试环境以太坊账号. (1)本节使用的代码案例需…
以太坊ETH中智能合约消耗的Gas.Gas Limit是什么? 数字货币交易一般是有交易费的,比特币(BTC)的交易费很容易理解,就是直接支付一定额度的BTC作为手续费.而以太坊(ETH)的交易费表面上看也是如此,需要支付一定额度的ETH,但实际内部运行要用到一个叫Gas的概念. 以太坊使用了智能合约,交易要是按照智能合约的规定一步一步执行命令,每执行一个命令都会产生一定的消耗,这个消耗用Gas作为单位,另外,不同命令消耗的Gas数量也不相同. 每笔交易都被要求包括一个Gas limit(有的时…
以太坊官方网站可以下载最新版本的Ethereum Wallet,用户无需选择,浏览器会根据访问者操作系统版本自动展现合适的版本,点击DOWNLOAD按钮下载即可安装,如图2.9所示,其下载网址: https://ethereum.org/. 图2.9 以太坊钱包官方网站 安装完成之后,先修改设置,将客户端切换到测试网下面,正式网络环境是真实的以太坊交易网络,在熟练掌握智能合约开发之前,建议读者首先在测试网络中编写合约和部署合约.图2.10的下拉菜单中选择Ropsten网络,同时将Sync mod…
本节仅以一个简单的智能合约示例,介绍智能合约的基本组成元素,本合约定义一个uint类型的变量,以及对应这个变量的读写函数. 01 pragma solidity >=0.4.0 <0.6.0; 02 03 contract SimpleStorage { //使用关键字contract定义合约结构体 04 uint storedData; //定义一个变量 05 06 function set(uint x) public { //定义关于该变量的设置函数 07 storedData = x;…
Solidity编程语言解决了编写智能合约的不友好的问题,但是当合约编译并部署之后,对与这些接口的访问,对于一般的使用者来说,门槛有点高, 对普通用户来说也是非常不友好,为了使广大用户理解并方便快捷的访问区块链,以及区块链上的智能合约系统,开发者必须提供操作界面和结果查看界面,来简化用户访问和操作区块链的方式.因此一套完整的区块链DAPP,除了智能合约这些可以查询和改变区块链状态的代码,还需要用户操作界面以及连接用户操作与智能合约代码的接口. 图1.15展示了一个DAPP的全景图,该系统架构图包…
由于我一直在深入研究EOS dApp的开发,我看了不少好文章.在这里,我汇总了下做一些研究后得到的所有知识.在本文中,我将解释如何使用EOSJS和scatter.我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分. 我们在构建什么? 我们正在构建一个简单的todo dApp.我们将为CRUD(创建,读取,更新和删除)操作编写智能合约,并将使用EOSJS和scatter与已部署的合同进行交互.CRUD操作包括创建,完成,删除和获取待办事项.我们将使用Jung…
笔者一直强调,一定要利用区块链的特点来解决行业存在的问题,并且该问题最好用区块链解决或者说只能用区块链解决.彩票行业就是个例子. 在讲解代码之前,首先讲解一下业务设计,如图6.15所示. 图6.15 区块链彩票业务流程 限于篇幅和业务复杂度,该系统并没有按照现有的福彩逻辑来设计,而是本着讲明白实现原理的目的,简化了系统的设计,读者可以根据自己的需求来设计符合自己需求的系统.首先在传统的福彩流程中,用户会花费人民币购买彩票,然后福彩系统将相关的投注信息传送到福彩中心.当投注日期截止后,通过机器摇号…
你好,我是七牛云许式伟. Facebook(脸书)于6月18日发布了其加密数字货币项目白皮书.该数字货币被命名为 Libra(天秤座),象征着平衡与公正.此前,BBC 报道说这个数字货币叫 GlobalCoin(全球币),但后来被纠正说这只是Facebook员工在内部对其的昵称. 不管是叫 Libra,还是 GlobalCoin,其实都透露出了 Facebook 的雄心壮志. 今天的Facebook 坐拥 27 亿的活跃用户,相当于全球1/3的人都在用 Facebook,这是一个比微信大得多的数…
继续昨天的demo往下写写:[SpringBoot区块链之以太坊开发(整合Web3j)](https://juejin.im/post/5d88e6c1518825094f69e887),将复杂的逻辑都去除了,留下最简单区块高度扫描部分代码,这样更好让开发者上手 首先自定义个区块高度处理线程类 ``` package com.xiaobin.ethdemo.component; import org.springframework.beans.factory.annotation.Autowir…
以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实现上,它通过RPC 调用与本地节点通信.web3.js可以与任何暴露了RPC接口的以太坊节点连接. web3中有eth对象 - web3.eth 具体来表示与以太坊区块链之间的交互.shh对象 - web3.shh表示Whisper协议的相关交互.后续我们会继续介绍其它一些web3协议中的对象.可用…
本文主要介绍在Java工程中如何生成ETH钱包的助记词.私钥.地址. 一.在之前创建的spring boot 项目中的 pom.xml文件中加入需要的依赖 <dependency> <groupId>org.bitcoinj</groupId> <artifactId>bitcoinj-core</artifactId> <version>0.14.7</version> </dependency> <d…
最近公司需要ETH兑换功能,ETH转账需要区块打包,这个时候就需要区块检测,目前只是简单整合,后面会将区块自动检测代码上传致QQ群 对于区块链开发不太熟悉的童鞋,可以看看:[区块链开发(零)如何开始学习以太坊及区块链](https://blog.csdn.net/sportshark/article/details/52351415) 欢迎大家加企鹅群一起讨论:260532022 首先引入一下依赖pom.xml,主要依赖是 org.web3j ``` 4.0.0 org.springframew…
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguanh/ GitHub : https://github.com/af913337456/ 腾讯云专栏: https://cloud.tencent.com/developer/user/1148436/activities 目录 前序 数据签名 整体流程 非对称加密 RLP 序列化 数据验证 数据篡改…
比特币是区块链1.0时代的标志性产品,稳定币则是区块链2.0时代的标志性产品.在稳定币鼻祖USDT爆出"超发"新闻后曾引发市场的动荡,之后新兴稳定币如春笋般涌现.据不完全同济,目前全球市场中稳定币数量已达到60多种,其中一小半处于正常稳定流通状态,其他的则发展中遇到各种的挑战. 作为算法型稳定币USDN摒弃了之前稳定币不足的前提下诞生,基于公链智能合约技术成立,也是区块链发展的必然结果.作为稳定币,首先要保持多维度的稳定,USDN1:1锚定美元价值,这意味着与不同地区的用户和合作伙伴来…
学习完区块链枯燥乏味的.高深的.必备的基础知识后,终于可以走上开发之路了!真是迫不及待啦!之后博客更新主要放在区块链的开发上,相信这才是大多数同学更加感兴趣的地方!学习过程从最经典的区块链鼻祖-比特币学习,之后了解下区块链2.0代表:以太坊,最后主要精力放在区块链3.0的代表超级账本!(我一边学习,一边更新,欢迎捧场!) 修近一周主要给大家介绍比特币的开发,通过分析源码,了解其底层技术的设计及实现! 本片博客首先介绍比特币开发环境的搭建! Linux.Mac.Windows等平台均支持运行比特币…
Token开发步骤 一.准备工具1.安装以太坊brew tap ethereum/ethereumbrew install ethereum2.node:brew install nodejs3.安装依赖库:npm install -g ganache-cli web3 solc truffle truffle-contract zeppelin-solidity4.运行ganache-cli,端口默认是85455.配置myetherwallet设置自定义的网络:https://www.myet…
原文地址:石匠的blog truffle是一个基于Javascript开发的一套智能合约开发框架,使用Solidity语言编写合约.truffle有一套自动的项目构建机制,集成了开发,测试和部署的各个流程细节,不用开发人员关注.truffle使用说明. testrpc是基于pyethereum,可以快速的搭建一个模拟以太坊的测试网络,并且预制了若干存有代币的账号,可以直接使用.不像geth是一个真正的以太网网络,testrpc在内存中模拟了以太坊网络,运行速度非常快,很适合做智能合约的开发和测试…
Truffle是以太坊(Ethereum)智能合约开发的瑞士军刀,小巧好用,上手简单. 本篇文章主要展示如何用Truffle 开发第一个Ethereum智能合约. 1.准备工作:(本人针对window环境,如果是mac 或linux可以自行搜索其他教程) a.安装git bash :http://gitforwindows.org/ b.安装npm:https://jingyan.baidu.com/article/a17d528506d7f58098c8f2b0.html 2.安装Truffl…