现在区块链是非常火的,很多公司都想蹭一把区块链,不管实际作用大不大,也要往区块链上靠一靠。

那么这就难为了广大的技术开发人员,如何在完全不了解区块链的情况下,迅速为公司开发出区块链产品呢?

区块链基础架构模型

简单来总结区块链就是,这是一个数据库,与传统数据库区别最大的点是,传统数据库由一个中心来管理维护,所有人都是这个中心来做增删改查;而区块链则是每个节点都有一个数据库的完整备份,即所谓的去中心化。这样一来不用担心数据丢失的问题(到处都是备份),二来解决了信任的问题(见证者太多,无法篡改)。至于挖矿什么的,那都是辅助生成数据的东西,在区块链技术上,属于非必须的组件。

一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。

看起来很复杂的样子,其实它就是很复杂。不是模型复杂,而是具体到每一个组件都去自己实现很复杂。

主要解决的问题有数据存储和查询,节点间的通信和验证,可自定义的智能合约等。

怎么开发

从上面的模型来看,要搭建好一个能用的区块链平台,难度是不小的。但是注意看,数据层和网络层这两层其实是不会发生大的变化的,无论是比特币还是以太币或者是你自己的任何币,或者就是普通的数据要往区块链放。这两层适用于任何区块链产品。

轮子早已有人造好,作为普通的开发人员更重要的是如何使用轮子。

主要介绍几个平台及特点:

1 以太坊

这个是除比特币外,世界第二大虚拟货币,拥有世界第二大的算力。以太坊提供了完善的数据层、网络层,和通过简单配置就能使用的共识层和激励层,需要开发的主要是合约层,通过自定义合约来完成自己需要的应用层。既可以将自己的合约发布到以太坊公网(需要以太币),也可以搭建私链、联盟链来让特定的人使用。背后有强大的公司支撑,是目前大部分区块链学习者会首先碰到的平台。但是编写合约用的是以太坊自己的语言,对于大部分开发者来说,该语言很诡异。会存在语言障碍。

2 腾讯区块链

https://trustsql.qq.com/

腾讯区块链解决了底层的一切,对外暴露一些API,通过提供的Java和C++的SDK,可以很方便的进行区块链上的操作。我们可以就把它当成一个数据库就好了,只不过数据库是建立在区块链上的。这样我们就可以忽略区块链这个概念了,就像操作远程数据库一样,可以在里面存放任何你想存的数据。适用于大部分公司所需的场景,就是交易记录、信息保存等。条件限制目前是每个节点只能在腾讯云主机上。

3 百度区块链

https://chain.baidu.com/

注册了,但是审核没下来,估计是他们放假了。看样子和腾讯的差不多。

4 布比区块链

http://www.bubi.cn/

这个具备可视化操作,看起来也比较简单。没看到SDK和文档,应该是收费的。注意,就这一个可能是收费的,其他的都是免费的。

5 ChainSQL

http://www.chainsql.net/index.html

这个原理和腾讯区块链类似,是直接对外提供类似于数据库操作那样的SDK来操作区块链。

以太坊先不提,我对它那个开发语言很没兴趣,对于不提供java sdk的不做讨论。

腾讯和ChainSQL都是提供了客户端,需要安装到自己主机上,启动后就相当于拥有了一个区块链数据库了,很是方便。

这些公司都是封装了底层的文件存储、查询、通信等等那些复杂的操作,对外公布简单的数据操作接口,形成一个SaaS系统。这样很多公司就可以基于此,完成联盟链的创建,让自己的一些客户联盟共同维护这个链,形成数据共享。

需要准备好服务器,安装他们提供的客户端,然后就可以开心的使用区块链了。

如果你觉得不想使用这些第三方平台,想要自己来完成实现一个区块链平台,或者自己也要做一个他们那样的平台。那么也有一些开源的项目可供参考

Java的:https://github.com/tronprotocol/java-tron/tree/master

这篇文章里也介绍了一些:https://yq.aliyun.com/articles/60443

