Scala教程之:Scala基础

这篇文章我们大概过一下Scala的基础概念,后面的文章我们会有更详细的讲解Scala的具体内容。 常量 在Scala中常量用val关键字表示,如下所示: val x = 1 + 1 println(x) // 2 常量只能赋值一次,不能被多次赋值: x = 3 // This does not compile. 在上面的例子中,x 的类型是根据后面的类型推算出来的,当然你也可以显示指定x的类型,如…

Scala教程之:面向对象的scala

面向对象的scala 我们知道Scala是一种JVM语言,可以合java无缝衔接,这也就大大的扩展了scala的应用范围,大数据里面有名的spark就是使用scala编写的,那么scala到底有什么奥秘和特性呢?我们一一来揭秘。 首先scala是一门面向对象的编程语言,他的面向对象性主要表现在如下几个方面: Unified Types Classes Traits 下面我们分别的说明他们各自的特定…

Libra教程之:move语言的特点和例子

move语言的特点 Libra的目标是打造一个全球话的金融和货币的平台,从而赋能地球上的几十亿人。那么作为Libra的move语言就需要在安全性和可编程性上面提供大力的支持。 为了实现这样的目标,move遵从如下四大设计原则: 资源优先 在区块链中我们需要通过程序来存取数字资产,这个数字资产和普通程序中的变量(如booleans,integers,strings)有着明显的区别。我们需要一个特别的…

JDK14的新特性

虽然JDK13在今年的9月17号才发布,但是丝毫不会影响到下一个版本JDK14的开发工作。听说官方定的新功能马上就要官宣了,我们这里不妨来提前推断一下。 在9月17号的发布中,Oracle提到了switch表达式的功能预计会在JDK14中最终确定。在我的之前的文章中我已经提到了,在JDK12和JDK13中switch表达式都是作为一个实验性的语法来推出的,经过三个版本的迭代,switch表达式的正…

Libra教程之:数据结构和存储

前面的文章我们知道,libra会把所有的数据都存储在账本中。为了方便业务逻辑和数据的校验,这个存储是以特定的数据结构来实现的,这里我们叫做验证的数据结构。 验证的数据结构是通过Merkle树来实现的。如果大家熟悉其他的区块链的话,大家可能知道Merkle树由于其特殊的结构,被用在大多数区块链中。 下面我们来分别讨论。 存储的数据结构 如下图所示,我们来详细的讲解其存储的数据结构: (1)用Merk…

Libra教程之:执行Transactions

Transactions是什么 我们讲到了Libra是一个分布式账本,存储着账本状态,从账本状态里面,我们可以获取现在每一个账户的资金情况和存储的相应资源。 而这个账本状态就是通过执行Transactions来进行改变的。 用户定义的Transactions是通过Move来编写的,目前来说Libra处于早期版本,只有有限的功能开放给Move语言(不如用户不能自定义资源类型等),但是随着Libra的…

Libra教程之:Libra protocol的逻辑数据模型

Libra protocol简介 Libra区块链本质上是一个加密数据库,这个数据库是通过Libra protocol来维护的。所以Libra protocol是Libra区块链的核心。 Libra protocol的核心是账户,resources和module. 数据库主要存储可编程的resources账本,比如:Libra coin。这些resources是由定义的module来约定的,这些m…