GAChain 区块链

该章节介绍如何使用 GAChain 平台。

入门级

如果您有兴趣在 GAChain 上开发使用应用程序和管理生态系统,那么您可能根本不需要了解 GAChain 区块链。

在 GAChain 平台中,区块链和区块链网络对生态系统成员、管理员和应用程序开发者都是隐藏的。GAChain 已为所有这些用户组提供了 RESTful API 接口。这些接口提供对区块链防篡改分布式 全局状态 的访问。

应用程序开发者

在技术术语中,全局状态global state 是一组数据。GAChain 平台全局状态的实现就是数据库。从应用程序开发者的角度来看,应用程序是通过查询,插入和更新数据库表来与该数据库进行交互。

在 GAChain 链底层,通过执行合约将交易写入区块链中,这些交易调用由区块链网络节点执行的合约代码,这会导致全局状态数据库的更改。

对于应用程序开发者来说,合约就是一种函数,执行合约时,数据将写入数据库。页面就像脚本。页面代码是一组 Gastyle 函数。其中一些函数显示页面元素,其他数据来自数据库。应用程序开发者无需了解交易、区块生成和共识算法即可使用 GAChain 区块链。

生态系统成员

应用程序开发者编写的应用程序在 生态系统 的环境中工作,生态系统通常服务于特定的目的,结合多个应用程序来达到该目的的不同方面。

要访问生态系统的应用程序,用户必须成为该生态系统成员。一个用户可以是多个生态系统的成员。

生态系统成员可以从应用程序页面查看和修改数据库,就像在常见的Web应用程序中一样,可以填写表单,点击按钮和导航页面。

生态系统应用程序和平台应用程序

应用可按范围划分为 生态系统应用程序平台应用程序

生态系统应用程序实现该生态系统的某些独有功能或业务流程。生态系统应用程序仅在其生态系统中可用。

平台应用程序适用于所有生态系统。任何应用程序都可以开发为平台应用程序。GAChain 开发者提供支持生态系统治理核心功能的平台应用程序,例如投票、通知和生态系统成员角色管理等应用程序。

底层模型

层次定义

GAChain 分为几个层次:

  • 用户交互层

    生态系统成员通过页面和页面元素与应用程序交互。

  • 应用程序层

    应用程序开发者通过合约代码和页面代码与全局状态(数据库表)交互。

  • 全局状态层

    根据写入分布式操作分类帐本(区块链)的操作更新和同步全局状态(数据库)

  • 区块链层

    使用新区块更新分布式操作分类帐本。新区块保存的操作(交易)必须在全局状态上执行。

  • 节点网络层

    网络节点实现了 GAChain 区块链网络协议。网络协议在网络节点中分发交易、验证交易和生成新区块。同样的,新区块被网络节点分发和验证。

    所有节点的分布式操作分类帐本保持同步。如果节点发生冲突,则节点会识别哪些区块链被视为有效链并回滚无效区块链。

  • 交易层

    交易是生成区块和区块链协议的基础,交易本身是在用户交互层执行的操作结果。交易由Govis软件客户端生成。

    当用户或开发者执行诸如单击页面上的按钮或从代码编辑器执行合约等操作时,Govis会将此操作转换为交易并将其发送到与其连接的网络节点。

因此,交易流程方向如下:

  • 用户页面中的用户操作会创建交易;
  • 该交易包含在一个区块中;
  • 该区块包含在区块链中;
  • 更改操作会导致区块链全局状态发生变化,该操作将应用于数据库;
  • 数据库更改显示在应用程序中。

实现

GAChain 平台的两个主要组成部分是服务端 go-gachain 和Govis客户端 gachain-front

Govis客户端:

  • 提供用户页面;

  • 提供用于应用程序开发的IDE;

  • 存储用户帐户的公钥并执行授权;

  • 从应用页面请求数据库数据,并向用户显示应用页面;

  • 通过 REST API 将交易发送到服务端;

    为了方便用户操作自动创建交易,应用程序开发人员从IDE执行合约时,Govis会将该操作转换为交易。

服务端:

  • 保持节点的全局状态(数据库);
  • 实现区块链协议;
  • 虚拟机 执行合约代码;
  • 模版引擎 执行页面代码;
  • 实现 RESTful API 接口。