2017 年初,区块链被越来越多的人知道。区块链的概念其实很早就被提出来,曾经有人说过“区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。 如果说蒸汽机释放了人们的生产力,电力解决了人们基本的生活需求,互联网彻底改变了信息传递的方式,那么区块链作为构造信任的机器,将可能彻底改变整个人类社会价值传递的方式。”

在技术实现上区块链分布式与 CDN 的内容分发有着异曲同工之处,今天笔者就简单聊下对区块链 CDN 的见解。

什么是区块链和去中心化账本?

在聊区块链之前,先来聊聊比特币。 2017 年以来,我们经常在各种渠道看到比特币的出现,那么比特币是什么呢?它跟区块链技术又有什么关系呢?

比特币其实是一种区块链应用。比特币实际是一个互联网上的去中心化账本,一种点对点的加密数字货币;由计算机通过特定数学计算而产生,基于区块链作为支付技术的虚拟货币。当用户在电脑上运行比特币客户端软件,运行软件的电脑就称为一个节点,大量节点互相连接形成一张点对点的网络,比特币去中心化账本的实现就是依托于区块链。

生活中的银行就是一个中心化账本

账本就是银行存储的中心数据库,它是记录着大家的余额。当小明账户里有300块钱,小红账户里有200块,小明想转账100块给小红,于是可以通过银行柜台、手机银行、网上银行等各种途径进行转账操作。银行在收到请求后会验证小明的账户信息以及余额,确实成功后,就增加一条转账记录。小明账号余额:300-100=200,小红账号余额:200+100=300。在这个过程中,银行就相当于一个中心化的账本。

去中心化账本就不需要银行这个中间媒介

比如一个没有银行的村子里,每个人都有一本账本,上面记录着所有人的账户余额,小明的余额为300,小红的余额为200元,当小明想转100给小红时,小明可以通过村子里的大喇叭广播我用我的账号转账100块钱给小红了。然后所有人听到后并确认,是小明的账号且有300余额,再修改自己的账本。通过传递直到每个人的账本都一样。这个过程就是一个去中心化的过程。

比特币就是这个去中心化账本上交易的加密数字货币。小明在转账的时候向周围的节点广播转账交易请求,周围节点可以类比村民,节点在确认小明有足够的余额之后,记录扣除他转出的金额,各个节点把这个交易广播给周围的其他节点,一传十十传百,直到所有节点收到这笔交易。

区块链与 CDN 的结合?

CDN 的全称是 Content Delivery Network,即内容分发网络。通过在各个地区放置的节点服务器,提供就近的访问所需的内容,达到加速的目的。

目前已有多家区块链 CDN 概念的公司提出,在传统的 CDN 上引入以太坊智能合约、分享经济和 P2P 技术。通过把普通用户的闲置带宽与上网设备(如 PC、路由、手机等智能设备)变成 CDN 网络中的节点,使得节点数量无限增多。这样不仅提供者可以获得额外的收益,也可以使得 CDN 的成本更加低廉。

利用 P2P 技术确实可以做到所谓的无限节点,帮助用户利用空闲的带宽获得额外的收入,并且价格十分低廉。但是目前针对 P2P 的加速更多是局限于点播视频、大文件下载加速,而一般网站的图片、小文件加速目前还不适用于 P2P 加速。

国内目前也有类似产品,通过提供路由器的方式,让用户的闲置带宽有效被利用起来。但是同样也有限制条件,访问视频、下载文件只能基于使用该厂商的播放器或者下载工具,或植入该厂商的播放器 SDK,相对来说还是有较大的局限性。

其次,目前也有区块链概念的 CDN 厂商,还提出了把所有流量与带宽数据都记录在区块链中,开发一个自助的 CDN 交易市场,让闲置带宽提供者与 CDN 使用者可以更加透明、自由地使用厂商发行的代币(基于以太坊、比特币等的虚拟货币)进行交易。

在笔者看来,这个更像是死搬硬套的概念,完全是为了发行代币而进行的行为。2017年9月,我国叫停了CIO和比特币等虚拟货币的交易,减少了滥用区块链概念进行炒作的行为。技术没有原罪,虽然CIO和虚拟货币交易被叫停,但区块链技术依然得到了金融业的认可,招商银行就将区块链技术应用于现金管理领域。

结语

智能设备不断普及,以及网络带宽不断提升,国内的 CDN 行业确实处于快速发展的阶段,而区块链概念更适合用于金融、保险、医疗等领域。现阶段的区块链 CDN 只能说是强行生搬硬套概念,两者的相互结合还需要很长的一段时间的发展。但是不可否认的是 P2P 等技术的慢慢成熟,CDN 行业会将会普及惠利更多的普通用户,也许未来就有真正的区块链 CDN 公司落地。

推荐阅读:

为什么要选择支持 HTTP/2 的 CDN

从 HTTP 到 HTTPS 再到 HSTS