公司该如何创建适合自己的区块链产品、联盟链、私链相关推荐

  1. [官方教程] [ES4封装教程]1.使用 VMware Player 创建适合封装的虚拟机

    [转载处,http://bbs.itiankong.com/] 前言: 首先要明确的一点,系统封装操作的源计算机一般为虚拟计算机(简称虚拟机.VM等),这也是为什么我们要在封装教程的第一章就专门学习虚 ...

  2. 第一行代码:以太坊(1)-创建自己的私有区块链

    本文会利用以太坊客户端(geth)搭建一个私有区块链,并在这个私有区块链上挖矿,通过本文的案例,读者可以更深入理解区块链.以太坊.挖矿的理论. 通过阅读本文,您可以: 掌握搭建以太坊开发环境的方法 掌 ...

  3. 使用 VMware Player 创建适合封装的虚拟机(转自IT天空Skyfree)

    首先要明确的一点,系统封装操作的源计算机一般为虚拟计算机(简称虚拟机.VM等),这也是为什么我们要在封装教程的第一章就专门学习虚拟机相关知识的原因. 使用虚拟机优势有三: 1.便于系统安装.备份等操作 ...

  4. 好时巧克力公司加入区块链广告联盟

    点击上方"蓝色字"可关注我们! 暴走时评:据AdWeek于3月26日报道,美国领先的巧克力生产公司好时公司已经加入基于区块链的联盟AdLedger.AdLedger由IBM,Teg ...

  5. 2.创建适合游戏的窗口和消息循环

    2.创建适合游戏的窗口和消息循环 本章前言: 创建游戏窗口和处理消息循环是很重要的事情,我尝试过几种不同的窗口处理方式,这次打算使用WS_POPUP样式的窗口(无边框).上一次的框架代码把创建窗口和消 ...

  6. 《海外社交媒体营销》一一2.2 根据你的公司特点,制订适合自己的营销计划...

    本节书摘来自异步社区出版社<海外社交媒体营销>一书中的第2章,第2.2节,作者:陆明 , 陈庆渺 , 刘静丹,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2. ...

  7. S4 HANA中新增公司代码AS01创建资产报错,消息号AA821 “公司代码***没有在资产会计核算模块中定义“

    文章目录 一.问题概述和配置检查 二.Note查询和解决方法 2.1 Note解析 2.2 解决方法 一.问题概述和配置检查 新增公司代码AS01创建资产是报错,消息号AA821 "公司代码 ...

  8. 三折页模板|超容易创建适合您的业务的宣传小册子

    优图精选了一批优秀的三折页模板,你可以用它们制作专业的宣传手册来推广企业和品牌. 宣传册是向目标受众宣传你的品牌最有效的方式,它可以解释你的业务目标.使命,以及展示 产品和服务. 有了正确的宣传册设计 ...

  9. 企业如何选择适合自己的区块链平台?

    小编写在前面: 大咖面对面首期分享专家谢文杰,智链ChainNova CTO.区块链技术专家.原金山云技术产品专家,百度移动事业部技术经理.互联网从业十余年,在技术及产品设计.管理方面经验丰富.从14 ...

最新文章

  1. linux 安装php 5.5_Linux下yum升级安装PHP 5.5
  2. 一文带你看懂Spring事务!
  3. 【数据结构与算法】图论基础与图存储结构
  4. session存储在redis/memcache/mysql
  5. Git和Repo管理使用简要介绍
  6. 【junit】junit4单元测试eclipse
  7. Spring Cloud与Duddo比较(非原创)
  8. python的顶级库_三大用于数据科学的顶级Python库
  9. 第五周课程总结试验报告三
  10. c++动态联编与静态联编
  11. ibm wodm studio 开发
  12. 数学模型——泊车模型(2022年Mathorcup数学建模挑战赛C题,含Matlab代码)
  13. BZOJ 2339 卡农(组合数学)
  14. 实验十三——DD和S-MAC协议仿真实验
  15. 面了一个4年经验的测试工程师,自动化都不会也要15k,我真是醉了...
  16. 如何利用Photoshop进行快速切图
  17. centos7 scons安装_安装Python和Scons
  18. 1602液晶显示简易计算器
  19. 计算机维修技术在线阅读,西南大学19秋[0240] 计算机维修技术在线作业
  20. 转载 感受K2.Net 2003工作流解决方案

热门文章

  1. java属于高级语言_一文告诉你java是高级语言吗?
  2. android2.3.7刷机包,【新蜂】联想A789 刷机包 V3.2 (Android 4.0.4) 稳定流畅 纯净省电 完整ROOT...
  3. docker container的操作
  4. MC9S12XS128硬件底层驱动_set_bus_clk.h(总线时钟设置)
  5. 3-10 Pandas的数据规整
  6. 16k a4_A4纸和16K的纸张大小有没有区别
  7. python中format是啥意思_python里format什么意思
  8. 计算机硬件检测和数据恢复资料,探究职业学校计算机专业课程教学方案——以《计算机硬件检测维修与数据恢复》项目课程为例...
  9. Matlab字体美化
  10. 山沟沟里的技术脱贫:阿里工程师助平武蜂农物联网养蜂