1. 首页 > 财经资讯

区块链开发教程有人知道么?

区块链技术是一种全新的革命性的技术,要想初步入门,最大的障碍就是熟悉系统中各种各样的概念。

初学者必须熟悉以下几种名词的具体含义:

区块链:区块链是一条由区块链接而成的数据链,在区块中包含具体数据,并且整个系统没有中心化监管。区块链具有加密安全、不可篡改的特点。

去中心化:区块链具有去中心化的特性,是因为其中没有中心化权威监管机构。

共识机制:在去中心化网络就某些具体问题(事务)上达成共识的机制。

矿工:使用计算能力挖区块的用户。

理由 #1:安全。

正如 David Schwartz所说,区块链系统应该是一座堡垒。首先,(区块链的)代码是完全开源的。任何人都可以查看源代码,并且寻找代码中的 Bug 和缺陷。然而,与其他开源项目不同的是,在区块链代码中发现漏洞的代价是巨大的。任何(发现漏洞的)程序员都可以通过这个漏洞攻击,并获得数百万美元的收益。处于以上合理的安全性考虑,区块链的开发往往非常缓慢。

理由 #2:资源管理。

与网络保持同步是非常重要的。你(的开发进度)不能落后全网需求太多。你的系统应该能够很好地处理远程和本地请求。

理由 #3:性能。

区块链系统必须始终保持其最高的数据处理能力,但为了做到这一点,编程语言的选择必须是非常通用的,以满足并行化、高吞吐量等需求。然而,在区块链中有一些任务是可以并行执行的,但有些任务则不能并行执行。

一个很好的“并行化”任务的例子就是数字签名验证。验证数字签名所需的所有内容即密钥、交易和签名。只要有这三种数据,你就可以以并行的方式进行验签。

然而,并不是所有的区块链函数(模块)都可以这么做。设想一下交易执行本身,多个交易并不能够并行执行;它需要一次处理一笔交易,以避免类似于双花等错误。有些编程语言擅长进行并行化操作,但有些则不太擅长。

理由 #4:隔离。

什么是确定性行为?

如果 A + B = C,那么无论什么情况下,A + B 永远等于 C。这就叫做确定性行为。

Hash 函数是确定性的,意味着 A 的哈希值永远是 H(A)。

因此,在区块链的开发中,所有交易的执行必须是确定性的。(区块链系统中的)同一笔交易不能在不同时刻的执行结果不同。相似的,智能合约不能在不同的机器上执行结果不相同。唯一的解决方法就是隔离。简单来讲,就是将区块链系统中智能合约和交易,与非确定因素隔离开来。

我们将要编写简单的加密币(让我们称之为 “BlockGeeks 币”),每个区块中将由以下几部分信息组成:

Index (索引):标识区块编号;Timestamp (时间戳):标识区块产生时间;Data (数据):区块中包含的数据;Previous Hash (前一区块Hash值):前一区块 Hash 值;Hash (哈希值):当前区块的Hash值。

This:在函数中调用 “This” 关键字,你就能够通过 this 关键字访问当前对象的函数或属性,从而获取其取值。

Constructor(构造函数):构造函数是一个特定用于在类中创建并初始化类对象的函数。每个类都仅能拥有一个构造函数。那么现在,我们开始创建我们的区块。

本文来源于网友自行发布,不代表本站立场,转载联系作者并注明出处