大家好,我是敖丙。很久以前,一个网站只对应一个数据库,所有的数据都按照一定的规则存储在某个服务器上。假设存储数据的服务器宕机了,数据没有备份,那你就知道结果了。.人们意识到数据或流量应该分布在不同的节点上以防止突发事件——分布式技术诞生了。但尽管如此,分布式技术也会带来一些问题,比如多节点数据同步、节点权限等问题。后来人们思考,是否可以在分布式思想的基础上,实现统一权限、共同维护的特点?就像每个人都拿着一个“账本”,每个人都可以看到相同的记录,然后统一验证数据?于是提倡“分布式账本”。秉承“公开透明”、“不可伪造”、“不可篡改”的特点,成为区块链的核心,区块链迅速进入人们的视野。什么是区块链?6月底,参加了首届techoday腾讯科技开放日,了解了区块链的技术背景和市场价值,决定分享给大家。利用区块链技术,可以了解一个产品从生产到流通的全过程;作为近几年发展成熟的技术,应用于支付、产品检测等多个领域。你可以理解为由“区块”+“链”组成,这个环节将区块串联起来。尽管其分布形式不同于传统数据库,但其本质功能是承载信息流,每条信息流都以数据记录为基本单位进行存储。块与块之间通过广播进行通信,那么通信的目的是什么?没错,一切都是为了交易。整个区块链其实就是一个不断实时同步的分布式账本,每个区块节点都相当于一个账本。在这个账本上,每一个动作都可以算作一次“交易”,这样的一次交易就构成了区块链的整体。上面我们说了区块链存储的基本单位是数字记录,那么你可以理解为“交易”的过程就是一个数字被记录的过程。知道了交易,我们还需要了解另外几个名词:on-chain,因为区块链是由账本连接起来的区块链。所以如果你想加入这条链,你需要在链上注册,这是使用区块链的重要一步。通过链,我们可以把我们本地实现的“账本”共享到区块链上。比如你想发挥你的项目优势,让更多人知道你的业务,你只需要将它上链,区块链就会记录你所做的一切,并广播给他人。这个记录是公开透明的,并且会随着这个链条永久存在。那么我们如何创建记录呢?哈希算法我们上传到链上的每条记录都必须被系统识别并且真实发生过,所以我们需要使用哈希加密。散列算法大家一定不陌生。以MD5算法为例,任何用它加密的字符串都会得到一个唯一的哈希值。只要原始输入有任何变化,哈希加密后的数字就会完全不同。所以任何信息在使用区块链后都无法更改,即使你是系统管理员。这确保了信息的安全性和透明性。什么是智能合约?举个生活中的栗子,如果你往自动售货机里投入两枚硬币,因为自动售货机事先已经设定好了固定的程序,它会吐出你选择的饮料。这是你和自动售货机之间的“契约”。区块链的智能合约是你事先在区块链平台上定义的固定承诺。因为区块链的特点是“数字化”,智能合约是以数字化、程序化的方式定义的“承诺”,一切行为都基于这一系列的承诺来执行。所以我们在区块链上的应用开发过程就是一个写合约的过程。另外,这一系列的合约记录是无法删除的。如何使用?还是以腾讯云为例,带大家动手做。首先,进入腾讯云TBaaS官网https://console.cloud.tencent.com/tbaas/,点击“免费体验长安链”——选择适合自己的测试机构——然后进入控制中心。来到长安链区块链网络的控制中心,可以看到节点的整体情况。腾讯云一共提供了4个组织和4个节点,每个节点有16个核心,32G和1000GB的磁盘存储。好家伙,这配置真高。可以看到其他用户的链上信息和交易列表。可以看到,区块链上的交易信息是透明的,包括交易数量、交易时间、组织机构等。ok,了解了它的总体布局之后,接下来就是安装智能合约了。长安链为我们提供了智能合约demo。使用的合约语言是长安链自研的DockerGo。我们需要在合同详情中下载合同文件。下载完成后,需要编译合约。流程可参考开发指南。这里我也带大家详细编译一下~这个编译需要在linux环境下,安装docker。首先输入如下命令拉取长安链的docker镜像,静静等待完成。dockerpullchainmakerofficial/chainmaker-docker-go-contract:v2.2.1安装镜像后执行如下dockerrun命令,目的是将上面下载的链接挂在你的工作目录下,方便随时使用。$WORK_DIR是您的工作目录所在的路径。dockerrun-it--namechainmaker-docker-go-contract-v$WORK_DIR:/homechainmakerofficial/chainmaker-docker-go-contract:v2.2.1bash接下来是比较重要的部分,需要编译压缩。cd/hometarxvf/data/contract_docker_go_template.tar.gzcdcontract_docker_go./build.sh请输入合约名称,合约名称需与tx中的名称相同:
