区块链技术实战
程序员的足迹
致力于提供高质量大数据全套视频教程、人工智能全套视频教程、人工智能教学视频资源、Web前端全套视频教程
展开
-
3. Truffle项目的编译和部署-1
本小节中主要讨论Truffle项目的编译和部署1. 在项目的目录中进入truffle 控制台 truffle develop以上完成了本地区块链的创建,也就是创建了似有链这些Accounts是truffle自动分配的账号,每个账号中有100个ETH其中上图中的http://localhost:9545 是RPC地址,一会配置到Metamask中2. 查看第一个账号的地址...原创 2018-03-07 17:33:22 · 883 阅读 · 0 评论 -
1. 区块链项目开发常见错误-1-npm ERR! missing script: start
本节主要讨论在通过npm start 时,出现“npm ERR! missing script: start“错误出现这个错误的常见原因是 在package.json中没有配置start在通过truffle创建项目时,可以通过 1. truffle unbox webpack通过这种方式创建的项目package.json的结构如下所示 在这种情况下,可以通过 npm r...原创 2018-03-12 12:18:26 · 44850 阅读 · 0 评论 -
2. 区块链项目开发常见错误-2-rpc error with payload
本节主要讨论在似有链支付时出现“rpc error with payload“错误 ,最终在Metamask中如下所示 解决方案:把Metamask 的private network 重置一遍就可以了,具体操作是选中http://localhost:9545 ,点击最下方的reset account 即可 关注公众号,并回复“区块链技术项目开发”,下载ppt和...原创 2018-03-12 17:24:32 · 4504 阅读 · 0 评论 -
0. truffle环境准备-安装nodejs和RPC API
Truffle 是开发以太坊项目的框架,本节主要讨论使用truffle需要准备的环境 1. 操作系统Windows, Linux or Mac OS X,推荐Mac OS X,不建议使用Windows,会碰到各种各样的问题。2. 安装NodeJSNodeJS官网 https://nodejs.org ,可以在官网下载 3. 安装Ethereum客户端需要安装E...原创 2018-03-13 12:27:45 · 386 阅读 · 0 评论 -
6. Solidity智能合约-Mapping
Mapping是一种键值对的映射关系存储结构。语法是:mapping(_KeyType => _KeyValue)Mapping通常与address结合使用实例:pragma solidity ^0.4.13;// "0xca35b7d915458ef540ade6068dfe2f44e8fa733c",900// "0x14723a09acff6d2a60dcdf7aa...原创 2018-03-13 16:05:20 · 2035 阅读 · 0 评论 -
Atom插件的安装及常用插件
Atom 被称为一个“为 21 世纪创造的可配置的编辑器”,它拥有非常精致细腻的界面,并且可配置项丰富,可以非常方便地安装和管理各种插件。1. 安装插件Atom-Preference...点击install ,在右侧输入想要安装的插件,如:“atom beautify”,搜索出来后安装即可,如果安装完成,在下方会出现uninstall等选项2. 常见插件 1....原创 2018-03-13 18:43:07 · 1800 阅读 · 0 评论 -
1. Truffle框架的介绍与安装
Truffle简要介绍Truffle是针对基于以太坊Solidity语言的一套开发框架,本身基于JavaScriptTruffle的官网http://truffleframework.com/读者可以参考官网: http://truffleframework.com/docs/getting_started/installation 需要提前安装 NodeJS ...原创 2018-03-07 16:05:17 · 435 阅读 · 0 评论 -
1. 什么是ipfs及ipfs本地环境安装
IPFS是一个点对点的分布式超媒体分发协议,它整合了分布式系统思路,为所有人提供全球统一的可寻址空间,被认为最有可能取代Http的新一代互联网协议。1. 相关网站 官网 : ipfs.io2. 什么是ipfs在github.com中搜索“ipfs”,了解什么是ipfs 3. 本地环境安装-下载ipfs点击ipfs.io的install按钮 点击“Do...原创 2018-03-08 16:35:56 · 2154 阅读 · 0 评论 -
4. Solidity智能合约enum类型(枚举)
本小节主要讨论enum类型,1. enum基本结构 先对enum结构有个基本的认识,这个enum主要描述产品是否用过(New,Used) enum ProductCondition{ New, Used }2. 在struct中使用enumenum通常是用在struct当中,描述struct中的某个状态...原创 2018-03-09 17:20:33 · 4159 阅读 · 0 评论 -
4. Truffle项目的编译和部署-2
本节继续讨论Truffle项目的编译和部署1. 合约编译通过compile编译合约2. 编译后的文件结构编译完成后生成build文件夹中,有2个json文件3. SimpleStorage.json文件内容如下abi是对合约的描述 4. 在migrations中创建部署文件在migrations中创建2_deploy_simpleStorage.js文件...原创 2018-03-07 18:31:33 · 330 阅读 · 0 评论 -
5. Truffle框架前后端交互-1
本节主要讨论前端调用后台的合约,实现前后端交互1.创建项目文件夹 2. 生成react前端模版 官网:http://truffleframework.com/boxes/ truffle unbox react3. 通过Atom打开项目 atom ./4. 查看项目目录5. 进入trffule控制台6. 编译项目7. 部署项...原创 2018-03-07 19:45:51 · 1017 阅读 · 0 评论 -
2. ipfs的初始化(创建节点)和配置
本节讨论如何初始化ipfs节点以及ipfs节点的配置1. 创建ipfs节点在home目录下面运行 ipfs init 进行初始化,完成ipfs节点的创建2. 打开ipfs配置文件进入.ipfs目录,查看文件3. 修改config文件config中默认的大小为10G,在此修改为20G4. 与其他节点链接通过ipfs daemon 实现和其他节点链接...原创 2018-03-08 17:02:27 · 3984 阅读 · 0 评论 -
3.如何把文本文件和图片存储到ipfs
本节讨论如何将文件存储到ipfs上1. 生成文件创建一个文件 file1.txt,写入内容为hello ipfs2. 将file1.txt 增加到ipfs中通过ipfs add file1.txt,将file1.txt 存放到ipfs其中 QmcQwhK5AKLToetXRRakKKAF2zWfH7YEDUxZvPXk3qDBgX 是ipfs返回的hash值,我们可...原创 2018-03-08 17:38:41 · 3117 阅读 · 2 评论 -
4.通过ipfs-api上传文件到ipfs
本节主要讨论如何基于Web前端调用ipfs-api上传文件到ipfs,通过npm start 启动项目1. 安装create-react-app通过npm install 安装 create-react-app,便于后续创建项目 npm install -g create create-react-app 2. 创建项目 通过 create-react-app...原创 2018-03-09 11:01:31 · 8178 阅读 · 0 评论 -
1. 基于Solidity,Truffle,IPFS构建去中心化项目
本章我们讨论如何基于以太坊的智能创建去中心化的二手交易系统主要目标: 掌握区块链项目开发的整体逻辑主要内容:1. 基于Truffle框架进行项目创建2. 基于Solidity编写智能合约3. 基于IPFS实现图片的保存操作步骤:1. 在Shell中创建项目文件夹 upsale 2. 基于Truffle框架创建项目关于trffule的介绍和使用请参考(...原创 2018-03-09 12:10:06 · 2209 阅读 · 0 评论 -
1. Solidity编写智能合约-智能合约整体结构
Solidity是一种语法类似JavaScript的高级语言。它被设计成以编译的方式生成以太坊虚拟机代码。所谓智能合约是指运行在区块链上的代码本小节从一个简单的案例讲解智能合约的结构,为了方便期间,我们使用在线编译器1. 打开在线编辑器 http://remix.ethereum.org/2. 将以下代码写入有过java代码的读者对这段代码应该比较熟悉,这里看不懂也没关系,...原创 2018-03-09 14:43:00 · 2615 阅读 · 0 评论 -
2. Solidity智能合约-构造函数与析构函数
本小节讨论Solidity的构造函数和析构函数1. 把以下代码拷贝到 http://remix.ethereum.org/其中标记蓝色的部分为构造函数,标记红色的部分为析构函数,与java中的一样,构造函数主要用于初始化,析构函数主要用于销毁,在构造函数中初始化amount为90pragma solidity ^0.4.13;contract MyCoin{ uint a...原创 2018-03-09 15:26:52 · 4802 阅读 · 0 评论 -
03.区块链的那些事儿-以太坊的外部账号与合约账号
本节讨论以太坊的账号1. 外部账号与合约账号以太坊的账号分为外部账号和合约账号,其中外部账号和比特币中的外部账号是类似的,以太坊的合约账号是完成合约部署后生成的账号,在合约账号上存放了代码。2. 外部账号调用合约账号在合约部署完成后,会生成合约账号,外部账号可以调用合约账号,完成区块链数据操作,逻辑结构如下图所示作者:温春水 致力于研究区块链技术微信:wencs1314 QQ群:6129687...原创 2018-03-15 22:22:24 · 1897 阅读 · 0 评论 -
04.区块链的那些事儿-以太坊中的 Patricia Tree
本节主要讨论以太坊中存储的 Patricia Tree比特币只有1棵Merkle树,而以太坊的每一个区块头,并非只包含1棵Merkle Tree,而是包含了3棵Merkle Tree,分别对应了三种对象:交易(Transactions) 收据(Receipts)展示每一笔交易影响的数据条 状态(State)整体结构如下所示: 最为简单的一种Merkle Tre...原创 2018-03-15 22:50:03 · 649 阅读 · 0 评论 -
3. Solidity智能合约struct类型
本小节讨论Solidity智能合约的struct类型,Struct是Solidity中的自定义类型。使用Solidity的关键struct进行自定义。结构体内还可以再包含字符串,整型,映射,结构体等复杂类型,先看以下实例 1. 基本的结构体 struct Product{ uint productId; uint productV...原创 2018-03-09 16:49:57 · 3469 阅读 · 0 评论 -
08.区块链的那些事儿-Solidity类型string(字符串)
本小节主要讨论Solidity类型中的字符串 string,string 是可变长度的字节数组,本节先对string有个整体的认识,先看一个例子1. string 实例pragma solidity ^0.4.13;contract StringDemo{ string productname; function StringDemo() public{ ...原创 2018-03-21 10:36:01 · 6287 阅读 · 0 评论