本文以商品交易数据追踪为例,介绍了适合NodeJS全栈入门区块链开发的技术方案:Ethereum+Truffle+Electron+Metamask,这篇文章偏科普性,不涉及到具体代码。
作为《区块链全栈开发系列》的开篇吧。
先看下去年的天猫双十一战报,交易额达1207亿。不知今年能达到多少?
交易额虽然惊人,但是双十一也存在一些黑暗面,通过搜索引擎简单搜索,我们可以看到返回的内容,如下示例:
每年双十一都会搞得轰轰烈烈,一年比一年火爆,火爆背后有多少消费者买到的商品真的是实惠的吗?还是商家的一种营销手段:
促销前抬高价格,
促销时打折,
实际购买价比平时高。
其实,数据掌握在 平台/商家 手里,平台/商家 想怎么改都可以,普通消费者是无法辨别。
因为你不可能长期针对某个商品进行监测,回到本文的主题,
如何技术地识别双十一里的“骗子”商品?
很容易想到使用爬虫工具,每天定时定点地爬取商品的销量跟价格;只要长期跟踪,就不怕你商家在双十一这一天耍花招了。
但是,谁去做爬虫呢?爬虫爬取的数据存放在哪里呢?作为制作爬虫,收集商品数据的收集方,会不会狼狈为奸,自己也去偷偷改动数据呢?
这里涉及到一个公信力的问题,作为电商交易的平台方,谁能证明你的公信力,作为数据采集方,公信力也很难有人能证明。
为了解决公信力的问题,不得不提及“区块链”技术。区块链的关键技术之一是防篡改,核心是共识算法。
数据添加至区块链将会被永久储存,单个节点将无法实现对数据的修改,所以区块链的数据稳定性高,同时具有不可篡改性。任何人都可以在公开的接口查询区块链中的数据,还可以在整个系统中分享与交换数据,可见区块链保持了系统信息的高度开放性和透明性。
区块链技术是一个中性的存在,它像是一个账本,可以记录所有的交易数据,可以用于验证信息的真伪。
如果,电商平台是基于区块链的,那商品的交易数据,价格变动将非常客观地记录在区块链上,任何人想要修改造假,都非常困难。还有,某宝一直被诟病的刷单、买好评等弊端,将被区块链技术所解决。
下面介绍一种简单的基于区块链的,方便个人开发者DIY的技术方案。
技术选型:
区块链:Ethereum+Truffle
桌面APP:Electron+Metamask
爬虫工具:PhantomJS+Casperjs
一、区块链开发我们主要使用Truffle来进行区块链的开发,入门教程可以查看官方的网站,有详细的使用教程。
Ethereum
以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统,以太坊从诞生到2017年5月,短短3年半时间,全球已有200多个以太坊应用诞生。开发语言是Solidity。
http://solidity.readthedocs.io/en/develop/
Truffle
基于Javascript的以太坊的Solidity语言的一套开发框架。
http://truffleframework.com/
二、桌面APP开发使用Electron作为一个APP壳,整合Metamask的chrom浏览器插件,使得可以APP可以访问以太坊。
Electron
让你使用纯 JavaScript 调用丰富的原生 APIs 来创造桌面应用。
https://electron.atom.io/
相关的往期文章推荐:
开发笔记:基于Electon的图片采集工具
技能:Electron开发桌面级应用
Metamask
让你的浏览器可以使用以太坊。
https://metamask.io/
三、爬虫工具这部分可选择的工具较多,根据想要爬取及监测频率而定即可。
个人简单使用可以采用以下方案:
CasperJS
一个开源的导航脚本处理和测试工具,基于PhantomJS(前端自动化测试工具)编写,在这里作为爬虫工具使用,用来监测商品。
http://casperjs.org/
关于数据爬取部分可以查看相关文章:
技能之谷歌Chrome爬虫
爬虫之数据获取的3种方法
关于知乎Live的一些数据
附上商品监测的范围参考,各位可以自行选择适合的:
监测范围:16个平台,1562品类,39487品牌,834万商品;
监测平台:京东、天猫、苏宁易购、国美在线、1号店、亚马逊、我买网、当当网、聚美优品、乐蜂网、麦乐购、蜜芽宝贝、速普母婴、国际妈咪、母婴之家、乐友孕婴童;
监测品类:家电(冰箱、空调、平板电视、热水器、洗衣机、烟机灶具,挂烫机、净水设备、空气净化器、吸尘器、饮水机,电磁炉、电饭煲、电烤箱、电压力锅、豆浆机、料理/榨汁机、微波炉);乳制品(婴幼儿奶粉、常温酸奶、儿童奶、风味奶、高端奶、功能奶、进口牛奶、普通纯牛奶、乳饮料);化妆品(洁面、面膜、化妆水、素颜霜、防晒、卸妆、眼贴、唇膜、润唇膏,洗发水、护发素、洗护套装、护发精油、发膜/倒膜、沐浴露、身体乳,BB霜、粉底液、粉饼、蜜粉/散粉、遮瑕膏/液/乳、妆前乳、腮红、唇部彩妆、唇笔/唇线笔、睫毛膏、眉笔/眉粉、眼影、眼线、指甲油)。
以上为本文全文内容。
我将抽空写一篇具体到代码的教程,介绍下怎么用Nodejs全栈玩转区块链开发,可以关注近期更新。
有其他的应用想法,也可以留言讨论噢`
本公众号定期更新关于
设计师、程序员发挥创意
互相融合的指南、作品。
主要技术栈:
nodejs、react native、electron
Elasticsearch
Solidity
欢迎关注,转发~
关注本号