谈谈今年很火的区块链 CDN的更多相关文章

  1. 区块链3.0:拥抱EOS

    EOS是当下最火的区块链技术,被社会广泛看好为下一代区块链3.0.不同于以太坊的学习,EOS的主语言是C++,本文作为EOS研究的首篇文章,重点介绍EOS的创新点,它的周边生态,各种概念原理的解释,以 ...

  2. java开发区块链只需150行代码

    本文目的是通过java实战开发教程理解区块链是什么.将通过实战入门学习,用Java自学开发一个很基本的区块链,并在此基础上能扩展如web框架应用等.这个基本的java区块链也实现简单的工作量证明系统. ...

  3. 用Java实现简单的区块链

    用 Java 实现简单的区块链 1. 概述 本文中,我们将学习区块链技术的基本概念.也将根据概念使用 Java 来实现一个基本的应用程序. 进一步,我们将讨论一些先进的概念以及该技术的实际应用. 2. ...

  4. 区块链开源实现hyperledger fabric架构详解

    hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM.Intel.各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量.本文中我们依次讨论:区块链 ...

  5. 启迪链网通证经济共同体:柏链教育&火聘online推出区块链行业人才“一门式”服务

    近日,启迪链网通证经济共同体旗下两个节点成员柏链教育与火聘online,达成节点间的合作,据悉本次合作是采用共同体的生态共建模式,柏链教育与火聘online共享企业端岗位需求的大数据,然后有针对性的开 ...

  6. 正本清源区块链——Caoz

    正本清源区块链 说明:以下内容整理自Caoz的<正本清源区块链>,如有不妥,请联系我修改或删除. 简介 不讨论炒币!不讨论炒币!不讨论炒币! 本课程内容分为两部分: 第一部分,烧脑篇,介绍 ...

  7. 区块链技术现状&前景

    炒作周期 Gartner 在 2017 年发布的新兴技术炒作曲线,这张图是去年 8 月发布的,当时估计它们也没料到随后能有那么火,当时区块链在这个位置,其实是已经过了炒作的巅峰期,正在往低谷走的这个阶 ...

  8. Factom(公证通)--基于区块链的存证系统

    Factom这个Solution在2014年的时候就已经推出了,现在已经2018年了,我才来写这一篇分析文章可能有些迟了,但是它是十分具有参考价值的.因为现阶段来开区块链虽然炒得火热--养猫.养狗.草 ...

  9. 程序员的自我救赎---12.2.3: 虚拟币交易平台(区块链) 下 【C#与以太坊通讯】

    <前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...

随机推荐

  1. Java定时任务调度详解

    前言 在实际项目开发中,除了Web应用.SOA服务外,还有一类不可缺少的,那就是定时任务调度.定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券 ...

  2. datepickerpopup时间限制选取

    使用popup组件的过程中遇到时间选取的问题 官方文档大致说使用date和mode 可以解决,奈何老夫是看不懂,写的时候参考的有 官方文档.echo2016的博文.liumang361的博文 先看图 ...

  3. STM32获取DHT11温度传感器数据

    准备物件 STM32F103C8T6核心板 ST-LINK V2 DHT11 杜邦线若干 连接线 STM32F103C8T6芯片管脚图 管脚说明 连接仿真器 STM32 ST-LINKV2 VCC V ...

  4. python和C语言混编的几种方式

    Python这些年风头一直很盛,占据了很多领域的位置,Web.大数据.人工智能.运维均有它的身影,甚至图形界面做的也很顺,乃至full-stack这个词语刚出来的时候,似乎就是为了描述它. Pytho ...

  5. 如何实现跨 Docker 主机存储?- 每天5分钟玩转 Docker 容器技术(73)

    从业务数据的角度看,容器可以分为两类:无状态(stateless)容器和有状态(stateful)容器. 无状态是指容器在运行过程中不需要保存数据,每次访问的结果不依赖上一次访问,比如提供静态页面的 ...

  6. 程序员的自我修养九Windows下的动态链接

    9.1 DLL简介 DLL即动态链接库的缩写,它相对于Linux下的共享对象. Windows下的DLL文件和EXE文件实际上是一个概念,它们都是有PE格式的二进制文件. 微软希望通过DLL机制加强软 ...

  7. C#中System.DateTime.Now.ToString()用法

    //Asp.net中的日期处理函数     //2008年4月24日     System.DateTime.Now.ToString("D");     //2008-4-24  ...

  8. 关于AVALON总线动态地址对齐

    在NIOS的使用中,我们往往要用到自定义外设,然后通过AVALON交换架构和NIOSII进行通信. AVALON总线,其实是一种交换架构的协议,在自定义外设挂在AVALON总线上时,一定要注意地址对齐 ...

  9. M-自适应宽高样式

    1 绝对定位 position: absolute; top: 0px; bottom: 0px; left: 0px; width: 100%; overflow: hidden;

  10. 如何判断Linux 是32位还是64位

    .运行 'uname -m' 命令 上面的命令内涵太多了,可以用这个参数直指人心:'uname -m' . 例如,在我的系统里,它显示了以下信息: $ uname -m i686