From 147f523833948ecc07a85ed28b2e414b72113b8e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:22 +0800
Subject: [PATCH 001/421] New translations api.md (English)
---
website/translated_docs/en-US/api.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 website/translated_docs/en-US/api.md
diff --git a/website/translated_docs/en-US/api.md b/website/translated_docs/en-US/api.md
new file mode 100644
index 0000000..0a111da
--- /dev/null
+++ b/website/translated_docs/en-US/api.md
@@ -0,0 +1,5 @@
+---
+id: api
+title: '👩🏻💻 CovenantSQL API'
+---
+## TBD
\ No newline at end of file
From 8587760d6d3114b02c7e2223b6a6bf82ae70736a Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:23 +0800
Subject: [PATCH 002/421] New translations cql.md (English)
---
website/translated_docs/en-US/cql.md | 210 +++++++++++++++++++++++++++
1 file changed, 210 insertions(+)
create mode 100644 website/translated_docs/en-US/cql.md
diff --git a/website/translated_docs/en-US/cql.md b/website/translated_docs/en-US/cql.md
new file mode 100644
index 0000000..be990f0
--- /dev/null
+++ b/website/translated_docs/en-US/cql.md
@@ -0,0 +1,210 @@
+---
+id: cql
+title: '🖥️ CQL 命令行工具'
+---
+## 简介
+
+本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络, 并将 `cql` 可执行文件保存在 `PATH` 目录。
+
+### 配置文件
+
+`cql`命令依赖配置文件`config.yaml`和私钥文件`private.key`。这两个文件如果使用`cql generate config`命令生成,会默认放在`~/.cql/`目录下。在此目录下时,`cql`所有子命令的`-config`参数均可以省略不填写。
+
+### Master key
+
+`private.key`文件在生成时需要输入密码,`cql`命令会自动请求输入master key (密码)。 如果想在脚本中使用,可以在子命令后面增加`-password your_master_key`,空密码时用`-no-password`参数。
+
+## 查询余额
+
+查询余额的命令是:`cql wallet -balance `。其中`token_type`设置为`all`时将返回用户账户中 `Particle` 与 `Wave` 的数量,其他关键词将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+查看默认余额:
+
+```bash
+cql wallet -balance all -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+ INFO[0000] Wave balance is: 10000000000000000000
+
+
+查看 Particle 余额:
+
+```bash
+cql wallet -balance Particle -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+
+
+查看 Bitcoin 余额:
+
+```bash
+cql wallet -balance Bitcoin -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Bitcoin balance is: 0
+
+
+## 转账
+
+转账操作使用 `cql transfer` 并以 `json` 格式的转账信息为参数。
+
+```json
+{
+ "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount":"1000000 Particle" // 转账金额并带上单位
+}
+```
+
+其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
+
+转账 Particle:
+
+```bash
+cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+转账 Wave:
+
+```bash
+cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+```
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+查看余额:
+
+```bash
+cql wallet -balance all -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 9999999999999000000
+ INFO[0000] Wave balance is: 9999999999999000000
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `cql wallet -balance ` 确定。
+
+## 数据库权限管理
+
+#### 访问权限
+
+CovenantSQL 数据库有三类库级别权限:
+
+- `Admin`
+- `Write`
+- `Read`
+- `Void`
+
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql grant` 并以 `json` 格式的权限信息为参数:
+
+```json
+{
+ "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm":"Write" // 权限内容
+}
+```
+
+增加写权限:
+
+```bash
+cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+吊销权限:
+
+```bash
+cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+
+为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
+
+使用新账户给数据库充值:
+
+```bash
+cql transfer -config new_user_config/config.yaml '{"addr":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount":"90000000 Particle"}'
+```
+
+#### SQL 白名单
+
+CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除货更新操作。
+
+增加白名单:
+
+```shell
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": [
+ "SELECT COUNT(1) FROM a",
+ "SELECT * FROM a WHERE id = ? LIMIT 1"
+ ],
+ "role": "Read"
+ }
+}
+'
+```
+
+*白名单功能是基于数据库权限的一个扩展,且当前不支持增量的白名单更新,在设置白名单时需要写明所有授权该用户使用的语句,以及该用户对数据库的访问权限*
+
+设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a`的 总数据量。
+
+去掉白名单限制:
+
+```shell
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": nil,
+ "role": "Read"
+ }
+}
+'
+# or
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": "Read"
+}
+'
+```
+
+将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
\ No newline at end of file
From 3e6a054d5cdab4614678528a5d40400ec5ef36e7 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:24 +0800
Subject: [PATCH 003/421] New translations deployment.md (English)
---
website/translated_docs/en-US/deployment.md | 161 ++++++++++++++++++++
1 file changed, 161 insertions(+)
create mode 100644 website/translated_docs/en-US/deployment.md
diff --git a/website/translated_docs/en-US/deployment.md b/website/translated_docs/en-US/deployment.md
new file mode 100644
index 0000000..3ef403b
--- /dev/null
+++ b/website/translated_docs/en-US/deployment.md
@@ -0,0 +1,161 @@
+---
+id: deployment
+title: '🐳 Docker 一键部署'
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 下载项目
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+存为环境变量
+
+### 启动 Docker 容器
+
+现在有两种方式启动 CovenantSQL 容器:
+
+1. 使用 Docker Hub 上的公共镜像
+2. 构建 CovenantSQL Docker 镜像
+
+> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+
+#### 1. 使用 Docker Hub 上的公共镜像
+
+然后直接启动:
+
+```bash
+make start
+```
+
+#### 2. 构建 CovenantSQL Docker 镜像
+
+执行以下的命令在本地运行 CovenantSQL
+
+```bash
+make docker # 从头编译新的镜像
+make start
+```
+
+### 检查运行状态
+
+检查容器状态:
+
+```bash
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+## 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+### SQLChain Observer
+
+镜像中的 Observer 角色使用了和 mysql-adapter 镜像中相同的 private.key ,故可以免去新账户授权和转账的过程制。
+
+(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+
+#### 在浏览器使用 SQLChain Observer
+
+我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
From 08914eaa5b08d081d8298ba4eee811ec2fc6e143 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:26 +0800
Subject: [PATCH 004/421] New translations intro.md (English)
---
website/translated_docs/en-US/intro.md | 72 ++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
create mode 100644 website/translated_docs/en-US/intro.md
diff --git a/website/translated_docs/en-US/intro.md b/website/translated_docs/en-US/intro.md
new file mode 100644
index 0000000..2eab7a1
--- /dev/null
+++ b/website/translated_docs/en-US/intro.md
@@ -0,0 +1,72 @@
+---
+id: intro
+title: CovenantSQL 介绍
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 1fd855e7eb0a5b04cb1f0ab2a3065caeb9242f06 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:27 +0800
Subject: [PATCH 005/421] New translations native.md (English)
---
website/translated_docs/en-US/native.md | 172 ++++++++++++++++++++++++
1 file changed, 172 insertions(+)
create mode 100644 website/translated_docs/en-US/native.md
diff --git a/website/translated_docs/en-US/native.md b/website/translated_docs/en-US/native.md
new file mode 100644
index 0000000..b76bcc8
--- /dev/null
+++ b/website/translated_docs/en-US/native.md
@@ -0,0 +1,172 @@
+---
+id: native
+title: '📦 CovenantSQL Native SDK'
+---
+## 用 Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 044c3fd8a4f336044b4fc330eabe7f2cb509ccc2 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:28 +0800
Subject: [PATCH 006/421] New translations nav.md (English)
---
website/translated_docs/en-US/nav.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 website/translated_docs/en-US/nav.md
diff --git a/website/translated_docs/en-US/nav.md b/website/translated_docs/en-US/nav.md
new file mode 100644
index 0000000..caac5e7
--- /dev/null
+++ b/website/translated_docs/en-US/nav.md
@@ -0,0 +1,21 @@
+---
+id: nav
+title: '📖 使用导航'
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
+
+## 使用 CovenantSQL 开发应用
+
+[📦 CovenantSQL SDK](./development)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From bb7fd061e4105952f301a5aca3d0e638cc7a4133 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:29 +0800
Subject: [PATCH 007/421] New translations proxy.md (English)
---
website/translated_docs/en-US/proxy.md | 110 +++++++++++++++++++++++++
1 file changed, 110 insertions(+)
create mode 100644 website/translated_docs/en-US/proxy.md
diff --git a/website/translated_docs/en-US/proxy.md b/website/translated_docs/en-US/proxy.md
new file mode 100644
index 0000000..3a39291
--- /dev/null
+++ b/website/translated_docs/en-US/proxy.md
@@ -0,0 +1,110 @@
+---
+id: adapter
+title: '📦 CovenantSQL Adapter SDK'
+---
+# 通过 Adapter 使用 CovenantSQL
+
+## 简介
+
+`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+
+## 安装和使用
+
+首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+
+### Docker 运行 Adapter
+
+下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+
+```bash
+export adapter_addr=0.0.0.0:11105
+docker rm -f cql-adapter
+docker run -itd \
+ --env COVENANT_ROLE=adapter --env COVENANT_CONF=/app/config.yaml \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --name cql-adapter -p $adapter_addr:4661 \
+ covenantsql/covenantsql:testnet -listen 0.0.0.0:4661
+```
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker run -it --rm \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --entrypoint /app/cql covenantsql/covenantsql:testnet \
+ -config /app/config.yaml -create 1
+```
+
+命令会返回创建的数据库实例的连接串(DSN)
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+## 主流语言 Driver 的使用
+
+### NodeJS
+
+NodeJS 开发者可以通过 [node-covenantsql](https://github.com/CovenantSQL/node-covenantsql) 来与 CovenantSQL Adapter 进行交互。
+
+#### 下载安装
+
+可以直接通过 `npm` 或者 `yarn` 来安装 `node-covenantsql`
+
+```bash
+npm install --save node-covenantsql
+```
+
+or
+
+```bash
+yarn add node-covenantsql
+```
+
+#### 使用
+
+在运行本地 Adapter 之后,将 Adapter 的 endpoint 填入 `node-covenantsql` 的 config 之中:
+
+```javascript
+const config = {
+ endpoint: 'localhost:11105', // local testnet endpoint without https
+ database: `${DSN}`, // your DB id created by `cql` tools
+ bypassPem: true // bypass https config
+}
+```
+
+这里 `bypassPem` 为 `true` 表示应用中所有对链上数据库的操作都会经过本地的 Adapter 进行代理,我们默认本地环境是可控,安全的,无需用 HTTPS 来保证这段连接的信道安全,少了证书的繁琐认证,所以成为 `bypassPem`。
+
+接着连通之后则可进行链上数据库的增删改查:
+
+```typescript
+const cql from 'node-covenantsql'
+
+const config = {...} // see above
+
+cql.createConnection(config).then(async (connection: any) => {
+ // read
+ const data1 = await connection.query("select ? + ?", [2.1, 3.2]);
+ console.log(data1);
+
+ // write
+ const createTableSQL = `
+ CREATE TABLE IF NOT EXISTS contacts (\
+ contact_id INTEGER PRIMARY KEY,
+ first_name TEXT NOT NULL,
+ last_name TEXT NOT NULL,
+ email text NOT NULL UNIQUE,
+ phone text NOT NULL UNIQUE
+ );
+ `
+ const status1 = await connection.exec(createTableSQL)
+ console.log(`exec1 status:`, status1);
+
+ const data2 = await connection.query("show tables;");
+ console.log(data2);
+}).catch((e: any) => console.log(e))
+```
\ No newline at end of file
From 83aa829de0438c6040216dfc0b61213f7ff4758d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:30 +0800
Subject: [PATCH 008/421] New translations qna.md (English)
---
website/translated_docs/en-US/qna.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 website/translated_docs/en-US/qna.md
diff --git a/website/translated_docs/en-US/qna.md b/website/translated_docs/en-US/qna.md
new file mode 100644
index 0000000..c910445
--- /dev/null
+++ b/website/translated_docs/en-US/qna.md
@@ -0,0 +1,5 @@
+---
+id: qna
+title: '🙋 常见问题解答'
+---
+## TBD
\ No newline at end of file
From 4cd50f7003325cdf790a446bae8475edf95ffa56 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:34 +0800
Subject: [PATCH 009/421] New translations quandl.md (English)
---
website/translated_docs/en-US/quandl.md | 297 ++++++++++++++++++++++++
1 file changed, 297 insertions(+)
create mode 100644 website/translated_docs/en-US/quandl.md
diff --git a/website/translated_docs/en-US/quandl.md b/website/translated_docs/en-US/quandl.md
new file mode 100644
index 0000000..886d950
--- /dev/null
+++ b/website/translated_docs/en-US/quandl.md
@@ -0,0 +1,297 @@
+---
+id: quandl
+title: 基于 Quandl 的金融数据分析
+---
+## 关于 Quandl
+
+Quandl 是一个针对金融投资行业的大数据平台,其数据来源包括联合国、世界银行、中央银行等公开数据,核心财务数据来自 CLS 集团,Zacks 和 ICE 等,所有的数据源自 500 多家发布商, 是为投资专业人士提供金融,经济和替代数据的首选平台,拥有海量的经济和金融数据。
+
+## Quandl 数据索引
+
+### CovenantSQL 使用简介
+
+首先,我们已基于 Quandl 的开放 API 将数据存放在 CovenantSQL 中,首先应该浏览一下 CovenantSQL 的使用介绍来熟悉一下如何连接并且使用 CovenantSQL。
+
+现在由于客户端兼容问题, 请直接使用我们的 HTTP 服务来对 Quandl 数据库进行 query,未来兼容现在的 `cql` 客户端后会第一时间更新此文档。
+
+具体通过 HTTP 服务来使用 CovenantSQL 请参考 [Python 驱动文档](https://github.com/CovenantSQL/python-driver/blob/master/README.rst) 和 [NodeJS 驱动文档](https://github.com/CovenantSQL/node-covenantsql/blob/master/README.md)
+
+所需参数:
+
+ host: 'e.morenodes.com'
+ port: 11108
+ database: '057e55460f501ad071383c95f691293f2f0a7895988e22593669ceeb52a6452a'
+
+
+### 数据使用方法
+
+Quandl 数据分为表以及子表两层索引
+
+数据库中,表名为`quandl_` + `database_code`为完整表名
+
+通过查询表名来查看表的内容
+
+具体使用时,需要结合`quandl_updateindex` 这张索引表来使用,(查询索引表时,请务必 limit 小于 10 万,因为全表数据量过大)
+
+使用时,请使用 where 语句限定`quandlcode`字段来查询表中的子表数据。
+
+### 查询示例
+
+1. 我们想要查询 欧盟委员会年度宏观经济数据库 的数据,我们找到其第一层索引的 `databasecode` 为`quandl_ameco`,于是,我们可以查询其第二层索引,用以下 SQL 命令行:
+
+ `select * from quandl_updateindex where databasecode like 'ameco' group by quandlcode limit 10000`
+
+2. 然后通过第三列,我们可以查看`quandlcode`对应的描述
+
+ 比如 AMECO/ALB_1_0_0_0_AAGE 对应的就是阿尔巴尼亚的进出口相关信息,时间从 1960 到 1988。
+
+ Average share of imports and exports of goods in world trade excluding intra EU trade; Foreign trade statistics (1960-1998 Former EU-15) - Albania
+
+ 于是,我们可以用以下方式把这个子表给查询出来
+
+ `select * from quandl_ameco where quandlcode like 'AMECO/ALB_1_0_0_0_AAGE' limit 10000`
+
+3. 注意:如果内容整列为 null 的,属于表结构本身不存在的字段,可以自行去除。
+
+## Quandl 数据 Excel 插件使用说明
+
+您可以下载 Quandl 数据 Excel 插件,无须安装,请解压到任意文件夹中。此插件目前仅支持 Office 2010 以及以上版本,office 2007 以及以下版本目前暂不支持。
+
+### 配置 Excel 插件
+
+解压下载后压缩包,在文件夹中有两个.xll 文件,`ClassLibrary7-AddIn.xll` 以及 `ClassLibrary7-AddIn64.xll` 文件,这两个文件分别对应 32 位的 Excel 与 64 位的 Excel,请根据您的电脑配置使用对应插件。
+
+#### 修改 xml 配置
+
+每个 `.xll` 文件对应一个 `.config` 的配置文件,也就是 `ClassLibrary7-AddIn.xll.config` 和`ClassLibrary7-AddIn64.xll.config`,为如下 xml 配置:
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+其中有如下配置需要修改,并保存:
+
+- certpath: 请填写 `read.data.thunderdb.io.pfx` 证书的绝对路径
+
+#### 安装插件
+
+有两种办法使用此 Excel 插件
+
+1. 直接双击对应的 32 位或 64 位 Excel 的 xll 文件打开
+
+
+
+如果弹出如上对话框,选择第一个: `仅为本回话启用此加载项`。然后新建一个 Excel 表格,如果在 Excel 的上方选项卡中看到 CovenantSQL,说明插件加载成功。
+
+2. 打开 Excel,然后依次选择 `文件 — 选项 — 加载项`,管理选择 Excel 加载项,点击转到然后浏览选择解压后的对应版本的 `.xll` 文件,然后点击 `确定`,在选项卡中如果成功加载出 CovenantSQL 即为成功加载,如下图:
+
+
+
+#### 使用插件
+
+选择 CovenantSQL 的选项卡可以看到 Quandl 数据查询,点击 Quandl 数据查询,会弹出一个窗体如下图所示:
+
+
+
+- 其中红色框住的列表部分是一级目录,下方则是所选项的具体描述
+
+- 绿色按钮是通过选择的一级目录来查询二级目录。这里查询时间会随着所查询二级目录的大小以及用户自身的网络速度等因素而不同,可能查询时间会超过 1 分钟,请耐心等待。
+
+- 黄色部分左边的列表是二级目录,右边的窗体则为列表项所选择的表的描述。
+
+- 蓝色部分是导出数据的可选项
+
+ - Limit Number 是一次导出的最多数据条数,默认为 10000 条,最大值可填写 100000
+ - Offset Number 是从数据库的第几条开始导出,因为之前会限定条数,例如我们之前导出了 10000 条数据,但是明显数据还没有导出全部,我们可以使用此功能选择 offset 10000 来从第 10000 条开始导出(注:数据库的计数从 0 开始,所以前 10000 条为 0-9999)
+
+现在,您即可在 Excel 中方便的调用存在 CovenantSQL 上的 Quandl 数据。
+
+## 附件表
+
+| DataBase | 名称 | 描述 |
+| ------------ | ------------------------ | ------------------------------------------------------------------------------------------- |
+| BUNDESBANK | 德意志联邦银行数据仓库 | 有关德国经济,货币和资本市场,公共财政,银行,家庭,欧元区总量,贸易和外债的数据。 |
+| URC | 独角兽研究公司数据 | 纽约证券交易所,美国证券交易所和纳斯达克证券交易所的预付和下跌数据。从各种公开来源和报告中值。 |
+| DCE | 大连商品交易所数据 | 来自DCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WFC | 富国银行住房抵押贷款数据 | 该数据库提供富国银行(Wells Fargo Bank)分部Wells Fargo Home Mortgage的抵押贷款购买和再融资利率。 |
+| USDAFNS | 美国农业部食品与营养服务项目数据 | 食品和营养服务局为低收入家庭和儿童管理联邦营养援助计划。成本和参与率数据。 |
+| LJUBSE | 卢布尔雅那证券交易所数据 | 该数据库包含卢布尔雅那股票交易所指数,总部位于斯洛文尼亚的卢布尔雅那。 |
+| TOCOM | 东京商品交易所数据 | 来自东京商品交易所(TOCOM)的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WCSC | 世界银行企业积分卡数据 | 该数据库旨在提供世界银行集团在消除极端贫困和促进共同繁荣方面的表现的战略概述。 |
+| CMHC | 加拿大住房抵押贷款公司 | CMHC是一家政府所有的公司,为加拿大公民提供经济适用房,并收集价格,建筑和供应等数据。 |
+| WGEC | 世界银行全球经济监测商品数据(GEM) | 包含1960年至今的商品价格和指数的数据。 |
+| FED | 美联储数据公布 | 美国官方关于货币供应量,利率,抵押贷款,政府财政,银行资产和债务,汇率,工业生产的数据。 |
+| WPSD | 世界银行公共部分支出数据 | 由世界银行和国际货币基金组织共同开发的数据,汇集了详细的公共部门政府债务数据。 |
+| UGID | 联合国全球指标 | 该数据库提供广泛的全球指标,涵盖人口,公共卫生,就业,贸易,教育,通货膨胀和外债。 |
+| RBA | 澳大利亚储备银行数据 | 中央银行和货币当局,监管银行业,设定利率,并为政府债务提供服务。关键经济指标数据。 |
+| UCOM | 联合国商品贸易数据 | 该数据库提供有关食品,活体动物,药品,金属,燃料和机械等商品进出口的全面综合数据。 |
+| SIDC | 太阳影响数据分析中心数据 | SIDC主持从1700年开始的太阳活动数据,特别是太阳黑子活动。 |
+| ZCE | 郑州商品交易所数据 | 来自ZCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| USDAFAS | 美国农业部外国农业服务数据(FAS) | 美国农业部外国农业服务局将美国农业与世界市场联系起来。它提供了国外生产和出口的统计数据。 |
+| OECD | 世界经济合作与发展组织数据 | 促进经济福利的发达国家国际组织。从成员和其他人收集数据以提出政策建议。 |
+| OPEC | 欧佩克数据 | 国际组织和经济卡特尔监督伊拉克,伊朗,沙特阿拉伯和委内瑞拉等石油生产国的政策、油价数据。 |
+| MCX | 印度多种商品交易所数据 | 印度最大的商品交易所,为金属,能源和农业期货交易提供服务。世界第三大合约和交易量交易所。 |
+| ECONOMIST | 经济学人 - 巨无霸指数 | 巨无霸指数是由经济学家于1986年发明的,是一个轻松的指南,指出货币是否处于“正确”水平。它基于购买力平价理论(PPP)。 |
+| NSDL | 国家证券存管有限公司(印度)数据 | 在印度存放负责该国经济发展的国家,该国家建立了国际标准的国家基础设施,处理在印度资本市场以非物质形式持有和结算的大部分证券。 |
+| GDT | 全球乳品贸易数据 | nan |
+| CFFEX | 中国金融期货交易所数据 | 来自CFFEX的指数和债券期货,对于特定期货的历史跨越近十年。 |
+| CITYPOP | Thomas Brinkhoff的城市人口数据 | Thomas Brinkhoff提供了大多数国家城市和行政区域的人口数据。 |
+| BCHARTS | 比特币图表汇率数据 | 来自所有主要比特币交易所的比特币兑换大量货币的汇率,包括当前和历史汇率。 |
+| LOCALBTC | Local Bitcoins数据 | nan |
+| JODI | JODI石油世界数据库 | JODI石油和天然气数据来自100多个国家,包括多种能源产品和各种计量方法。 |
+| UENG | 联合国能源统计数据 | 该数据库提供有关新能源和可再生能源的生产,贸易,转换和最终消费的全面统计数据。 |
+| ULMI | 联合国劳工市场指标 | 该数据库为世界上所有国家提供了按性别划分的全面青年失业数字。 |
+| MAURITIUSSE | 毛里求斯证券交易所数据 | 毛里求斯证券交易所指数数据。 |
+| UKRSE | 乌克兰交易所数据 | UKRSE提供与乌克兰最大证券交易所相关的最新数据。该交易所位于基辅,约占乌克兰总股本交易量的四分之三 |
+| BITSTAMP | Bitstamp数据 | Bitstamp是一个比特币的交易平台。 |
+| UNAE | 联合国国民账户估算数据 | 该数据库提供了全球所有国家不同部门的国内生产总值,国民总收入和总增加值的全球数据。 |
+| UNAC | 联合国国民账户官方国家数据 | 该数据库提供有关国民账户的全球数据,例如家庭,公司和政府的资产和负债。 |
+| UTOR | 联合国世界旅游业数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| WFE | 世界交易所联合会数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| FRBC | 克利夫兰联邦储备银行数据 | 克利夫兰联邦储备银行从数百家金融机构收集数据,包括存款机构,银行控股公司和其他用于评估金融机构状况的实体,以及收集经济和金融体系运作方式的见解。 |
+| UGEN | 联合国性别信息 | 该数据库提供关于各种与性别有关的指标的全面综合数据,涵盖人口,卫生,教育和就业。 |
+| BITFINEX | Bitfinex数据 | Bitfinex是比特币,莱特币和Darkcoin的交易平台,具有许多先进功能,包括保证金交易,交易所和点对点保证金融资。 |
+| UGHG | 联合国温室气体清单 | 该数据库提供有关六种主要温室气体人为排放的全面综合数据。数据可以追溯到1990年。 |
+| UIST | 联合国工业发展组织数据 | 该数据库提供有关工业发展指标的全球数据,包括产量,员工,工资,各种行业的增加值。 |
+| PRAGUESE | 布拉格证券交易所数据 | 布拉格证券交易所的价格指数数据。 |
+| PFTS | PFTS证券交易所(乌克兰)数据 | 来自PFTS证券交易所的指数数据,这是乌克兰最大的市场。 |
+| WARSAWSE | 华沙证券交易所数据 | WIG20指数自1994年4月16日起根据WSE主要清单中20家最主要和最具流动性公司的股票价值计算。 |
+| TUNISSE | 突尼斯证券交易所数据 | 突尼斯证券交易所的主要参考指数。 |
+| FRKC | 堪萨斯城联邦储备银行数据 | FRKC是美联储第10区的区域中央银行,主要发布农业交易中的银行业务数据。 |
+| UENV | 联合国环境统计数据 | 该数据库提供有关水和废物相关指标的全球数据,包括淡水供应和降水,以及废物的产生和收集。 |
+| UFAO | 联合国粮食和农业数据 | 该数据库提供全球粮食和农业数据,包括作物生产,化肥消费,农业用地和牲畜用途。 |
+| TAIFEX | 台湾期货交易所数据 | 来自TAIFEX的指数和债券期货,其历史跨越了十多年的特定期货。 |
+| GDAX | GDAX(全球数字资产交易所)数据 | GDAX是世界上最受欢迎的买卖比特币的地方。 |
+| ARES | 房地产证券化协会数据 | ARES保护投资者,有助于房地产证券化产品市场的发展,并促进房地产投资市场的扩张。 |
+| SHADOWS | 影子联邦基金利率模型数据 | 该数据集包含 吴-侠 论文中关于影子联邦基金的三个主要指标,用于识别所有三大银行的影子利率。 |
+| NAAIM | 全国积极投资管理者协会头寸指数 | NAAIM暴露指数代表NAAIM成员报告的美国股票市场的平均风险敞口。 |
+| CBRT | 土耳其共和国中央银行数据 | CBRT负责采取措施维持土耳其金融体系的稳定。 |
+| CEGH | 中欧天然气中心数据 | nan |
+| FINRA | 美国金融业监管局数据 | 金融业监管局提供证券公司和交易所市场的短期利息数据。 |
+| NASDAQOMX | 纳斯达克OMX全球指数数据 | 纳斯达克OMX发布的全球指数超过35,000种,包括全球股票,固定收益,股息,绿色,北欧,伊斯兰教等。每日数据。 |
+| EURONEXT | 泛欧证券交易所数据 | 欧洲最大的交易所Euronext的历史股票数据。 |
+| UICT | 联合国信息和通信技术数据 | 该数据库提供有关信息和通信技术的全面全球数据,包括所有国家的电话,蜂窝和互联网使用情况。 |
+| USAID | 美国国际开发署数据 | 美国国际开发署提供了美国向世界其他地方提供的所有外国援助的完整历史记录。 |
+| ZAGREBSE | 萨格勒布证券交易所数据 | 克罗地亚唯一的证券交易所。它发布有关其股票和债券指数表现的数据。 |
+| QUITOSE | 基多证券交易所(厄瓜多尔)数据 | 厄瓜多尔国家证券交易所的指数。 |
+| ECBCS | 欧盟委员会商业和消费者调查 | 该数据库中的数据来自欧盟(EU)和欧盟申请国的不同经济部门的统一调查。 |
+| PSE | 巴黎经济学院数据 | 该数据库描述了越来越多国家的最高收入分配。数字是使用税收数据得出的。 |
+| MALTASE | 马耳他证券交易所数据 | 马耳他证券交易所发挥作用,为其认可的名单提供金融工具的结构,随后可在受监管,透明和有序的市场(二级市场)进行交易。市场的主要参与者是发行人,股票交易所会员(股票经纪人)和投资者一般。 |
+| GPP | 全球石油价格 | nan |
+| PPE | 波兰电力交易所(TGE)数据 | nan |
+| UKONS | 英国国家统计局数据 | 关于英国就业,投资,住房,家庭支出,国民账户和许多其他社会经济指标的数据。 |
+| NCDEX | 国家商品及衍生品交易所(印度)数据 | 印度专业管理的在线多商品交易所 |
+| WSE | 华沙证券交易所(GPW)数据 | nan |
+| TFX | 东京金融交易所数据 | 东京金融交易所是一个期货交易所,主要交易金融工具市场,处理证券和市场衍生品。 |
+| WGFD | 世界银行全球金融发展数据 | 有关金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| CEPEA | 应用经济学应用研究中心(巴西)数据 | CEPEA是圣保罗大学的一个经济研究中心,专注于农业企业问题,发布巴西商品价格指数。 |
+| SBJ | 日本统计局数据 | 日本政府统计机构,提供有关就业和劳动力的统计数据。 |
+| WGEM | 世界银行全球经济监测 | 关于全球经济发展的数据,涵盖高收入国家和发展中国家。 |
+| WGDF | 世界银行全球发展金融 | 关于金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| WWDI | 世界银行世界发展指标 | 最新和最准确的发展指标,由官方认可的国际来源汇编而成。 |
+| WESV | 世界银行企业调查 | 公司级私营部门数据,涵盖金融,腐败,基础设施,犯罪,竞争和绩效衡量等业务主题。 |
+| WDBU | 世界银行存续商业数据 | 关于成员国和地方和区域一级选定城市的商业法规及其执法的数据。 |
+| OSE | 大阪证券交易所数据 | 日本第二大证券交易所。与东京证券交易所不同,OSE在衍生品交易方面表现最为强劲,是日本的大多数期货和期权。 |
+| RFSS | 俄罗斯联邦统计局数据 | 俄罗斯政府统计机构,负责在国家和地方层面发布俄罗斯的社会,经济和人口统计数据。 |
+| SHFE | 上海期货交易所数据 | 大宗商品交换能源,金属和化学相关的工业产品。许多商品期货的衍生品市场。 |
+| WGEP | 世界银行全球环境规划经济前景数据 | 关于全球经济的短期,中期和长期前景以及对发展中国家和减贫的影响的数据。 |
+| USMISERY | 美国痛苦指数 | 由经济学家亚瑟·奥肯(Arthur Okun)开发的苦难指数是失业率加上通胀率。 |
+| WJKP | 世界银行知识平台工作数据 | 与劳工有关的主题指标。 |
+| WMDG | 世界银行千年发展目标数据 | 根据千年发展目标(MDGs)的目标和指标重新组织的世界发展指标数据。 |
+| WPOV | 世界银行贫困统计 | 贫困人口比率,贫困差距以及国际和国家贫困线贫困人口数量的指标。 |
+| EUREKA | Eurekahedge数据 | 一家研究公司专注于对冲基金和其他另类投资基金。它公布了对冲基金业绩的数据。 |
+| MOFJ | 日本财务省数据 | 日本政府债券利率数据,由财政部每日公布。 |
+| PIKETTY | Thomas Piketty数据 | “21世纪资本”中的收入和财富数据,哈佛大学出版社,2014。 |
+| PSX | 巴基斯坦证交所数据 | 巴基斯坦证券交易所的股票收盘价格。 |
+| SGX | 新加坡交易所数据 | 亚洲证券和衍生品交易所为许多大型新加坡和其他亚洲公司进行股票交易。在自己的交易所上市。 |
+| UIFS | 联合国国际金融统计 | 该数据库提供有关国际财务指标的综合数据,如平均收入,债券收益率,政府收入和支出。 |
+| UINC | 联合国工业商品数据 | 该数据库提供有关工业商品生产的全球数据,如矿石和矿物,食品,可运输货物和金属产品。 |
+| INSEE | 国家统计和经济研究所(法国)数据 | INSEE是法国的国家统计机构。它收集有关法国经济和社会的数据,如社会经济指标和国民账户。 |
+| SNB | 瑞士国家银行数据 | 中央银行负责货币政策和货币。有关国际账户,利率,货币供应和其他宏观经济指标的数据。 |
+| ODE | 大阪道岛商品交易所数据 | 日本关西地区的一个非营利性商品交易所,交易七种主要农产品。 |
+| WGEN | 世界银行性别统计 | 描述收入,工作类型,工作部门,农民生产率以及企业家公司规模和利润的性别差异的数据。 |
+| WHNP | 世界银行健康营养与人口统计 | 关键的健康,营养和人口统计数据。 |
+| WIDA | 世界银行国际发展协会 | 关于选定指标的IDA(国际开发协会)国家总体成果进展情况的数据。 |
+| ECMCI | 欧盟委员会货币状况指数 | 每月更新,此数据库提供欧元区的货币状况指数值。历史可以追溯到1999年。 |
+| NBSC | 中国国家统计局数据 | 中国有关金融,工业,贸易,农业,房地产和交通运输的统计数据。 |
+| MAS | 新加坡金融管理局数据 | nan |
+| MGEX | 明尼阿波利斯谷物交易所数据 | 促进农业指数贸易的区域商品期货和期权合约市场。 |
+| WWGI | 世界银行全球治理指标 | 六个治理层面的总体和个别治理指标数据。 |
+| ISM | 供应管理研究所 | ISM促进供应链管理实践,并发布有关生产和供应链,新订单,库存和资本支出的数据。 |
+| UKR | 乌克兰交易所数据 | nan |
+| FRBNY | 纽约联邦储备银行数据 | FRBNY是美国最大的区域中央银行。为纽约,康涅狄格州和新泽西州的大部分地区以及一些地区设定货币政策。 |
+| FRBP | 费城联邦储备银行数据 | FRBP是美联储的区域中央银行。它发布有关商业信心指数,GDP,消费和其他经济指标的数据。 |
+| FMSTREAS | 美国财政部 - 财务管理处数据 | 美利坚合众国的月收入/支出和赤字/盈余。 |
+| EIA | 美国能源信息管理局数据 | 美国国家和州有关所有主要能源产品(如电力,煤炭,天然气和石油)的生产,消费和其他指标的数据。 |
+| SOCSEC | 美国社会保障局数据 | 提供有关美国社会保障计划的数据,特别是受益人的人口统计数据;残疾人,老人和幸存者。 |
+| TFGRAIN | 顶级飞行谷物合作社数据 | 玉米和大豆的现货价格,包括前月期货合约的基础。 |
+| IRPR | 波多黎各统计研究所数据 | 波多黎各统计研究所制造业统计数据。 |
+| BCHAIN | blockchain.com数据 | Blockchain是一个发布与比特币相关的数据的网站,每日更新。 |
+| BITCOINWATCH | Bitcoin Watch数据 | 比特币采矿统计。 |
+| ODA | 国际货币基金组织跨国宏观经济统计 | 国际货币基金组织的初级商品价格和世界经济展望数据,由非洲开放数据公布。优秀的跨国宏观经济数据。 |
+| WADI | 世界银行非洲发展指标 | 关于非洲的一系列发展指标,包括国家,区域和全球估计数。 |
+| WEDU | 世界银行教育统计 | 关于教育机会,进展,完成,扫盲,教师,人口和支出的国际可比指标。 |
+| WGLF | 世界银行全球Findex(全球金融包容性数据库) | 关于人们如何储蓄,借贷,支付和管理风险的金融包容性指标。 |
+| WWID | 世界财富和收入数据库 | 世界财富和收入数据库旨在提供开放和便捷的途径,以获取有关国家内部和国家之间世界收入和财富分配历史演变的最广泛的现有数据库。 |
+| BTER | 比特儿数据 | 加密货币的历史汇率数据。 |
+| CFTC | 商品期货交易委员会报告 | 交易员和集中比率的每周承诺。期货头寸以及期货加期权头寸的报告。新旧格式。 |
+| BOE | 英格兰银行官方统计 | 当前和历史汇率,担保贷款和定期存款利率,欧元商业票据利率和政府证券收益率。 |
+| EXMPL | Quandl时间序列数据示例 | 一个时间序列数据库示例。 |
+| WORLDAL | 铝价格 | 世界铝产能和产量(千公吨)。 |
+| WGC | 黄金价格 | 世界黄金协会是黄金行业的市场开发组织。它以不同货币发布黄金价格数据。 |
+| MX | 加拿大期货数据 | 蒙特利尔交易所是一家衍生品交易所,交易期货合约以及股票,指数,货币,ETF,能源和利率的期权。 |
+| UMICH | 消费者情绪 | 密歇根大学的消费者调查 - 最近6个月的数据点是非官方的;它们来自华尔街日报的文章。 |
+| JOHNMATT | 稀有金属价格数据 | 关于铂族金属的当前和历史数据,如价格,供应和需求。 |
+| NAHB | 美国住房指数 | 美国的住房和经济指数。 |
+| RATEINF | 通货膨胀率 | 阿根廷,澳大利亚,加拿大,德国,欧元区,法国,意大利,日本,新西兰等国的通货膨胀率和消费物价指数CPI。 |
+| RENCAP | IPO数据 | 有关美国IPO市场的数据。 |
+| ML | 公司债券收益率数据 | 美林(Merrill Lynch)是美国一家大型银行,它发布了不同地区公司债券收益率的数据。 |
+| MULTPL | S&P 500 | nan |
+| RICI | 商品指数 | 综合,以美元为基础的总回报指数,代表全球经济中消费的一篮子商品的价值。 |
+| AAII | 投资者情绪 | 美国个人投资者协会的情绪数据。 |
+| BIS | 国际清算银行数据 | 国际清算银行为中央银行提供货币和金融稳定管理,促进国际合作,并作为中央银行的银行。 |
+| BCB | 巴西中央银行统计数据库 | 巴西宏观经济数据,涵盖公共财政,国民账户,支付系统,通货膨胀,汇率,贸易和国际储备。 |
+| BCRA | 阿根廷中央银行数据 | 阿根廷中央银行负责货币政策,提供外汇市场数据和主要宏观经济指标。 |
+| FSE | 法兰克福证券交易所 | 法兰克福证券交易所的每日股票价格 |
+| BLSN | 劳工统计局国际数据 | 各国的进出口价格统计,由劳工统计局公布。 |
+| BLSP | 劳工统计局生产力数据 | 美国制造业,劳务和商业统计,由劳工统计局公布。 |
+| FDIC | 联邦存款保险公司数据 | FDIC是一家银行存款高达25万美元的联邦保险公司,负责收集商业银行和储蓄机构的财务数据。 |
+| BLSI | 美国劳工统计局通货膨胀和价格统计 | 美国国家和州一级的通胀数据,由劳工统计局公布。 |
+| BLSE | 美国劳工统计局就业与失业统计 | 美国国家和州一级的就业和失业统计数据,由劳工统计局公布。 |
+| BLSB | 美国劳工统计局薪酬福利统计 | 由劳工统计局公布的美国停工统计数据。 |
+| BP | BP能源生产和消费数据 | BP是一家大型能源生产商和分销商。它提供了各个国家和较大次区域的能源生产和消费数据。 |
+| LPPM | 白金和钯价格数据 | 全球钯金和铂金市场清算价格数据。 |
+| CASS | 运费指数 | 自1990年以来,CASS每月提供与其他经济和供应链指标相关的货运趋势的CASS运费指数报告。 |
+| MORTGAGEX | 可调利率抵押贷款指数 | ARM索引的历史住房数据。 |
+| BUCHARESTSE | 布加勒斯特证券交易所数据 | 布加勒斯特证券交易所发布股票,权利,债券,基金单位,结构性产品和期货合约活动数据。 |
+| AMECO | 欧盟委员会年度宏观经济数据库 | 欧洲委员会经济和财政事务总局(DG ECFIN)年度宏观经济数据库。 |
+| ACC | 美国化学理事会数据 | 化学活性晴雨表(CAB)由美国化学理事会(ACC)出版。 CAB是一个经济指标,有助于预测整个美国经济的高峰和低谷,并突出了美国其他行业的潜在趋势。 |
+| ABMI | 亚洲债券市场计划 | 中国和日本债券市场的指标,如规模和构成,市场流动性,收益率收益率和波动率。 |
+| BITAL | 意大利证交所数据 | 该数据库提供了Borsa Italiana(现为伦敦证券交易所集团的一部分)的股票期货合约数据。 |
+| BANKRUSSIA | 俄罗斯银行数据 | 俄罗斯银行的主要指标,包括银行业,货币供应量,金融市场和宏观经济统计数据。 |
+| BOC | 加拿大银行统计数据库 | 加拿大的经济,金融和银行数据。包括利率,通货膨胀,国民账户等。每日更新。 |
+| HKEX | 香港交易所数据 | 香港交易所股票价格,历史分割期货等每日更新。 |
+| AMFI | 印度共同基金协会数据 | 该数据库代表印度共同基金协会的基金信息。 |
+| BDM | 墨西哥银行数据 | 墨西哥银行负责货币政策和本国货币(比索),并提供账户和所有宏观经济变量的数据。 |
+| BATS | BATS美国证券交易所数据 | Bats是美国的股票市场运营商,经营四个股票交易所--BZX Exchange,BYX Exchange,EDGA Exchange和EDGX Exchange |
+| BSE | 孟买证券交易所数据 | 在印度孟买证券交易所交易的公司的日终价格,指数和其他信息。 |
+| FRED | 美联储经济数据 | 来自圣路易斯联邦储备银行研究部门的增长,就业,通货膨胀,劳工,制造业和其他美国经济统计数据。 |
+| FMAC | 房地美数据 | Freddie Mac的主要抵押贷款市场调查和其他地区特定历史抵押贷款利率的数据。 |
+| EUREX | 欧洲期货交易所数据 | 欧洲最大的期货交易所EUREX的指数,利率,农业和能源期货,历史跨越了特定期货的十年。 |
+| ECB | 欧洲中央银行数据 | 欧盟中央银行监督货币政策和欧元,并提供相关宏观经济变量的数据。 |
+| BOF | 法国银行数据 | 法兰西银行通过欧洲中央银行体系的政策负责货币政策,并提供关键经济指标的数据。 |
+| BELGRADESE | 贝尔格莱德证券交易所数据 | 贝尔格莱德证券交易所数据,每日更新。 |
+| CHRIS | 维基连续期货 | Quandl所有600个期货的连续合约。建立在CME,ICE,LIFFE等原始数据之上。由Quandl社区策划。 50年的历史。 |
+| BOJ | 日本银行数据 | nan |
+| USTREASURY | 美国财政部数据 | 美国财政部确保国家的金融安全,管理国家债务,收取税收,发行货币,提供收益率数据。 |
+| LBMA | 伦敦金银市场协会数据 | 伦敦黄金和白银市场的国际贸易协会,由中央银行,私人投资者,生产商,炼油商和其他代理商组成。 |
+| PERTH | 珀斯铸币厂数据 | 珀斯造币厂的利率和商品价格的高点,低点和平均值每月更新一次。 |
+| ZILLOW2 | Zillow房地产研究 | 房屋价格和租金按大小,类型和等级划分;住房供应,需求和销售。按邮政编码,街区,城市,都市区,县和州切片。 |
\ No newline at end of file
From edfc5534f469eaa86f298d47c9d2f5794d5e43c9 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:36 +0800
Subject: [PATCH 010/421] New translations quickstart.md (English)
---
website/translated_docs/en-US/quickstart.md | 146 ++++++++++++++++++++
1 file changed, 146 insertions(+)
create mode 100644 website/translated_docs/en-US/quickstart.md
diff --git a/website/translated_docs/en-US/quickstart.md b/website/translated_docs/en-US/quickstart.md
new file mode 100644
index 0000000..c2cd203
--- /dev/null
+++ b/website/translated_docs/en-US/quickstart.md
@@ -0,0 +1,146 @@
+---
+id: quickstart
+title: '🌏 TestNet 快速开始'
+---
+## CovenantSQL 工具包
+
+### 工具包简介
+
+请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+
+例如,您使用的是:
+
+- MacOS 平台请下载:[**CovenantSQL-v0.5.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.osx-amd64.tar.gz)
+- Linux 平台请下载:[**CovenantSQL-v0.5.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.linux-amd64.tar.gz)
+- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+解压之后,你将得到以下命令行工具,包括:`cql`、`cql-minerd` 等, 请将此文件移动到 `PATH` 目录。
+
+| 工具名 | 介绍 |
+| ---------- | ---------------------------------------------------------------- |
+| cql | CovenantSQL 的客户端,`cql console` 命令类似 mysql 命令,用于执行 SQL。还有其他丰富的工具链 |
+| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
+| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+
+### 测试网快速接入
+
+目前,我们已经发布了测试网 v0.5.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
+
+测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) (密码为空),或者使用以下命令:
+
+```bash
+mkdir conf
+wget https://git.io/fhFZe -O conf/config.yaml
+wget https://git.io/fhFZv -O conf/private.key
+chmod 600 conf/private.key
+```
+
+**测试网注**:
+
+> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+>
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
+
+## 创建并访问 CovenantSQL 数据库
+
+### 创建数据库
+
+```shell
+cql create -config conf/config.yaml '{"node":1}'
+```
+
+在命令行提示中输入master key的密码,之后控制台会输出:
+
+ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+
+> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+>
+> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
+> 2. 数据库创建请求在 其它出块节点 进行验证和确认
+> 3. SQLChain 的符合条件的 Miner 收到数据库任务
+> 4. SQLChian 组建 Kayak 数据库集群
+> 5. 所有 Miner 准备就绪等待请求
+
+### 访问数据库
+
+```shell
+cql console -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+在控制台中根据提示输入master key的密码。连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 数据库 SDK
+
+- [Golang 开发指引](./development)
+
+## SQLChain 区块浏览器
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
+
+> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+
+```shell
+cql generate config
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+cql wallet
+```
+
+输出:
+
+```toml
+wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+```
+
+你可以在这里回复上面得到的钱包地址 [GitHub Issue](https://github.com/CovenantSQL/CovenantSQL/issues/283),我们会为你的钱包充值。
+
+使用 cql 命令行工具查询余额(可以添加 -config 参数,指定其他的 config.yaml 所在目录):
+
+```shell
+cql wallet -balance all
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 0250ca5811138892dc41139f31204986fcf53dc4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 15:22:37 +0800
Subject: [PATCH 011/421] New translations usecase.md (English)
---
website/translated_docs/en-US/usecase.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 website/translated_docs/en-US/usecase.md
diff --git a/website/translated_docs/en-US/usecase.md b/website/translated_docs/en-US/usecase.md
new file mode 100644
index 0000000..0ca5313
--- /dev/null
+++ b/website/translated_docs/en-US/usecase.md
@@ -0,0 +1,5 @@
+---
+id: usecase
+title: 使用案例
+---
+## TBD
\ No newline at end of file
From bfe204e76d69a41eab7458939523e3f1ae40830b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 16:37:34 +0800
Subject: [PATCH 012/421] New translations intro.md (English)
---
website/translated_docs/en-US/intro.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/website/translated_docs/en-US/intro.md b/website/translated_docs/en-US/intro.md
index 2eab7a1..e5f0b33 100644
--- a/website/translated_docs/en-US/intro.md
+++ b/website/translated_docs/en-US/intro.md
@@ -32,13 +32,13 @@ title: CovenantSQL 介绍
alt="Join the chat at https://gitter.im/CovenantSQL/CovenantSQL">
-CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+CovenantSQL is a GDPR-compliant SQL database running on Open Internet without central coordination.
-结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+Combining the advantages of the blockchain, sharing economy and distributed database, the user's privacy and ownership of data are guaranteed.
-CovenantSQL 具备以下特点:
+CovenantSQL has the following features:
-* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **SQL Interface**: Supports SQL-92 standard, traditional App almost no modifications can be linked to data.
* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
From b34e092836cf7622449980dff383aa745f9cfe50 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:11 +0800
Subject: [PATCH 013/421] New translations api.md (Chinese Simplified)
---
website/translated_docs/zh-CN/api.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 website/translated_docs/zh-CN/api.md
diff --git a/website/translated_docs/zh-CN/api.md b/website/translated_docs/zh-CN/api.md
new file mode 100644
index 0000000..0a111da
--- /dev/null
+++ b/website/translated_docs/zh-CN/api.md
@@ -0,0 +1,5 @@
+---
+id: api
+title: '👩🏻💻 CovenantSQL API'
+---
+## TBD
\ No newline at end of file
From a4e0402fed392f5b29517ffe78c1b50dffda22e2 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:12 +0800
Subject: [PATCH 014/421] New translations cql.md (Chinese Simplified)
---
website/translated_docs/zh-CN/cql.md | 210 +++++++++++++++++++++++++++
1 file changed, 210 insertions(+)
create mode 100644 website/translated_docs/zh-CN/cql.md
diff --git a/website/translated_docs/zh-CN/cql.md b/website/translated_docs/zh-CN/cql.md
new file mode 100644
index 0000000..be990f0
--- /dev/null
+++ b/website/translated_docs/zh-CN/cql.md
@@ -0,0 +1,210 @@
+---
+id: cql
+title: '🖥️ CQL 命令行工具'
+---
+## 简介
+
+本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络, 并将 `cql` 可执行文件保存在 `PATH` 目录。
+
+### 配置文件
+
+`cql`命令依赖配置文件`config.yaml`和私钥文件`private.key`。这两个文件如果使用`cql generate config`命令生成,会默认放在`~/.cql/`目录下。在此目录下时,`cql`所有子命令的`-config`参数均可以省略不填写。
+
+### Master key
+
+`private.key`文件在生成时需要输入密码,`cql`命令会自动请求输入master key (密码)。 如果想在脚本中使用,可以在子命令后面增加`-password your_master_key`,空密码时用`-no-password`参数。
+
+## 查询余额
+
+查询余额的命令是:`cql wallet -balance `。其中`token_type`设置为`all`时将返回用户账户中 `Particle` 与 `Wave` 的数量,其他关键词将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+查看默认余额:
+
+```bash
+cql wallet -balance all -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+ INFO[0000] Wave balance is: 10000000000000000000
+
+
+查看 Particle 余额:
+
+```bash
+cql wallet -balance Particle -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+
+
+查看 Bitcoin 余额:
+
+```bash
+cql wallet -balance Bitcoin -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Bitcoin balance is: 0
+
+
+## 转账
+
+转账操作使用 `cql transfer` 并以 `json` 格式的转账信息为参数。
+
+```json
+{
+ "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount":"1000000 Particle" // 转账金额并带上单位
+}
+```
+
+其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
+
+转账 Particle:
+
+```bash
+cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+转账 Wave:
+
+```bash
+cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+```
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+查看余额:
+
+```bash
+cql wallet -balance all -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 9999999999999000000
+ INFO[0000] Wave balance is: 9999999999999000000
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `cql wallet -balance ` 确定。
+
+## 数据库权限管理
+
+#### 访问权限
+
+CovenantSQL 数据库有三类库级别权限:
+
+- `Admin`
+- `Write`
+- `Read`
+- `Void`
+
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql grant` 并以 `json` 格式的权限信息为参数:
+
+```json
+{
+ "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm":"Write" // 权限内容
+}
+```
+
+增加写权限:
+
+```bash
+cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+吊销权限:
+
+```bash
+cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+
+为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
+
+使用新账户给数据库充值:
+
+```bash
+cql transfer -config new_user_config/config.yaml '{"addr":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount":"90000000 Particle"}'
+```
+
+#### SQL 白名单
+
+CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除货更新操作。
+
+增加白名单:
+
+```shell
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": [
+ "SELECT COUNT(1) FROM a",
+ "SELECT * FROM a WHERE id = ? LIMIT 1"
+ ],
+ "role": "Read"
+ }
+}
+'
+```
+
+*白名单功能是基于数据库权限的一个扩展,且当前不支持增量的白名单更新,在设置白名单时需要写明所有授权该用户使用的语句,以及该用户对数据库的访问权限*
+
+设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a`的 总数据量。
+
+去掉白名单限制:
+
+```shell
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": nil,
+ "role": "Read"
+ }
+}
+'
+# or
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": "Read"
+}
+'
+```
+
+将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
\ No newline at end of file
From f31ae69f18d7c4c53fcf7922c9cee63b5d5b65b1 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:13 +0800
Subject: [PATCH 015/421] New translations deployment.md (Chinese Simplified)
---
website/translated_docs/zh-CN/deployment.md | 161 ++++++++++++++++++++
1 file changed, 161 insertions(+)
create mode 100644 website/translated_docs/zh-CN/deployment.md
diff --git a/website/translated_docs/zh-CN/deployment.md b/website/translated_docs/zh-CN/deployment.md
new file mode 100644
index 0000000..3ef403b
--- /dev/null
+++ b/website/translated_docs/zh-CN/deployment.md
@@ -0,0 +1,161 @@
+---
+id: deployment
+title: '🐳 Docker 一键部署'
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 下载项目
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+存为环境变量
+
+### 启动 Docker 容器
+
+现在有两种方式启动 CovenantSQL 容器:
+
+1. 使用 Docker Hub 上的公共镜像
+2. 构建 CovenantSQL Docker 镜像
+
+> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+
+#### 1. 使用 Docker Hub 上的公共镜像
+
+然后直接启动:
+
+```bash
+make start
+```
+
+#### 2. 构建 CovenantSQL Docker 镜像
+
+执行以下的命令在本地运行 CovenantSQL
+
+```bash
+make docker # 从头编译新的镜像
+make start
+```
+
+### 检查运行状态
+
+检查容器状态:
+
+```bash
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+## 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+### SQLChain Observer
+
+镜像中的 Observer 角色使用了和 mysql-adapter 镜像中相同的 private.key ,故可以免去新账户授权和转账的过程制。
+
+(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+
+#### 在浏览器使用 SQLChain Observer
+
+我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
From fce48b32ed1edcb7db68f7f26e99c55870c83ae1 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:15 +0800
Subject: [PATCH 016/421] New translations intro.md (Chinese Simplified)
---
website/translated_docs/zh-CN/intro.md | 72 ++++++++++++++++++++++++++
1 file changed, 72 insertions(+)
create mode 100644 website/translated_docs/zh-CN/intro.md
diff --git a/website/translated_docs/zh-CN/intro.md b/website/translated_docs/zh-CN/intro.md
new file mode 100644
index 0000000..2eab7a1
--- /dev/null
+++ b/website/translated_docs/zh-CN/intro.md
@@ -0,0 +1,72 @@
+---
+id: intro
+title: CovenantSQL 介绍
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From dbd0a414648436bfe5911d035f357c7d9ebc8975 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:16 +0800
Subject: [PATCH 017/421] New translations native.md (Chinese Simplified)
---
website/translated_docs/zh-CN/native.md | 172 ++++++++++++++++++++++++
1 file changed, 172 insertions(+)
create mode 100644 website/translated_docs/zh-CN/native.md
diff --git a/website/translated_docs/zh-CN/native.md b/website/translated_docs/zh-CN/native.md
new file mode 100644
index 0000000..b76bcc8
--- /dev/null
+++ b/website/translated_docs/zh-CN/native.md
@@ -0,0 +1,172 @@
+---
+id: native
+title: '📦 CovenantSQL Native SDK'
+---
+## 用 Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 91541150d885b9afdc01aeae0e84b1ad33a6ffc0 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:17 +0800
Subject: [PATCH 018/421] New translations nav.md (Chinese Simplified)
---
website/translated_docs/zh-CN/nav.md | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 website/translated_docs/zh-CN/nav.md
diff --git a/website/translated_docs/zh-CN/nav.md b/website/translated_docs/zh-CN/nav.md
new file mode 100644
index 0000000..caac5e7
--- /dev/null
+++ b/website/translated_docs/zh-CN/nav.md
@@ -0,0 +1,21 @@
+---
+id: nav
+title: '📖 使用导航'
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
+
+## 使用 CovenantSQL 开发应用
+
+[📦 CovenantSQL SDK](./development)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From b38092621907718a5cdffa6ae18642178ea8e6a5 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:18 +0800
Subject: [PATCH 019/421] New translations proxy.md (Chinese Simplified)
---
website/translated_docs/zh-CN/proxy.md | 110 +++++++++++++++++++++++++
1 file changed, 110 insertions(+)
create mode 100644 website/translated_docs/zh-CN/proxy.md
diff --git a/website/translated_docs/zh-CN/proxy.md b/website/translated_docs/zh-CN/proxy.md
new file mode 100644
index 0000000..3a39291
--- /dev/null
+++ b/website/translated_docs/zh-CN/proxy.md
@@ -0,0 +1,110 @@
+---
+id: adapter
+title: '📦 CovenantSQL Adapter SDK'
+---
+# 通过 Adapter 使用 CovenantSQL
+
+## 简介
+
+`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+
+## 安装和使用
+
+首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+
+### Docker 运行 Adapter
+
+下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+
+```bash
+export adapter_addr=0.0.0.0:11105
+docker rm -f cql-adapter
+docker run -itd \
+ --env COVENANT_ROLE=adapter --env COVENANT_CONF=/app/config.yaml \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --name cql-adapter -p $adapter_addr:4661 \
+ covenantsql/covenantsql:testnet -listen 0.0.0.0:4661
+```
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker run -it --rm \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --entrypoint /app/cql covenantsql/covenantsql:testnet \
+ -config /app/config.yaml -create 1
+```
+
+命令会返回创建的数据库实例的连接串(DSN)
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+## 主流语言 Driver 的使用
+
+### NodeJS
+
+NodeJS 开发者可以通过 [node-covenantsql](https://github.com/CovenantSQL/node-covenantsql) 来与 CovenantSQL Adapter 进行交互。
+
+#### 下载安装
+
+可以直接通过 `npm` 或者 `yarn` 来安装 `node-covenantsql`
+
+```bash
+npm install --save node-covenantsql
+```
+
+or
+
+```bash
+yarn add node-covenantsql
+```
+
+#### 使用
+
+在运行本地 Adapter 之后,将 Adapter 的 endpoint 填入 `node-covenantsql` 的 config 之中:
+
+```javascript
+const config = {
+ endpoint: 'localhost:11105', // local testnet endpoint without https
+ database: `${DSN}`, // your DB id created by `cql` tools
+ bypassPem: true // bypass https config
+}
+```
+
+这里 `bypassPem` 为 `true` 表示应用中所有对链上数据库的操作都会经过本地的 Adapter 进行代理,我们默认本地环境是可控,安全的,无需用 HTTPS 来保证这段连接的信道安全,少了证书的繁琐认证,所以成为 `bypassPem`。
+
+接着连通之后则可进行链上数据库的增删改查:
+
+```typescript
+const cql from 'node-covenantsql'
+
+const config = {...} // see above
+
+cql.createConnection(config).then(async (connection: any) => {
+ // read
+ const data1 = await connection.query("select ? + ?", [2.1, 3.2]);
+ console.log(data1);
+
+ // write
+ const createTableSQL = `
+ CREATE TABLE IF NOT EXISTS contacts (\
+ contact_id INTEGER PRIMARY KEY,
+ first_name TEXT NOT NULL,
+ last_name TEXT NOT NULL,
+ email text NOT NULL UNIQUE,
+ phone text NOT NULL UNIQUE
+ );
+ `
+ const status1 = await connection.exec(createTableSQL)
+ console.log(`exec1 status:`, status1);
+
+ const data2 = await connection.query("show tables;");
+ console.log(data2);
+}).catch((e: any) => console.log(e))
+```
\ No newline at end of file
From b01884228ed0d817a61fe757e62fb82e9afdfe69 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:20 +0800
Subject: [PATCH 020/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/qna.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 website/translated_docs/zh-CN/qna.md
diff --git a/website/translated_docs/zh-CN/qna.md b/website/translated_docs/zh-CN/qna.md
new file mode 100644
index 0000000..c910445
--- /dev/null
+++ b/website/translated_docs/zh-CN/qna.md
@@ -0,0 +1,5 @@
+---
+id: qna
+title: '🙋 常见问题解答'
+---
+## TBD
\ No newline at end of file
From ccd46b45018cfd10b1432674363415efcbfaf2ee Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:24 +0800
Subject: [PATCH 021/421] New translations quandl.md (Chinese Simplified)
---
website/translated_docs/zh-CN/quandl.md | 297 ++++++++++++++++++++++++
1 file changed, 297 insertions(+)
create mode 100644 website/translated_docs/zh-CN/quandl.md
diff --git a/website/translated_docs/zh-CN/quandl.md b/website/translated_docs/zh-CN/quandl.md
new file mode 100644
index 0000000..886d950
--- /dev/null
+++ b/website/translated_docs/zh-CN/quandl.md
@@ -0,0 +1,297 @@
+---
+id: quandl
+title: 基于 Quandl 的金融数据分析
+---
+## 关于 Quandl
+
+Quandl 是一个针对金融投资行业的大数据平台,其数据来源包括联合国、世界银行、中央银行等公开数据,核心财务数据来自 CLS 集团,Zacks 和 ICE 等,所有的数据源自 500 多家发布商, 是为投资专业人士提供金融,经济和替代数据的首选平台,拥有海量的经济和金融数据。
+
+## Quandl 数据索引
+
+### CovenantSQL 使用简介
+
+首先,我们已基于 Quandl 的开放 API 将数据存放在 CovenantSQL 中,首先应该浏览一下 CovenantSQL 的使用介绍来熟悉一下如何连接并且使用 CovenantSQL。
+
+现在由于客户端兼容问题, 请直接使用我们的 HTTP 服务来对 Quandl 数据库进行 query,未来兼容现在的 `cql` 客户端后会第一时间更新此文档。
+
+具体通过 HTTP 服务来使用 CovenantSQL 请参考 [Python 驱动文档](https://github.com/CovenantSQL/python-driver/blob/master/README.rst) 和 [NodeJS 驱动文档](https://github.com/CovenantSQL/node-covenantsql/blob/master/README.md)
+
+所需参数:
+
+ host: 'e.morenodes.com'
+ port: 11108
+ database: '057e55460f501ad071383c95f691293f2f0a7895988e22593669ceeb52a6452a'
+
+
+### 数据使用方法
+
+Quandl 数据分为表以及子表两层索引
+
+数据库中,表名为`quandl_` + `database_code`为完整表名
+
+通过查询表名来查看表的内容
+
+具体使用时,需要结合`quandl_updateindex` 这张索引表来使用,(查询索引表时,请务必 limit 小于 10 万,因为全表数据量过大)
+
+使用时,请使用 where 语句限定`quandlcode`字段来查询表中的子表数据。
+
+### 查询示例
+
+1. 我们想要查询 欧盟委员会年度宏观经济数据库 的数据,我们找到其第一层索引的 `databasecode` 为`quandl_ameco`,于是,我们可以查询其第二层索引,用以下 SQL 命令行:
+
+ `select * from quandl_updateindex where databasecode like 'ameco' group by quandlcode limit 10000`
+
+2. 然后通过第三列,我们可以查看`quandlcode`对应的描述
+
+ 比如 AMECO/ALB_1_0_0_0_AAGE 对应的就是阿尔巴尼亚的进出口相关信息,时间从 1960 到 1988。
+
+ Average share of imports and exports of goods in world trade excluding intra EU trade; Foreign trade statistics (1960-1998 Former EU-15) - Albania
+
+ 于是,我们可以用以下方式把这个子表给查询出来
+
+ `select * from quandl_ameco where quandlcode like 'AMECO/ALB_1_0_0_0_AAGE' limit 10000`
+
+3. 注意:如果内容整列为 null 的,属于表结构本身不存在的字段,可以自行去除。
+
+## Quandl 数据 Excel 插件使用说明
+
+您可以下载 Quandl 数据 Excel 插件,无须安装,请解压到任意文件夹中。此插件目前仅支持 Office 2010 以及以上版本,office 2007 以及以下版本目前暂不支持。
+
+### 配置 Excel 插件
+
+解压下载后压缩包,在文件夹中有两个.xll 文件,`ClassLibrary7-AddIn.xll` 以及 `ClassLibrary7-AddIn64.xll` 文件,这两个文件分别对应 32 位的 Excel 与 64 位的 Excel,请根据您的电脑配置使用对应插件。
+
+#### 修改 xml 配置
+
+每个 `.xll` 文件对应一个 `.config` 的配置文件,也就是 `ClassLibrary7-AddIn.xll.config` 和`ClassLibrary7-AddIn64.xll.config`,为如下 xml 配置:
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+其中有如下配置需要修改,并保存:
+
+- certpath: 请填写 `read.data.thunderdb.io.pfx` 证书的绝对路径
+
+#### 安装插件
+
+有两种办法使用此 Excel 插件
+
+1. 直接双击对应的 32 位或 64 位 Excel 的 xll 文件打开
+
+
+
+如果弹出如上对话框,选择第一个: `仅为本回话启用此加载项`。然后新建一个 Excel 表格,如果在 Excel 的上方选项卡中看到 CovenantSQL,说明插件加载成功。
+
+2. 打开 Excel,然后依次选择 `文件 — 选项 — 加载项`,管理选择 Excel 加载项,点击转到然后浏览选择解压后的对应版本的 `.xll` 文件,然后点击 `确定`,在选项卡中如果成功加载出 CovenantSQL 即为成功加载,如下图:
+
+
+
+#### 使用插件
+
+选择 CovenantSQL 的选项卡可以看到 Quandl 数据查询,点击 Quandl 数据查询,会弹出一个窗体如下图所示:
+
+
+
+- 其中红色框住的列表部分是一级目录,下方则是所选项的具体描述
+
+- 绿色按钮是通过选择的一级目录来查询二级目录。这里查询时间会随着所查询二级目录的大小以及用户自身的网络速度等因素而不同,可能查询时间会超过 1 分钟,请耐心等待。
+
+- 黄色部分左边的列表是二级目录,右边的窗体则为列表项所选择的表的描述。
+
+- 蓝色部分是导出数据的可选项
+
+ - Limit Number 是一次导出的最多数据条数,默认为 10000 条,最大值可填写 100000
+ - Offset Number 是从数据库的第几条开始导出,因为之前会限定条数,例如我们之前导出了 10000 条数据,但是明显数据还没有导出全部,我们可以使用此功能选择 offset 10000 来从第 10000 条开始导出(注:数据库的计数从 0 开始,所以前 10000 条为 0-9999)
+
+现在,您即可在 Excel 中方便的调用存在 CovenantSQL 上的 Quandl 数据。
+
+## 附件表
+
+| DataBase | 名称 | 描述 |
+| ------------ | ------------------------ | ------------------------------------------------------------------------------------------- |
+| BUNDESBANK | 德意志联邦银行数据仓库 | 有关德国经济,货币和资本市场,公共财政,银行,家庭,欧元区总量,贸易和外债的数据。 |
+| URC | 独角兽研究公司数据 | 纽约证券交易所,美国证券交易所和纳斯达克证券交易所的预付和下跌数据。从各种公开来源和报告中值。 |
+| DCE | 大连商品交易所数据 | 来自DCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WFC | 富国银行住房抵押贷款数据 | 该数据库提供富国银行(Wells Fargo Bank)分部Wells Fargo Home Mortgage的抵押贷款购买和再融资利率。 |
+| USDAFNS | 美国农业部食品与营养服务项目数据 | 食品和营养服务局为低收入家庭和儿童管理联邦营养援助计划。成本和参与率数据。 |
+| LJUBSE | 卢布尔雅那证券交易所数据 | 该数据库包含卢布尔雅那股票交易所指数,总部位于斯洛文尼亚的卢布尔雅那。 |
+| TOCOM | 东京商品交易所数据 | 来自东京商品交易所(TOCOM)的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WCSC | 世界银行企业积分卡数据 | 该数据库旨在提供世界银行集团在消除极端贫困和促进共同繁荣方面的表现的战略概述。 |
+| CMHC | 加拿大住房抵押贷款公司 | CMHC是一家政府所有的公司,为加拿大公民提供经济适用房,并收集价格,建筑和供应等数据。 |
+| WGEC | 世界银行全球经济监测商品数据(GEM) | 包含1960年至今的商品价格和指数的数据。 |
+| FED | 美联储数据公布 | 美国官方关于货币供应量,利率,抵押贷款,政府财政,银行资产和债务,汇率,工业生产的数据。 |
+| WPSD | 世界银行公共部分支出数据 | 由世界银行和国际货币基金组织共同开发的数据,汇集了详细的公共部门政府债务数据。 |
+| UGID | 联合国全球指标 | 该数据库提供广泛的全球指标,涵盖人口,公共卫生,就业,贸易,教育,通货膨胀和外债。 |
+| RBA | 澳大利亚储备银行数据 | 中央银行和货币当局,监管银行业,设定利率,并为政府债务提供服务。关键经济指标数据。 |
+| UCOM | 联合国商品贸易数据 | 该数据库提供有关食品,活体动物,药品,金属,燃料和机械等商品进出口的全面综合数据。 |
+| SIDC | 太阳影响数据分析中心数据 | SIDC主持从1700年开始的太阳活动数据,特别是太阳黑子活动。 |
+| ZCE | 郑州商品交易所数据 | 来自ZCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| USDAFAS | 美国农业部外国农业服务数据(FAS) | 美国农业部外国农业服务局将美国农业与世界市场联系起来。它提供了国外生产和出口的统计数据。 |
+| OECD | 世界经济合作与发展组织数据 | 促进经济福利的发达国家国际组织。从成员和其他人收集数据以提出政策建议。 |
+| OPEC | 欧佩克数据 | 国际组织和经济卡特尔监督伊拉克,伊朗,沙特阿拉伯和委内瑞拉等石油生产国的政策、油价数据。 |
+| MCX | 印度多种商品交易所数据 | 印度最大的商品交易所,为金属,能源和农业期货交易提供服务。世界第三大合约和交易量交易所。 |
+| ECONOMIST | 经济学人 - 巨无霸指数 | 巨无霸指数是由经济学家于1986年发明的,是一个轻松的指南,指出货币是否处于“正确”水平。它基于购买力平价理论(PPP)。 |
+| NSDL | 国家证券存管有限公司(印度)数据 | 在印度存放负责该国经济发展的国家,该国家建立了国际标准的国家基础设施,处理在印度资本市场以非物质形式持有和结算的大部分证券。 |
+| GDT | 全球乳品贸易数据 | nan |
+| CFFEX | 中国金融期货交易所数据 | 来自CFFEX的指数和债券期货,对于特定期货的历史跨越近十年。 |
+| CITYPOP | Thomas Brinkhoff的城市人口数据 | Thomas Brinkhoff提供了大多数国家城市和行政区域的人口数据。 |
+| BCHARTS | 比特币图表汇率数据 | 来自所有主要比特币交易所的比特币兑换大量货币的汇率,包括当前和历史汇率。 |
+| LOCALBTC | Local Bitcoins数据 | nan |
+| JODI | JODI石油世界数据库 | JODI石油和天然气数据来自100多个国家,包括多种能源产品和各种计量方法。 |
+| UENG | 联合国能源统计数据 | 该数据库提供有关新能源和可再生能源的生产,贸易,转换和最终消费的全面统计数据。 |
+| ULMI | 联合国劳工市场指标 | 该数据库为世界上所有国家提供了按性别划分的全面青年失业数字。 |
+| MAURITIUSSE | 毛里求斯证券交易所数据 | 毛里求斯证券交易所指数数据。 |
+| UKRSE | 乌克兰交易所数据 | UKRSE提供与乌克兰最大证券交易所相关的最新数据。该交易所位于基辅,约占乌克兰总股本交易量的四分之三 |
+| BITSTAMP | Bitstamp数据 | Bitstamp是一个比特币的交易平台。 |
+| UNAE | 联合国国民账户估算数据 | 该数据库提供了全球所有国家不同部门的国内生产总值,国民总收入和总增加值的全球数据。 |
+| UNAC | 联合国国民账户官方国家数据 | 该数据库提供有关国民账户的全球数据,例如家庭,公司和政府的资产和负债。 |
+| UTOR | 联合国世界旅游业数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| WFE | 世界交易所联合会数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| FRBC | 克利夫兰联邦储备银行数据 | 克利夫兰联邦储备银行从数百家金融机构收集数据,包括存款机构,银行控股公司和其他用于评估金融机构状况的实体,以及收集经济和金融体系运作方式的见解。 |
+| UGEN | 联合国性别信息 | 该数据库提供关于各种与性别有关的指标的全面综合数据,涵盖人口,卫生,教育和就业。 |
+| BITFINEX | Bitfinex数据 | Bitfinex是比特币,莱特币和Darkcoin的交易平台,具有许多先进功能,包括保证金交易,交易所和点对点保证金融资。 |
+| UGHG | 联合国温室气体清单 | 该数据库提供有关六种主要温室气体人为排放的全面综合数据。数据可以追溯到1990年。 |
+| UIST | 联合国工业发展组织数据 | 该数据库提供有关工业发展指标的全球数据,包括产量,员工,工资,各种行业的增加值。 |
+| PRAGUESE | 布拉格证券交易所数据 | 布拉格证券交易所的价格指数数据。 |
+| PFTS | PFTS证券交易所(乌克兰)数据 | 来自PFTS证券交易所的指数数据,这是乌克兰最大的市场。 |
+| WARSAWSE | 华沙证券交易所数据 | WIG20指数自1994年4月16日起根据WSE主要清单中20家最主要和最具流动性公司的股票价值计算。 |
+| TUNISSE | 突尼斯证券交易所数据 | 突尼斯证券交易所的主要参考指数。 |
+| FRKC | 堪萨斯城联邦储备银行数据 | FRKC是美联储第10区的区域中央银行,主要发布农业交易中的银行业务数据。 |
+| UENV | 联合国环境统计数据 | 该数据库提供有关水和废物相关指标的全球数据,包括淡水供应和降水,以及废物的产生和收集。 |
+| UFAO | 联合国粮食和农业数据 | 该数据库提供全球粮食和农业数据,包括作物生产,化肥消费,农业用地和牲畜用途。 |
+| TAIFEX | 台湾期货交易所数据 | 来自TAIFEX的指数和债券期货,其历史跨越了十多年的特定期货。 |
+| GDAX | GDAX(全球数字资产交易所)数据 | GDAX是世界上最受欢迎的买卖比特币的地方。 |
+| ARES | 房地产证券化协会数据 | ARES保护投资者,有助于房地产证券化产品市场的发展,并促进房地产投资市场的扩张。 |
+| SHADOWS | 影子联邦基金利率模型数据 | 该数据集包含 吴-侠 论文中关于影子联邦基金的三个主要指标,用于识别所有三大银行的影子利率。 |
+| NAAIM | 全国积极投资管理者协会头寸指数 | NAAIM暴露指数代表NAAIM成员报告的美国股票市场的平均风险敞口。 |
+| CBRT | 土耳其共和国中央银行数据 | CBRT负责采取措施维持土耳其金融体系的稳定。 |
+| CEGH | 中欧天然气中心数据 | nan |
+| FINRA | 美国金融业监管局数据 | 金融业监管局提供证券公司和交易所市场的短期利息数据。 |
+| NASDAQOMX | 纳斯达克OMX全球指数数据 | 纳斯达克OMX发布的全球指数超过35,000种,包括全球股票,固定收益,股息,绿色,北欧,伊斯兰教等。每日数据。 |
+| EURONEXT | 泛欧证券交易所数据 | 欧洲最大的交易所Euronext的历史股票数据。 |
+| UICT | 联合国信息和通信技术数据 | 该数据库提供有关信息和通信技术的全面全球数据,包括所有国家的电话,蜂窝和互联网使用情况。 |
+| USAID | 美国国际开发署数据 | 美国国际开发署提供了美国向世界其他地方提供的所有外国援助的完整历史记录。 |
+| ZAGREBSE | 萨格勒布证券交易所数据 | 克罗地亚唯一的证券交易所。它发布有关其股票和债券指数表现的数据。 |
+| QUITOSE | 基多证券交易所(厄瓜多尔)数据 | 厄瓜多尔国家证券交易所的指数。 |
+| ECBCS | 欧盟委员会商业和消费者调查 | 该数据库中的数据来自欧盟(EU)和欧盟申请国的不同经济部门的统一调查。 |
+| PSE | 巴黎经济学院数据 | 该数据库描述了越来越多国家的最高收入分配。数字是使用税收数据得出的。 |
+| MALTASE | 马耳他证券交易所数据 | 马耳他证券交易所发挥作用,为其认可的名单提供金融工具的结构,随后可在受监管,透明和有序的市场(二级市场)进行交易。市场的主要参与者是发行人,股票交易所会员(股票经纪人)和投资者一般。 |
+| GPP | 全球石油价格 | nan |
+| PPE | 波兰电力交易所(TGE)数据 | nan |
+| UKONS | 英国国家统计局数据 | 关于英国就业,投资,住房,家庭支出,国民账户和许多其他社会经济指标的数据。 |
+| NCDEX | 国家商品及衍生品交易所(印度)数据 | 印度专业管理的在线多商品交易所 |
+| WSE | 华沙证券交易所(GPW)数据 | nan |
+| TFX | 东京金融交易所数据 | 东京金融交易所是一个期货交易所,主要交易金融工具市场,处理证券和市场衍生品。 |
+| WGFD | 世界银行全球金融发展数据 | 有关金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| CEPEA | 应用经济学应用研究中心(巴西)数据 | CEPEA是圣保罗大学的一个经济研究中心,专注于农业企业问题,发布巴西商品价格指数。 |
+| SBJ | 日本统计局数据 | 日本政府统计机构,提供有关就业和劳动力的统计数据。 |
+| WGEM | 世界银行全球经济监测 | 关于全球经济发展的数据,涵盖高收入国家和发展中国家。 |
+| WGDF | 世界银行全球发展金融 | 关于金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| WWDI | 世界银行世界发展指标 | 最新和最准确的发展指标,由官方认可的国际来源汇编而成。 |
+| WESV | 世界银行企业调查 | 公司级私营部门数据,涵盖金融,腐败,基础设施,犯罪,竞争和绩效衡量等业务主题。 |
+| WDBU | 世界银行存续商业数据 | 关于成员国和地方和区域一级选定城市的商业法规及其执法的数据。 |
+| OSE | 大阪证券交易所数据 | 日本第二大证券交易所。与东京证券交易所不同,OSE在衍生品交易方面表现最为强劲,是日本的大多数期货和期权。 |
+| RFSS | 俄罗斯联邦统计局数据 | 俄罗斯政府统计机构,负责在国家和地方层面发布俄罗斯的社会,经济和人口统计数据。 |
+| SHFE | 上海期货交易所数据 | 大宗商品交换能源,金属和化学相关的工业产品。许多商品期货的衍生品市场。 |
+| WGEP | 世界银行全球环境规划经济前景数据 | 关于全球经济的短期,中期和长期前景以及对发展中国家和减贫的影响的数据。 |
+| USMISERY | 美国痛苦指数 | 由经济学家亚瑟·奥肯(Arthur Okun)开发的苦难指数是失业率加上通胀率。 |
+| WJKP | 世界银行知识平台工作数据 | 与劳工有关的主题指标。 |
+| WMDG | 世界银行千年发展目标数据 | 根据千年发展目标(MDGs)的目标和指标重新组织的世界发展指标数据。 |
+| WPOV | 世界银行贫困统计 | 贫困人口比率,贫困差距以及国际和国家贫困线贫困人口数量的指标。 |
+| EUREKA | Eurekahedge数据 | 一家研究公司专注于对冲基金和其他另类投资基金。它公布了对冲基金业绩的数据。 |
+| MOFJ | 日本财务省数据 | 日本政府债券利率数据,由财政部每日公布。 |
+| PIKETTY | Thomas Piketty数据 | “21世纪资本”中的收入和财富数据,哈佛大学出版社,2014。 |
+| PSX | 巴基斯坦证交所数据 | 巴基斯坦证券交易所的股票收盘价格。 |
+| SGX | 新加坡交易所数据 | 亚洲证券和衍生品交易所为许多大型新加坡和其他亚洲公司进行股票交易。在自己的交易所上市。 |
+| UIFS | 联合国国际金融统计 | 该数据库提供有关国际财务指标的综合数据,如平均收入,债券收益率,政府收入和支出。 |
+| UINC | 联合国工业商品数据 | 该数据库提供有关工业商品生产的全球数据,如矿石和矿物,食品,可运输货物和金属产品。 |
+| INSEE | 国家统计和经济研究所(法国)数据 | INSEE是法国的国家统计机构。它收集有关法国经济和社会的数据,如社会经济指标和国民账户。 |
+| SNB | 瑞士国家银行数据 | 中央银行负责货币政策和货币。有关国际账户,利率,货币供应和其他宏观经济指标的数据。 |
+| ODE | 大阪道岛商品交易所数据 | 日本关西地区的一个非营利性商品交易所,交易七种主要农产品。 |
+| WGEN | 世界银行性别统计 | 描述收入,工作类型,工作部门,农民生产率以及企业家公司规模和利润的性别差异的数据。 |
+| WHNP | 世界银行健康营养与人口统计 | 关键的健康,营养和人口统计数据。 |
+| WIDA | 世界银行国际发展协会 | 关于选定指标的IDA(国际开发协会)国家总体成果进展情况的数据。 |
+| ECMCI | 欧盟委员会货币状况指数 | 每月更新,此数据库提供欧元区的货币状况指数值。历史可以追溯到1999年。 |
+| NBSC | 中国国家统计局数据 | 中国有关金融,工业,贸易,农业,房地产和交通运输的统计数据。 |
+| MAS | 新加坡金融管理局数据 | nan |
+| MGEX | 明尼阿波利斯谷物交易所数据 | 促进农业指数贸易的区域商品期货和期权合约市场。 |
+| WWGI | 世界银行全球治理指标 | 六个治理层面的总体和个别治理指标数据。 |
+| ISM | 供应管理研究所 | ISM促进供应链管理实践,并发布有关生产和供应链,新订单,库存和资本支出的数据。 |
+| UKR | 乌克兰交易所数据 | nan |
+| FRBNY | 纽约联邦储备银行数据 | FRBNY是美国最大的区域中央银行。为纽约,康涅狄格州和新泽西州的大部分地区以及一些地区设定货币政策。 |
+| FRBP | 费城联邦储备银行数据 | FRBP是美联储的区域中央银行。它发布有关商业信心指数,GDP,消费和其他经济指标的数据。 |
+| FMSTREAS | 美国财政部 - 财务管理处数据 | 美利坚合众国的月收入/支出和赤字/盈余。 |
+| EIA | 美国能源信息管理局数据 | 美国国家和州有关所有主要能源产品(如电力,煤炭,天然气和石油)的生产,消费和其他指标的数据。 |
+| SOCSEC | 美国社会保障局数据 | 提供有关美国社会保障计划的数据,特别是受益人的人口统计数据;残疾人,老人和幸存者。 |
+| TFGRAIN | 顶级飞行谷物合作社数据 | 玉米和大豆的现货价格,包括前月期货合约的基础。 |
+| IRPR | 波多黎各统计研究所数据 | 波多黎各统计研究所制造业统计数据。 |
+| BCHAIN | blockchain.com数据 | Blockchain是一个发布与比特币相关的数据的网站,每日更新。 |
+| BITCOINWATCH | Bitcoin Watch数据 | 比特币采矿统计。 |
+| ODA | 国际货币基金组织跨国宏观经济统计 | 国际货币基金组织的初级商品价格和世界经济展望数据,由非洲开放数据公布。优秀的跨国宏观经济数据。 |
+| WADI | 世界银行非洲发展指标 | 关于非洲的一系列发展指标,包括国家,区域和全球估计数。 |
+| WEDU | 世界银行教育统计 | 关于教育机会,进展,完成,扫盲,教师,人口和支出的国际可比指标。 |
+| WGLF | 世界银行全球Findex(全球金融包容性数据库) | 关于人们如何储蓄,借贷,支付和管理风险的金融包容性指标。 |
+| WWID | 世界财富和收入数据库 | 世界财富和收入数据库旨在提供开放和便捷的途径,以获取有关国家内部和国家之间世界收入和财富分配历史演变的最广泛的现有数据库。 |
+| BTER | 比特儿数据 | 加密货币的历史汇率数据。 |
+| CFTC | 商品期货交易委员会报告 | 交易员和集中比率的每周承诺。期货头寸以及期货加期权头寸的报告。新旧格式。 |
+| BOE | 英格兰银行官方统计 | 当前和历史汇率,担保贷款和定期存款利率,欧元商业票据利率和政府证券收益率。 |
+| EXMPL | Quandl时间序列数据示例 | 一个时间序列数据库示例。 |
+| WORLDAL | 铝价格 | 世界铝产能和产量(千公吨)。 |
+| WGC | 黄金价格 | 世界黄金协会是黄金行业的市场开发组织。它以不同货币发布黄金价格数据。 |
+| MX | 加拿大期货数据 | 蒙特利尔交易所是一家衍生品交易所,交易期货合约以及股票,指数,货币,ETF,能源和利率的期权。 |
+| UMICH | 消费者情绪 | 密歇根大学的消费者调查 - 最近6个月的数据点是非官方的;它们来自华尔街日报的文章。 |
+| JOHNMATT | 稀有金属价格数据 | 关于铂族金属的当前和历史数据,如价格,供应和需求。 |
+| NAHB | 美国住房指数 | 美国的住房和经济指数。 |
+| RATEINF | 通货膨胀率 | 阿根廷,澳大利亚,加拿大,德国,欧元区,法国,意大利,日本,新西兰等国的通货膨胀率和消费物价指数CPI。 |
+| RENCAP | IPO数据 | 有关美国IPO市场的数据。 |
+| ML | 公司债券收益率数据 | 美林(Merrill Lynch)是美国一家大型银行,它发布了不同地区公司债券收益率的数据。 |
+| MULTPL | S&P 500 | nan |
+| RICI | 商品指数 | 综合,以美元为基础的总回报指数,代表全球经济中消费的一篮子商品的价值。 |
+| AAII | 投资者情绪 | 美国个人投资者协会的情绪数据。 |
+| BIS | 国际清算银行数据 | 国际清算银行为中央银行提供货币和金融稳定管理,促进国际合作,并作为中央银行的银行。 |
+| BCB | 巴西中央银行统计数据库 | 巴西宏观经济数据,涵盖公共财政,国民账户,支付系统,通货膨胀,汇率,贸易和国际储备。 |
+| BCRA | 阿根廷中央银行数据 | 阿根廷中央银行负责货币政策,提供外汇市场数据和主要宏观经济指标。 |
+| FSE | 法兰克福证券交易所 | 法兰克福证券交易所的每日股票价格 |
+| BLSN | 劳工统计局国际数据 | 各国的进出口价格统计,由劳工统计局公布。 |
+| BLSP | 劳工统计局生产力数据 | 美国制造业,劳务和商业统计,由劳工统计局公布。 |
+| FDIC | 联邦存款保险公司数据 | FDIC是一家银行存款高达25万美元的联邦保险公司,负责收集商业银行和储蓄机构的财务数据。 |
+| BLSI | 美国劳工统计局通货膨胀和价格统计 | 美国国家和州一级的通胀数据,由劳工统计局公布。 |
+| BLSE | 美国劳工统计局就业与失业统计 | 美国国家和州一级的就业和失业统计数据,由劳工统计局公布。 |
+| BLSB | 美国劳工统计局薪酬福利统计 | 由劳工统计局公布的美国停工统计数据。 |
+| BP | BP能源生产和消费数据 | BP是一家大型能源生产商和分销商。它提供了各个国家和较大次区域的能源生产和消费数据。 |
+| LPPM | 白金和钯价格数据 | 全球钯金和铂金市场清算价格数据。 |
+| CASS | 运费指数 | 自1990年以来,CASS每月提供与其他经济和供应链指标相关的货运趋势的CASS运费指数报告。 |
+| MORTGAGEX | 可调利率抵押贷款指数 | ARM索引的历史住房数据。 |
+| BUCHARESTSE | 布加勒斯特证券交易所数据 | 布加勒斯特证券交易所发布股票,权利,债券,基金单位,结构性产品和期货合约活动数据。 |
+| AMECO | 欧盟委员会年度宏观经济数据库 | 欧洲委员会经济和财政事务总局(DG ECFIN)年度宏观经济数据库。 |
+| ACC | 美国化学理事会数据 | 化学活性晴雨表(CAB)由美国化学理事会(ACC)出版。 CAB是一个经济指标,有助于预测整个美国经济的高峰和低谷,并突出了美国其他行业的潜在趋势。 |
+| ABMI | 亚洲债券市场计划 | 中国和日本债券市场的指标,如规模和构成,市场流动性,收益率收益率和波动率。 |
+| BITAL | 意大利证交所数据 | 该数据库提供了Borsa Italiana(现为伦敦证券交易所集团的一部分)的股票期货合约数据。 |
+| BANKRUSSIA | 俄罗斯银行数据 | 俄罗斯银行的主要指标,包括银行业,货币供应量,金融市场和宏观经济统计数据。 |
+| BOC | 加拿大银行统计数据库 | 加拿大的经济,金融和银行数据。包括利率,通货膨胀,国民账户等。每日更新。 |
+| HKEX | 香港交易所数据 | 香港交易所股票价格,历史分割期货等每日更新。 |
+| AMFI | 印度共同基金协会数据 | 该数据库代表印度共同基金协会的基金信息。 |
+| BDM | 墨西哥银行数据 | 墨西哥银行负责货币政策和本国货币(比索),并提供账户和所有宏观经济变量的数据。 |
+| BATS | BATS美国证券交易所数据 | Bats是美国的股票市场运营商,经营四个股票交易所--BZX Exchange,BYX Exchange,EDGA Exchange和EDGX Exchange |
+| BSE | 孟买证券交易所数据 | 在印度孟买证券交易所交易的公司的日终价格,指数和其他信息。 |
+| FRED | 美联储经济数据 | 来自圣路易斯联邦储备银行研究部门的增长,就业,通货膨胀,劳工,制造业和其他美国经济统计数据。 |
+| FMAC | 房地美数据 | Freddie Mac的主要抵押贷款市场调查和其他地区特定历史抵押贷款利率的数据。 |
+| EUREX | 欧洲期货交易所数据 | 欧洲最大的期货交易所EUREX的指数,利率,农业和能源期货,历史跨越了特定期货的十年。 |
+| ECB | 欧洲中央银行数据 | 欧盟中央银行监督货币政策和欧元,并提供相关宏观经济变量的数据。 |
+| BOF | 法国银行数据 | 法兰西银行通过欧洲中央银行体系的政策负责货币政策,并提供关键经济指标的数据。 |
+| BELGRADESE | 贝尔格莱德证券交易所数据 | 贝尔格莱德证券交易所数据,每日更新。 |
+| CHRIS | 维基连续期货 | Quandl所有600个期货的连续合约。建立在CME,ICE,LIFFE等原始数据之上。由Quandl社区策划。 50年的历史。 |
+| BOJ | 日本银行数据 | nan |
+| USTREASURY | 美国财政部数据 | 美国财政部确保国家的金融安全,管理国家债务,收取税收,发行货币,提供收益率数据。 |
+| LBMA | 伦敦金银市场协会数据 | 伦敦黄金和白银市场的国际贸易协会,由中央银行,私人投资者,生产商,炼油商和其他代理商组成。 |
+| PERTH | 珀斯铸币厂数据 | 珀斯造币厂的利率和商品价格的高点,低点和平均值每月更新一次。 |
+| ZILLOW2 | Zillow房地产研究 | 房屋价格和租金按大小,类型和等级划分;住房供应,需求和销售。按邮政编码,街区,城市,都市区,县和州切片。 |
\ No newline at end of file
From 7e7f885fd897b1f830c1919c45347c3b3ff94c13 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:25 +0800
Subject: [PATCH 022/421] New translations quickstart.md (Chinese Simplified)
---
website/translated_docs/zh-CN/quickstart.md | 146 ++++++++++++++++++++
1 file changed, 146 insertions(+)
create mode 100644 website/translated_docs/zh-CN/quickstart.md
diff --git a/website/translated_docs/zh-CN/quickstart.md b/website/translated_docs/zh-CN/quickstart.md
new file mode 100644
index 0000000..c2cd203
--- /dev/null
+++ b/website/translated_docs/zh-CN/quickstart.md
@@ -0,0 +1,146 @@
+---
+id: quickstart
+title: '🌏 TestNet 快速开始'
+---
+## CovenantSQL 工具包
+
+### 工具包简介
+
+请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+
+例如,您使用的是:
+
+- MacOS 平台请下载:[**CovenantSQL-v0.5.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.osx-amd64.tar.gz)
+- Linux 平台请下载:[**CovenantSQL-v0.5.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.linux-amd64.tar.gz)
+- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+解压之后,你将得到以下命令行工具,包括:`cql`、`cql-minerd` 等, 请将此文件移动到 `PATH` 目录。
+
+| 工具名 | 介绍 |
+| ---------- | ---------------------------------------------------------------- |
+| cql | CovenantSQL 的客户端,`cql console` 命令类似 mysql 命令,用于执行 SQL。还有其他丰富的工具链 |
+| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
+| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+
+### 测试网快速接入
+
+目前,我们已经发布了测试网 v0.5.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
+
+测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) (密码为空),或者使用以下命令:
+
+```bash
+mkdir conf
+wget https://git.io/fhFZe -O conf/config.yaml
+wget https://git.io/fhFZv -O conf/private.key
+chmod 600 conf/private.key
+```
+
+**测试网注**:
+
+> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+>
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
+
+## 创建并访问 CovenantSQL 数据库
+
+### 创建数据库
+
+```shell
+cql create -config conf/config.yaml '{"node":1}'
+```
+
+在命令行提示中输入master key的密码,之后控制台会输出:
+
+ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+
+> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+>
+> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
+> 2. 数据库创建请求在 其它出块节点 进行验证和确认
+> 3. SQLChain 的符合条件的 Miner 收到数据库任务
+> 4. SQLChian 组建 Kayak 数据库集群
+> 5. 所有 Miner 准备就绪等待请求
+
+### 访问数据库
+
+```shell
+cql console -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+在控制台中根据提示输入master key的密码。连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 数据库 SDK
+
+- [Golang 开发指引](./development)
+
+## SQLChain 区块浏览器
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
+
+> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+
+```shell
+cql generate config
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+cql wallet
+```
+
+输出:
+
+```toml
+wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+```
+
+你可以在这里回复上面得到的钱包地址 [GitHub Issue](https://github.com/CovenantSQL/CovenantSQL/issues/283),我们会为你的钱包充值。
+
+使用 cql 命令行工具查询余额(可以添加 -config 参数,指定其他的 config.yaml 所在目录):
+
+```shell
+cql wallet -balance all
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 533c71105fe2f4e58d7303264631165550ffca8d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 18:26:26 +0800
Subject: [PATCH 023/421] New translations usecase.md (Chinese Simplified)
---
website/translated_docs/zh-CN/usecase.md | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 website/translated_docs/zh-CN/usecase.md
diff --git a/website/translated_docs/zh-CN/usecase.md b/website/translated_docs/zh-CN/usecase.md
new file mode 100644
index 0000000..0ca5313
--- /dev/null
+++ b/website/translated_docs/zh-CN/usecase.md
@@ -0,0 +1,5 @@
+---
+id: usecase
+title: 使用案例
+---
+## TBD
\ No newline at end of file
From 95606b90eeb8fdc67912756e313d67684317ea55 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:39 +0800
Subject: [PATCH 024/421] New translations nav.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/nav.md | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/nav.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/nav.md b/website/translated_docs/zh-CN/version-0.3.0/nav.md
new file mode 100644
index 0000000..4062dc3
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/nav.md
@@ -0,0 +1,22 @@
+---
+id: version-0.3.0-nav
+title: '📖 使用导航'
+original_id: nav
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
+
+## 使用 CovenantSQL 开发应用
+
+[📦 CovenantSQL SDK](./development)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From fcc8713e66759b5662d8c50cd8d764ad59371719 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:40 +0800
Subject: [PATCH 025/421] New translations proxy.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/proxy.md | 111 ++++++++++++++++++
1 file changed, 111 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/proxy.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/proxy.md b/website/translated_docs/zh-CN/version-0.3.0/proxy.md
new file mode 100644
index 0000000..836102f
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/proxy.md
@@ -0,0 +1,111 @@
+---
+id: version-0.3.0-adapter
+title: '📦 CovenantSQL Adapter SDK'
+original_id: adapter
+---
+# 通过 Adapter 使用 CovenantSQL
+
+## 简介
+
+`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+
+## 安装和使用
+
+首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+
+### Docker 运行 Adapter
+
+下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+
+```bash
+export adapter_addr=0.0.0.0:11105
+docker rm -f cql-adapter
+docker run -itd \
+ --env COVENANT_ROLE=adapter --env COVENANT_CONF=/app/config.yaml \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --name cql-adapter -p $adapter_addr:4661 \
+ covenantsql/covenantsql:testnet -listen 0.0.0.0:4661
+```
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker run -it --rm \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --entrypoint /app/cql covenantsql/covenantsql:testnet \
+ -config /app/config.yaml -create 1
+```
+
+命令会返回创建的数据库实例的连接串(DSN)
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+## 主流语言 Driver 的使用
+
+### NodeJS
+
+NodeJS 开发者可以通过 [node-covenantsql](https://github.com/CovenantSQL/node-covenantsql) 来与 CovenantSQL Adapter 进行交互。
+
+#### 下载安装
+
+可以直接通过 `npm` 或者 `yarn` 来安装 `node-covenantsql`
+
+```bash
+npm install --save node-covenantsql
+```
+
+or
+
+```bash
+yarn add node-covenantsql
+```
+
+#### 使用
+
+在运行本地 Adapter 之后,将 Adapter 的 endpoint 填入 `node-covenantsql` 的 config 之中:
+
+```javascript
+const config = {
+ endpoint: 'localhost:11105', // local testnet endpoint without https
+ database: `${DSN}`, // your DB id created by `cql` tools
+ bypassPem: true // bypass https config
+}
+```
+
+这里 `bypassPem` 为 `true` 表示应用中所有对链上数据库的操作都会经过本地的 Adapter 进行代理,我们默认本地环境是可控,安全的,无需用 HTTPS 来保证这段连接的信道安全,少了证书的繁琐认证,所以成为 `bypassPem`。
+
+接着连通之后则可进行链上数据库的增删改查:
+
+```typescript
+const cql from 'node-covenantsql'
+
+const config = {...} // see above
+
+cql.createConnection(config).then(async (connection: any) => {
+ // read
+ const data1 = await connection.query("select ? + ?", [2.1, 3.2]);
+ console.log(data1);
+
+ // write
+ const createTableSQL = `
+ CREATE TABLE IF NOT EXISTS contacts (\
+ contact_id INTEGER PRIMARY KEY,
+ first_name TEXT NOT NULL,
+ last_name TEXT NOT NULL,
+ email text NOT NULL UNIQUE,
+ phone text NOT NULL UNIQUE
+ );
+ `
+ const status1 = await connection.exec(createTableSQL)
+ console.log(`exec1 status:`, status1);
+
+ const data2 = await connection.query("show tables;");
+ console.log(data2);
+}).catch((e: any) => console.log(e))
+```
\ No newline at end of file
From fea103683795d2e65ec4d90174f0aa2b8cbb0745 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:42 +0800
Subject: [PATCH 026/421] New translations api.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.3.0/api.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/api.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/api.md b/website/translated_docs/zh-CN/version-0.3.0/api.md
new file mode 100644
index 0000000..05cbbd9
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/api.md
@@ -0,0 +1,6 @@
+---
+id: version-0.3.0-api
+title: '👩🏻💻 CovenantSQL API'
+original_id: api
+---
+## TBD
\ No newline at end of file
From f5323656c8a0aa7c2d9c298ee74a057c0880d01f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:43 +0800
Subject: [PATCH 027/421] New translations getting-started-testnet-zh.md
(Chinese Simplified)
---
.../bck/getting-started-testnet-zh.md | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-testnet-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-testnet-zh.md b/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-testnet-zh.md
new file mode 100644
index 0000000..1f14ac4
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-testnet-zh.md
@@ -0,0 +1,96 @@
+---
+id: version-0.3.0-testnet
+title: CovenantSQL 测试网快速入门
+original_id: testnet
+---
+[CovenantSQL](https://github.com/CovenantSQL/CovenantSQL/blob/develop/README-zh.md) 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+1. **SQL**: 支持 SQL-92 标准
+2. **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+3. **隐私**: 通过加密和授权许可进行访问
+4. **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## 0. 下载 CovenantSQL 工具
+
+在 [github](https://github.com/CovenantSQL/CovenantSQL/releases) 下载最新的发行版
+
+## 1. 用 `cql-utils` 生成配置文件访问测试网
+
+```bash
+$ cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: ~/.cql/private.key
+Public key's hex: 02296ea73240dcd69d2b3f1fb754c8debdf68c62147488abb10165428667ec8cbd
+Generated key pair.
+Generating nonce...
+nonce: {{731613648 0 0 0} 11 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9}
+node id: 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+## 2. 用私钥生成钱包地址
+
+私钥可以再上一步的 `~/.cql` 目录中找到,文件名为 `private.key`
+
+```bash
+$ cql-utils -tool addrgen -private ~/.cql/private.key
+Enter master key(default: ""):
+⏎
+wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+```
+
+上述 `4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9` 就是钱包地址
+
+## 3. 在水龙头(Faucet)获取 Particle(PTC)
+
+水龙头(Faucet)的地址为: [CovenantSQL 测试网 Particle(PTC) 水龙头](https://testnet.covenantsql.io/)。
+
+完成教程之后,用 `cql` 命令来检查钱包地址的余额(未加-config参数时,命令会自动找~/.cql目录的config.yaml文件):
+
+```bash
+$ cql -get-balance
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+当看到 **"stable coin balance is: 100"** 时,表明余额已经为 100。
+
+如果您需要更多的 PTC 作为长期测试使用,请联系 。
+
+对于有合作的商业伙伴,我们将直接提供 PTC 以供使用。
+
+## 4. 使用 `CLI` 创建数据库
+
+```bash
+$ cql -create 1
+INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+```
+
+第一行命令中的 `1` 表示申请几个矿工为你的数据库服务。`covenantsql://...` 开头的这个字符串就是创建的数据库访问地址,在 SDK 和 CLI 命令中都需要用此地址,在整个区块链中找到这个数据库。
+
+## 5. CLI 和 SDK 的详细文档
+
+创建好数据库后,您可以参考以下文档和示例,以便更快的使用CovenantSQL来开发应用。
+
+- [CLI 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/cmd/cql/README-zh.md)
+- [SDK 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/README-zh.md)
+- [SDK 示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+
+## 6. SQLChain 浏览器
+
+目前,测试网的数据库时不需要权限的。意味着您可以通过数据库的DSN(数据库访问地址),在[SQLChain 浏览器](https://explorer.dbhub.org)中拿到所有的修改历史和区块信息。
+
+更多的测试网技术支持,请访问:
+
+> [TestNet 发行日志](https://github.com/CovenantSQL/CovenantSQL/wiki/Release-Notes-zh)
\ No newline at end of file
From 8c26fb5bb8f2a7ed0e24e109af98880115c62905 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:45 +0800
Subject: [PATCH 028/421] New translations getting-started-zh.md (Chinese
Simplified)
---
.../version-0.3.0/bck/getting-started-zh.md | 486 ++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-zh.md b/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-zh.md
new file mode 100644
index 0000000..4e25cd0
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-zh.md
@@ -0,0 +1,486 @@
+---
+id: version-0.3.0-local-deployment
+title: CovenantSQL 综述
+original_id: local-deployment
+---
+# CovenantSQL 介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可变成 ĐApp
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是用户的钱包,那么 CovenantSQL 就是是用户的去中心化数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密 保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+# 安装 CovenantSQL 客户端
+
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+* [Go](./development-golang-client-zh.md)
+* [Java](https://github.com/CovenantSQL/covenant-connector)
+* [Python](https://github.com/CovenantSQL/python-driver)
+* [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+* `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+* `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+* [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
+
+# 部署 CovenantSQL
+
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+### SQLChain Observer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+# 使用 CovenantSQL 开发 App
+
+## Golang 使用 CovenantSQL
+
+#### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+#### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+#### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+#### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+#### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
+
+# CovenantSQL API
+
+# 常见问题解答
+
+补充
\ No newline at end of file
From 7937695b6af680028cc270a444c4a6099d24d611 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:46 +0800
Subject: [PATCH 029/421] New translations development-cmd-cql-utils-zh.md
(Chinese Simplified)
---
.../bck/development-cmd-cql-utils-zh.md | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-utils-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-utils-zh.md b/website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-utils-zh.md
new file mode 100644
index 0000000..17c0215
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-utils-zh.md
@@ -0,0 +1,41 @@
+---
+id: version-0.3.0-keygen
+title: 使用 cql-utils 生成密钥与钱包
+original_id: keygen
+---
+`cql-utils` 是 CovenantSQL 的一个命令行工具,具体用法如下。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 使用
+
+### 生成公私钥对
+
+ $ cql-utils -tool keygen
+ Enter master key(press Enter for default: ""):
+ ⏎
+ Private key file: private.key
+ Public key's hex: 03bc9e90e3301a2f5ae52bfa1f9e033cde81b6b6e7188b11831562bf5847bff4c0
+
+
+生成的 private.key 文件即是使用主密码加密过的私钥文件,而输出到屏幕上的字符串就是使用十六进制进行编码的公钥。
+
+### 使用私钥文件或公钥生成钱包地址
+
+ $ cql-utils -tool addrgen -private private.key
+ Enter master key(default: ""):
+ ⏎
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+ $ cql-utils -tool addrgen -public 02f2707c1c6955a9019cd9d02ade37b931fbfa286a1163dfc1de965ec01a5c4ff8
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+
+
+你可以通过指定私钥文件,或者把上述的公钥十六进制编码字符串作为命令行参数来直接生成钱包地址。
\ No newline at end of file
From 2dc4336e0805a909c4bf22f58cc76604d71728e4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:48 +0800
Subject: [PATCH 030/421] New translations getting-started-overview-zh.md
(Chinese Simplified)
---
.../bck/getting-started-overview-zh.md | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-overview-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-overview-zh.md b/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-overview-zh.md
new file mode 100644
index 0000000..8f38c66
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/getting-started-overview-zh.md
@@ -0,0 +1,63 @@
+---
+id: version-0.3.0-intro
+title: 简介
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+- **SQL**: 支持 SQL-92 标准
+- **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+- **隐私**: 通过加密和授权许可进行访问
+- **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信[在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+#### 一行代码接入区块链数据
+
+```go
+sql.Open("CovenantSQL", dbURI)
+```
+
+# #
+
+
+
+- 第一层: **全局共识层**(主链,架构图中的中间环):
+ - 整个网络中只有一个主链。
+ - 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+- 第二层: **SQL 共识层**(子链,架构图中的两边环):
+ - 每个数据库都有自己独立的子链。
+ - 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+- 第三层: **数据储存层**(支持 SQL-92 的数据库引擎):
+ - 每个数据库都有自己独立的分布式引擎。
+ - 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 7b38ba3a6bbe4f4e79eed5788f2150e3507f57a0 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:49 +0800
Subject: [PATCH 031/421] New translations development-golang-client-zh.md
(Chinese Simplified)
---
.../bck/development-golang-client-zh.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/development-golang-client-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/development-golang-client-zh.md b/website/translated_docs/zh-CN/version-0.3.0/bck/development-golang-client-zh.md
new file mode 100644
index 0000000..a7e99e0
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/development-golang-client-zh.md
@@ -0,0 +1,108 @@
+---
+id: version-0.3.0-golang-client
+title: 使用 Golang 驱动访问数据库
+original_id: golang-client
+---
+本文档介绍 CovenantSQL 客户端的使用方式。客户端用来创建、查询、更新和删除 SQLChain 以及绑定的数据库。
+
+## 开始之前
+
+确保 `$GOPATH/bin` 目录在环境变量 `$PATH` 中,执行以下命令
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+然后在你的 go 代码中 import 第一个 `client` 包。
+
+## 初始化一个 CovenantSQL 客户端
+
+首先需要一个 config 文件和 master key 来初始化。master key 用来加密解密本地密钥对。以下是如何用一个自定义 master key 来生成默认的 config 文件:
+
+### 生成默认的配置文件
+
+运行以下 `cql-utils` 命令,输入 master key(类似密码)来生成本地密钥对。等待几十秒,会在 `~/.cql` 文件夹中,生成一个私钥文件和一个名为 `config.yaml` 的配置文件。
+
+```bash
+./cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: ~/.cql/private.key
+Public key's hex: 025abec9b0072615170f4acf4a2fa1162a13864bb66bc3f140b29f6bf50ceafc75
+Generated key pair.
+Generating nonce...
+INFO[0005] cpu: 1
+INFO[0005] position: 0, shift: 0x0, i: 0
+nonce: {{1450338416 0 0 0} 26 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514}
+node id: 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+有了配置文件之后,可以通过以下 go 代码来初始化 CovenantSQL 客户端:
+
+```go
+client.Init(configFile, masterKey)
+```
+
+## 客户端使用方式
+
+### 创建一个 SQLChain 数据库
+
+创建 SQLChain 数据库需要指明需要几个节点(nodeCount变量):
+
+```go
+var (
+ dsn string
+ meta client.ResourceMeta
+)
+meta.Node = uint16(nodeCount)
+dsn, err = client.Create(meta)
+// process err
+```
+
+创建完毕会返回一个 dsn 字符串,用来访问这个数据库。
+
+### 查询和执行
+
+拿到 dsn 字符串后,可以通过以下代码在 SQLChain 中执行 SQL 语句:
+
+```go
+
db, err := sql.Open("covenantsql", dsn)
+ // process err
+
+ _, err = db.Exec("CREATE TABLE testSimple ( column int );")
+ // process err
+
+ _, err = db.Exec("INSERT INTO testSimple VALUES(?);", 42)
+ // process err
+
+ row := db.QueryRow("SELECT column FROM testSimple LIMIT 1;")
+
+ var result int
+ err = row.Scan(&result)
+ // process err
+ fmt.Printf("SELECT column FROM testSimple LIMIT 1; result %d\n", result)
+
+ err = db.Close()
+ // process err
+
+```
+
+用法和其他 go sql driver 一致。
+
+### 删除数据库
+
+使用 dsn 来删除数据库:
+
+```go
+ err = client.Drop(dsn)
+ // process err
+```
+
+### 完整示例
+
+在以下目录中有一个简单示例和复杂示例可以参考 [示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
\ No newline at end of file
From 7408b1f9e0110195766363ffdbf370896623550c Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:52 +0800
Subject: [PATCH 032/421] New translations api-json-rpc.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/bck/api-json-rpc.md | 442 ++++++++++++++++++
1 file changed, 442 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/api-json-rpc.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/api-json-rpc.md b/website/translated_docs/zh-CN/version-0.3.0/bck/api-json-rpc.md
new file mode 100644
index 0000000..105a705
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/api-json-rpc.md
@@ -0,0 +1,442 @@
+---
+id: version-0.3.0-api-json-rpc
+title: JSON RPC
+original_id: api-json-rpc
+---
+> JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+
+CovenantSQL provides a suite of RPC methods in [JSON-RPC 2.0](https://www.jsonrpc.org/specification) for easily accessing to CovenantSQL networks.
+
+## Javascript API
+
+[cql.js](https://github.com/covenantsql/cql.js) is a Javascript SDK which has encapsulated the RPC methods in order to give a much more convenient way to talk to the CovenantSQL networks. See the [Javascript API](cql-js.md) for more.
+
+## JSON RPC Endpoint
+
+| Network | Provider | URL |
+| ------------------------ | ------------- | -------------------------------------- |
+| CovenantSQL Test Network | Covenant Labs | https://jsonrpc.testnet.covenantsql.io |
+| CovenantSQL Main Network | Covenant Labs | Comming soon :) |
+
+## JSON RPC API Reference
+
+### bp_getProtocolVersion
+
+Returns the current CovenantSQL protocol version.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- string - the current CovenantSQL protocol version
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "bp_getProtocolVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+Response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0.1.0"
+}
+```
+
+### bp_getRunningStatus
+
+Returns some basic indicators describing the running status of the CovenantSQL network.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- object: an object describes the running status of the network.
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getRunningStatus",
+ "params": []
+}
+```
+
+Response:
+
+```js
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": 182414, // height of the latest block
+ "count_accounts": 103, // count of the accounts ever created
+ "count_shardchains": 912414, // count of the databases ever created
+ "qps": 10241 // estimated QPS of database operations of the whole net
+ "storage_size": 109870095269 // storage size
+ }
+}
+```
+
+### bp_getBlockList
+
+Returns a list of the blocks.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | ---------------------- | ------ |
+| 0 | since | integer | since height, excluded | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the blocks, the object in the list is a [Block](#s-block), but **without** transaction details
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockList",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Block](#s-block) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "blocks" [ { TODO: block object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 102,
+ "pages": 11
+ }
+}
+```
+
+### bp_getBlockListByTimeRange
+
+TODO: as a new API in the next release
+
+### bp_getBlockByHeight
+
+Returns information about the block specified by its height.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | height of the block | 1024 |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHeight",
+ "params": [1]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getBlockByHash
+
+Returns information about the block specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------- | ------ |
+| 0 | hash | string | hash of the block | "TODO" |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getTransactionList
+
+Returns a list of the transactions. Traverse page by page by using a transaction hash as the mark for paging.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | -------------------- | ------ |
+| 0 | since | string | since hash, excluded | "TODO" |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionList",
+ "params": ["KhytGjS0xjw5CJvcJYpsNg", 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionListOfBlock
+
+Returns a list of the transactions from a block by the specified height.
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | of block height | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionListOfBlock",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionByHash
+
+Returns information about the transaction specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------------- | ------ |
+| 0 | hash | string | hash of the transaction | "TODO" |
+
+#### Returns
+
+- object: transaction information object, it's a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Transaction](#s-transaction)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: transaction object
+ }
+}
+```
+
+## Structure Reference
+
+Here are some common structure definitions used in the API.
+
+
+
+### Block
+
+The block generated in the CovenantSQL blockchain network.
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------- |
+| height | integer | Height of the block |
+| hash | string | Hash of the block |
+| version | integer | Version number of the block |
+| producer | string | Address of the node who generated this block |
+| merkle_root | string | Hash of the merkle tree |
+| parent | string | Hash of its parent block |
+| timestamp | integer | Create time of the block, unix time in nanoseconds |
+| timestamp_human | string | Create time of the block, human readable RFC3339 format |
+| tx_count | integer | Count of the transactions in this block |
+
+Sample in JSON format:
+
+```json
+{
+ "height": 12,
+ "hash": "TODO",
+ "version": 1,
+ "producer": "4io8u9v9nydaQPXtmqibg8gJbkNFd7DdM47PLWuM7ubzBXZ4At7",
+ "merkle_root": "TODO",
+ "parent": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "tx_count": 1
+}
+```
+
+
+
+### Transaction
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------------------------------------------- |
+| block_height | integer | Height of the block this transaction belongs to |
+| index | integer | Index of the transaction in the block |
+| hash | string | Hash of the transaction data |
+| block_hash | string | Hash of the block this transaction belongs to |
+| type | integer | Type of the transaction |
+| address | string | Account address who signed this transaction |
+| timestamp | integer | Create time of the transaction, unix time in nanoseconds |
+| timestamp_human | string | Create time of the transaction, human readable RFC3339 format |
+| raw | string | Raw content of the transaction data, in JSON format |
+| tx | object | Concrete transaction object, see supported [transaction types](#transaction-types) for more |
+
+Sample in JSON format:
+
+```json
+{
+ "block_height": 1,
+ "index": 0,
+ "hash": "TODO",
+ "block_hash": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "type": 1,
+ "address": "TODO",
+ "raw": "TODO",
+ "tx": {
+ "field": "TODO"
+ }
+}
+```
+
+**Supported Transaction Types:**
+
+- [CreateDatabase](#s-transaction-createdatabase)
+
+TODO: more types
+
+
+
+### Transaction: CreateDatabase
+
+TODO: more types
\ No newline at end of file
From b96e1eddd08c961789894e537a49a945afbdee71 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:53 +0800
Subject: [PATCH 033/421] New translations guide-zh.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/bck/guide-zh.md | 114 ++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/guide-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/guide-zh.md b/website/translated_docs/zh-CN/version-0.3.0/bck/guide-zh.md
new file mode 100644
index 0000000..324f6d7
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/guide-zh.md
@@ -0,0 +1,114 @@
+---
+id: version-0.3.0-guide-zh
+title: 快速开始
+original_id: guide-zh
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development-golang-client-zh.md)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+- [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From e815b6827920fc4ec12b66784f1a8ec9cdbf2d57 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:54 +0800
Subject: [PATCH 034/421] New translations development-cmd-cql-zh.md (Chinese
Simplified)
---
.../bck/development-cmd-cql-zh.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-zh.md b/website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-zh.md
new file mode 100644
index 0000000..b4c5cb4
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/bck/development-cmd-cql-zh.md
@@ -0,0 +1,77 @@
+---
+id: version-0.3.0-cql
+title: 使用命令行客户端 cql 创建数据库
+original_id: cql
+---
+本文档主要介绍 CovenantSQL 命令行客户端 `cql` 的使用。`cql` 是一个用于批量进行 SQLChain 上数据库的创建、查询、更新或删除操作的命令行工具。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 生成默认配置文件
+
+首先需要一个 config 文件和由你输入的主密码(master key)来初始化,其中主密码用来加密解密本地密钥对。使用 `cql-utils` 工具进行配置文件生成后,你可以在生成的配置文件目录下找到密钥文件。
+
+具体请参考: [cql-utils 使用文档](https://github.com/CovenantSQL/docs/tree/master/development-cmd-utils-zh.md#使用) 中配置文件及钱包地址生成相关章节。
+
+## 检查钱包余额
+
+使用 `cql` 命令来检查钱包余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000]
+### Public Key ###
+0388954cf083bb6bb2b9c7248849b57c76326296fcc0d69764fc61eedb5b8d820c
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+这里我们得到结果 **"stable coin balance is: 100"**。
+
+## 初始化一个 CovenantSQL 数据库
+
+准备好配置文件和主密码后就可以使用 `cql` 命令来创建数据库了,你的数据库 ID 将会输出到屏幕上:
+
+```bash
+# if a non-default password applied on master key, use `-password` to pass it
+$ cql -config conf/config.yaml -create 1
+INFO[0000]
+### Public Key ###
+039bc931161383c994ab9b81e95ddc1494b0efeb1cb735bb91e1043a1d6b98ebfd
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] the newly created database is: covenantsql://0e9103318821b027f35b96c4fd5562683543276b72c488966d616bfe0fe4d213 caller="main.go:297 main.main"
+```
+
+这里 `-create 1` 表示创建一个单节点的 SQLChain。
+
+```bash
+$ cql -config conf/config.yaml -dsn covenantsql://address
+```
+
+`address` 就是你的数据库 ID。
+
+`cql` 命令的详细使用帮助如下:
+
+```bash
+$ cql -help
+```
+
+## 使用 `cql`
+
+现在可以使用 `cql` 进行数据库操作了:
+
+```bash
+co:address=> show tables;
+```
\ No newline at end of file
From 90f2d2ff1e4f54b6411291d8ee746380407e8ea3 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:55 +0800
Subject: [PATCH 035/421] New translations development.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/development.md | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/development.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/development.md b/website/translated_docs/zh-CN/version-0.3.0/development.md
new file mode 100644
index 0000000..0d2c60b
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/development.md
@@ -0,0 +1,173 @@
+---
+id: version-0.3.0-development
+title: '📦 CovenantSQL SDK'
+original_id: development
+---
+## Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From ade189a93abff71b9316c6fccca911fb338d840f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:57 +0800
Subject: [PATCH 036/421] New translations cql.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/cql.md | 150 ++++++++++++++++++
1 file changed, 150 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/cql.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/cql.md b/website/translated_docs/zh-CN/version-0.3.0/cql.md
new file mode 100644
index 0000000..974f5fd
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/cql.md
@@ -0,0 +1,150 @@
+---
+id: version-0.3.0-cql
+title: '🖥️ CQL 命令行工具'
+original_id: cql
+---
+## 简介
+
+本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络。
+
+## 查询余额
+
+查询余额有两个命令:`cql -get-balance` 和 `cql -token-balance `。其中 `-get-balance` 将返回用户账户中 `Particle` 与 `Wave` 的数量,`-token-balance ` 将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+查看默认余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+ INFO[0000] Wave balance is: 10000000000000000000
+
+
+查看 Particle 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Particle
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+
+
+查看 Bitcoin 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Bitcoin
+```
+
+输出:
+
+ INFO[0000] Bitcoin balance is: 0
+
+
+## 转账
+
+转账操作使用 `cql -transfer` 并以 `json` 格式的转账信息为参数。
+
+```json
+{
+ "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount":"1000000 Particle" // 转账金额并带上单位
+}
+```
+
+其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
+
+转账 Particle:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+转账 Wave:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+```
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+查看余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 9999999999999000000
+ INFO[0000] Wave balance is: 9999999999999000000
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `-get-balance` 或者 `-token-balance ` 确定。
+
+## 数据库权限管理
+
+CovenantSQL 数据库有三类库级别权限:
+
+- `Admin`
+- `Write`
+- `Read`
+- `Void`
+
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin`, `Write` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql -update-perm` 并以 `json` 格式的权限信息为参数:
+
+```json
+{
+ "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm":"Write" // 权限内容
+}
+```
+
+增加写权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+吊销权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+
+为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
+
+使用新账户给数据库充值:
+
+```bash
+./cql -config new_user_config/config.yaml -transfer '{"addr":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount":"90000000 Particle"}'
+```
\ No newline at end of file
From acb98f12b84ea97967bbc5e4b8ca7a3afb271d21 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:58 +0800
Subject: [PATCH 037/421] New translations native.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/native.md | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/native.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/native.md b/website/translated_docs/zh-CN/version-0.3.0/native.md
new file mode 100644
index 0000000..dfb6829
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/native.md
@@ -0,0 +1,173 @@
+---
+id: version-0.3.0-native
+title: '📦 CovenantSQL Native SDK'
+original_id: native
+---
+## 用 Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 0aee6ac784c14e5426aa9b70ab70e432f9e26eff Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:23:59 +0800
Subject: [PATCH 038/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/deployment.md | 162 ++++++++++++++++++
1 file changed, 162 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/deployment.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/deployment.md b/website/translated_docs/zh-CN/version-0.3.0/deployment.md
new file mode 100644
index 0000000..d46cdd6
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/deployment.md
@@ -0,0 +1,162 @@
+---
+id: version-0.3.0-deployment
+title: '🐳 Docker 一键部署'
+original_id: deployment
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 下载项目
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+存为环境变量
+
+### 启动 Docker 容器
+
+现在有两种方式启动 CovenantSQL 容器:
+
+1. 使用 Docker Hub 上的公共镜像
+2. 构建 CovenantSQL Docker 镜像
+
+> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+
+#### 1. 使用 Docker Hub 上的公共镜像
+
+然后直接启动:
+
+```bash
+make start
+```
+
+#### 2. 构建 CovenantSQL Docker 镜像
+
+执行以下的命令在本地运行 CovenantSQL
+
+```bash
+make docker # 从头编译新的镜像
+make start
+```
+
+### 检查运行状态
+
+检查容器状态:
+
+```bash
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+## 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+### SQLChain Observer
+
+镜像中的 Observer 角色使用了和 mysql-adapter 镜像中相同的 private.key ,故可以免去新账户授权和转账的过程制。
+
+(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+
+#### 在浏览器使用 SQLChain Observer
+
+我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
From 7ccdd56957c5300f20d42562e52fadd363ed9480 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:03 +0800
Subject: [PATCH 039/421] New translations quandl.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/quandl.md | 298 ++++++++++++++++++
1 file changed, 298 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/quandl.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/quandl.md b/website/translated_docs/zh-CN/version-0.3.0/quandl.md
new file mode 100644
index 0000000..db94e5f
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/quandl.md
@@ -0,0 +1,298 @@
+---
+id: version-0.3.0-quandl
+title: 基于 Quandl 的金融数据分析
+original_id: quandl
+---
+## 关于 Quandl
+
+Quandl 是一个针对金融投资行业的大数据平台,其数据来源包括联合国、世界银行、中央银行等公开数据,核心财务数据来自 CLS 集团,Zacks 和 ICE 等,所有的数据源自 500 多家发布商, 是为投资专业人士提供金融,经济和替代数据的首选平台,拥有海量的经济和金融数据。
+
+## Quandl 数据索引
+
+### CovenantSQL 使用简介
+
+首先,我们已基于 Quandl 的开放 API 将数据存放在 CovenantSQL 中,首先应该浏览一下 CovenantSQL 的使用介绍来熟悉一下如何连接并且使用 CovenantSQL。
+
+现在由于客户端兼容问题, 请直接使用我们的 HTTP 服务来对 Quandl 数据库进行 query,未来兼容现在的 `cql` 客户端后会第一时间更新此文档。
+
+具体通过 HTTP 服务来使用 CovenantSQL 请参考 [Python 驱动文档](https://github.com/CovenantSQL/python-driver/blob/master/README.rst) 和 [NodeJS 驱动文档](https://github.com/CovenantSQL/node-covenantsql/blob/master/README.md)
+
+所需参数:
+
+ host: 'e.morenodes.com'
+ port: 11108
+ database: '057e55460f501ad071383c95f691293f2f0a7895988e22593669ceeb52a6452a'
+
+
+### 数据使用方法
+
+Quandl 数据分为表以及子表两层索引
+
+数据库中,表名为`quandl_` + `database_code`为完整表名
+
+通过查询表名来查看表的内容
+
+具体使用时,需要结合`quandl_updateindex` 这张索引表来使用,(查询索引表时,请务必 limit 小于 10 万,因为全表数据量过大)
+
+使用时,请使用 where 语句限定`quandlcode`字段来查询表中的子表数据。
+
+### 查询示例
+
+1. 我们想要查询 欧盟委员会年度宏观经济数据库 的数据,我们找到其第一层索引的 `databasecode` 为`quandl_ameco`,于是,我们可以查询其第二层索引,用以下 SQL 命令行:
+
+ `select * from quandl_updateindex where databasecode like 'ameco' group by quandlcode limit 10000`
+
+2. 然后通过第三列,我们可以查看`quandlcode`对应的描述
+
+ 比如 AMECO/ALB_1_0_0_0_AAGE 对应的就是阿尔巴尼亚的进出口相关信息,时间从 1960 到 1988。
+
+ Average share of imports and exports of goods in world trade excluding intra EU trade; Foreign trade statistics (1960-1998 Former EU-15) - Albania
+
+ 于是,我们可以用以下方式把这个子表给查询出来
+
+ `select * from quandl_ameco where quandlcode like 'AMECO/ALB_1_0_0_0_AAGE' limit 10000`
+
+3. 注意:如果内容整列为 null 的,属于表结构本身不存在的字段,可以自行去除。
+
+## Quandl 数据 Excel 插件使用说明
+
+您可以下载 Quandl 数据 Excel 插件,无须安装,请解压到任意文件夹中。此插件目前仅支持 Office 2010 以及以上版本,office 2007 以及以下版本目前暂不支持。
+
+### 配置 Excel 插件
+
+解压下载后压缩包,在文件夹中有两个.xll 文件,`ClassLibrary7-AddIn.xll` 以及 `ClassLibrary7-AddIn64.xll` 文件,这两个文件分别对应 32 位的 Excel 与 64 位的 Excel,请根据您的电脑配置使用对应插件。
+
+#### 修改 xml 配置
+
+每个 `.xll` 文件对应一个 `.config` 的配置文件,也就是 `ClassLibrary7-AddIn.xll.config` 和`ClassLibrary7-AddIn64.xll.config`,为如下 xml 配置:
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+其中有如下配置需要修改,并保存:
+
+- certpath: 请填写 `read.data.thunderdb.io.pfx` 证书的绝对路径
+
+#### 安装插件
+
+有两种办法使用此 Excel 插件
+
+1. 直接双击对应的 32 位或 64 位 Excel 的 xll 文件打开
+
+
+
+如果弹出如上对话框,选择第一个: `仅为本回话启用此加载项`。然后新建一个 Excel 表格,如果在 Excel 的上方选项卡中看到 CovenantSQL,说明插件加载成功。
+
+2. 打开 Excel,然后依次选择 `文件 — 选项 — 加载项`,管理选择 Excel 加载项,点击转到然后浏览选择解压后的对应版本的 `.xll` 文件,然后点击 `确定`,在选项卡中如果成功加载出 CovenantSQL 即为成功加载,如下图:
+
+
+
+#### 使用插件
+
+选择 CovenantSQL 的选项卡可以看到 Quandl 数据查询,点击 Quandl 数据查询,会弹出一个窗体如下图所示:
+
+
+
+- 其中红色框住的列表部分是一级目录,下方则是所选项的具体描述
+
+- 绿色按钮是通过选择的一级目录来查询二级目录。这里查询时间会随着所查询二级目录的大小以及用户自身的网络速度等因素而不同,可能查询时间会超过 1 分钟,请耐心等待。
+
+- 黄色部分左边的列表是二级目录,右边的窗体则为列表项所选择的表的描述。
+
+- 蓝色部分是导出数据的可选项
+
+ - Limit Number 是一次导出的最多数据条数,默认为 10000 条,最大值可填写 100000
+ - Offset Number 是从数据库的第几条开始导出,因为之前会限定条数,例如我们之前导出了 10000 条数据,但是明显数据还没有导出全部,我们可以使用此功能选择 offset 10000 来从第 10000 条开始导出(注:数据库的计数从 0 开始,所以前 10000 条为 0-9999)
+
+现在,您即可在 Excel 中方便的调用存在 CovenantSQL 上的 Quandl 数据。
+
+## 附件表
+
+| DataBase | 名称 | 描述 |
+| ------------ | ------------------------ | ------------------------------------------------------------------------------------------- |
+| BUNDESBANK | 德意志联邦银行数据仓库 | 有关德国经济,货币和资本市场,公共财政,银行,家庭,欧元区总量,贸易和外债的数据。 |
+| URC | 独角兽研究公司数据 | 纽约证券交易所,美国证券交易所和纳斯达克证券交易所的预付和下跌数据。从各种公开来源和报告中值。 |
+| DCE | 大连商品交易所数据 | 来自DCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WFC | 富国银行住房抵押贷款数据 | 该数据库提供富国银行(Wells Fargo Bank)分部Wells Fargo Home Mortgage的抵押贷款购买和再融资利率。 |
+| USDAFNS | 美国农业部食品与营养服务项目数据 | 食品和营养服务局为低收入家庭和儿童管理联邦营养援助计划。成本和参与率数据。 |
+| LJUBSE | 卢布尔雅那证券交易所数据 | 该数据库包含卢布尔雅那股票交易所指数,总部位于斯洛文尼亚的卢布尔雅那。 |
+| TOCOM | 东京商品交易所数据 | 来自东京商品交易所(TOCOM)的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WCSC | 世界银行企业积分卡数据 | 该数据库旨在提供世界银行集团在消除极端贫困和促进共同繁荣方面的表现的战略概述。 |
+| CMHC | 加拿大住房抵押贷款公司 | CMHC是一家政府所有的公司,为加拿大公民提供经济适用房,并收集价格,建筑和供应等数据。 |
+| WGEC | 世界银行全球经济监测商品数据(GEM) | 包含1960年至今的商品价格和指数的数据。 |
+| FED | 美联储数据公布 | 美国官方关于货币供应量,利率,抵押贷款,政府财政,银行资产和债务,汇率,工业生产的数据。 |
+| WPSD | 世界银行公共部分支出数据 | 由世界银行和国际货币基金组织共同开发的数据,汇集了详细的公共部门政府债务数据。 |
+| UGID | 联合国全球指标 | 该数据库提供广泛的全球指标,涵盖人口,公共卫生,就业,贸易,教育,通货膨胀和外债。 |
+| RBA | 澳大利亚储备银行数据 | 中央银行和货币当局,监管银行业,设定利率,并为政府债务提供服务。关键经济指标数据。 |
+| UCOM | 联合国商品贸易数据 | 该数据库提供有关食品,活体动物,药品,金属,燃料和机械等商品进出口的全面综合数据。 |
+| SIDC | 太阳影响数据分析中心数据 | SIDC主持从1700年开始的太阳活动数据,特别是太阳黑子活动。 |
+| ZCE | 郑州商品交易所数据 | 来自ZCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| USDAFAS | 美国农业部外国农业服务数据(FAS) | 美国农业部外国农业服务局将美国农业与世界市场联系起来。它提供了国外生产和出口的统计数据。 |
+| OECD | 世界经济合作与发展组织数据 | 促进经济福利的发达国家国际组织。从成员和其他人收集数据以提出政策建议。 |
+| OPEC | 欧佩克数据 | 国际组织和经济卡特尔监督伊拉克,伊朗,沙特阿拉伯和委内瑞拉等石油生产国的政策、油价数据。 |
+| MCX | 印度多种商品交易所数据 | 印度最大的商品交易所,为金属,能源和农业期货交易提供服务。世界第三大合约和交易量交易所。 |
+| ECONOMIST | 经济学人 - 巨无霸指数 | 巨无霸指数是由经济学家于1986年发明的,是一个轻松的指南,指出货币是否处于“正确”水平。它基于购买力平价理论(PPP)。 |
+| NSDL | 国家证券存管有限公司(印度)数据 | 在印度存放负责该国经济发展的国家,该国家建立了国际标准的国家基础设施,处理在印度资本市场以非物质形式持有和结算的大部分证券。 |
+| GDT | 全球乳品贸易数据 | nan |
+| CFFEX | 中国金融期货交易所数据 | 来自CFFEX的指数和债券期货,对于特定期货的历史跨越近十年。 |
+| CITYPOP | Thomas Brinkhoff的城市人口数据 | Thomas Brinkhoff提供了大多数国家城市和行政区域的人口数据。 |
+| BCHARTS | 比特币图表汇率数据 | 来自所有主要比特币交易所的比特币兑换大量货币的汇率,包括当前和历史汇率。 |
+| LOCALBTC | Local Bitcoins数据 | nan |
+| JODI | JODI石油世界数据库 | JODI石油和天然气数据来自100多个国家,包括多种能源产品和各种计量方法。 |
+| UENG | 联合国能源统计数据 | 该数据库提供有关新能源和可再生能源的生产,贸易,转换和最终消费的全面统计数据。 |
+| ULMI | 联合国劳工市场指标 | 该数据库为世界上所有国家提供了按性别划分的全面青年失业数字。 |
+| MAURITIUSSE | 毛里求斯证券交易所数据 | 毛里求斯证券交易所指数数据。 |
+| UKRSE | 乌克兰交易所数据 | UKRSE提供与乌克兰最大证券交易所相关的最新数据。该交易所位于基辅,约占乌克兰总股本交易量的四分之三 |
+| BITSTAMP | Bitstamp数据 | Bitstamp是一个比特币的交易平台。 |
+| UNAE | 联合国国民账户估算数据 | 该数据库提供了全球所有国家不同部门的国内生产总值,国民总收入和总增加值的全球数据。 |
+| UNAC | 联合国国民账户官方国家数据 | 该数据库提供有关国民账户的全球数据,例如家庭,公司和政府的资产和负债。 |
+| UTOR | 联合国世界旅游业数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| WFE | 世界交易所联合会数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| FRBC | 克利夫兰联邦储备银行数据 | 克利夫兰联邦储备银行从数百家金融机构收集数据,包括存款机构,银行控股公司和其他用于评估金融机构状况的实体,以及收集经济和金融体系运作方式的见解。 |
+| UGEN | 联合国性别信息 | 该数据库提供关于各种与性别有关的指标的全面综合数据,涵盖人口,卫生,教育和就业。 |
+| BITFINEX | Bitfinex数据 | Bitfinex是比特币,莱特币和Darkcoin的交易平台,具有许多先进功能,包括保证金交易,交易所和点对点保证金融资。 |
+| UGHG | 联合国温室气体清单 | 该数据库提供有关六种主要温室气体人为排放的全面综合数据。数据可以追溯到1990年。 |
+| UIST | 联合国工业发展组织数据 | 该数据库提供有关工业发展指标的全球数据,包括产量,员工,工资,各种行业的增加值。 |
+| PRAGUESE | 布拉格证券交易所数据 | 布拉格证券交易所的价格指数数据。 |
+| PFTS | PFTS证券交易所(乌克兰)数据 | 来自PFTS证券交易所的指数数据,这是乌克兰最大的市场。 |
+| WARSAWSE | 华沙证券交易所数据 | WIG20指数自1994年4月16日起根据WSE主要清单中20家最主要和最具流动性公司的股票价值计算。 |
+| TUNISSE | 突尼斯证券交易所数据 | 突尼斯证券交易所的主要参考指数。 |
+| FRKC | 堪萨斯城联邦储备银行数据 | FRKC是美联储第10区的区域中央银行,主要发布农业交易中的银行业务数据。 |
+| UENV | 联合国环境统计数据 | 该数据库提供有关水和废物相关指标的全球数据,包括淡水供应和降水,以及废物的产生和收集。 |
+| UFAO | 联合国粮食和农业数据 | 该数据库提供全球粮食和农业数据,包括作物生产,化肥消费,农业用地和牲畜用途。 |
+| TAIFEX | 台湾期货交易所数据 | 来自TAIFEX的指数和债券期货,其历史跨越了十多年的特定期货。 |
+| GDAX | GDAX(全球数字资产交易所)数据 | GDAX是世界上最受欢迎的买卖比特币的地方。 |
+| ARES | 房地产证券化协会数据 | ARES保护投资者,有助于房地产证券化产品市场的发展,并促进房地产投资市场的扩张。 |
+| SHADOWS | 影子联邦基金利率模型数据 | 该数据集包含 吴-侠 论文中关于影子联邦基金的三个主要指标,用于识别所有三大银行的影子利率。 |
+| NAAIM | 全国积极投资管理者协会头寸指数 | NAAIM暴露指数代表NAAIM成员报告的美国股票市场的平均风险敞口。 |
+| CBRT | 土耳其共和国中央银行数据 | CBRT负责采取措施维持土耳其金融体系的稳定。 |
+| CEGH | 中欧天然气中心数据 | nan |
+| FINRA | 美国金融业监管局数据 | 金融业监管局提供证券公司和交易所市场的短期利息数据。 |
+| NASDAQOMX | 纳斯达克OMX全球指数数据 | 纳斯达克OMX发布的全球指数超过35,000种,包括全球股票,固定收益,股息,绿色,北欧,伊斯兰教等。每日数据。 |
+| EURONEXT | 泛欧证券交易所数据 | 欧洲最大的交易所Euronext的历史股票数据。 |
+| UICT | 联合国信息和通信技术数据 | 该数据库提供有关信息和通信技术的全面全球数据,包括所有国家的电话,蜂窝和互联网使用情况。 |
+| USAID | 美国国际开发署数据 | 美国国际开发署提供了美国向世界其他地方提供的所有外国援助的完整历史记录。 |
+| ZAGREBSE | 萨格勒布证券交易所数据 | 克罗地亚唯一的证券交易所。它发布有关其股票和债券指数表现的数据。 |
+| QUITOSE | 基多证券交易所(厄瓜多尔)数据 | 厄瓜多尔国家证券交易所的指数。 |
+| ECBCS | 欧盟委员会商业和消费者调查 | 该数据库中的数据来自欧盟(EU)和欧盟申请国的不同经济部门的统一调查。 |
+| PSE | 巴黎经济学院数据 | 该数据库描述了越来越多国家的最高收入分配。数字是使用税收数据得出的。 |
+| MALTASE | 马耳他证券交易所数据 | 马耳他证券交易所发挥作用,为其认可的名单提供金融工具的结构,随后可在受监管,透明和有序的市场(二级市场)进行交易。市场的主要参与者是发行人,股票交易所会员(股票经纪人)和投资者一般。 |
+| GPP | 全球石油价格 | nan |
+| PPE | 波兰电力交易所(TGE)数据 | nan |
+| UKONS | 英国国家统计局数据 | 关于英国就业,投资,住房,家庭支出,国民账户和许多其他社会经济指标的数据。 |
+| NCDEX | 国家商品及衍生品交易所(印度)数据 | 印度专业管理的在线多商品交易所 |
+| WSE | 华沙证券交易所(GPW)数据 | nan |
+| TFX | 东京金融交易所数据 | 东京金融交易所是一个期货交易所,主要交易金融工具市场,处理证券和市场衍生品。 |
+| WGFD | 世界银行全球金融发展数据 | 有关金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| CEPEA | 应用经济学应用研究中心(巴西)数据 | CEPEA是圣保罗大学的一个经济研究中心,专注于农业企业问题,发布巴西商品价格指数。 |
+| SBJ | 日本统计局数据 | 日本政府统计机构,提供有关就业和劳动力的统计数据。 |
+| WGEM | 世界银行全球经济监测 | 关于全球经济发展的数据,涵盖高收入国家和发展中国家。 |
+| WGDF | 世界银行全球发展金融 | 关于金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| WWDI | 世界银行世界发展指标 | 最新和最准确的发展指标,由官方认可的国际来源汇编而成。 |
+| WESV | 世界银行企业调查 | 公司级私营部门数据,涵盖金融,腐败,基础设施,犯罪,竞争和绩效衡量等业务主题。 |
+| WDBU | 世界银行存续商业数据 | 关于成员国和地方和区域一级选定城市的商业法规及其执法的数据。 |
+| OSE | 大阪证券交易所数据 | 日本第二大证券交易所。与东京证券交易所不同,OSE在衍生品交易方面表现最为强劲,是日本的大多数期货和期权。 |
+| RFSS | 俄罗斯联邦统计局数据 | 俄罗斯政府统计机构,负责在国家和地方层面发布俄罗斯的社会,经济和人口统计数据。 |
+| SHFE | 上海期货交易所数据 | 大宗商品交换能源,金属和化学相关的工业产品。许多商品期货的衍生品市场。 |
+| WGEP | 世界银行全球环境规划经济前景数据 | 关于全球经济的短期,中期和长期前景以及对发展中国家和减贫的影响的数据。 |
+| USMISERY | 美国痛苦指数 | 由经济学家亚瑟·奥肯(Arthur Okun)开发的苦难指数是失业率加上通胀率。 |
+| WJKP | 世界银行知识平台工作数据 | 与劳工有关的主题指标。 |
+| WMDG | 世界银行千年发展目标数据 | 根据千年发展目标(MDGs)的目标和指标重新组织的世界发展指标数据。 |
+| WPOV | 世界银行贫困统计 | 贫困人口比率,贫困差距以及国际和国家贫困线贫困人口数量的指标。 |
+| EUREKA | Eurekahedge数据 | 一家研究公司专注于对冲基金和其他另类投资基金。它公布了对冲基金业绩的数据。 |
+| MOFJ | 日本财务省数据 | 日本政府债券利率数据,由财政部每日公布。 |
+| PIKETTY | Thomas Piketty数据 | “21世纪资本”中的收入和财富数据,哈佛大学出版社,2014。 |
+| PSX | 巴基斯坦证交所数据 | 巴基斯坦证券交易所的股票收盘价格。 |
+| SGX | 新加坡交易所数据 | 亚洲证券和衍生品交易所为许多大型新加坡和其他亚洲公司进行股票交易。在自己的交易所上市。 |
+| UIFS | 联合国国际金融统计 | 该数据库提供有关国际财务指标的综合数据,如平均收入,债券收益率,政府收入和支出。 |
+| UINC | 联合国工业商品数据 | 该数据库提供有关工业商品生产的全球数据,如矿石和矿物,食品,可运输货物和金属产品。 |
+| INSEE | 国家统计和经济研究所(法国)数据 | INSEE是法国的国家统计机构。它收集有关法国经济和社会的数据,如社会经济指标和国民账户。 |
+| SNB | 瑞士国家银行数据 | 中央银行负责货币政策和货币。有关国际账户,利率,货币供应和其他宏观经济指标的数据。 |
+| ODE | 大阪道岛商品交易所数据 | 日本关西地区的一个非营利性商品交易所,交易七种主要农产品。 |
+| WGEN | 世界银行性别统计 | 描述收入,工作类型,工作部门,农民生产率以及企业家公司规模和利润的性别差异的数据。 |
+| WHNP | 世界银行健康营养与人口统计 | 关键的健康,营养和人口统计数据。 |
+| WIDA | 世界银行国际发展协会 | 关于选定指标的IDA(国际开发协会)国家总体成果进展情况的数据。 |
+| ECMCI | 欧盟委员会货币状况指数 | 每月更新,此数据库提供欧元区的货币状况指数值。历史可以追溯到1999年。 |
+| NBSC | 中国国家统计局数据 | 中国有关金融,工业,贸易,农业,房地产和交通运输的统计数据。 |
+| MAS | 新加坡金融管理局数据 | nan |
+| MGEX | 明尼阿波利斯谷物交易所数据 | 促进农业指数贸易的区域商品期货和期权合约市场。 |
+| WWGI | 世界银行全球治理指标 | 六个治理层面的总体和个别治理指标数据。 |
+| ISM | 供应管理研究所 | ISM促进供应链管理实践,并发布有关生产和供应链,新订单,库存和资本支出的数据。 |
+| UKR | 乌克兰交易所数据 | nan |
+| FRBNY | 纽约联邦储备银行数据 | FRBNY是美国最大的区域中央银行。为纽约,康涅狄格州和新泽西州的大部分地区以及一些地区设定货币政策。 |
+| FRBP | 费城联邦储备银行数据 | FRBP是美联储的区域中央银行。它发布有关商业信心指数,GDP,消费和其他经济指标的数据。 |
+| FMSTREAS | 美国财政部 - 财务管理处数据 | 美利坚合众国的月收入/支出和赤字/盈余。 |
+| EIA | 美国能源信息管理局数据 | 美国国家和州有关所有主要能源产品(如电力,煤炭,天然气和石油)的生产,消费和其他指标的数据。 |
+| SOCSEC | 美国社会保障局数据 | 提供有关美国社会保障计划的数据,特别是受益人的人口统计数据;残疾人,老人和幸存者。 |
+| TFGRAIN | 顶级飞行谷物合作社数据 | 玉米和大豆的现货价格,包括前月期货合约的基础。 |
+| IRPR | 波多黎各统计研究所数据 | 波多黎各统计研究所制造业统计数据。 |
+| BCHAIN | blockchain.com数据 | Blockchain是一个发布与比特币相关的数据的网站,每日更新。 |
+| BITCOINWATCH | Bitcoin Watch数据 | 比特币采矿统计。 |
+| ODA | 国际货币基金组织跨国宏观经济统计 | 国际货币基金组织的初级商品价格和世界经济展望数据,由非洲开放数据公布。优秀的跨国宏观经济数据。 |
+| WADI | 世界银行非洲发展指标 | 关于非洲的一系列发展指标,包括国家,区域和全球估计数。 |
+| WEDU | 世界银行教育统计 | 关于教育机会,进展,完成,扫盲,教师,人口和支出的国际可比指标。 |
+| WGLF | 世界银行全球Findex(全球金融包容性数据库) | 关于人们如何储蓄,借贷,支付和管理风险的金融包容性指标。 |
+| WWID | 世界财富和收入数据库 | 世界财富和收入数据库旨在提供开放和便捷的途径,以获取有关国家内部和国家之间世界收入和财富分配历史演变的最广泛的现有数据库。 |
+| BTER | 比特儿数据 | 加密货币的历史汇率数据。 |
+| CFTC | 商品期货交易委员会报告 | 交易员和集中比率的每周承诺。期货头寸以及期货加期权头寸的报告。新旧格式。 |
+| BOE | 英格兰银行官方统计 | 当前和历史汇率,担保贷款和定期存款利率,欧元商业票据利率和政府证券收益率。 |
+| EXMPL | Quandl时间序列数据示例 | 一个时间序列数据库示例。 |
+| WORLDAL | 铝价格 | 世界铝产能和产量(千公吨)。 |
+| WGC | 黄金价格 | 世界黄金协会是黄金行业的市场开发组织。它以不同货币发布黄金价格数据。 |
+| MX | 加拿大期货数据 | 蒙特利尔交易所是一家衍生品交易所,交易期货合约以及股票,指数,货币,ETF,能源和利率的期权。 |
+| UMICH | 消费者情绪 | 密歇根大学的消费者调查 - 最近6个月的数据点是非官方的;它们来自华尔街日报的文章。 |
+| JOHNMATT | 稀有金属价格数据 | 关于铂族金属的当前和历史数据,如价格,供应和需求。 |
+| NAHB | 美国住房指数 | 美国的住房和经济指数。 |
+| RATEINF | 通货膨胀率 | 阿根廷,澳大利亚,加拿大,德国,欧元区,法国,意大利,日本,新西兰等国的通货膨胀率和消费物价指数CPI。 |
+| RENCAP | IPO数据 | 有关美国IPO市场的数据。 |
+| ML | 公司债券收益率数据 | 美林(Merrill Lynch)是美国一家大型银行,它发布了不同地区公司债券收益率的数据。 |
+| MULTPL | S&P 500 | nan |
+| RICI | 商品指数 | 综合,以美元为基础的总回报指数,代表全球经济中消费的一篮子商品的价值。 |
+| AAII | 投资者情绪 | 美国个人投资者协会的情绪数据。 |
+| BIS | 国际清算银行数据 | 国际清算银行为中央银行提供货币和金融稳定管理,促进国际合作,并作为中央银行的银行。 |
+| BCB | 巴西中央银行统计数据库 | 巴西宏观经济数据,涵盖公共财政,国民账户,支付系统,通货膨胀,汇率,贸易和国际储备。 |
+| BCRA | 阿根廷中央银行数据 | 阿根廷中央银行负责货币政策,提供外汇市场数据和主要宏观经济指标。 |
+| FSE | 法兰克福证券交易所 | 法兰克福证券交易所的每日股票价格 |
+| BLSN | 劳工统计局国际数据 | 各国的进出口价格统计,由劳工统计局公布。 |
+| BLSP | 劳工统计局生产力数据 | 美国制造业,劳务和商业统计,由劳工统计局公布。 |
+| FDIC | 联邦存款保险公司数据 | FDIC是一家银行存款高达25万美元的联邦保险公司,负责收集商业银行和储蓄机构的财务数据。 |
+| BLSI | 美国劳工统计局通货膨胀和价格统计 | 美国国家和州一级的通胀数据,由劳工统计局公布。 |
+| BLSE | 美国劳工统计局就业与失业统计 | 美国国家和州一级的就业和失业统计数据,由劳工统计局公布。 |
+| BLSB | 美国劳工统计局薪酬福利统计 | 由劳工统计局公布的美国停工统计数据。 |
+| BP | BP能源生产和消费数据 | BP是一家大型能源生产商和分销商。它提供了各个国家和较大次区域的能源生产和消费数据。 |
+| LPPM | 白金和钯价格数据 | 全球钯金和铂金市场清算价格数据。 |
+| CASS | 运费指数 | 自1990年以来,CASS每月提供与其他经济和供应链指标相关的货运趋势的CASS运费指数报告。 |
+| MORTGAGEX | 可调利率抵押贷款指数 | ARM索引的历史住房数据。 |
+| BUCHARESTSE | 布加勒斯特证券交易所数据 | 布加勒斯特证券交易所发布股票,权利,债券,基金单位,结构性产品和期货合约活动数据。 |
+| AMECO | 欧盟委员会年度宏观经济数据库 | 欧洲委员会经济和财政事务总局(DG ECFIN)年度宏观经济数据库。 |
+| ACC | 美国化学理事会数据 | 化学活性晴雨表(CAB)由美国化学理事会(ACC)出版。 CAB是一个经济指标,有助于预测整个美国经济的高峰和低谷,并突出了美国其他行业的潜在趋势。 |
+| ABMI | 亚洲债券市场计划 | 中国和日本债券市场的指标,如规模和构成,市场流动性,收益率收益率和波动率。 |
+| BITAL | 意大利证交所数据 | 该数据库提供了Borsa Italiana(现为伦敦证券交易所集团的一部分)的股票期货合约数据。 |
+| BANKRUSSIA | 俄罗斯银行数据 | 俄罗斯银行的主要指标,包括银行业,货币供应量,金融市场和宏观经济统计数据。 |
+| BOC | 加拿大银行统计数据库 | 加拿大的经济,金融和银行数据。包括利率,通货膨胀,国民账户等。每日更新。 |
+| HKEX | 香港交易所数据 | 香港交易所股票价格,历史分割期货等每日更新。 |
+| AMFI | 印度共同基金协会数据 | 该数据库代表印度共同基金协会的基金信息。 |
+| BDM | 墨西哥银行数据 | 墨西哥银行负责货币政策和本国货币(比索),并提供账户和所有宏观经济变量的数据。 |
+| BATS | BATS美国证券交易所数据 | Bats是美国的股票市场运营商,经营四个股票交易所--BZX Exchange,BYX Exchange,EDGA Exchange和EDGX Exchange |
+| BSE | 孟买证券交易所数据 | 在印度孟买证券交易所交易的公司的日终价格,指数和其他信息。 |
+| FRED | 美联储经济数据 | 来自圣路易斯联邦储备银行研究部门的增长,就业,通货膨胀,劳工,制造业和其他美国经济统计数据。 |
+| FMAC | 房地美数据 | Freddie Mac的主要抵押贷款市场调查和其他地区特定历史抵押贷款利率的数据。 |
+| EUREX | 欧洲期货交易所数据 | 欧洲最大的期货交易所EUREX的指数,利率,农业和能源期货,历史跨越了特定期货的十年。 |
+| ECB | 欧洲中央银行数据 | 欧盟中央银行监督货币政策和欧元,并提供相关宏观经济变量的数据。 |
+| BOF | 法国银行数据 | 法兰西银行通过欧洲中央银行体系的政策负责货币政策,并提供关键经济指标的数据。 |
+| BELGRADESE | 贝尔格莱德证券交易所数据 | 贝尔格莱德证券交易所数据,每日更新。 |
+| CHRIS | 维基连续期货 | Quandl所有600个期货的连续合约。建立在CME,ICE,LIFFE等原始数据之上。由Quandl社区策划。 50年的历史。 |
+| BOJ | 日本银行数据 | nan |
+| USTREASURY | 美国财政部数据 | 美国财政部确保国家的金融安全,管理国家债务,收取税收,发行货币,提供收益率数据。 |
+| LBMA | 伦敦金银市场协会数据 | 伦敦黄金和白银市场的国际贸易协会,由中央银行,私人投资者,生产商,炼油商和其他代理商组成。 |
+| PERTH | 珀斯铸币厂数据 | 珀斯造币厂的利率和商品价格的高点,低点和平均值每月更新一次。 |
+| ZILLOW2 | Zillow房地产研究 | 房屋价格和租金按大小,类型和等级划分;住房供应,需求和销售。按邮政编码,街区,城市,都市区,县和州切片。 |
\ No newline at end of file
From 6db4528b4caaed3bc125b4284694059ae7dadb1c Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:04 +0800
Subject: [PATCH 040/421] New translations usecase.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.3.0/usecase.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/usecase.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/usecase.md b/website/translated_docs/zh-CN/version-0.3.0/usecase.md
new file mode 100644
index 0000000..6e7c4ed
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/usecase.md
@@ -0,0 +1,6 @@
+---
+id: version-0.3.0-usecase
+title: 使用案例
+original_id: usecase
+---
+## TBD
\ No newline at end of file
From 2aebdaa40dfff85e432e949717c6cee6a18667e4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:06 +0800
Subject: [PATCH 041/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/quickstart.md | 148 ++++++++++++++++++
1 file changed, 148 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/quickstart.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/quickstart.md b/website/translated_docs/zh-CN/version-0.3.0/quickstart.md
new file mode 100644
index 0000000..6551a16
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/quickstart.md
@@ -0,0 +1,148 @@
+---
+id: version-0.3.0-quickstart
+title: '🌏 TestNet 快速开始'
+original_id: quickstart
+---
+## CovenantSQL 工具包
+
+### 工具包简介
+
+请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+
+例如,您使用的是:
+
+- MacOS 平台请下载:[**CovenantSQL-v0.3.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.3.0/CovenantSQL-v0.3.0.osx-amd64.tar.gz)
+- Linux 平台请下载:[**CovenantSQL-v0.3.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.3.0/CovenantSQL-v0.3.0.linux-amd64.tar.gz)
+- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+解压之后,你将得到以下命令行工具,包括:`cql`、`cql-utils` 等。
+
+| 工具名 | 介绍 |
+| ---------- | --------------------------------------------------- |
+| cql | CovenantSQL 的客户端,类似 mysql 命令,用于执行 SQL |
+| cql-utils | CovenantSQL 工具箱,用于和主链交互 |
+| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
+| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+
+### 测试网快速接入
+
+目前,我们已经发布了测试网 v0.3.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
+
+测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) ,或者使用以下命令:
+
+```bash
+mkdir conf
+wget https://git.io/fhFZe -O conf/config.yaml
+wget https://git.io/fhFZv -O conf/private.key
+chmod 600 conf/private.key
+```
+
+**测试网注**:
+
+> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+>
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
+
+## 创建并访问 CovenantSQL 数据库
+
+### 创建数据库
+
+```shell
+./cql -config conf/config.yaml -create 1
+```
+
+输出:
+
+ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+
+> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+>
+> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
+> 2. 数据库创建请求在 其它出块节点 进行验证和确认
+> 3. SQLChain 的符合条件的 Miner 收到数据库任务
+> 4. SQLChian 组建 Kayak 数据库集群
+> 5. 所有 Miner 准备就绪等待请求
+
+### 访问数据库
+
+```shell
+./cql -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 数据库 SDK
+
+- [Golang 开发指引](./development)
+
+## SQLChain 区块浏览器
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
+
+> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+```toml
+wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+```
+
+你可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入你生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为你的钱包充值。有任何问题请来这里讨论:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 7cd687d6c493698d4891472a85ceb0bfcf7b435a Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:07 +0800
Subject: [PATCH 042/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.3.0/qna.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/qna.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/qna.md b/website/translated_docs/zh-CN/version-0.3.0/qna.md
new file mode 100644
index 0000000..797cb90
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/qna.md
@@ -0,0 +1,6 @@
+---
+id: version-0.3.0-qna
+title: '🙋 常见问题解答'
+original_id: qna
+---
+## TBD
\ No newline at end of file
From dd43fc0d8152ded24004e364584ce598df8c682c Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:08 +0800
Subject: [PATCH 043/421] New translations intro.md (Chinese Simplified)
---
.../zh-CN/version-0.3.0/intro.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.3.0/intro.md
diff --git a/website/translated_docs/zh-CN/version-0.3.0/intro.md b/website/translated_docs/zh-CN/version-0.3.0/intro.md
new file mode 100644
index 0000000..e698711
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.3.0/intro.md
@@ -0,0 +1,73 @@
+---
+id: version-0.3.0-intro
+title: CovenantSQL 介绍
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From e8b5356adea025224aaadf45f7b6ca3350c7b7f5 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:09 +0800
Subject: [PATCH 044/421] New translations usecase.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/usecase.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/usecase.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/usecase.md b/website/translated_docs/zh-CN/version-0.5.0/usecase.md
new file mode 100644
index 0000000..9444a0c
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/usecase.md
@@ -0,0 +1,6 @@
+---
+id: version-0.5.0-usecase
+title: 使用案例
+original_id: usecase
+---
+## TBD
\ No newline at end of file
From afda1d28f709b3d0fff04947afd772c5b0567fd1 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:11 +0800
Subject: [PATCH 045/421] New translations intro.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/intro.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/intro.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/intro.md b/website/translated_docs/zh-CN/version-0.5.0/intro.md
new file mode 100644
index 0000000..dd9addc
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/intro.md
@@ -0,0 +1,73 @@
+---
+id: version-0.5.0-intro
+title: CovenantSQL 介绍
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From a592a4f2008882b86338086ad24f29a2ceb62045 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:12 +0800
Subject: [PATCH 046/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/quickstart.md | 147 ++++++++++++++++++
1 file changed, 147 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/quickstart.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/quickstart.md b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
new file mode 100644
index 0000000..1993893
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
@@ -0,0 +1,147 @@
+---
+id: version-0.5.0-quickstart
+title: '🌏 TestNet 快速开始'
+original_id: quickstart
+---
+## CovenantSQL 工具包
+
+### 工具包简介
+
+请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+
+例如,您使用的是:
+
+- MacOS 平台请下载:[**CovenantSQL-v0.5.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.osx-amd64.tar.gz)
+- Linux 平台请下载:[**CovenantSQL-v0.5.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.linux-amd64.tar.gz)
+- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+解压之后,你将得到以下命令行工具,包括:`cql`、`cql-minerd` 等, 请将此文件移动到 `PATH` 目录。
+
+| 工具名 | 介绍 |
+| ---------- | ---------------------------------------------------------------- |
+| cql | CovenantSQL 的客户端,`cql console` 命令类似 mysql 命令,用于执行 SQL。还有其他丰富的工具链 |
+| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
+| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+
+### 测试网快速接入
+
+目前,我们已经发布了测试网 v0.5.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
+
+测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) (密码为空),或者使用以下命令:
+
+```bash
+mkdir conf
+wget https://git.io/fhFZe -O conf/config.yaml
+wget https://git.io/fhFZv -O conf/private.key
+chmod 600 conf/private.key
+```
+
+**测试网注**:
+
+> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+>
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
+
+## 创建并访问 CovenantSQL 数据库
+
+### 创建数据库
+
+```shell
+cql create -config conf/config.yaml '{"node":1}'
+```
+
+在命令行提示中输入master key的密码,之后控制台会输出:
+
+ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+
+> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+>
+> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
+> 2. 数据库创建请求在 其它出块节点 进行验证和确认
+> 3. SQLChain 的符合条件的 Miner 收到数据库任务
+> 4. SQLChian 组建 Kayak 数据库集群
+> 5. 所有 Miner 准备就绪等待请求
+
+### 访问数据库
+
+```shell
+cql console -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+在控制台中根据提示输入master key的密码。连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 数据库 SDK
+
+- [Golang 开发指引](./development)
+
+## SQLChain 区块浏览器
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
+
+> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+
+```shell
+cql generate config
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+cql wallet
+```
+
+输出:
+
+```toml
+wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+```
+
+你可以在这里回复上面得到的钱包地址 [GitHub Issue](https://github.com/CovenantSQL/CovenantSQL/issues/283),我们会为你的钱包充值。
+
+使用 cql 命令行工具查询余额(可以添加 -config 参数,指定其他的 config.yaml 所在目录):
+
+```shell
+cql wallet -balance all
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 855608e95f35a2f0df1602a3c926ee30eba4d3a6 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:13 +0800
Subject: [PATCH 047/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/qna.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/qna.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/qna.md b/website/translated_docs/zh-CN/version-0.5.0/qna.md
new file mode 100644
index 0000000..ad187f5
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/qna.md
@@ -0,0 +1,6 @@
+---
+id: version-0.5.0-qna
+title: '🙋 常见问题解答'
+original_id: qna
+---
+## TBD
\ No newline at end of file
From 4929f7edb7302ab75f677091bba473ab1df3779c Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:16 +0800
Subject: [PATCH 048/421] New translations quandl.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/quandl.md | 298 ++++++++++++++++++
1 file changed, 298 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/quandl.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/quandl.md b/website/translated_docs/zh-CN/version-0.5.0/quandl.md
new file mode 100644
index 0000000..3608e74
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/quandl.md
@@ -0,0 +1,298 @@
+---
+id: version-0.5.0-quandl
+title: 基于 Quandl 的金融数据分析
+original_id: quandl
+---
+## 关于 Quandl
+
+Quandl 是一个针对金融投资行业的大数据平台,其数据来源包括联合国、世界银行、中央银行等公开数据,核心财务数据来自 CLS 集团,Zacks 和 ICE 等,所有的数据源自 500 多家发布商, 是为投资专业人士提供金融,经济和替代数据的首选平台,拥有海量的经济和金融数据。
+
+## Quandl 数据索引
+
+### CovenantSQL 使用简介
+
+首先,我们已基于 Quandl 的开放 API 将数据存放在 CovenantSQL 中,首先应该浏览一下 CovenantSQL 的使用介绍来熟悉一下如何连接并且使用 CovenantSQL。
+
+现在由于客户端兼容问题, 请直接使用我们的 HTTP 服务来对 Quandl 数据库进行 query,未来兼容现在的 `cql` 客户端后会第一时间更新此文档。
+
+具体通过 HTTP 服务来使用 CovenantSQL 请参考 [Python 驱动文档](https://github.com/CovenantSQL/python-driver/blob/master/README.rst) 和 [NodeJS 驱动文档](https://github.com/CovenantSQL/node-covenantsql/blob/master/README.md)
+
+所需参数:
+
+ host: 'e.morenodes.com'
+ port: 11108
+ database: '057e55460f501ad071383c95f691293f2f0a7895988e22593669ceeb52a6452a'
+
+
+### 数据使用方法
+
+Quandl 数据分为表以及子表两层索引
+
+数据库中,表名为`quandl_` + `database_code`为完整表名
+
+通过查询表名来查看表的内容
+
+具体使用时,需要结合`quandl_updateindex` 这张索引表来使用,(查询索引表时,请务必 limit 小于 10 万,因为全表数据量过大)
+
+使用时,请使用 where 语句限定`quandlcode`字段来查询表中的子表数据。
+
+### 查询示例
+
+1. 我们想要查询 欧盟委员会年度宏观经济数据库 的数据,我们找到其第一层索引的 `databasecode` 为`quandl_ameco`,于是,我们可以查询其第二层索引,用以下 SQL 命令行:
+
+ `select * from quandl_updateindex where databasecode like 'ameco' group by quandlcode limit 10000`
+
+2. 然后通过第三列,我们可以查看`quandlcode`对应的描述
+
+ 比如 AMECO/ALB_1_0_0_0_AAGE 对应的就是阿尔巴尼亚的进出口相关信息,时间从 1960 到 1988。
+
+ Average share of imports and exports of goods in world trade excluding intra EU trade; Foreign trade statistics (1960-1998 Former EU-15) - Albania
+
+ 于是,我们可以用以下方式把这个子表给查询出来
+
+ `select * from quandl_ameco where quandlcode like 'AMECO/ALB_1_0_0_0_AAGE' limit 10000`
+
+3. 注意:如果内容整列为 null 的,属于表结构本身不存在的字段,可以自行去除。
+
+## Quandl 数据 Excel 插件使用说明
+
+您可以下载 Quandl 数据 Excel 插件,无须安装,请解压到任意文件夹中。此插件目前仅支持 Office 2010 以及以上版本,office 2007 以及以下版本目前暂不支持。
+
+### 配置 Excel 插件
+
+解压下载后压缩包,在文件夹中有两个.xll 文件,`ClassLibrary7-AddIn.xll` 以及 `ClassLibrary7-AddIn64.xll` 文件,这两个文件分别对应 32 位的 Excel 与 64 位的 Excel,请根据您的电脑配置使用对应插件。
+
+#### 修改 xml 配置
+
+每个 `.xll` 文件对应一个 `.config` 的配置文件,也就是 `ClassLibrary7-AddIn.xll.config` 和`ClassLibrary7-AddIn64.xll.config`,为如下 xml 配置:
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+其中有如下配置需要修改,并保存:
+
+- certpath: 请填写 `read.data.thunderdb.io.pfx` 证书的绝对路径
+
+#### 安装插件
+
+有两种办法使用此 Excel 插件
+
+1. 直接双击对应的 32 位或 64 位 Excel 的 xll 文件打开
+
+
+
+如果弹出如上对话框,选择第一个: `仅为本回话启用此加载项`。然后新建一个 Excel 表格,如果在 Excel 的上方选项卡中看到 CovenantSQL,说明插件加载成功。
+
+2. 打开 Excel,然后依次选择 `文件 — 选项 — 加载项`,管理选择 Excel 加载项,点击转到然后浏览选择解压后的对应版本的 `.xll` 文件,然后点击 `确定`,在选项卡中如果成功加载出 CovenantSQL 即为成功加载,如下图:
+
+
+
+#### 使用插件
+
+选择 CovenantSQL 的选项卡可以看到 Quandl 数据查询,点击 Quandl 数据查询,会弹出一个窗体如下图所示:
+
+
+
+- 其中红色框住的列表部分是一级目录,下方则是所选项的具体描述
+
+- 绿色按钮是通过选择的一级目录来查询二级目录。这里查询时间会随着所查询二级目录的大小以及用户自身的网络速度等因素而不同,可能查询时间会超过 1 分钟,请耐心等待。
+
+- 黄色部分左边的列表是二级目录,右边的窗体则为列表项所选择的表的描述。
+
+- 蓝色部分是导出数据的可选项
+
+ - Limit Number 是一次导出的最多数据条数,默认为 10000 条,最大值可填写 100000
+ - Offset Number 是从数据库的第几条开始导出,因为之前会限定条数,例如我们之前导出了 10000 条数据,但是明显数据还没有导出全部,我们可以使用此功能选择 offset 10000 来从第 10000 条开始导出(注:数据库的计数从 0 开始,所以前 10000 条为 0-9999)
+
+现在,您即可在 Excel 中方便的调用存在 CovenantSQL 上的 Quandl 数据。
+
+## 附件表
+
+| DataBase | 名称 | 描述 |
+| ------------ | ------------------------ | ------------------------------------------------------------------------------------------- |
+| BUNDESBANK | 德意志联邦银行数据仓库 | 有关德国经济,货币和资本市场,公共财政,银行,家庭,欧元区总量,贸易和外债的数据。 |
+| URC | 独角兽研究公司数据 | 纽约证券交易所,美国证券交易所和纳斯达克证券交易所的预付和下跌数据。从各种公开来源和报告中值。 |
+| DCE | 大连商品交易所数据 | 来自DCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WFC | 富国银行住房抵押贷款数据 | 该数据库提供富国银行(Wells Fargo Bank)分部Wells Fargo Home Mortgage的抵押贷款购买和再融资利率。 |
+| USDAFNS | 美国农业部食品与营养服务项目数据 | 食品和营养服务局为低收入家庭和儿童管理联邦营养援助计划。成本和参与率数据。 |
+| LJUBSE | 卢布尔雅那证券交易所数据 | 该数据库包含卢布尔雅那股票交易所指数,总部位于斯洛文尼亚的卢布尔雅那。 |
+| TOCOM | 东京商品交易所数据 | 来自东京商品交易所(TOCOM)的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WCSC | 世界银行企业积分卡数据 | 该数据库旨在提供世界银行集团在消除极端贫困和促进共同繁荣方面的表现的战略概述。 |
+| CMHC | 加拿大住房抵押贷款公司 | CMHC是一家政府所有的公司,为加拿大公民提供经济适用房,并收集价格,建筑和供应等数据。 |
+| WGEC | 世界银行全球经济监测商品数据(GEM) | 包含1960年至今的商品价格和指数的数据。 |
+| FED | 美联储数据公布 | 美国官方关于货币供应量,利率,抵押贷款,政府财政,银行资产和债务,汇率,工业生产的数据。 |
+| WPSD | 世界银行公共部分支出数据 | 由世界银行和国际货币基金组织共同开发的数据,汇集了详细的公共部门政府债务数据。 |
+| UGID | 联合国全球指标 | 该数据库提供广泛的全球指标,涵盖人口,公共卫生,就业,贸易,教育,通货膨胀和外债。 |
+| RBA | 澳大利亚储备银行数据 | 中央银行和货币当局,监管银行业,设定利率,并为政府债务提供服务。关键经济指标数据。 |
+| UCOM | 联合国商品贸易数据 | 该数据库提供有关食品,活体动物,药品,金属,燃料和机械等商品进出口的全面综合数据。 |
+| SIDC | 太阳影响数据分析中心数据 | SIDC主持从1700年开始的太阳活动数据,特别是太阳黑子活动。 |
+| ZCE | 郑州商品交易所数据 | 来自ZCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| USDAFAS | 美国农业部外国农业服务数据(FAS) | 美国农业部外国农业服务局将美国农业与世界市场联系起来。它提供了国外生产和出口的统计数据。 |
+| OECD | 世界经济合作与发展组织数据 | 促进经济福利的发达国家国际组织。从成员和其他人收集数据以提出政策建议。 |
+| OPEC | 欧佩克数据 | 国际组织和经济卡特尔监督伊拉克,伊朗,沙特阿拉伯和委内瑞拉等石油生产国的政策、油价数据。 |
+| MCX | 印度多种商品交易所数据 | 印度最大的商品交易所,为金属,能源和农业期货交易提供服务。世界第三大合约和交易量交易所。 |
+| ECONOMIST | 经济学人 - 巨无霸指数 | 巨无霸指数是由经济学家于1986年发明的,是一个轻松的指南,指出货币是否处于“正确”水平。它基于购买力平价理论(PPP)。 |
+| NSDL | 国家证券存管有限公司(印度)数据 | 在印度存放负责该国经济发展的国家,该国家建立了国际标准的国家基础设施,处理在印度资本市场以非物质形式持有和结算的大部分证券。 |
+| GDT | 全球乳品贸易数据 | nan |
+| CFFEX | 中国金融期货交易所数据 | 来自CFFEX的指数和债券期货,对于特定期货的历史跨越近十年。 |
+| CITYPOP | Thomas Brinkhoff的城市人口数据 | Thomas Brinkhoff提供了大多数国家城市和行政区域的人口数据。 |
+| BCHARTS | 比特币图表汇率数据 | 来自所有主要比特币交易所的比特币兑换大量货币的汇率,包括当前和历史汇率。 |
+| LOCALBTC | Local Bitcoins数据 | nan |
+| JODI | JODI石油世界数据库 | JODI石油和天然气数据来自100多个国家,包括多种能源产品和各种计量方法。 |
+| UENG | 联合国能源统计数据 | 该数据库提供有关新能源和可再生能源的生产,贸易,转换和最终消费的全面统计数据。 |
+| ULMI | 联合国劳工市场指标 | 该数据库为世界上所有国家提供了按性别划分的全面青年失业数字。 |
+| MAURITIUSSE | 毛里求斯证券交易所数据 | 毛里求斯证券交易所指数数据。 |
+| UKRSE | 乌克兰交易所数据 | UKRSE提供与乌克兰最大证券交易所相关的最新数据。该交易所位于基辅,约占乌克兰总股本交易量的四分之三 |
+| BITSTAMP | Bitstamp数据 | Bitstamp是一个比特币的交易平台。 |
+| UNAE | 联合国国民账户估算数据 | 该数据库提供了全球所有国家不同部门的国内生产总值,国民总收入和总增加值的全球数据。 |
+| UNAC | 联合国国民账户官方国家数据 | 该数据库提供有关国民账户的全球数据,例如家庭,公司和政府的资产和负债。 |
+| UTOR | 联合国世界旅游业数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| WFE | 世界交易所联合会数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| FRBC | 克利夫兰联邦储备银行数据 | 克利夫兰联邦储备银行从数百家金融机构收集数据,包括存款机构,银行控股公司和其他用于评估金融机构状况的实体,以及收集经济和金融体系运作方式的见解。 |
+| UGEN | 联合国性别信息 | 该数据库提供关于各种与性别有关的指标的全面综合数据,涵盖人口,卫生,教育和就业。 |
+| BITFINEX | Bitfinex数据 | Bitfinex是比特币,莱特币和Darkcoin的交易平台,具有许多先进功能,包括保证金交易,交易所和点对点保证金融资。 |
+| UGHG | 联合国温室气体清单 | 该数据库提供有关六种主要温室气体人为排放的全面综合数据。数据可以追溯到1990年。 |
+| UIST | 联合国工业发展组织数据 | 该数据库提供有关工业发展指标的全球数据,包括产量,员工,工资,各种行业的增加值。 |
+| PRAGUESE | 布拉格证券交易所数据 | 布拉格证券交易所的价格指数数据。 |
+| PFTS | PFTS证券交易所(乌克兰)数据 | 来自PFTS证券交易所的指数数据,这是乌克兰最大的市场。 |
+| WARSAWSE | 华沙证券交易所数据 | WIG20指数自1994年4月16日起根据WSE主要清单中20家最主要和最具流动性公司的股票价值计算。 |
+| TUNISSE | 突尼斯证券交易所数据 | 突尼斯证券交易所的主要参考指数。 |
+| FRKC | 堪萨斯城联邦储备银行数据 | FRKC是美联储第10区的区域中央银行,主要发布农业交易中的银行业务数据。 |
+| UENV | 联合国环境统计数据 | 该数据库提供有关水和废物相关指标的全球数据,包括淡水供应和降水,以及废物的产生和收集。 |
+| UFAO | 联合国粮食和农业数据 | 该数据库提供全球粮食和农业数据,包括作物生产,化肥消费,农业用地和牲畜用途。 |
+| TAIFEX | 台湾期货交易所数据 | 来自TAIFEX的指数和债券期货,其历史跨越了十多年的特定期货。 |
+| GDAX | GDAX(全球数字资产交易所)数据 | GDAX是世界上最受欢迎的买卖比特币的地方。 |
+| ARES | 房地产证券化协会数据 | ARES保护投资者,有助于房地产证券化产品市场的发展,并促进房地产投资市场的扩张。 |
+| SHADOWS | 影子联邦基金利率模型数据 | 该数据集包含 吴-侠 论文中关于影子联邦基金的三个主要指标,用于识别所有三大银行的影子利率。 |
+| NAAIM | 全国积极投资管理者协会头寸指数 | NAAIM暴露指数代表NAAIM成员报告的美国股票市场的平均风险敞口。 |
+| CBRT | 土耳其共和国中央银行数据 | CBRT负责采取措施维持土耳其金融体系的稳定。 |
+| CEGH | 中欧天然气中心数据 | nan |
+| FINRA | 美国金融业监管局数据 | 金融业监管局提供证券公司和交易所市场的短期利息数据。 |
+| NASDAQOMX | 纳斯达克OMX全球指数数据 | 纳斯达克OMX发布的全球指数超过35,000种,包括全球股票,固定收益,股息,绿色,北欧,伊斯兰教等。每日数据。 |
+| EURONEXT | 泛欧证券交易所数据 | 欧洲最大的交易所Euronext的历史股票数据。 |
+| UICT | 联合国信息和通信技术数据 | 该数据库提供有关信息和通信技术的全面全球数据,包括所有国家的电话,蜂窝和互联网使用情况。 |
+| USAID | 美国国际开发署数据 | 美国国际开发署提供了美国向世界其他地方提供的所有外国援助的完整历史记录。 |
+| ZAGREBSE | 萨格勒布证券交易所数据 | 克罗地亚唯一的证券交易所。它发布有关其股票和债券指数表现的数据。 |
+| QUITOSE | 基多证券交易所(厄瓜多尔)数据 | 厄瓜多尔国家证券交易所的指数。 |
+| ECBCS | 欧盟委员会商业和消费者调查 | 该数据库中的数据来自欧盟(EU)和欧盟申请国的不同经济部门的统一调查。 |
+| PSE | 巴黎经济学院数据 | 该数据库描述了越来越多国家的最高收入分配。数字是使用税收数据得出的。 |
+| MALTASE | 马耳他证券交易所数据 | 马耳他证券交易所发挥作用,为其认可的名单提供金融工具的结构,随后可在受监管,透明和有序的市场(二级市场)进行交易。市场的主要参与者是发行人,股票交易所会员(股票经纪人)和投资者一般。 |
+| GPP | 全球石油价格 | nan |
+| PPE | 波兰电力交易所(TGE)数据 | nan |
+| UKONS | 英国国家统计局数据 | 关于英国就业,投资,住房,家庭支出,国民账户和许多其他社会经济指标的数据。 |
+| NCDEX | 国家商品及衍生品交易所(印度)数据 | 印度专业管理的在线多商品交易所 |
+| WSE | 华沙证券交易所(GPW)数据 | nan |
+| TFX | 东京金融交易所数据 | 东京金融交易所是一个期货交易所,主要交易金融工具市场,处理证券和市场衍生品。 |
+| WGFD | 世界银行全球金融发展数据 | 有关金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| CEPEA | 应用经济学应用研究中心(巴西)数据 | CEPEA是圣保罗大学的一个经济研究中心,专注于农业企业问题,发布巴西商品价格指数。 |
+| SBJ | 日本统计局数据 | 日本政府统计机构,提供有关就业和劳动力的统计数据。 |
+| WGEM | 世界银行全球经济监测 | 关于全球经济发展的数据,涵盖高收入国家和发展中国家。 |
+| WGDF | 世界银行全球发展金融 | 关于金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| WWDI | 世界银行世界发展指标 | 最新和最准确的发展指标,由官方认可的国际来源汇编而成。 |
+| WESV | 世界银行企业调查 | 公司级私营部门数据,涵盖金融,腐败,基础设施,犯罪,竞争和绩效衡量等业务主题。 |
+| WDBU | 世界银行存续商业数据 | 关于成员国和地方和区域一级选定城市的商业法规及其执法的数据。 |
+| OSE | 大阪证券交易所数据 | 日本第二大证券交易所。与东京证券交易所不同,OSE在衍生品交易方面表现最为强劲,是日本的大多数期货和期权。 |
+| RFSS | 俄罗斯联邦统计局数据 | 俄罗斯政府统计机构,负责在国家和地方层面发布俄罗斯的社会,经济和人口统计数据。 |
+| SHFE | 上海期货交易所数据 | 大宗商品交换能源,金属和化学相关的工业产品。许多商品期货的衍生品市场。 |
+| WGEP | 世界银行全球环境规划经济前景数据 | 关于全球经济的短期,中期和长期前景以及对发展中国家和减贫的影响的数据。 |
+| USMISERY | 美国痛苦指数 | 由经济学家亚瑟·奥肯(Arthur Okun)开发的苦难指数是失业率加上通胀率。 |
+| WJKP | 世界银行知识平台工作数据 | 与劳工有关的主题指标。 |
+| WMDG | 世界银行千年发展目标数据 | 根据千年发展目标(MDGs)的目标和指标重新组织的世界发展指标数据。 |
+| WPOV | 世界银行贫困统计 | 贫困人口比率,贫困差距以及国际和国家贫困线贫困人口数量的指标。 |
+| EUREKA | Eurekahedge数据 | 一家研究公司专注于对冲基金和其他另类投资基金。它公布了对冲基金业绩的数据。 |
+| MOFJ | 日本财务省数据 | 日本政府债券利率数据,由财政部每日公布。 |
+| PIKETTY | Thomas Piketty数据 | “21世纪资本”中的收入和财富数据,哈佛大学出版社,2014。 |
+| PSX | 巴基斯坦证交所数据 | 巴基斯坦证券交易所的股票收盘价格。 |
+| SGX | 新加坡交易所数据 | 亚洲证券和衍生品交易所为许多大型新加坡和其他亚洲公司进行股票交易。在自己的交易所上市。 |
+| UIFS | 联合国国际金融统计 | 该数据库提供有关国际财务指标的综合数据,如平均收入,债券收益率,政府收入和支出。 |
+| UINC | 联合国工业商品数据 | 该数据库提供有关工业商品生产的全球数据,如矿石和矿物,食品,可运输货物和金属产品。 |
+| INSEE | 国家统计和经济研究所(法国)数据 | INSEE是法国的国家统计机构。它收集有关法国经济和社会的数据,如社会经济指标和国民账户。 |
+| SNB | 瑞士国家银行数据 | 中央银行负责货币政策和货币。有关国际账户,利率,货币供应和其他宏观经济指标的数据。 |
+| ODE | 大阪道岛商品交易所数据 | 日本关西地区的一个非营利性商品交易所,交易七种主要农产品。 |
+| WGEN | 世界银行性别统计 | 描述收入,工作类型,工作部门,农民生产率以及企业家公司规模和利润的性别差异的数据。 |
+| WHNP | 世界银行健康营养与人口统计 | 关键的健康,营养和人口统计数据。 |
+| WIDA | 世界银行国际发展协会 | 关于选定指标的IDA(国际开发协会)国家总体成果进展情况的数据。 |
+| ECMCI | 欧盟委员会货币状况指数 | 每月更新,此数据库提供欧元区的货币状况指数值。历史可以追溯到1999年。 |
+| NBSC | 中国国家统计局数据 | 中国有关金融,工业,贸易,农业,房地产和交通运输的统计数据。 |
+| MAS | 新加坡金融管理局数据 | nan |
+| MGEX | 明尼阿波利斯谷物交易所数据 | 促进农业指数贸易的区域商品期货和期权合约市场。 |
+| WWGI | 世界银行全球治理指标 | 六个治理层面的总体和个别治理指标数据。 |
+| ISM | 供应管理研究所 | ISM促进供应链管理实践,并发布有关生产和供应链,新订单,库存和资本支出的数据。 |
+| UKR | 乌克兰交易所数据 | nan |
+| FRBNY | 纽约联邦储备银行数据 | FRBNY是美国最大的区域中央银行。为纽约,康涅狄格州和新泽西州的大部分地区以及一些地区设定货币政策。 |
+| FRBP | 费城联邦储备银行数据 | FRBP是美联储的区域中央银行。它发布有关商业信心指数,GDP,消费和其他经济指标的数据。 |
+| FMSTREAS | 美国财政部 - 财务管理处数据 | 美利坚合众国的月收入/支出和赤字/盈余。 |
+| EIA | 美国能源信息管理局数据 | 美国国家和州有关所有主要能源产品(如电力,煤炭,天然气和石油)的生产,消费和其他指标的数据。 |
+| SOCSEC | 美国社会保障局数据 | 提供有关美国社会保障计划的数据,特别是受益人的人口统计数据;残疾人,老人和幸存者。 |
+| TFGRAIN | 顶级飞行谷物合作社数据 | 玉米和大豆的现货价格,包括前月期货合约的基础。 |
+| IRPR | 波多黎各统计研究所数据 | 波多黎各统计研究所制造业统计数据。 |
+| BCHAIN | blockchain.com数据 | Blockchain是一个发布与比特币相关的数据的网站,每日更新。 |
+| BITCOINWATCH | Bitcoin Watch数据 | 比特币采矿统计。 |
+| ODA | 国际货币基金组织跨国宏观经济统计 | 国际货币基金组织的初级商品价格和世界经济展望数据,由非洲开放数据公布。优秀的跨国宏观经济数据。 |
+| WADI | 世界银行非洲发展指标 | 关于非洲的一系列发展指标,包括国家,区域和全球估计数。 |
+| WEDU | 世界银行教育统计 | 关于教育机会,进展,完成,扫盲,教师,人口和支出的国际可比指标。 |
+| WGLF | 世界银行全球Findex(全球金融包容性数据库) | 关于人们如何储蓄,借贷,支付和管理风险的金融包容性指标。 |
+| WWID | 世界财富和收入数据库 | 世界财富和收入数据库旨在提供开放和便捷的途径,以获取有关国家内部和国家之间世界收入和财富分配历史演变的最广泛的现有数据库。 |
+| BTER | 比特儿数据 | 加密货币的历史汇率数据。 |
+| CFTC | 商品期货交易委员会报告 | 交易员和集中比率的每周承诺。期货头寸以及期货加期权头寸的报告。新旧格式。 |
+| BOE | 英格兰银行官方统计 | 当前和历史汇率,担保贷款和定期存款利率,欧元商业票据利率和政府证券收益率。 |
+| EXMPL | Quandl时间序列数据示例 | 一个时间序列数据库示例。 |
+| WORLDAL | 铝价格 | 世界铝产能和产量(千公吨)。 |
+| WGC | 黄金价格 | 世界黄金协会是黄金行业的市场开发组织。它以不同货币发布黄金价格数据。 |
+| MX | 加拿大期货数据 | 蒙特利尔交易所是一家衍生品交易所,交易期货合约以及股票,指数,货币,ETF,能源和利率的期权。 |
+| UMICH | 消费者情绪 | 密歇根大学的消费者调查 - 最近6个月的数据点是非官方的;它们来自华尔街日报的文章。 |
+| JOHNMATT | 稀有金属价格数据 | 关于铂族金属的当前和历史数据,如价格,供应和需求。 |
+| NAHB | 美国住房指数 | 美国的住房和经济指数。 |
+| RATEINF | 通货膨胀率 | 阿根廷,澳大利亚,加拿大,德国,欧元区,法国,意大利,日本,新西兰等国的通货膨胀率和消费物价指数CPI。 |
+| RENCAP | IPO数据 | 有关美国IPO市场的数据。 |
+| ML | 公司债券收益率数据 | 美林(Merrill Lynch)是美国一家大型银行,它发布了不同地区公司债券收益率的数据。 |
+| MULTPL | S&P 500 | nan |
+| RICI | 商品指数 | 综合,以美元为基础的总回报指数,代表全球经济中消费的一篮子商品的价值。 |
+| AAII | 投资者情绪 | 美国个人投资者协会的情绪数据。 |
+| BIS | 国际清算银行数据 | 国际清算银行为中央银行提供货币和金融稳定管理,促进国际合作,并作为中央银行的银行。 |
+| BCB | 巴西中央银行统计数据库 | 巴西宏观经济数据,涵盖公共财政,国民账户,支付系统,通货膨胀,汇率,贸易和国际储备。 |
+| BCRA | 阿根廷中央银行数据 | 阿根廷中央银行负责货币政策,提供外汇市场数据和主要宏观经济指标。 |
+| FSE | 法兰克福证券交易所 | 法兰克福证券交易所的每日股票价格 |
+| BLSN | 劳工统计局国际数据 | 各国的进出口价格统计,由劳工统计局公布。 |
+| BLSP | 劳工统计局生产力数据 | 美国制造业,劳务和商业统计,由劳工统计局公布。 |
+| FDIC | 联邦存款保险公司数据 | FDIC是一家银行存款高达25万美元的联邦保险公司,负责收集商业银行和储蓄机构的财务数据。 |
+| BLSI | 美国劳工统计局通货膨胀和价格统计 | 美国国家和州一级的通胀数据,由劳工统计局公布。 |
+| BLSE | 美国劳工统计局就业与失业统计 | 美国国家和州一级的就业和失业统计数据,由劳工统计局公布。 |
+| BLSB | 美国劳工统计局薪酬福利统计 | 由劳工统计局公布的美国停工统计数据。 |
+| BP | BP能源生产和消费数据 | BP是一家大型能源生产商和分销商。它提供了各个国家和较大次区域的能源生产和消费数据。 |
+| LPPM | 白金和钯价格数据 | 全球钯金和铂金市场清算价格数据。 |
+| CASS | 运费指数 | 自1990年以来,CASS每月提供与其他经济和供应链指标相关的货运趋势的CASS运费指数报告。 |
+| MORTGAGEX | 可调利率抵押贷款指数 | ARM索引的历史住房数据。 |
+| BUCHARESTSE | 布加勒斯特证券交易所数据 | 布加勒斯特证券交易所发布股票,权利,债券,基金单位,结构性产品和期货合约活动数据。 |
+| AMECO | 欧盟委员会年度宏观经济数据库 | 欧洲委员会经济和财政事务总局(DG ECFIN)年度宏观经济数据库。 |
+| ACC | 美国化学理事会数据 | 化学活性晴雨表(CAB)由美国化学理事会(ACC)出版。 CAB是一个经济指标,有助于预测整个美国经济的高峰和低谷,并突出了美国其他行业的潜在趋势。 |
+| ABMI | 亚洲债券市场计划 | 中国和日本债券市场的指标,如规模和构成,市场流动性,收益率收益率和波动率。 |
+| BITAL | 意大利证交所数据 | 该数据库提供了Borsa Italiana(现为伦敦证券交易所集团的一部分)的股票期货合约数据。 |
+| BANKRUSSIA | 俄罗斯银行数据 | 俄罗斯银行的主要指标,包括银行业,货币供应量,金融市场和宏观经济统计数据。 |
+| BOC | 加拿大银行统计数据库 | 加拿大的经济,金融和银行数据。包括利率,通货膨胀,国民账户等。每日更新。 |
+| HKEX | 香港交易所数据 | 香港交易所股票价格,历史分割期货等每日更新。 |
+| AMFI | 印度共同基金协会数据 | 该数据库代表印度共同基金协会的基金信息。 |
+| BDM | 墨西哥银行数据 | 墨西哥银行负责货币政策和本国货币(比索),并提供账户和所有宏观经济变量的数据。 |
+| BATS | BATS美国证券交易所数据 | Bats是美国的股票市场运营商,经营四个股票交易所--BZX Exchange,BYX Exchange,EDGA Exchange和EDGX Exchange |
+| BSE | 孟买证券交易所数据 | 在印度孟买证券交易所交易的公司的日终价格,指数和其他信息。 |
+| FRED | 美联储经济数据 | 来自圣路易斯联邦储备银行研究部门的增长,就业,通货膨胀,劳工,制造业和其他美国经济统计数据。 |
+| FMAC | 房地美数据 | Freddie Mac的主要抵押贷款市场调查和其他地区特定历史抵押贷款利率的数据。 |
+| EUREX | 欧洲期货交易所数据 | 欧洲最大的期货交易所EUREX的指数,利率,农业和能源期货,历史跨越了特定期货的十年。 |
+| ECB | 欧洲中央银行数据 | 欧盟中央银行监督货币政策和欧元,并提供相关宏观经济变量的数据。 |
+| BOF | 法国银行数据 | 法兰西银行通过欧洲中央银行体系的政策负责货币政策,并提供关键经济指标的数据。 |
+| BELGRADESE | 贝尔格莱德证券交易所数据 | 贝尔格莱德证券交易所数据,每日更新。 |
+| CHRIS | 维基连续期货 | Quandl所有600个期货的连续合约。建立在CME,ICE,LIFFE等原始数据之上。由Quandl社区策划。 50年的历史。 |
+| BOJ | 日本银行数据 | nan |
+| USTREASURY | 美国财政部数据 | 美国财政部确保国家的金融安全,管理国家债务,收取税收,发行货币,提供收益率数据。 |
+| LBMA | 伦敦金银市场协会数据 | 伦敦黄金和白银市场的国际贸易协会,由中央银行,私人投资者,生产商,炼油商和其他代理商组成。 |
+| PERTH | 珀斯铸币厂数据 | 珀斯造币厂的利率和商品价格的高点,低点和平均值每月更新一次。 |
+| ZILLOW2 | Zillow房地产研究 | 房屋价格和租金按大小,类型和等级划分;住房供应,需求和销售。按邮政编码,街区,城市,都市区,县和州切片。 |
\ No newline at end of file
From abdef87459b9fd1387f169eab462589c534085af Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:18 +0800
Subject: [PATCH 049/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/deployment.md | 162 ++++++++++++++++++
1 file changed, 162 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/deployment.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/deployment.md b/website/translated_docs/zh-CN/version-0.5.0/deployment.md
new file mode 100644
index 0000000..705df6e
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/deployment.md
@@ -0,0 +1,162 @@
+---
+id: version-0.5.0-deployment
+title: '🐳 Docker 一键部署'
+original_id: deployment
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 下载项目
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+存为环境变量
+
+### 启动 Docker 容器
+
+现在有两种方式启动 CovenantSQL 容器:
+
+1. 使用 Docker Hub 上的公共镜像
+2. 构建 CovenantSQL Docker 镜像
+
+> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+
+#### 1. 使用 Docker Hub 上的公共镜像
+
+然后直接启动:
+
+```bash
+make start
+```
+
+#### 2. 构建 CovenantSQL Docker 镜像
+
+执行以下的命令在本地运行 CovenantSQL
+
+```bash
+make docker # 从头编译新的镜像
+make start
+```
+
+### 检查运行状态
+
+检查容器状态:
+
+```bash
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+## 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+### SQLChain Observer
+
+镜像中的 Observer 角色使用了和 mysql-adapter 镜像中相同的 private.key ,故可以免去新账户授权和转账的过程制。
+
+(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+
+#### 在浏览器使用 SQLChain Observer
+
+我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
From a24284978aeb1f771dc7f8cee71e48033f1c8b1b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:19 +0800
Subject: [PATCH 050/421] New translations native.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/native.md | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/native.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/native.md b/website/translated_docs/zh-CN/version-0.5.0/native.md
new file mode 100644
index 0000000..031e172
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/native.md
@@ -0,0 +1,173 @@
+---
+id: version-0.5.0-native
+title: '📦 CovenantSQL Native SDK'
+original_id: native
+---
+## 用 Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From a2cf814d270fe5a8768f10e5b1ceb8d043385921 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:21 +0800
Subject: [PATCH 051/421] New translations cql.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/cql.md | 211 ++++++++++++++++++
1 file changed, 211 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/cql.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/cql.md b/website/translated_docs/zh-CN/version-0.5.0/cql.md
new file mode 100644
index 0000000..0c7c33d
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/cql.md
@@ -0,0 +1,211 @@
+---
+id: version-0.5.0-cql
+title: '🖥️ CQL 命令行工具'
+original_id: cql
+---
+## 简介
+
+本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络, 并将 `cql` 可执行文件保存在 `PATH` 目录。
+
+### 配置文件
+
+`cql`命令依赖配置文件`config.yaml`和私钥文件`private.key`。这两个文件如果使用`cql generate config`命令生成,会默认放在`~/.cql/`目录下。在此目录下时,`cql`所有子命令的`-config`参数均可以省略不填写。
+
+### Master key
+
+`private.key`文件在生成时需要输入密码,`cql`命令会自动请求输入master key (密码)。 如果想在脚本中使用,可以在子命令后面增加`-password your_master_key`,空密码时用`-no-password`参数。
+
+## 查询余额
+
+查询余额的命令是:`cql wallet -balance `。其中`token_type`设置为`all`时将返回用户账户中 `Particle` 与 `Wave` 的数量,其他关键词将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+查看默认余额:
+
+```bash
+cql wallet -balance all -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+ INFO[0000] Wave balance is: 10000000000000000000
+
+
+查看 Particle 余额:
+
+```bash
+cql wallet -balance Particle -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+
+
+查看 Bitcoin 余额:
+
+```bash
+cql wallet -balance Bitcoin -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Bitcoin balance is: 0
+
+
+## 转账
+
+转账操作使用 `cql transfer` 并以 `json` 格式的转账信息为参数。
+
+```json
+{
+ "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount":"1000000 Particle" // 转账金额并带上单位
+}
+```
+
+其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
+
+转账 Particle:
+
+```bash
+cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+转账 Wave:
+
+```bash
+cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+```
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+查看余额:
+
+```bash
+cql wallet -balance all -config conf/config.yaml
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 9999999999999000000
+ INFO[0000] Wave balance is: 9999999999999000000
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `cql wallet -balance ` 确定。
+
+## 数据库权限管理
+
+#### 访问权限
+
+CovenantSQL 数据库有三类库级别权限:
+
+- `Admin`
+- `Write`
+- `Read`
+- `Void`
+
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql grant` 并以 `json` 格式的权限信息为参数:
+
+```json
+{
+ "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm":"Write" // 权限内容
+}
+```
+
+增加写权限:
+
+```bash
+cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+吊销权限:
+
+```bash
+cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+
+为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
+
+使用新账户给数据库充值:
+
+```bash
+cql transfer -config new_user_config/config.yaml '{"addr":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount":"90000000 Particle"}'
+```
+
+#### SQL 白名单
+
+CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除货更新操作。
+
+增加白名单:
+
+```shell
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": [
+ "SELECT COUNT(1) FROM a",
+ "SELECT * FROM a WHERE id = ? LIMIT 1"
+ ],
+ "role": "Read"
+ }
+}
+'
+```
+
+*白名单功能是基于数据库权限的一个扩展,且当前不支持增量的白名单更新,在设置白名单时需要写明所有授权该用户使用的语句,以及该用户对数据库的访问权限*
+
+设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a`的 总数据量。
+
+去掉白名单限制:
+
+```shell
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": nil,
+ "role": "Read"
+ }
+}
+'
+# or
+cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": "Read"
+}
+'
+```
+
+将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
\ No newline at end of file
From 38dd865587e9f5a9fc2f983205bb58cb8e6227cd Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:22 +0800
Subject: [PATCH 052/421] New translations nav.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/nav.md | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/nav.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/nav.md b/website/translated_docs/zh-CN/version-0.5.0/nav.md
new file mode 100644
index 0000000..8597bac
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/nav.md
@@ -0,0 +1,22 @@
+---
+id: version-0.5.0-nav
+title: '📖 使用导航'
+original_id: nav
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
+
+## 使用 CovenantSQL 开发应用
+
+[📦 CovenantSQL SDK](./development)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From bbce0b22d6df46dd23dea1e44a103dab8331a022 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:23 +0800
Subject: [PATCH 053/421] New translations api.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/api.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/api.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/api.md b/website/translated_docs/zh-CN/version-0.5.0/api.md
new file mode 100644
index 0000000..bcd93df
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/api.md
@@ -0,0 +1,6 @@
+---
+id: version-0.5.0-api
+title: '👩🏻💻 CovenantSQL API'
+original_id: api
+---
+## TBD
\ No newline at end of file
From 4a172c699bf625954b8fed1fd559a69da59ba3fa Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:25 +0800
Subject: [PATCH 054/421] New translations development.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/development.md | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/development.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/development.md b/website/translated_docs/zh-CN/version-0.1.0/development.md
new file mode 100644
index 0000000..1b4a728
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/development.md
@@ -0,0 +1,173 @@
+---
+id: version-0.1.0-development
+title: '📦 CovenantSQL SDK'
+original_id: development
+---
+## Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 63b1d80150f7f69578dcbbd7d7e42f5c2ba44c7f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:27 +0800
Subject: [PATCH 055/421] New translations getting-started-testnet-zh.md
(Chinese Simplified)
---
.../bck/getting-started-testnet-zh.md | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-testnet-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-testnet-zh.md b/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-testnet-zh.md
new file mode 100644
index 0000000..2877e82
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-testnet-zh.md
@@ -0,0 +1,93 @@
+---
+id: version-0.1.0-testnet
+title: CovenantSQL 测试网快速入门
+original_id: testnet
+---
+[CovenantSQL](https://github.com/CovenantSQL/CovenantSQL/blob/develop/README-zh.md) 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+1. **SQL**: 支持 SQL-92 标准
+2. **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+3. **隐私**: 通过加密和授权许可进行访问
+4. **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## 0. 下载 CovenantSQL 工具
+
+在 [github](https://github.com/CovenantSQL/CovenantSQL/releases) 下载最新的发行版
+
+## 1. 用 `cql-utils` 生成配置文件访问测试网
+
+```bash
+$ cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 02296ea73240dcd69d2b3f1fb754c8debdf68c62147488abb10165428667ec8cbd
+Generated key pair.
+Generating nonce...
+nonce: {{731613648 0 0 0} 11 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9}
+node id: 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+运行完成后,`cql-utils`会在 `./conf` 目录生成一个配置文件。
+
+## 2. 用私钥生成钱包地址
+
+私钥可以再上一步的 `./conf` 目录中找到,文件名为 `private.key`
+
+```bash
+$ cql-utils -tool addrgen -private ./conf/private.key
+Enter master key(default: ""):
+⏎
+wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+```
+
+上述 `4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9` 就是钱包地址
+
+## 3. 在水龙头(Faucet)获取 Particle(PTC)
+
+水龙头(Faucet)的地址为: [CovenantSQL 测试网 Particle(PTC) 水龙头](https://testnet.covenantsql.io/)。
+
+完成教程之后,用 `cql` 命令来检查钱包地址的余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+当看到 **"stable coin balance is: 100"** 时,表明余额已经为 100。
+
+如果您需要更多的 PTC 作为长期测试使用,请联系 。
+
+对于有合作的商业伙伴,我们将直接提供 PTC 以供使用。
+
+## 4. 使用 `CLI` 创建数据库
+
+```bash
+$ cql -config conf/config.yaml -create 1
+INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+```
+
+第一行命令中的 `1` 表示申请几个矿工为你的数据库服务。`covenantsql://...` 开头的这个字符串就是创建的数据库访问地址,在 SDK 和 CLI 命令中都需要用此地址,在整个区块链中找到这个数据库。
+
+## 5. CLI 和 SDK 的详细文档
+
+创建好数据库后,您可以参考以下文档和示例,以便更快的使用CovenantSQL来开发应用。
+
+- [CLI 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/cmd/cql/README-zh.md)
+- [SDK 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/README-zh.md)
+- [SDK 示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+
+## 6. SQLChain 浏览器
+
+目前,测试网的数据库时不需要权限的。意味着您可以通过数据库的DSN(数据库访问地址),在[SQLChain 浏览器](https://explorer.dbhub.org)中拿到所有的修改历史和区块信息。
+
+更多的测试网技术支持,请访问:
+
+> [TestNet 发行日志](https://github.com/CovenantSQL/CovenantSQL/wiki/Release-Notes-zh)
\ No newline at end of file
From 98d162dc41b5a397c2ee6e9607f4209aec893ef6 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:28 +0800
Subject: [PATCH 056/421] New translations getting-started-zh.md (Chinese
Simplified)
---
.../version-0.1.0/bck/getting-started-zh.md | 486 ++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-zh.md b/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-zh.md
new file mode 100644
index 0000000..8eebf58
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-zh.md
@@ -0,0 +1,486 @@
+---
+id: version-0.1.0-local-deployment
+title: CovenantSQL 综述
+original_id: local-deployment
+---
+# CovenantSQL 介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可变成 ĐApp
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是用户的钱包,那么 CovenantSQL 就是是用户的去中心化数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密 保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+# 安装 CovenantSQL 客户端
+
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+* [Go](./development-golang-client-zh.md)
+* [Java](https://github.com/CovenantSQL/covenant-connector)
+* [Python](https://github.com/CovenantSQL/python-driver)
+* [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+* `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+* `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+* [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
+
+# 部署 CovenantSQL
+
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+### SQLChain Explorer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Explorer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+# 使用 CovenantSQL 开发 App
+
+## Golang 使用 CovenantSQL
+
+#### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+#### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+#### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+#### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+#### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
+
+# CovenantSQL API
+
+# 常见问题解答
+
+补充
\ No newline at end of file
From 695ef80082360819ee9e1147e539c826f61b8656 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:29 +0800
Subject: [PATCH 057/421] New translations development-cmd-cql-utils-zh.md
(Chinese Simplified)
---
.../bck/development-cmd-cql-utils-zh.md | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-utils-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-utils-zh.md b/website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-utils-zh.md
new file mode 100644
index 0000000..767df8d
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-utils-zh.md
@@ -0,0 +1,41 @@
+---
+id: version-0.1.0-keygen
+title: 使用 cql-utils 生成密钥与钱包
+original_id: keygen
+---
+`cql-utils` 是 CovenantSQL 的一个命令行工具,具体用法如下。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 使用
+
+### 生成公私钥对
+
+ $ cql-utils -tool keygen
+ Enter master key(press Enter for default: ""):
+ ⏎
+ Private key file: private.key
+ Public key's hex: 03bc9e90e3301a2f5ae52bfa1f9e033cde81b6b6e7188b11831562bf5847bff4c0
+
+
+生成的 private.key 文件即是使用主密码加密过的私钥文件,而输出到屏幕上的字符串就是使用十六进制进行编码的公钥。
+
+### 使用私钥文件或公钥生成钱包地址
+
+ $ cql-utils -tool addrgen -private private.key
+ Enter master key(default: ""):
+ ⏎
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+ $ cql-utils -tool addrgen -public 02f2707c1c6955a9019cd9d02ade37b931fbfa286a1163dfc1de965ec01a5c4ff8
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+
+
+你可以通过指定私钥文件,或者把上述的公钥十六进制编码字符串作为命令行参数来直接生成钱包地址。
\ No newline at end of file
From 79cb6b39f6c9ccf575298b5b1dedbd128d6c34da Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:31 +0800
Subject: [PATCH 058/421] New translations getting-started-overview-zh.md
(Chinese Simplified)
---
.../bck/getting-started-overview-zh.md | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-overview-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-overview-zh.md b/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-overview-zh.md
new file mode 100644
index 0000000..f240f32
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/getting-started-overview-zh.md
@@ -0,0 +1,63 @@
+---
+id: version-0.1.0-intro
+title: 简介
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+- **SQL**: 支持 SQL-92 标准
+- **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+- **隐私**: 通过加密和授权许可进行访问
+- **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信[在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+#### 一行代码接入区块链数据
+
+```go
+sql.Open("CovenantSQL", dbURI)
+```
+
+# #
+
+
+
+- 第一层: **全局共识层**(主链,架构图中的中间环):
+ - 整个网络中只有一个主链。
+ - 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+- 第二层: **SQL 共识层**(子链,架构图中的两边环):
+ - 每个数据库都有自己独立的子链。
+ - 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+- 第三层: **数据储存层**(支持 SQL-92 的数据库引擎):
+ - 每个数据库都有自己独立的分布式引擎。
+ - 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From cae8d486516c6ec74049a38bd003b29269595445 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:32 +0800
Subject: [PATCH 059/421] New translations development-cmd-cql-zh.md (Chinese
Simplified)
---
.../bck/development-cmd-cql-zh.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-zh.md b/website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-zh.md
new file mode 100644
index 0000000..b46fae0
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/development-cmd-cql-zh.md
@@ -0,0 +1,77 @@
+---
+id: version-0.1.0-cql
+title: 使用命令行客户端 cql 创建数据库
+original_id: cql
+---
+本文档主要介绍 CovenantSQL 命令行客户端 `cql` 的使用。`cql` 是一个用于批量进行 SQLChain 上数据库的创建、查询、更新或删除操作的命令行工具。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 生成默认配置文件
+
+首先需要一个 config 文件和由你输入的主密码(master key)来初始化,其中主密码用来加密解密本地密钥对。使用 `cql-utils` 工具进行配置文件生成后,你可以在生成的配置文件目录下找到密钥文件。
+
+具体请参考: [cql-utils 使用文档](https://github.com/CovenantSQL/docs/tree/master/development-cmd-utils-zh.md#使用) 中配置文件及钱包地址生成相关章节。
+
+## 检查钱包余额
+
+使用 `cql` 命令来检查钱包余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000]
+### Public Key ###
+0388954cf083bb6bb2b9c7248849b57c76326296fcc0d69764fc61eedb5b8d820c
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+这里我们得到结果 **"stable coin balance is: 100"**。
+
+## 初始化一个 CovenantSQL 数据库
+
+准备好配置文件和主密码后就可以使用 `cql` 命令来创建数据库了,你的数据库 ID 将会输出到屏幕上:
+
+```bash
+# if a non-default password applied on master key, use `-password` to pass it
+$ cql -config conf/config.yaml -create 1
+INFO[0000]
+### Public Key ###
+039bc931161383c994ab9b81e95ddc1494b0efeb1cb735bb91e1043a1d6b98ebfd
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] the newly created database is: covenantsql://0e9103318821b027f35b96c4fd5562683543276b72c488966d616bfe0fe4d213 caller="main.go:297 main.main"
+```
+
+这里 `-create 1` 表示创建一个单节点的 SQLChain。
+
+```bash
+$ cql -config conf/config.yaml -dsn covenantsql://address
+```
+
+`address` 就是你的数据库 ID。
+
+`cql` 命令的详细使用帮助如下:
+
+```bash
+$ cql -help
+```
+
+## 使用 `cql`
+
+现在可以使用 `cql` 进行数据库操作了:
+
+```bash
+co:address=> show tables;
+```
\ No newline at end of file
From bc20a6ad12a827bbe2342b6f209e4d16efaf0bc5 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:34 +0800
Subject: [PATCH 060/421] New translations development-golang-client-zh.md
(Chinese Simplified)
---
.../bck/development-golang-client-zh.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/development-golang-client-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/development-golang-client-zh.md b/website/translated_docs/zh-CN/version-0.1.0/bck/development-golang-client-zh.md
new file mode 100644
index 0000000..9bbb203
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/development-golang-client-zh.md
@@ -0,0 +1,108 @@
+---
+id: version-0.1.0-golang-client
+title: 使用 Golang 驱动访问数据库
+original_id: golang-client
+---
+本文档介绍 CovenantSQL 客户端的使用方式。客户端用来创建、查询、更新和删除 SQLChain 以及绑定的数据库。
+
+## 开始之前
+
+确保 `$GOPATH/bin` 目录在环境变量 `$PATH` 中,执行以下命令
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+然后在你的 go 代码中 import 第一个 `client` 包。
+
+## 初始化一个 CovenantSQL 客户端
+
+首先需要一个 config 文件和 master key 来初始化。master key 用来加密解密本地密钥对。以下是如何用一个自定义 master key 来生成默认的 config 文件:
+
+### 生成默认的配置文件
+
+运行以下 `cql-utils` 命令,输入 master key(类似密码)来生成本地密钥对。等待几十秒,会在 `conf` 文件夹中,生成一个私钥文件和一个名为 `config.yaml` 的配置文件。
+
+```bash
+$ cql-utils -tool confgen -root conf
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 025abec9b0072615170f4acf4a2fa1162a13864bb66bc3f140b29f6bf50ceafc75
+Generated key pair.
+Generating nonce...
+INFO[0005] cpu: 1
+INFO[0005] position: 0, shift: 0x0, i: 0
+nonce: {{1450338416 0 0 0} 26 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514}
+node id: 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+有了配置文件之后,可以通过以下 go 代码来初始化 CovenantSQL 客户端:
+
+```go
+client.Init(configFile, masterKey)
+```
+
+## 客户端使用方式
+
+### 创建一个 SQLChain 数据库
+
+创建 SQLChain 数据库需要指明需要几个节点(nodeCount变量):
+
+```go
+var (
+ dsn string
+ meta client.ResourceMeta
+)
+meta.Node = uint16(nodeCount)
+dsn, err = client.Create(meta)
+// process err
+```
+
+创建完毕会返回一个 dsn 字符串,用来访问这个数据库。
+
+### 查询和执行
+
+拿到 dsn 字符串后,可以通过以下代码在 SQLChain 中执行 SQL 语句:
+
+```go
+
db, err := sql.Open("covenantsql", dsn)
+ // process err
+
+ _, err = db.Exec("CREATE TABLE testSimple ( column int );")
+ // process err
+
+ _, err = db.Exec("INSERT INTO testSimple VALUES(?);", 42)
+ // process err
+
+ row := db.QueryRow("SELECT column FROM testSimple LIMIT 1;")
+
+ var result int
+ err = row.Scan(&result)
+ // process err
+ fmt.Printf("SELECT column FROM testSimple LIMIT 1; result %d\n", result)
+
+ err = db.Close()
+ // process err
+
+```
+
+用法和其他 go sql driver 一致。
+
+### 删除数据库
+
+使用 dsn 来删除数据库:
+
+```go
+ err = client.Drop(dsn)
+ // process err
+```
+
+### 完整示例
+
+在以下目录中有一个简单示例和复杂示例可以参考 [示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
\ No newline at end of file
From 8d73aaffc5005b9d211e14a7098bfd25c5843faf Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:36 +0800
Subject: [PATCH 061/421] New translations api-json-rpc.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/bck/api-json-rpc.md | 440 ++++++++++++++++++
1 file changed, 440 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/api-json-rpc.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/api-json-rpc.md b/website/translated_docs/zh-CN/version-0.1.0/bck/api-json-rpc.md
new file mode 100644
index 0000000..7dfc832
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/api-json-rpc.md
@@ -0,0 +1,440 @@
+---
+id: version-0.1.0-api-json-rpc
+title: JSON RPC
+original_id: api-json-rpc
+---
+> JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+
+CovenantSQL provides a suite of RPC methods in [JSON-RPC 2.0](https://www.jsonrpc.org/specification) for easily accessing to CovenantSQL networks.
+
+## Javascript API
+
+[cql.js](https://github.com/covenantsql/cql.js) is a Javascript SDK which has encapsulated the RPC methods in order to give a much more convenient way to talk to the CovenantSQL networks. See the [Javascript API](cql-js.md) for more.
+
+## JSON RPC Endpoint
+
+| Network | Provider | URL |
+| ------------------------ | ------------- | -------------------------------------- |
+| CovenantSQL Test Network | Covenant Labs | https://jsonrpc.testnet.covenantsql.io |
+| CovenantSQL Main Network | Covenant Labs | Comming soon :) |
+
+## JSON RPC API Reference
+
+### bp_getProtocolVersion
+
+Returns the current CovenantSQL protocol version.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- string - the current CovenantSQL protocol version
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "bp_getProtocolVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+Response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0.1.0"
+}
+```
+
+### bp_getRunningStatus
+
+Returns some basic indicators describing the running status of the CovenantSQL network.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- object: an object describes the running status of the network.
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getRunningStatus",
+ "params": []
+}
+```
+
+Response:
+
+```js
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": 182414, // height of the latest block
+ "count_accounts": 103, // count of the accounts ever created
+ "count_databases": 912414, // count of the databases ever created
+ "qps": 10241 // estimated QPS of database operations of the whole net
+ }
+}
+```
+
+### bp_getBlockList
+
+Returns a list of the blocks.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------- | ---------------------- | ------ |
+| 0 | from | integer | start height, included | 1 |
+| 1 | to | integer | end height, excluded | 11 |
+
+**Constraints:** `to - from ∈ [5, 100]`
+
+#### Returns
+
+- array: list of the blocks, the object in the list is a [Block](#s-block), but **without** transaction details
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockList",
+ "params": [1, 11]
+}
+```
+
+Response: [Block](#s-block) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: block object }
+ ]
+}
+```
+
+### bp_getBlockListByTimeRange
+
+TODO: as a new API in the next release
+
+### bp_getBlockByHeight
+
+Returns information about the block specified by its height.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | height of the block | 1024 |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHeight",
+ "params": [1, true]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getBlockByHash
+
+Returns information about the block specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------- | ------ |
+| 0 | hash | string | hash of the block | "TODO" |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHash",
+ "params": ["TODO", true]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getTransactionList
+
+Returns a list of the transactions. Traverse page by page by using a transaction hash as the mark for paging.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | --------- | ------- | ------------------------------------------- | ---------- |
+| 0 | since | string | hash as the start point of traverse | "TODO" |
+| 1 | direction | string | traverse direction, "backward" or "forward" | "backward" |
+| 2 | size | integer | page size, [5, 100] | 20 |
+
+ QhcAe42Xf8cwGUf5NYGQDQ
+ XNZ9yipFBUV5ySBtreW1MA ↑ forward (in newer blocks)
+ 9fXd3s5HE5fC8lOYY6uAZA
+ KhytGjS0xjw5CJvcJYpsNg ← since (paging mark)
+ 2KOxrKMS4iVDKXnm6HuYiA
+ 71VwqOMOvAsBXJRMeBruWg ↓ backward (in older blocks)
+ 0P3k04RKHw8SEMKHxADC8A
+
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionList",
+ "params": ["KhytGjS0xjw5CJvcJYpsNg", "forward", 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: transaction object }
+ ]
+}
+```
+
+### bp_getTransactionListInBlock
+
+Returns a list of the transactions from a block by the specified height.
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | --------------------- | ------ |
+| 0 | height | integer | block height | 1024 |
+| 1 | from | integer | start index, included | 0 |
+| 2 | to | integer | end index, excluded | 10 |
+
+**Constraints:** `to - from ∈ [5, 100]`
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionListInBlock",
+ "params": [1024, 0, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: transaction object }
+ ]
+}
+```
+
+### bp_getTransactionByHash
+
+Returns information about the transaction specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------------- | ------ |
+| 0 | hash | string | hash of the transaction | "TODO" |
+
+#### Returns
+
+- object: transaction information object, it's a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionByHash",
+ "params": ["TODO", true]
+}
+```
+
+Response: [Transaction](#s-transaction)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: transaction object
+ }
+}
+```
+
+## Structure Reference
+
+Here are some common structure definitions used in the API.
+
+
+
+### Block
+
+The block generated in the CovenantSQL blockchain network.
+
+| Field | Type | Description |
+| ----------- | ------- | -------------------------------------------- |
+| height | integer | Height of the block |
+| hash | string | Hash of the block |
+| version | integer | Version number of the block |
+| producer | string | Address of the node who generated this block |
+| merkle_root | string | Hash of the merkle tree |
+| parent | string | Hash of its parent block |
+| timestamp | string | Create time of the block |
+| signee | string | Public key of the node who signed this block |
+| signature | string | Signature for the this block |
+| tx_count | integer | Count of the transactions in this block |
+
+Sample in JSON format:
+
+```json
+{
+ "height": 12,
+ "hash": "TODO",
+ "version": 1,
+ "producer": "4io8u9v9nydaQPXtmqibg8gJbkNFd7DdM47PLWuM7ubzBXZ4At7",
+ "merkle_root": "TODO",
+ "parent": "TODO",
+ "timestamp": "TODO",
+ "signee": "TODO",
+ "signature": "TODO",
+ "tx_count": 1
+}
+```
+
+
+
+### Transaction
+
+| Field | Type | Description |
+| ------------ | ------- | ------------------------------------------------------------------------------------------- |
+| block_height | integer | Height of the block this transaction belongs to |
+| index | integer | Index of the transaction in the block |
+| hash | string | Hash of the transaction data |
+| block_hash | string | Hash of the block this transaction belongs to |
+| type | integer | Type of the transaction |
+| signee | string | Public key of the account who signed this transaction |
+| address | string | Account address who signed this transaction |
+| signature | string | Signature of this transaction |
+| timestamp | string | Create time of the transaction |
+| raw | string | Raw content of the transaction data, in JSON format |
+| tx | object | Concrete transaction object, see supported [transaction types](#transaction-types) for more |
+
+Sample in JSON format:
+
+```json
+{
+ "block_height": 1,
+ "index": 0,
+ "hash": "TODO",
+ "block_hash": "TODO",
+ "timestamp": "TODO",
+ "type": 1,
+ "signee": "TODO",
+ "address": "TODO",
+ "signature": "TODO",
+ "raw": "TODO",
+ "tx": {
+ "field": "TODO"
+ }
+}
+```
+
+**Supported Transaction Types:**
+
+- [CreateDatabase](#s-transaction-createdatabase)
+
+TODO: more types
+
+
+
+### Transaction: CreateDatabase
+
+TODO: more types
\ No newline at end of file
From 77be26d9812a495738fa370a22098f851eb19e19 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:37 +0800
Subject: [PATCH 062/421] New translations guide-zh.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/bck/guide-zh.md | 114 ++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/bck/guide-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/bck/guide-zh.md b/website/translated_docs/zh-CN/version-0.1.0/bck/guide-zh.md
new file mode 100644
index 0000000..98858f8
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/bck/guide-zh.md
@@ -0,0 +1,114 @@
+---
+id: version-0.1.0-guide-zh
+title: 快速开始
+original_id: guide-zh
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development-golang-client-zh.md)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+- `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+- `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+- [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 015d27db4f903afecbccb3371ed4ae6c7096e7ff Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:38 +0800
Subject: [PATCH 063/421] New translations guide-zh.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/bck/guide-zh.md | 114 ++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/guide-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/guide-zh.md b/website/translated_docs/zh-CN/version-0.5.0/bck/guide-zh.md
new file mode 100644
index 0000000..444aba4
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/guide-zh.md
@@ -0,0 +1,114 @@
+---
+id: version-0.5.0-guide-zh
+title: 快速开始
+original_id: guide-zh
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development-golang-client-zh.md)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+- [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 924fd8e346142398f6e227ce60ceba8770a86d59 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:40 +0800
Subject: [PATCH 064/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.1.0/qna.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/qna.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/qna.md b/website/translated_docs/zh-CN/version-0.1.0/qna.md
new file mode 100644
index 0000000..8c0e5d4
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/qna.md
@@ -0,0 +1,6 @@
+---
+id: version-0.1.0-qna
+title: '🙋 常见问题解答'
+original_id: qna
+---
+## TBD
\ No newline at end of file
From 3d53108c7eb8587309549409c2876f64925d5e99 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:41 +0800
Subject: [PATCH 065/421] New translations proxy.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/proxy.md | 111 ++++++++++++++++++
1 file changed, 111 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/proxy.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/proxy.md b/website/translated_docs/zh-CN/version-0.5.0/proxy.md
new file mode 100644
index 0000000..254b24b
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/proxy.md
@@ -0,0 +1,111 @@
+---
+id: version-0.5.0-adapter
+title: '📦 CovenantSQL Adapter SDK'
+original_id: adapter
+---
+# 通过 Adapter 使用 CovenantSQL
+
+## 简介
+
+`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+
+## 安装和使用
+
+首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+
+### Docker 运行 Adapter
+
+下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+
+```bash
+export adapter_addr=0.0.0.0:11105
+docker rm -f cql-adapter
+docker run -itd \
+ --env COVENANT_ROLE=adapter --env COVENANT_CONF=/app/config.yaml \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --name cql-adapter -p $adapter_addr:4661 \
+ covenantsql/covenantsql:testnet -listen 0.0.0.0:4661
+```
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker run -it --rm \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --entrypoint /app/cql covenantsql/covenantsql:testnet \
+ -config /app/config.yaml -create 1
+```
+
+命令会返回创建的数据库实例的连接串(DSN)
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+## 主流语言 Driver 的使用
+
+### NodeJS
+
+NodeJS 开发者可以通过 [node-covenantsql](https://github.com/CovenantSQL/node-covenantsql) 来与 CovenantSQL Adapter 进行交互。
+
+#### 下载安装
+
+可以直接通过 `npm` 或者 `yarn` 来安装 `node-covenantsql`
+
+```bash
+npm install --save node-covenantsql
+```
+
+or
+
+```bash
+yarn add node-covenantsql
+```
+
+#### 使用
+
+在运行本地 Adapter 之后,将 Adapter 的 endpoint 填入 `node-covenantsql` 的 config 之中:
+
+```javascript
+const config = {
+ endpoint: 'localhost:11105', // local testnet endpoint without https
+ database: `${DSN}`, // your DB id created by `cql` tools
+ bypassPem: true // bypass https config
+}
+```
+
+这里 `bypassPem` 为 `true` 表示应用中所有对链上数据库的操作都会经过本地的 Adapter 进行代理,我们默认本地环境是可控,安全的,无需用 HTTPS 来保证这段连接的信道安全,少了证书的繁琐认证,所以成为 `bypassPem`。
+
+接着连通之后则可进行链上数据库的增删改查:
+
+```typescript
+const cql from 'node-covenantsql'
+
+const config = {...} // see above
+
+cql.createConnection(config).then(async (connection: any) => {
+ // read
+ const data1 = await connection.query("select ? + ?", [2.1, 3.2]);
+ console.log(data1);
+
+ // write
+ const createTableSQL = `
+ CREATE TABLE IF NOT EXISTS contacts (\
+ contact_id INTEGER PRIMARY KEY,
+ first_name TEXT NOT NULL,
+ last_name TEXT NOT NULL,
+ email text NOT NULL UNIQUE,
+ phone text NOT NULL UNIQUE
+ );
+ `
+ const status1 = await connection.exec(createTableSQL)
+ console.log(`exec1 status:`, status1);
+
+ const data2 = await connection.query("show tables;");
+ console.log(data2);
+}).catch((e: any) => console.log(e))
+```
\ No newline at end of file
From 776ee52d41d3dfd2a50754e98e95b46e387de10e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:42 +0800
Subject: [PATCH 066/421] New translations intro.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/intro.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/intro.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/intro.md b/website/translated_docs/zh-CN/version-0.2.0/intro.md
new file mode 100644
index 0000000..7fd16c7
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/intro.md
@@ -0,0 +1,73 @@
+---
+id: version-0.2.0-intro
+title: CovenantSQL 介绍
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 8d93b3f63b6e7ba1478893ff514a3c711645e51e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:44 +0800
Subject: [PATCH 067/421] New translations api-json-rpc.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/bck/api-json-rpc.md | 442 ++++++++++++++++++
1 file changed, 442 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/api-json-rpc.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/api-json-rpc.md b/website/translated_docs/zh-CN/version-0.5.0/bck/api-json-rpc.md
new file mode 100644
index 0000000..1038b09
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/api-json-rpc.md
@@ -0,0 +1,442 @@
+---
+id: version-0.5.0-api-json-rpc
+title: JSON RPC
+original_id: api-json-rpc
+---
+> JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+
+CovenantSQL provides a suite of RPC methods in [JSON-RPC 2.0](https://www.jsonrpc.org/specification) for easily accessing to CovenantSQL networks.
+
+## Javascript API
+
+[cql.js](https://github.com/covenantsql/cql.js) is a Javascript SDK which has encapsulated the RPC methods in order to give a much more convenient way to talk to the CovenantSQL networks. See the [Javascript API](cql-js.md) for more.
+
+## JSON RPC Endpoint
+
+| Network | Provider | URL |
+| ------------------------ | ------------- | -------------------------------------- |
+| CovenantSQL Test Network | Covenant Labs | https://jsonrpc.testnet.covenantsql.io |
+| CovenantSQL Main Network | Covenant Labs | Comming soon :) |
+
+## JSON RPC API Reference
+
+### bp_getProtocolVersion
+
+Returns the current CovenantSQL protocol version.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- string - the current CovenantSQL protocol version
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "bp_getProtocolVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+Response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0.1.0"
+}
+```
+
+### bp_getRunningStatus
+
+Returns some basic indicators describing the running status of the CovenantSQL network.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- object: an object describes the running status of the network.
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getRunningStatus",
+ "params": []
+}
+```
+
+Response:
+
+```js
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": 182414, // height of the latest block
+ "count_accounts": 103, // count of the accounts ever created
+ "count_shardchains": 912414, // count of the databases ever created
+ "qps": 10241 // estimated QPS of database operations of the whole net
+ "storage_size": 109870095269 // storage size
+ }
+}
+```
+
+### bp_getBlockList
+
+Returns a list of the blocks.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | ---------------------- | ------ |
+| 0 | since | integer | since height, excluded | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the blocks, the object in the list is a [Block](#s-block), but **without** transaction details
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockList",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Block](#s-block) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "blocks" [ { TODO: block object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 102,
+ "pages": 11
+ }
+}
+```
+
+### bp_getBlockListByTimeRange
+
+TODO: as a new API in the next release
+
+### bp_getBlockByHeight
+
+Returns information about the block specified by its height.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | height of the block | 1024 |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHeight",
+ "params": [1]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getBlockByHash
+
+Returns information about the block specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------- | ------ |
+| 0 | hash | string | hash of the block | "TODO" |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getTransactionList
+
+Returns a list of the transactions. Traverse page by page by using a transaction hash as the mark for paging.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | -------------------- | ------ |
+| 0 | since | string | since hash, excluded | "TODO" |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionList",
+ "params": ["KhytGjS0xjw5CJvcJYpsNg", 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionListOfBlock
+
+Returns a list of the transactions from a block by the specified height.
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | of block height | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionListOfBlock",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionByHash
+
+Returns information about the transaction specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------------- | ------ |
+| 0 | hash | string | hash of the transaction | "TODO" |
+
+#### Returns
+
+- object: transaction information object, it's a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Transaction](#s-transaction)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: transaction object
+ }
+}
+```
+
+## Structure Reference
+
+Here are some common structure definitions used in the API.
+
+
+
+### Block
+
+The block generated in the CovenantSQL blockchain network.
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------- |
+| height | integer | Height of the block |
+| hash | string | Hash of the block |
+| version | integer | Version number of the block |
+| producer | string | Address of the node who generated this block |
+| merkle_root | string | Hash of the merkle tree |
+| parent | string | Hash of its parent block |
+| timestamp | integer | Create time of the block, unix time in nanoseconds |
+| timestamp_human | string | Create time of the block, human readable RFC3339 format |
+| tx_count | integer | Count of the transactions in this block |
+
+Sample in JSON format:
+
+```json
+{
+ "height": 12,
+ "hash": "TODO",
+ "version": 1,
+ "producer": "4io8u9v9nydaQPXtmqibg8gJbkNFd7DdM47PLWuM7ubzBXZ4At7",
+ "merkle_root": "TODO",
+ "parent": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "tx_count": 1
+}
+```
+
+
+
+### Transaction
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------------------------------------------- |
+| block_height | integer | Height of the block this transaction belongs to |
+| index | integer | Index of the transaction in the block |
+| hash | string | Hash of the transaction data |
+| block_hash | string | Hash of the block this transaction belongs to |
+| type | integer | Type of the transaction |
+| address | string | Account address who signed this transaction |
+| timestamp | integer | Create time of the transaction, unix time in nanoseconds |
+| timestamp_human | string | Create time of the transaction, human readable RFC3339 format |
+| raw | string | Raw content of the transaction data, in JSON format |
+| tx | object | Concrete transaction object, see supported [transaction types](#transaction-types) for more |
+
+Sample in JSON format:
+
+```json
+{
+ "block_height": 1,
+ "index": 0,
+ "hash": "TODO",
+ "block_hash": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "type": 1,
+ "address": "TODO",
+ "raw": "TODO",
+ "tx": {
+ "field": "TODO"
+ }
+}
+```
+
+**Supported Transaction Types:**
+
+- [CreateDatabase](#s-transaction-createdatabase)
+
+TODO: more types
+
+
+
+### Transaction: CreateDatabase
+
+TODO: more types
\ No newline at end of file
From 8fd7b073c09d1e7e4f28033fd1c4dac7ec210b3b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:46 +0800
Subject: [PATCH 068/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/deployment.md | 198 ++++++++++++++++++
1 file changed, 198 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/deployment.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/deployment.md b/website/translated_docs/zh-CN/version-0.2.0/deployment.md
new file mode 100644
index 0000000..7cb985e
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/deployment.md
@@ -0,0 +1,198 @@
+---
+id: version-0.2.0-deployment
+title: '🐳 Docker 一键部署'
+original_id: deployment
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 下载项目
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+存为环境变量
+
+### 启动 Docker 容器
+
+现在有两种方式启动 CovenantSQL 容器:
+
+1. 使用 Docker Hub 上的公共镜像
+2. 构建 CovenantSQL Docker 镜像
+
+> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+
+#### 1. 使用 Docker Hub 上的公共镜像
+
+然后直接启动:
+
+```bash
+make start
+```
+
+#### 2. 构建 CovenantSQL Docker 镜像
+
+执行以下的命令在本地运行 CovenantSQL
+
+```bash
+make docker # 从头编译新的镜像
+make start
+```
+
+### 检查运行状态
+
+检查容器状态:
+
+```bash
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+## 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+### SQLChain Explorer
+
+由于读数据库需要计费,并且数据库有权限限制,在启动 Explorer 前需要确保 Explorer 使用的钱包地址内有充足的 token 并且已使用管理员账户为 Explorer 地址授权读权限。(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+
+**注意:**在授权前不要在浏览器打开 Explorer 地址。
+
+获得转账地址:
+
+```bash
+docker exec -it covenantsql_observer /app/cql-utils -tool addrgen -private /app/node_observer/private.key
+```
+
+输出:
+
+```bash
+Enter master key(press Enter for default: ""):
+
+wallet address: 6304a1bcc4a8903b1bc8675fd37a588040a55ade1f1df552ef7721a823ae1c25
+```
+
+转账:
+
+```bash
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -transfer '{"addr":"6304a1bcc4a8903b1bc8675fd37a588040a55ade1f1df552ef7721a823ae1c25","amount":"100000000 Particle"}'
+```
+
+其中,`addr` 表示转账地址,这里为 Explorer 使用的钱包地址,Explorer 地址可以在上一步中获得。`amount` 为能使 Explorer 运行的最小金额 `gas_price*number_of_miner*240000`,建议多一转些方便后续操作。
+
+授权:
+
+```bash
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -update-perm '{"chain":"139f71bb7b2775baafa42bd9ed2ade6755381d4eed1e02d4847eb1491847a0ce","user":"6304a1bcc4a8903b1bc8675fd37a588040a55ade1f1df552ef7721a823ae1c25","perm":"Read"}'
+```
+
+充值:
+
+```bash
+docker exec -it covenantsql_observer /app/cql -config /app/node_observer/config.yaml -transfer '{"addr":"139f71bb7b2775baafa42bd9ed2ade6755381d4eed1e02d4847eb1491847a0ce","amount":"90000000 Particle"}'
+```
+
+关于转账充值与授权的详细说明请参考[文档](cql.md)。
+
+### 在浏览器使用 SQLChain Explorer
+
+我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Explorer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
From 64172212bcac32d49a41c6841f1fc8958f14d3c7 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:47 +0800
Subject: [PATCH 069/421] New translations getting-started-zh.md (Chinese
Simplified)
---
.../version-0.2.0/bck/getting-started-zh.md | 486 ++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-zh.md b/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-zh.md
new file mode 100644
index 0000000..d6e2e01
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-zh.md
@@ -0,0 +1,486 @@
+---
+id: version-0.2.0-local-deployment
+title: CovenantSQL 综述
+original_id: local-deployment
+---
+# CovenantSQL 介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可变成 ĐApp
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是用户的钱包,那么 CovenantSQL 就是是用户的去中心化数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密 保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+# 安装 CovenantSQL 客户端
+
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+* [Go](./development-golang-client-zh.md)
+* [Java](https://github.com/CovenantSQL/covenant-connector)
+* [Python](https://github.com/CovenantSQL/python-driver)
+* [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+* `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+* `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+* [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
+
+# 部署 CovenantSQL
+
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+### SQLChain Explorer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Explorer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+# 使用 CovenantSQL 开发 App
+
+## Golang 使用 CovenantSQL
+
+#### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+#### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+#### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+#### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+#### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
+
+# CovenantSQL API
+
+# 常见问题解答
+
+补充
\ No newline at end of file
From 26295d0a8de5e994b612344b946cb546948f4d06 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:48 +0800
Subject: [PATCH 070/421] New translations development-cmd-cql-utils-zh.md
(Chinese Simplified)
---
.../bck/development-cmd-cql-utils-zh.md | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-utils-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-utils-zh.md b/website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-utils-zh.md
new file mode 100644
index 0000000..fa97a30
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-utils-zh.md
@@ -0,0 +1,41 @@
+---
+id: version-0.2.0-keygen
+title: 使用 cql-utils 生成密钥与钱包
+original_id: keygen
+---
+`cql-utils` 是 CovenantSQL 的一个命令行工具,具体用法如下。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 使用
+
+### 生成公私钥对
+
+ $ cql-utils -tool keygen
+ Enter master key(press Enter for default: ""):
+ ⏎
+ Private key file: private.key
+ Public key's hex: 03bc9e90e3301a2f5ae52bfa1f9e033cde81b6b6e7188b11831562bf5847bff4c0
+
+
+生成的 private.key 文件即是使用主密码加密过的私钥文件,而输出到屏幕上的字符串就是使用十六进制进行编码的公钥。
+
+### 使用私钥文件或公钥生成钱包地址
+
+ $ cql-utils -tool addrgen -private private.key
+ Enter master key(default: ""):
+ ⏎
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+ $ cql-utils -tool addrgen -public 02f2707c1c6955a9019cd9d02ade37b931fbfa286a1163dfc1de965ec01a5c4ff8
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+
+
+你可以通过指定私钥文件,或者把上述的公钥十六进制编码字符串作为命令行参数来直接生成钱包地址。
\ No newline at end of file
From 5fcfd9f27d60af6bd66cd0840ed057daad981df3 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:50 +0800
Subject: [PATCH 071/421] New translations getting-started-overview-zh.md
(Chinese Simplified)
---
.../bck/getting-started-overview-zh.md | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-overview-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-overview-zh.md b/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-overview-zh.md
new file mode 100644
index 0000000..eb66866
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-overview-zh.md
@@ -0,0 +1,63 @@
+---
+id: version-0.2.0-intro
+title: 简介
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+- **SQL**: 支持 SQL-92 标准
+- **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+- **隐私**: 通过加密和授权许可进行访问
+- **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信[在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+#### 一行代码接入区块链数据
+
+```go
+sql.Open("CovenantSQL", dbURI)
+```
+
+# #
+
+
+
+- 第一层: **全局共识层**(主链,架构图中的中间环):
+ - 整个网络中只有一个主链。
+ - 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+- 第二层: **SQL 共识层**(子链,架构图中的两边环):
+ - 每个数据库都有自己独立的子链。
+ - 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+- 第三层: **数据储存层**(支持 SQL-92 的数据库引擎):
+ - 每个数据库都有自己独立的分布式引擎。
+ - 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From fe4fd52e76d068ef07a545750eb8adaddd9fa9c4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:51 +0800
Subject: [PATCH 072/421] New translations development-cmd-cql-zh.md (Chinese
Simplified)
---
.../bck/development-cmd-cql-zh.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-zh.md b/website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-zh.md
new file mode 100644
index 0000000..d06e552
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/development-cmd-cql-zh.md
@@ -0,0 +1,77 @@
+---
+id: version-0.2.0-cql
+title: 使用命令行客户端 cql 创建数据库
+original_id: cql
+---
+本文档主要介绍 CovenantSQL 命令行客户端 `cql` 的使用。`cql` 是一个用于批量进行 SQLChain 上数据库的创建、查询、更新或删除操作的命令行工具。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 生成默认配置文件
+
+首先需要一个 config 文件和由你输入的主密码(master key)来初始化,其中主密码用来加密解密本地密钥对。使用 `cql-utils` 工具进行配置文件生成后,你可以在生成的配置文件目录下找到密钥文件。
+
+具体请参考: [cql-utils 使用文档](https://github.com/CovenantSQL/docs/tree/master/development-cmd-utils-zh.md#使用) 中配置文件及钱包地址生成相关章节。
+
+## 检查钱包余额
+
+使用 `cql` 命令来检查钱包余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000]
+### Public Key ###
+0388954cf083bb6bb2b9c7248849b57c76326296fcc0d69764fc61eedb5b8d820c
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+这里我们得到结果 **"stable coin balance is: 100"**。
+
+## 初始化一个 CovenantSQL 数据库
+
+准备好配置文件和主密码后就可以使用 `cql` 命令来创建数据库了,你的数据库 ID 将会输出到屏幕上:
+
+```bash
+# if a non-default password applied on master key, use `-password` to pass it
+$ cql -config conf/config.yaml -create 1
+INFO[0000]
+### Public Key ###
+039bc931161383c994ab9b81e95ddc1494b0efeb1cb735bb91e1043a1d6b98ebfd
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] the newly created database is: covenantsql://0e9103318821b027f35b96c4fd5562683543276b72c488966d616bfe0fe4d213 caller="main.go:297 main.main"
+```
+
+这里 `-create 1` 表示创建一个单节点的 SQLChain。
+
+```bash
+$ cql -config conf/config.yaml -dsn covenantsql://address
+```
+
+`address` 就是你的数据库 ID。
+
+`cql` 命令的详细使用帮助如下:
+
+```bash
+$ cql -help
+```
+
+## 使用 `cql`
+
+现在可以使用 `cql` 进行数据库操作了:
+
+```bash
+co:address=> show tables;
+```
\ No newline at end of file
From dac4295558c52d40fe446273e35f05211f9c2b40 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:53 +0800
Subject: [PATCH 073/421] New translations development-golang-client-zh.md
(Chinese Simplified)
---
.../bck/development-golang-client-zh.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/development-golang-client-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/development-golang-client-zh.md b/website/translated_docs/zh-CN/version-0.2.0/bck/development-golang-client-zh.md
new file mode 100644
index 0000000..0fd9b7a
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/development-golang-client-zh.md
@@ -0,0 +1,108 @@
+---
+id: version-0.2.0-golang-client
+title: 使用 Golang 驱动访问数据库
+original_id: golang-client
+---
+本文档介绍 CovenantSQL 客户端的使用方式。客户端用来创建、查询、更新和删除 SQLChain 以及绑定的数据库。
+
+## 开始之前
+
+确保 `$GOPATH/bin` 目录在环境变量 `$PATH` 中,执行以下命令
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+然后在你的 go 代码中 import 第一个 `client` 包。
+
+## 初始化一个 CovenantSQL 客户端
+
+首先需要一个 config 文件和 master key 来初始化。master key 用来加密解密本地密钥对。以下是如何用一个自定义 master key 来生成默认的 config 文件:
+
+### 生成默认的配置文件
+
+运行以下 `cql-utils` 命令,输入 master key(类似密码)来生成本地密钥对。等待几十秒,会在 `conf` 文件夹中,生成一个私钥文件和一个名为 `config.yaml` 的配置文件。
+
+```bash
+$ cql-utils -tool confgen -root conf
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 025abec9b0072615170f4acf4a2fa1162a13864bb66bc3f140b29f6bf50ceafc75
+Generated key pair.
+Generating nonce...
+INFO[0005] cpu: 1
+INFO[0005] position: 0, shift: 0x0, i: 0
+nonce: {{1450338416 0 0 0} 26 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514}
+node id: 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+有了配置文件之后,可以通过以下 go 代码来初始化 CovenantSQL 客户端:
+
+```go
+client.Init(configFile, masterKey)
+```
+
+## 客户端使用方式
+
+### 创建一个 SQLChain 数据库
+
+创建 SQLChain 数据库需要指明需要几个节点(nodeCount变量):
+
+```go
+var (
+ dsn string
+ meta client.ResourceMeta
+)
+meta.Node = uint16(nodeCount)
+dsn, err = client.Create(meta)
+// process err
+```
+
+创建完毕会返回一个 dsn 字符串,用来访问这个数据库。
+
+### 查询和执行
+
+拿到 dsn 字符串后,可以通过以下代码在 SQLChain 中执行 SQL 语句:
+
+```go
+
db, err := sql.Open("covenantsql", dsn)
+ // process err
+
+ _, err = db.Exec("CREATE TABLE testSimple ( column int );")
+ // process err
+
+ _, err = db.Exec("INSERT INTO testSimple VALUES(?);", 42)
+ // process err
+
+ row := db.QueryRow("SELECT column FROM testSimple LIMIT 1;")
+
+ var result int
+ err = row.Scan(&result)
+ // process err
+ fmt.Printf("SELECT column FROM testSimple LIMIT 1; result %d\n", result)
+
+ err = db.Close()
+ // process err
+
+```
+
+用法和其他 go sql driver 一致。
+
+### 删除数据库
+
+使用 dsn 来删除数据库:
+
+```go
+ err = client.Drop(dsn)
+ // process err
+```
+
+### 完整示例
+
+在以下目录中有一个简单示例和复杂示例可以参考 [示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
\ No newline at end of file
From 37fd50180dbf4fea8f0af2bb9e4764f4d6f229cb Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:55 +0800
Subject: [PATCH 074/421] New translations api-json-rpc.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/bck/api-json-rpc.md | 441 ++++++++++++++++++
1 file changed, 441 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/api-json-rpc.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/api-json-rpc.md b/website/translated_docs/zh-CN/version-0.2.0/bck/api-json-rpc.md
new file mode 100644
index 0000000..68689c2
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/api-json-rpc.md
@@ -0,0 +1,441 @@
+---
+id: version-0.2.0-api-json-rpc
+title: JSON RPC
+original_id: api-json-rpc
+---
+> JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+
+CovenantSQL provides a suite of RPC methods in [JSON-RPC 2.0](https://www.jsonrpc.org/specification) for easily accessing to CovenantSQL networks.
+
+## Javascript API
+
+[cql.js](https://github.com/covenantsql/cql.js) is a Javascript SDK which has encapsulated the RPC methods in order to give a much more convenient way to talk to the CovenantSQL networks. See the [Javascript API](cql-js.md) for more.
+
+## JSON RPC Endpoint
+
+| Network | Provider | URL |
+| ------------------------ | ------------- | -------------------------------------- |
+| CovenantSQL Test Network | Covenant Labs | https://jsonrpc.testnet.covenantsql.io |
+| CovenantSQL Main Network | Covenant Labs | Comming soon :) |
+
+## JSON RPC API Reference
+
+### bp_getProtocolVersion
+
+Returns the current CovenantSQL protocol version.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- string - the current CovenantSQL protocol version
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "bp_getProtocolVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+Response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0.1.0"
+}
+```
+
+### bp_getRunningStatus
+
+Returns some basic indicators describing the running status of the CovenantSQL network.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- object: an object describes the running status of the network.
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getRunningStatus",
+ "params": []
+}
+```
+
+Response:
+
+```js
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": 182414, // height of the latest block
+ "count_accounts": 103, // count of the accounts ever created
+ "count_databases": 912414, // count of the databases ever created
+ "qps": 10241 // estimated QPS of database operations of the whole net
+ }
+}
+```
+
+### bp_getBlockList
+
+Returns a list of the blocks.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | ---------------------- | ------ |
+| 0 | since | integer | since height, excluded | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the blocks, the object in the list is a [Block](#s-block), but **without** transaction details
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockList",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Block](#s-block) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "blocks" [ { TODO: block object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 102,
+ "pages": 11
+ }
+}
+```
+
+### bp_getBlockListByTimeRange
+
+TODO: as a new API in the next release
+
+### bp_getBlockByHeight
+
+Returns information about the block specified by its height.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | height of the block | 1024 |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHeight",
+ "params": [1]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getBlockByHash
+
+Returns information about the block specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------- | ------ |
+| 0 | hash | string | hash of the block | "TODO" |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getTransactionList
+
+Returns a list of the transactions. Traverse page by page by using a transaction hash as the mark for paging.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | -------------------- | ------ |
+| 0 | since | string | since hash, excluded | "TODO" |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionList",
+ "params": ["KhytGjS0xjw5CJvcJYpsNg", 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionListOfBlock
+
+Returns a list of the transactions from a block by the specified height.
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | of block height | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionListOfBlock",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionByHash
+
+Returns information about the transaction specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------------- | ------ |
+| 0 | hash | string | hash of the transaction | "TODO" |
+
+#### Returns
+
+- object: transaction information object, it's a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Transaction](#s-transaction)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: transaction object
+ }
+}
+```
+
+## Structure Reference
+
+Here are some common structure definitions used in the API.
+
+
+
+### Block
+
+The block generated in the CovenantSQL blockchain network.
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------- |
+| height | integer | Height of the block |
+| hash | string | Hash of the block |
+| version | integer | Version number of the block |
+| producer | string | Address of the node who generated this block |
+| merkle_root | string | Hash of the merkle tree |
+| parent | string | Hash of its parent block |
+| timestamp | integer | Create time of the block, unix time in nanoseconds |
+| timestamp_human | string | Create time of the block, human readable RFC3339 format |
+| tx_count | integer | Count of the transactions in this block |
+
+Sample in JSON format:
+
+```json
+{
+ "height": 12,
+ "hash": "TODO",
+ "version": 1,
+ "producer": "4io8u9v9nydaQPXtmqibg8gJbkNFd7DdM47PLWuM7ubzBXZ4At7",
+ "merkle_root": "TODO",
+ "parent": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "tx_count": 1
+}
+```
+
+
+
+### Transaction
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------------------------------------------- |
+| block_height | integer | Height of the block this transaction belongs to |
+| index | integer | Index of the transaction in the block |
+| hash | string | Hash of the transaction data |
+| block_hash | string | Hash of the block this transaction belongs to |
+| type | integer | Type of the transaction |
+| address | string | Account address who signed this transaction |
+| timestamp | integer | Create time of the transaction, unix time in nanoseconds |
+| timestamp_human | string | Create time of the transaction, human readable RFC3339 format |
+| raw | string | Raw content of the transaction data, in JSON format |
+| tx | object | Concrete transaction object, see supported [transaction types](#transaction-types) for more |
+
+Sample in JSON format:
+
+```json
+{
+ "block_height": 1,
+ "index": 0,
+ "hash": "TODO",
+ "block_hash": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "type": 1,
+ "address": "TODO",
+ "raw": "TODO",
+ "tx": {
+ "field": "TODO"
+ }
+}
+```
+
+**Supported Transaction Types:**
+
+- [CreateDatabase](#s-transaction-createdatabase)
+
+TODO: more types
+
+
+
+### Transaction: CreateDatabase
+
+TODO: more types
\ No newline at end of file
From 45e6751ed52be2b9429c8823a7bee1bdb13236b4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:56 +0800
Subject: [PATCH 075/421] New translations guide-zh.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/bck/guide-zh.md | 114 ++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/guide-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/guide-zh.md b/website/translated_docs/zh-CN/version-0.2.0/bck/guide-zh.md
new file mode 100644
index 0000000..659ef89
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/guide-zh.md
@@ -0,0 +1,114 @@
+---
+id: version-0.2.0-guide-zh
+title: 快速开始
+original_id: guide-zh
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development-golang-client-zh.md)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+- `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+- `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+- [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 169fc2f72a65f692c528f10ea864678c9aa96e39 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:57 +0800
Subject: [PATCH 076/421] New translations development.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/development.md | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/development.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/development.md b/website/translated_docs/zh-CN/version-0.2.0/development.md
new file mode 100644
index 0000000..ecad5dd
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/development.md
@@ -0,0 +1,173 @@
+---
+id: version-0.2.0-development
+title: '📦 CovenantSQL SDK'
+original_id: development
+---
+## Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 60e6fc82b7d5e79f41d60c875befd80b25c54400 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:24:58 +0800
Subject: [PATCH 077/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.2.0/qna.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/qna.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/qna.md b/website/translated_docs/zh-CN/version-0.2.0/qna.md
new file mode 100644
index 0000000..f07b2ca
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/qna.md
@@ -0,0 +1,6 @@
+---
+id: version-0.2.0-qna
+title: '🙋 常见问题解答'
+original_id: qna
+---
+## TBD
\ No newline at end of file
From bdbbeaaf70785e1f20f186d36464358e3a6d68d2 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:00 +0800
Subject: [PATCH 078/421] New translations cql.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/cql.md | 144 ++++++++++++++++++
1 file changed, 144 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/cql.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/cql.md b/website/translated_docs/zh-CN/version-0.2.0/cql.md
new file mode 100644
index 0000000..b46e6d4
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/cql.md
@@ -0,0 +1,144 @@
+---
+id: version-0.2.0-cql
+title: '🖥️ CQL 命令行工具'
+original_id: cql
+---
+## 简介
+
+本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络。
+
+## 查询余额
+
+查询余额有两个命令:`cql -get-balance` 和 `cql -token-balance `。其中 `-get-balance` 将返回用户账户中 `Particle` 与 `Wave` 的数量,`-token-balance ` 将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+查看默认余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+ INFO[0000] Wave balance is: 10000000000000000000
+
+
+查看 Particle 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Particle
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+
+
+查看 Bitcoin 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Bitcoin
+```
+
+输出:
+
+ INFO[0000] Bitcoin balance is: 0
+
+
+## 转账
+
+转账操作使用 `cql -transfer` 并以 `json` 格式的转账信息为参数。
+
+```json
+{
+ "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount":"1000000 Particle" // 转账金额并带上单位
+}
+```
+
+其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
+
+转账 Particle:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+转账 Wave:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+```
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+查看余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 9999999999999000000
+ INFO[0000] Wave balance is: 9999999999999000000
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `-get-balance` 或者 `-token-balance ` 确定。
+
+## 数据库权限管理
+
+CovenantSQL 数据库有三类库级别权限:
+
+- `Admin`
+- `Write`
+- `Read`
+- `Void`
+
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin`, `Write` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql -update-perm` 并以 `json` 格式的权限信息为参数:
+
+```json
+{
+ "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm":"Write" // 权限内容
+}
+```
+
+增加写权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+吊销权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+
+为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
\ No newline at end of file
From 9adf3c404995e8d50c961a55a027eedbccc45ba4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:03 +0800
Subject: [PATCH 079/421] New translations quandl.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/quandl.md | 228 ++++++++++++++++++
1 file changed, 228 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/quandl.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/quandl.md b/website/translated_docs/zh-CN/version-0.2.0/quandl.md
new file mode 100644
index 0000000..5363f5f
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/quandl.md
@@ -0,0 +1,228 @@
+---
+id: version-0.2.0-quandl
+title: 基于 Quandl 的金融数据分析
+original_id: quandl
+---
+## 关于Quandl
+
+Quandl 是一个针对金融投资行业的大数据平台,其数据来源包括联合国、世界银行、中央银行等公开数据,核心财务数据来自 CLS 集团,Zacks 和 ICE 等,所有的数据源自 500 多家发布商, 是为投资专业人士提供金融,经济和替代数据的首选平台,拥有海量的经济和金融数据。
+
+## Quandl 数据索引
+
+### CovenantSQL 使用简介
+
+首先,我们已基于 Quandl 的开放 API 将数据存放在 CovenantSQL 中,首先应该浏览一下 CovenantSQL 的使用介绍来熟悉一下如何连接并且使用 CovenantSQL。
+
+现在由于客户端兼容问题, 请直接使用我们的 HTTP 服务来对 Quandl 数据库进行 query,未来兼容现在的 `cql` 客户端后会第一时间更新此文档。
+
+具体通过 HTTP 服务来使用 CovenantSQL 请参考 [Python 驱动文档](https://github.com/CovenantSQL/python-driver/blob/master/README.rst) 和 [NodeJS 驱动文档](https://github.com/CovenantSQL/node-covenantsql/blob/master/README.md)
+
+所需参数:
+
+ host: 'e.morenodes.com'
+ port: 11108
+ database: '057e55460f501ad071383c95f691293f2f0a7895988e22593669ceeb52a6452a'
+
+
+### 数据使用方法
+
+Quandl 数据分为表以及子表两层索引
+
+数据库中,表名为`quandl_` + `database_code`为完整表名
+
+通过查询表名来查看表的内容
+
+具体使用时,需要结合`quandl_updateindex` 这张索引表来使用,(查询索引表时,请务必limit小于10万,因为全表数据量过大)
+
+使用时,请使用where语句限定`quandlcode`字段来查询表中的子表数据。
+
+### 查询示例
+
+1. 我们想要查询 欧盟委员会年度宏观经济数据库 的数据,我们找到其第一层索引的 `databasecode` 为`quandl_ameco`,于是,我们可以查询其第二层索引,用以下SQL命令行:
+
+ select * from quandl_updateindex where databasecode like 'ameco' group by quandlcode limit 10000
+
+2. 然后通过第三列,我们可以查看`quandlcode`对应的描述
+
+ 比如 AMECO/ALB_1_0_0_0_AAGE 对应的就是阿尔巴尼亚的进出口相关信息,时间从1960到1988。
+
+ Average share of imports and exports of goods in world trade excluding intra EU trade; Foreign trade statistics (1960-1998 Former EU-15) - Albania
+
+ 于是,我们可以用以下方式把这个子表给查询出来
+
+ select * from quandl_ameco where quandlcode like 'AMECO/ALB_1_0_0_0_AAGE' limit 10000
+
+3. 注意:如果内容整列为null的,属于表结构本身不存在的字段,可以自行去除。
+
+## 附件表
+
+| database_code | description | |
+| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
+| BUNDESBANK | Data on the German economy, money and capital markets, public finances, banking, households, Euro-area aggregates, trade and external debt. | 德意志联邦银行数据仓库 |
+| URC | Advance and decline data for the NYSE, AMEX, and NASDAQ stock exchanges. From various publicly-available sources and the median value is reported. | 独角兽研究公司数据 |
+| DCE | Agriculture and commodities futures from DCE, with history spanning almost a decade for select futures. | 大连商品交易所数据 |
+| WFC | This database offers mortgage purchase and refinance rates from Wells Fargo Home Mortgage, a division of Wells Fargo Bank. | 富国银行住房抵押贷款数据 |
+| USDAFNS | Food and Nutrition Service administrates federal nutrition assistance programs for low-income households and children. Data on costs and participation rates. | 美国农业部食品与营养服务项目数据 |
+| LJUBSE | This database contains the Ljubljana Stock Exchange indexes and is based in Ljubljana, Slovenia. | 卢布尔雅那证券交易所数据 |
+| TOCOM | Agriculture and commodities futures from Tokyo Commodities Exchange (TOCOM), with history spanning almost a decade for select futures. | 东京商品交易所数据 |
+| LBMA | An international trade association in the London gold and silver market, consisting of central banks, private investors, producers, refiners, and other agents. | 伦敦金银市场协会数据 |
+| WCSC | This database is designed to provide a strategic overview of the World Bank Group’s performance toward ending extreme poverty and promoting shared prosperity. | 世界银行企业积分卡数据 |
+| CMHC | The CMHC is a gov’t-owned corporation that provides affordable housing to Canadian citizens and collects data such as prices, construction, and supply. | 加拿大住房抵押贷款公司 |
+| WGEC | Data containing commodity prices and indices from 1960 to present. | 世界银行全球经济监测商品数据(GEM) |
+| FED | Official US figures on money supply, interest rates, mortgages, government finances, bank assets and debt, exchange rates, industrial production. | 美联储数据公布 |
+| WPSD | Data jointly developed by the World Bank and the International Monetary Fund, which brings together detailed public sector government debt data. | 世界银行公共部分支出数据 |
+| UGID | This database offers a wide range of global indicators, covering population, public health, employment, trade, education, inflation and external debt. | 联合国全球指标 |
+| RBA | Central bank and monetary authority, regulates banking industry, sets interest rates, and services government's debt. Data on key economic indicators. | 澳大利亚储备银行数据 |
+| UCOM | This database offers comprehensive global data on imports and exports of commodities such as food, live animals, pharmaceuticals, metals, fuels and machinery. | 联合国商品贸易数据 |
+| SIDC | The SIDC hosts data spanning from the 1700's on solar activity, specifically sunspot activity. | 太阳影响数据分析中心数据 |
+| ZCE | Agriculture and commodities futures from ZCE, with history spanning almost a decade for select futures. | 郑州商品交易所数据 |
+| ZILLOW2 | Home prices and rents by size, type and tier; housing supply, demand and sales; sliced by zip code, neighbourhood, city, metro area, county and state. | Zillow房地产研究 |
+| USTREASURY | The U.S. Treasury ensures the nation's financial security, manages the nation's debt, collects tax revenues, and issues currency, provides data on yield rates. | 美国财政部数据 |
+| BTS | BTS provides information on transportation systems in the United States. Their non-multimodal department provides statistics on air travel. | 美国交通运输统计局数据 |
+| USDAFAS | The USDA Foreign Agricultural Service connects U.S. agriculture with the world markets. It provides statistics on production and exports in foreign countries. | 美国农业部外国农业服务数据(FAS) |
+| OECD | International organization of developed countries that promotes economic welfare. Collects data from members and others to make policy recommendations. | 世界经济合作与发展组织数据 |
+| OPEC | International organization and economic cartel overseeing policies of oil-producers, such as Iraq, Iran, Saudi Arabia, and Venezuela. Data on oil prices. | 欧佩克数据 |
+| MCX | India's largest commodity exchange servicing futures trading in metals, energy, and agriculture. World's 3rd largest exchange in contracts and trading volume. | 印度多种商品交易所数据 |
+| ECONOMIST | The Big Mac index was invented by The Economist in 1986 as a lighthearted guide to whether currencies are at their “correct” level. It is based on the theory of purchasing-power parity (PPP). | 经济学人 - 巨无霸指数 |
+| NSDL | Depository in India responsible for economic development of the country that has established a national infrastructure of international standards that handles most of the securities held and settled in dematerialised form in the Indian capital market. | 国家证券存管有限公司(印度)数据 |
+| FRED | Growth, employment, inflation, labor, manufacturing and other US economic statistics from the research department of the Federal Reserve Bank of St. Louis. | 美联储经济数据 |
+| GDT | | 全球乳品贸易数据 |
+| CFFEX | Index and bond futures from CFFEX, with history spanning almost a decade for select futures. | 中国金融期货交易所数据 |
+| CITYPOP | Thomas Brinkhoff provides population data for cities and administrative areas in most countries. | Thomas Brinkhoff的城市人口数据 |
+| BCHARTS | Exchange rates for bitcoin against a large number of currencies, from all major bitcoin exchanges, including current and historical exchange rates. | 比特币图表汇率数据 |
+| LOCALBTC | | Local Bitcoins数据 |
+| JODI | JODI oil and gas data comes from over 100 countries consisting of multiple energy products and flows in various methods of measurement. | JODI石油世界数据库 |
+| UENG | This database offers comprehensive global statistics on production, trade, conversion, and final consumption of new and renewable energy sources. | 联合国能源统计数据 |
+| ULMI | This database offers comprehensive youth unemployment figures broken up by gender for all countries in the world. | 联合国劳工市场指标 |
+| MAURITIUSSE | Stock Exchange of Mauritius indices data. | 毛里求斯证券交易所数据 |
+| UKRSE | UKRSE presents the most current available data related to the largest stock exchanges in Ukraine. The exchange is located in Kiev and accounts for roughly three-quarters of Ukraine's total equity trading volume | 乌克兰交易所数据 |
+| BITSTAMP | Bitstamp is a trading platform for Bitcoin. | Bitstamp数据 |
+| UNAE | This database offers global data on gross domestic product, gross national income, and gross value added by different sectors for all countries in the world. | 联合国国民账户估算数据 |
+| UNAC | This database offers global data on national accounts, such as assets and liabilities of households, corporations and governments. | 联合国国民账户官方国家数据 |
+| UTOR | This database offers comprehensive data on international tourism. Data includes number of tourist arrivals and tourism expenditures for all countries. | 联合国世界旅游业数据 |
+| WFE | A trade association of sixty publicly regulated stock, futures, and options exchanges that publishes data for its exchanges, like market capitalization. | 世界交易所联合会数据 |
+| FRBC | The Federal Reserve Bank of Cleveland collects data from hundreds of financial institutions, including depository institutions, bank holding companies, and other entities that is used to assess financial institution conditions and also to glean insights into how the economy and financial system are doing. | 克利夫兰联邦储备银行数据 |
+| UGEN | This database offers comprehensive global data on a wide range of gender-related indicators, covering demography, health, education and employment. | 联合国性别信息 |
+| BITFINEX | Bitfinex is a trading platform for Bitcoin, Litecoin and Darkcoin with many advanced features including margin trading, exchange and peer to peer margin funding. | Bitfinex数据 |
+| UGHG | This database offers comprehensive global data on anthropogenic emissions of the six principal greenhouse gases. Data goes back to 1990. | 联合国温室气体清单 |
+| UIST | This database offers global data on industrial development indicators, including output, employees, wages, value added for a wide range of industries. | 联合国工业发展组织数据 |
+| PRAGUESE | Price index data from the Prague Stock Exchange. | 布拉格证券交易所数据 |
+| PFTS | Index data from the PFTS Stock Exchange, the largest marketplace in Ukraine. | PFTS证券交易所(乌克兰)数据 |
+| WARSAWSE | WIG20 index has been calculated since April 16, 1994 based on the value of portfolio with shares in 20 major and most liquid companies in the WSE Main List. | 华沙证券交易所数据 |
+| TUNISSE | The main reference index of Tunis Stock Exchange. | 突尼斯证券交易所数据 |
+| FRKC | FRKC is the regional central bank for the 10th District of the Federal Reserve, publishing data on banking in mostly agricultural transactions. | 堪萨斯城联邦储备银行数据 |
+| UENV | This database offers global data on water and waste related indicators, including fresh water supply and precipitation, and generation and collection of waste. | 联合国环境统计数据 |
+| NSE | Stock and index data from the National Stock Exchange of India. | 印度国家证券交易所数据 |
+| UFAO | This database offers global food and agricultural data, covering crop production, fertilizer consumption, use of land for agriculture, and livestock. | 联合国粮食和农业数据 |
+| TAIFEX | Index and bond futures from TAIFEX, with history spanning over a decade for select futures. | 台湾期货交易所数据 |
+| GDAX | GDAX is the world’s most popular place to buy and sell bitcoin. | GDAX(全球数字资产交易所)数据 |
+| ARES | ARES protects investors, contributes to development of the real estate securitization product market, and facilitates expansion of the real estate investment market. | 房地产证券化协会数据 |
+| SHADOWS | This dataset contains the three major indicators from the Wu-Xia papers which serve to identify the shadow rates on all three major banks. | 影子联邦基金利率模型数据 |
+| NAAIM | The NAAIM Exposure Index represents the average exposure to US Equity markets reported by NAAIM members. | 全国积极投资管理者协会头寸指数 |
+| CBRT | CBRT is responsible for taking measures to sustain the stability of the financial system in Turkey. | 土耳其共和国中央银行数据 |
+| CEGH | No description for this database yet. | 中欧天然气中心数据 |
+| FINRA | Financial Industry Regulatory Authority provides short interest data on securities firms and exchange markets. | 美国金融业监管局数据 |
+| NASDAQOMX | Over 35,000 global indexes published by NASDAQ OMX including Global Equity, Fixed Income, Dividend, Green, Nordic, Sharia and more. Daily data. | 纳斯达克OMX全球指数数据 |
+| EURONEXT | Historical stock data from Euronext, the largest European exchange. | 泛欧证券交易所数据 |
+| UICT | This database offers comprehensive global data on information and communication technology, including telephone, cellular and internet usage for all countries. | 联合国信息和通信技术数据 |
+| USAID | US Agency for International Development provides a complete historical record of all foreign assistance provided by the United States to the rest of the world. | 美国国际开发署数据 |
+| ZAGREBSE | Croatia's only stock exchange. It publishes data on the performance of its stock and bond indexes. | 萨格勒布证券交易所数据 |
+| QUITOSE | The indexes of the national Stock Exchange of Ecuador. | 基多证券交易所(厄瓜多尔)数据 |
+| ECBCS | Data in this database is derived from harmonized surveys for different sectors of the economies in the European Union (EU) and in the EU applicant countries. | 欧盟委员会商业和消费者调查 |
+| PSE | This database describes the distribution of top incomes in a growing number of countries. Numbers are derived using tax data. | 巴黎经济学院数据 |
+| MALTASE | The Malta Stock Exchange carries out the role of providing a structure for admission of financial instruments to its recognised lists which may subsequently be traded on a regulated, transparent and orderly market place (secondary market).The main participants in the market are Issuers, Stock Exchange Members (stockbrokers), and the investors in general. | 马耳他证券交易所数据 |
+| GPP | No description for this database yet. | 全球石油价格 |
+| PPE | No description for this database yet. | 波兰电力交易所(TGE)数据 |
+| UKONS | Data on employment, investment, housing, household expenditure, national accounts, and many other socioeconomic indicators in the United Kingdom. | 英国国家统计局数据 |
+| NCDEX | A professionally managed on-line multi-commodity exchange in India | 国家商品及衍生品交易所(印度)数据 |
+| WSE | No description for this database yet. | 华沙证券交易所(GPW)数据 |
+| TFX | The Tokyo Financial Exchange is a futures exchange that primary deals in financial instruments markets that handle securities and market derivatives. | 东京金融交易所数据 |
+| WGFD | Data on financial system characteristics, including measures of size, use, access to, efficiency, and stability of financial institutions and markets. | 世界银行全球金融发展数据 |
+| CEPEA | CEPEA is an economic research center at the University of Sao Paulo focusing on agribusiness issues, publishing price indices for commodities in Brazil. | 应用经济学应用研究中心(巴西)数据 |
+| SBJ | A Japanese government statistical agency that provides statistics related to employment and the labour force. | 日本统计局数据 |
+| WGEM | Data on global economic developments, with coverage of high-income, as well as developing countries. | 世界银行全球经济监测 |
+| WGDF | Data on financial system characteristics, including measures of size, use, access to, efficiency, and stability of financial institutions and markets. | 世界银行全球发展金融 |
+| WWDI | Most current and accurate development indicators, compiled from officially-recognized international sources. | 世界银行世界发展指标 |
+| WESV | Company-level private sector data, covering business topics including finance, corruption, infrastructure, crime, competition, and performance measures. | 世界银行企业调查 |
+| CHRIS | Continuous contracts for all 600 futures on Quandl. Built on top of raw data from CME, ICE, LIFFE etc. Curated by the Quandl community. 50 years history. | 维基连续期货 |
+| WDBU | Data on business regulations and their enforcement for member countries and selected cities at the subnational and regional level. | 世界银行存续商业数据 |
+| OSE | The second largest securities exchange in Japan. Unlike the TSE, OSE is strongest in derivatives trading, the majority of futures and options in Japan. | 大阪证券交易所数据 |
+| RFSS | The Russian governmental statistical agency that publishes social, economic, and demographic statistics for Russia at the national and local levels. | 俄罗斯联邦统计局数据 |
+| EUREX | Index, rate, agriculture and energy futures from EUREX, Europe's largest futures exchange, with history spanning a decade for select futures. | 欧洲期货交易所数据 |
+| WMDG | Data drawn from the World Development Indicators, reorganized according to the goals and targets of the Millennium Development Goals (MDGs). | 世界银行千年发展目标数据 |
+| ZILLOW | Home prices and rents by size, type and tier; housing supply, demand and sales; sliced by zip code, neighbourhood, city, metro area, county and state. | Zillow房地产研究 |
+| WPOV | Indicators on poverty headcount ratio, poverty gap, and number of poor at both international and national poverty lines. | 世界银行贫困统计 |
+| EUREKA | A research company focused on hedge funds and other alternative investment funds. It publishes data on the performances of hedge funds. | Eurekahedge数据 |
+| MOFJ | Japanese government bond interest rate data, published daily by the Ministry of Finance. | 日本财务省数据 |
+| PIKETTY | Data on Income and Wealth from "Capital in the 21st Century", Harvard University Press 2014. | Thomas Piketty数据 |
+| PSX | Daily closing stock prices from the Pakistan Stock Exchange. | 巴基斯坦证交所数据 |
+| SGX | Asian securities and derivatives exchange that trades in equities for many large Singaporean and other Asian companies. Listed on its own exchange. | 新加坡交易所数据 |
+| UIFS | This database offers comprehensive data on international financial indicators, such as average earnings, bond yields, government revenues and expenditures. | 联合国国际金融统计 |
+| UINC | This database offers global data on production of industrial commodities, such as ores and minerals, food products, transportable goods, and metal products. | 联合国工业商品数据 |
+| INSEE | INSEE is the national statistical agency of France. It collects data on France's economy and society, such as socioeconomic indicators and national accounts. | 国家统计和经济研究所(法国)数据 |
+| SNB | Central bank responsible for monetary policy and currency. Data on international accounts, interest rates, money supply, and other macroeconomic indicators. | 瑞士国家银行数据 |
+| ODE | A non-profit commodity exchange in the Kansai region of Japan that trades in seven key agricultural commodities. | 大阪道岛商品交易所数据 |
+| WGEN | Data describing gender differences in earnings, types of jobs, sectors of work, farmer productivity, and entrepreneurs’ firm sizes and profits. | 世界银行性别统计 |
+| WHNP | Key health, nutrition and population statistics. | 世界银行健康营养与人口统计 |
+| WIDA | Data on progress on aggregate outcomes for IDA (International Development Association) countries for selected indicators. | 世界银行国际发展协会 |
+| ECMCI | Updated monthly, this database provides monetary conditions index values in the Euro zone. History goes back to 1999. | 欧盟委员会货币状况指数 |
+| NBSC | Statistics of China relating to finance, industry, trade, agriculture, real estate, and transportation. | 中国国家统计局数据 |
+| MAS | No description for this database yet. | 新加坡金融管理局数据 |
+| MGEX | A marketplace of futures and options contracts for regional commodities that facilitates trade of agricultural indexes. | 明尼阿波利斯谷物交易所数据 |
+| WWGI | Data on aggregate and individual governance indicators for six dimensions of governance. | 世界银行全球治理指标 |
+| ISM | ISM promotes supply-chain management practices and publishes data on production and supply chains, new orders, inventories, and capital expenditures. | 供应管理研究所 |
+| PERTH | The Perth Mint’s highs, lows and averages of interest rates and commodities prices, updated on a monthly basis. | 珀斯铸币厂数据 |
+| UKR | No description for this database yet. | 乌克兰交易所数据 |
+| FRBNY | The FRBNY is the largest regional central bank in the US. Sets monetary policy for New York, most of Connecticut and New Jersey, and some territories. | 纽约联邦储备银行数据 |
+| FRBP | The FRBP is a regional central bank for the Federal Reserve. It publishes data on business confidence indexes, GDP, consumption, and other economic indicators. | 费城联邦储备银行数据 |
+| FMSTREAS | The monthly receipts/outlays and deficit/surplus of the United States of America. | 美国财政部 - 财务管理处数据 |
+| EIA | US national and state data on production, consumption and other indicators on all major energy products, such as electricity, coal, natural gas and petroleum. | 美国能源信息管理局数据 |
+| SOCSEC | Provides data on the US social security program, particularly demographics of beneficiaries; disabled, elderly, and survivors. | 美国社会保障局数据 |
+| TFGRAIN | Cash price of corn and soybeans including basis to front month futures contract. | 顶级飞行谷物合作社数据 |
+| IRPR | Puerto Rico Institute of Statistics statistics on manufacturing. | 波多黎各统计研究所数据 |
+| BCHAIN | Blockchain is a website that publishes data related to Bitcoin, updated daily. | blockchain.com数据 |
+| BITCOINWATCH | Bitcoin mining statistics. | Bitcoin Watch数据 |
+| ODA | IMF primary commodity prices and world economic outlook data, published by Open Data for Africa. Excellent cross-country macroeconomic data. | 国际货币基金组织跨国宏观经济统计 |
+| WADI | A collection of development indicators on Africa, including national, regional and global estimates. | 世界银行非洲发展指标 |
+| WEDU | Internationally comparable indicators on education access, progression, completion, literacy, teachers, population, and expenditures. | 世界银行教育统计 |
+| WGLF | Indicators of financial inclusion measures on how people save, borrow, make payments and manage risk. | 世界银行全球Findex(全球金融包容性数据库) |
+| WWID | The World Wealth and Income Database aims to provide open and convenient access to the most extensive available database on the historical evolution of the world distribution of income and wealth, both within countries and between countries. | 世界财富和收入数据库 |
+| BTER | Historical exchange rate data for crypto currencies. | 比特儿数据 |
+| BP | BP is a large energy producer and distributor. It provides data on energy production and consumption in individual countries and larger subregions. | BP能源生产和消费数据 |
+| AMFI | This database represents fund information from The Association of Mutual Funds in India. | 印度共同基金协会数据 |
+| BOC | Economic, financial and banking data for Canada. Includes interest rates, inflation, national accounts and more. Daily updates. | 加拿大银行统计数据库 |
+| BLSE | US national and state-level employment and unemployment statistics, published by the Bureau of Labor Statistics. | 美国劳工统计局就业与失业统计 |
+| BLSI | US national and state-level inflation data, published by the Bureau of Labor Statistics. | 美国劳工统计局通货膨胀和价格统计 |
+| BITAL | This database provides data on stock future contracts from the Borsa Italiana, now part of London Stock Exchange Group. | 意大利证交所数据 |
+| BLSB | US work stoppage statistics, published by the Bureau of Labor Statistics. | 美国劳工统计局薪酬福利统计 |
+| ECB | The central bank for the European Union oversees monetary policy and the Euro, and provides data on related macroeconomic variables. | 欧洲中央银行数据 |
+| BOJ | | 日本银行数据 |
+| BOF | The Banque de France is responsible for monetary policy through policies of the European System of Central Banks and providing data on key economic indictors. | 法国银行数据 |
+| LPPM | Price data on the market-clearing level for Palladium and Platinum around the world. | 白金和钯价格数据 |
+| JOHNMATT | Current and historical data on platinum group metals such as prices, supply, and demand. | 稀有金属价格数据 |
+| NAHB | Housing and economic indices for the United States. | 美国住房指数 |
+| RATEINF | Inflation Rates and the Consumer Price Index CPI for Argentina, Australia, Canada, Germany, Euro area, France, Italy, Japan, New Zealand and more. | 通货膨胀率 |
+| RENCAP | Data on the IPO market in the United States. | IPO数据 |
+| ML | Merrill Lynch, a major U.S. bank, publishes data on yield rates for corporate bonds in different regions. | 公司债券收益率数据 |
+| MULTPL | No description for this database yet. | S&P 500 |
+| RICI | Composite, USD based, total return index, representing the value of a basket of commodities consumed in the global economy. | 商品指数 |
+| AAII | American Association of Individual Investor’s sentiment data. | 投资者情绪 |
+| WORLDAL | World Aluminium capacity and production in thousand metric tonnes. | 铝价格 |
+| WGC | The World Gold Council is a market development organization for the gold industry. It publishes data on gold prices in different currencies. | 黄金价格 |
+| MX | Montreal Exchange is a derivatives exchange that trades in futures contracts and options for equities, indices, currencies, ETFs, energy, and interest rates. | 加拿大期货数据 |
+| UMICH | The University of Michigan’s consumer survey - data points for the most recent 6 months are unofficial; they are sourced from articles in the Wall Street Journal. | 消费者情绪 |
+| BUCHARESTSE | The Bucharest Stock Exchange publishes data on it activity in equity, rights, bonds, fund units, structured products, and futures contracts. | 布加勒斯特证券交易所数据 |
+| BSE | End of day prices, indices, and additional information for companies trading on the Bombay Stock Exchange in India. | 孟买证券交易所数据 |
+| CFTC | Weekly Commitment of Traders and Concentration Ratios. Reports for futures positions, as well as futures plus options positions. New and legacy formats. | 商品期货交易委员会报告 |
+| ACC | Chemical Activity Barometer (CAB) published by the American Chemistry Council (ACC). The CAB is an economic indicator that helps anticipate peaks and troughs in the overall US economy and highlights potential trends in other industries in the US. | 美国化学理事会数据 |
+| AMECO | Annual macro-economic database of the European Commission's Directorate General for Economic and Financial Affairs (DG ECFIN). | 欧盟委员会年度宏观经济数据库 |
+| MORTGAGEX | Historical housing data on ARM indexes. | 可调利率抵押贷款指数 |
+| BUCHARESTSE | The Bucharest Stock Exchange publishes data on it activity in equity, rights, bonds, fund units, structured products, and futures contracts. | 布加勒斯特证券交易所数据 |
+| AMECO | Annual macro-economic database of the European Commission's Directorate General for Economic and Financial Affairs (DG ECFIN). | 欧盟委员会年度宏观经济数据库 |
+| ACC | Chemical Activity Barometer (CAB) published by the American Chemistry Council (ACC). The CAB is an economic indicator that helps anticipate peaks and troughs in the overall US economy and highlights potential trends in other industries in the US. | 美国化学理事会数据 |
+| ABMI | Indicators of Chinese and Japanese bond markets, such as size and composition, market liquidity, yield returns, and volatility. | 亚洲债券市场计划 |
+| BITAL | This database provides data on stock future contracts from the Borsa Italiana, now part of London Stock Exchange Group. | |
+| BANKRUSSIA | Primary indicators from the Bank of Russia, including data on the banking sector, money supply, financial markets and macroeconomic statistical data. | 俄罗斯银行数据 |
+| FMAC | Data from Freddie Mac’s Primary Mortgage Market Survey and other region specific historical mortgage rates. | 房地美数据 |
+| BOC | Economic, financial and banking data for Canada. Includes interest rates, inflation, national accounts and more. Daily updates. | 加拿大银行统计数据库 |
+| BSE | End of day prices, indices, and additional information for companies trading on the Bombay Stock Exchange in India. | 孟买证券交易所数据 |
\ No newline at end of file
From 00f8d9353d6a810d2ff430ae8adff2bbf9766d15 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:05 +0800
Subject: [PATCH 080/421] New translations development-golang-client-zh.md
(Chinese Simplified)
---
.../bck/development-golang-client-zh.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/development-golang-client-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/development-golang-client-zh.md b/website/translated_docs/zh-CN/version-0.5.0/bck/development-golang-client-zh.md
new file mode 100644
index 0000000..12dd894
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/development-golang-client-zh.md
@@ -0,0 +1,108 @@
+---
+id: version-0.5.0-golang-client
+title: 使用 Golang 驱动访问数据库
+original_id: golang-client
+---
+本文档介绍 CovenantSQL 客户端的使用方式。客户端用来创建、查询、更新和删除 SQLChain 以及绑定的数据库。
+
+## 开始之前
+
+确保 `$GOPATH/bin` 目录在环境变量 `$PATH` 中,执行以下命令
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+然后在你的 go 代码中 import 第一个 `client` 包。
+
+## 初始化一个 CovenantSQL 客户端
+
+首先需要一个 config 文件和 master key 来初始化。master key 用来加密解密本地密钥对。以下是如何用一个自定义 master key 来生成默认的 config 文件:
+
+### 生成默认的配置文件
+
+运行以下 `cql-utils` 命令,输入 master key(类似密码)来生成本地密钥对。等待几十秒,会在 `~/.cql` 文件夹中,生成一个私钥文件和一个名为 `config.yaml` 的配置文件。
+
+```bash
+./cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: ~/.cql/private.key
+Public key's hex: 025abec9b0072615170f4acf4a2fa1162a13864bb66bc3f140b29f6bf50ceafc75
+Generated key pair.
+Generating nonce...
+INFO[0005] cpu: 1
+INFO[0005] position: 0, shift: 0x0, i: 0
+nonce: {{1450338416 0 0 0} 26 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514}
+node id: 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+有了配置文件之后,可以通过以下 go 代码来初始化 CovenantSQL 客户端:
+
+```go
+client.Init(configFile, masterKey)
+```
+
+## 客户端使用方式
+
+### 创建一个 SQLChain 数据库
+
+创建 SQLChain 数据库需要指明需要几个节点(nodeCount变量):
+
+```go
+var (
+ dsn string
+ meta client.ResourceMeta
+)
+meta.Node = uint16(nodeCount)
+dsn, err = client.Create(meta)
+// process err
+```
+
+创建完毕会返回一个 dsn 字符串,用来访问这个数据库。
+
+### 查询和执行
+
+拿到 dsn 字符串后,可以通过以下代码在 SQLChain 中执行 SQL 语句:
+
+```go
+
db, err := sql.Open("covenantsql", dsn)
+ // process err
+
+ _, err = db.Exec("CREATE TABLE testSimple ( column int );")
+ // process err
+
+ _, err = db.Exec("INSERT INTO testSimple VALUES(?);", 42)
+ // process err
+
+ row := db.QueryRow("SELECT column FROM testSimple LIMIT 1;")
+
+ var result int
+ err = row.Scan(&result)
+ // process err
+ fmt.Printf("SELECT column FROM testSimple LIMIT 1; result %d\n", result)
+
+ err = db.Close()
+ // process err
+
+```
+
+用法和其他 go sql driver 一致。
+
+### 删除数据库
+
+使用 dsn 来删除数据库:
+
+```go
+ err = client.Drop(dsn)
+ // process err
+```
+
+### 完整示例
+
+在以下目录中有一个简单示例和复杂示例可以参考 [示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
\ No newline at end of file
From 99f29421a30e706eed61709e880b713b99fb8f65 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:06 +0800
Subject: [PATCH 081/421] New translations usecase.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.2.0/usecase.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/usecase.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/usecase.md b/website/translated_docs/zh-CN/version-0.2.0/usecase.md
new file mode 100644
index 0000000..690cf7e
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/usecase.md
@@ -0,0 +1,6 @@
+---
+id: version-0.2.0-usecase
+title: 使用案例
+original_id: usecase
+---
+## TBD
\ No newline at end of file
From da97978a2e1f40c5b6f0147cac3cd08e5cbd9990 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:08 +0800
Subject: [PATCH 082/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/quickstart.md | 148 ++++++++++++++++++
1 file changed, 148 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/quickstart.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/quickstart.md b/website/translated_docs/zh-CN/version-0.2.0/quickstart.md
new file mode 100644
index 0000000..fffaf95
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/quickstart.md
@@ -0,0 +1,148 @@
+---
+id: version-0.2.0-quickstart
+title: '🌏 TestNet 快速开始'
+original_id: quickstart
+---
+## CovenantSQL 工具包
+
+### 工具包简介
+
+请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+
+例如,您使用的是:
+
+- MacOS 平台请下载:[**CovenantSQL-v0.2.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.2.0/CovenantSQL-v0.2.0.osx-amd64.tar.gz)
+- Linux 平台请下载:[**CovenantSQL-v0.2.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.2.0/CovenantSQL-v0.2.0.linux-amd64.tar.gz)
+- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+解压之后,你将得到以下命令行工具,包括:`cql`、`cql-utils` 等。
+
+| 工具名 | 介绍 |
+| ---------- | --------------------------------------------------- |
+| cql | CovenantSQL 的客户端,类似 mysql 命令,用于执行 SQL |
+| cql-utils | CovenantSQL 工具箱,用于和主链交互 |
+| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
+| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+
+### 测试网快速接入
+
+目前,我们已经发布了测试网 v0.2.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
+
+测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) ,或者使用以下命令:
+
+```bash
+mkdir conf
+wget https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml -O conf/config.yaml
+wget https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key -O conf/private.key
+chmod 600 conf/private.key
+```
+
+**测试网注**:
+
+> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+>
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
+
+## 创建并访问 CovenantSQL 数据库
+
+### 创建数据库
+
+```shell
+./cql -config conf/config.yaml -create 1
+```
+
+输出:
+
+ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+
+> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+>
+> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
+> 2. 数据库创建请求在 其它出块节点 进行验证和确认
+> 3. SQLChain 的符合条件的 Miner 收到数据库任务
+> 4. SQLChian 组建 Kayak 数据库集群
+> 5. 所有 Miner 准备就绪等待请求
+
+### 访问数据库
+
+```shell
+./cql -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 数据库SDK
+
+- [Golang开发指引](./development)
+
+## SQLChain区块浏览器
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
+
+> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+- `conf/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `conf/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+```toml
+wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+```
+
+你可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入你生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为你的钱包充值。有任何问题请来这里讨论:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 7e1f903d3edd109bfec748192802d8a73791693d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:09 +0800
Subject: [PATCH 083/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/deployment.md | 156 ++++++++++++++++++
1 file changed, 156 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/deployment.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/deployment.md b/website/translated_docs/zh-CN/version-0.1.0/deployment.md
new file mode 100644
index 0000000..524f5aa
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/deployment.md
@@ -0,0 +1,156 @@
+---
+id: version-0.1.0-deployment
+title: '🐳 Docker 一键部署'
+original_id: deployment
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 下载项目
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+存为环境变量
+
+### 启动 Docker 容器
+
+现在有两种方式启动 CovenantSQL 容器:
+
+1. 使用 Docker Hub 上的公共镜像
+2. 构建 CovenantSQL Docker 镜像
+
+> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+
+#### 1. 使用 Docker Hub 上的公共镜像
+
+然后直接启动:
+
+```bash
+make start
+```
+
+#### 2. 构建 CovenantSQL Docker 镜像
+
+执行以下的命令在本地运行 CovenantSQL
+
+```bash
+make docker # 从头编译新的镜像
+make start
+```
+
+### 检查运行状态
+
+检查容器状态:
+
+```bash
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+### SQLChain Explorer
+
+我们在`127.0.0.1:11108`端口提供了一个 SQLChain 的 Explorer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
\ No newline at end of file
From ffa03d441ad4de0ccdd3d91f306041ee16fc7b60 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:10 +0800
Subject: [PATCH 084/421] New translations api.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.2.0/api.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/api.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/api.md b/website/translated_docs/zh-CN/version-0.2.0/api.md
new file mode 100644
index 0000000..390b56c
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/api.md
@@ -0,0 +1,6 @@
+---
+id: version-0.2.0-api
+title: '👩🏻💻 CovenantSQL API'
+original_id: api
+---
+## TBD
\ No newline at end of file
From 90fa6797ec008376b08e64c09a83fb11ea26f30d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:12 +0800
Subject: [PATCH 085/421] New translations nav.md (Chinese Simplified)
---
.../zh-CN/version-0.2.0/nav.md | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/nav.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/nav.md b/website/translated_docs/zh-CN/version-0.2.0/nav.md
new file mode 100644
index 0000000..f94a14a
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/nav.md
@@ -0,0 +1,22 @@
+---
+id: version-0.2.0-nav
+title: '📖 使用导航'
+original_id: nav
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
+
+## 使用 CovenantSQL 开发应用
+
+[📦 CovenantSQL SDK](./development)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 40b4b0e9cc125fd71edde410ae1ae9fbc6f90866 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:13 +0800
Subject: [PATCH 086/421] New translations getting-started-testnet-zh.md
(Chinese Simplified)
---
.../bck/getting-started-testnet-zh.md | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-testnet-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-testnet-zh.md b/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-testnet-zh.md
new file mode 100644
index 0000000..78629bb
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-testnet-zh.md
@@ -0,0 +1,96 @@
+---
+id: version-0.5.0-testnet
+title: CovenantSQL 测试网快速入门
+original_id: testnet
+---
+[CovenantSQL](https://github.com/CovenantSQL/CovenantSQL/blob/develop/README-zh.md) 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+1. **SQL**: 支持 SQL-92 标准
+2. **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+3. **隐私**: 通过加密和授权许可进行访问
+4. **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## 0. 下载 CovenantSQL 工具
+
+在 [github](https://github.com/CovenantSQL/CovenantSQL/releases) 下载最新的发行版
+
+## 1. 用 `cql-utils` 生成配置文件访问测试网
+
+```bash
+$ cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: ~/.cql/private.key
+Public key's hex: 02296ea73240dcd69d2b3f1fb754c8debdf68c62147488abb10165428667ec8cbd
+Generated key pair.
+Generating nonce...
+nonce: {{731613648 0 0 0} 11 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9}
+node id: 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+## 2. 用私钥生成钱包地址
+
+私钥可以再上一步的 `~/.cql` 目录中找到,文件名为 `private.key`
+
+```bash
+$ cql-utils -tool addrgen -private ~/.cql/private.key
+Enter master key(default: ""):
+⏎
+wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+```
+
+上述 `4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9` 就是钱包地址
+
+## 3. 在水龙头(Faucet)获取 Particle(PTC)
+
+水龙头(Faucet)的地址为: [CovenantSQL 测试网 Particle(PTC) 水龙头](https://testnet.covenantsql.io/)。
+
+完成教程之后,用 `cql` 命令来检查钱包地址的余额(未加-config参数时,命令会自动找~/.cql目录的config.yaml文件):
+
+```bash
+$ cql -get-balance
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+当看到 **"stable coin balance is: 100"** 时,表明余额已经为 100。
+
+如果您需要更多的 PTC 作为长期测试使用,请联系 。
+
+对于有合作的商业伙伴,我们将直接提供 PTC 以供使用。
+
+## 4. 使用 `CLI` 创建数据库
+
+```bash
+$ cql -create 1
+INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+```
+
+第一行命令中的 `1` 表示申请几个矿工为你的数据库服务。`covenantsql://...` 开头的这个字符串就是创建的数据库访问地址,在 SDK 和 CLI 命令中都需要用此地址,在整个区块链中找到这个数据库。
+
+## 5. CLI 和 SDK 的详细文档
+
+创建好数据库后,您可以参考以下文档和示例,以便更快的使用CovenantSQL来开发应用。
+
+- [CLI 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/cmd/cql/README-zh.md)
+- [SDK 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/README-zh.md)
+- [SDK 示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+
+## 6. SQLChain 浏览器
+
+目前,测试网的数据库时不需要权限的。意味着您可以通过数据库的DSN(数据库访问地址),在[SQLChain 浏览器](https://explorer.dbhub.org)中拿到所有的修改历史和区块信息。
+
+更多的测试网技术支持,请访问:
+
+> [TestNet 发行日志](https://github.com/CovenantSQL/CovenantSQL/wiki/Release-Notes-zh)
\ No newline at end of file
From a6030e68e301e7dafb6197be25b6c74ae10ecca1 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:16 +0800
Subject: [PATCH 087/421] New translations getting-started-zh.md (Chinese
Simplified)
---
.../version-0.5.0/bck/getting-started-zh.md | 486 ++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-zh.md b/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-zh.md
new file mode 100644
index 0000000..ad9178a
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-zh.md
@@ -0,0 +1,486 @@
+---
+id: version-0.5.0-local-deployment
+title: CovenantSQL 综述
+original_id: local-deployment
+---
+# CovenantSQL 介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可变成 ĐApp
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是用户的钱包,那么 CovenantSQL 就是是用户的去中心化数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密 保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+# 安装 CovenantSQL 客户端
+
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+* [Go](./development-golang-client-zh.md)
+* [Java](https://github.com/CovenantSQL/covenant-connector)
+* [Python](https://github.com/CovenantSQL/python-driver)
+* [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+* `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+* `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+* [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
+
+# 部署 CovenantSQL
+
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+### SQLChain Observer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+# 使用 CovenantSQL 开发 App
+
+## Golang 使用 CovenantSQL
+
+#### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+#### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+#### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+#### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+#### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
+
+# CovenantSQL API
+
+# 常见问题解答
+
+补充
\ No newline at end of file
From 6213cff8dd717282574d8ad33115e863ba98cc3b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:17 +0800
Subject: [PATCH 088/421] New translations development-cmd-cql-utils-zh.md
(Chinese Simplified)
---
.../bck/development-cmd-cql-utils-zh.md | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-utils-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-utils-zh.md b/website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-utils-zh.md
new file mode 100644
index 0000000..ebd52dd
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-utils-zh.md
@@ -0,0 +1,41 @@
+---
+id: version-0.5.0-keygen
+title: 使用 cql-utils 生成密钥与钱包
+original_id: keygen
+---
+`cql-utils` 是 CovenantSQL 的一个命令行工具,具体用法如下。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 使用
+
+### 生成公私钥对
+
+ $ cql-utils -tool keygen
+ Enter master key(press Enter for default: ""):
+ ⏎
+ Private key file: private.key
+ Public key's hex: 03bc9e90e3301a2f5ae52bfa1f9e033cde81b6b6e7188b11831562bf5847bff4c0
+
+
+生成的 private.key 文件即是使用主密码加密过的私钥文件,而输出到屏幕上的字符串就是使用十六进制进行编码的公钥。
+
+### 使用私钥文件或公钥生成钱包地址
+
+ $ cql-utils -tool addrgen -private private.key
+ Enter master key(default: ""):
+ ⏎
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+ $ cql-utils -tool addrgen -public 02f2707c1c6955a9019cd9d02ade37b931fbfa286a1163dfc1de965ec01a5c4ff8
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+
+
+你可以通过指定私钥文件,或者把上述的公钥十六进制编码字符串作为命令行参数来直接生成钱包地址。
\ No newline at end of file
From 3daa5f82dbf2d79ad04c7a54cc6da2e4aeba9008 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:18 +0800
Subject: [PATCH 089/421] New translations getting-started-overview-zh.md
(Chinese Simplified)
---
.../bck/getting-started-overview-zh.md | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-overview-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-overview-zh.md b/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-overview-zh.md
new file mode 100644
index 0000000..956b8e5
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/getting-started-overview-zh.md
@@ -0,0 +1,63 @@
+---
+id: version-0.5.0-intro
+title: 简介
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+- **SQL**: 支持 SQL-92 标准
+- **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+- **隐私**: 通过加密和授权许可进行访问
+- **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信[在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+#### 一行代码接入区块链数据
+
+```go
+sql.Open("CovenantSQL", dbURI)
+```
+
+# #
+
+
+
+- 第一层: **全局共识层**(主链,架构图中的中间环):
+ - 整个网络中只有一个主链。
+ - 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+- 第二层: **SQL 共识层**(子链,架构图中的两边环):
+ - 每个数据库都有自己独立的子链。
+ - 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+- 第三层: **数据储存层**(支持 SQL-92 的数据库引擎):
+ - 每个数据库都有自己独立的分布式引擎。
+ - 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 9196b233cc8ddf9c31760fd44aa8582e0c9ab413 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:20 +0800
Subject: [PATCH 090/421] New translations development-cmd-cql-zh.md (Chinese
Simplified)
---
.../bck/development-cmd-cql-zh.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-zh.md b/website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-zh.md
new file mode 100644
index 0000000..a89f54d
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/bck/development-cmd-cql-zh.md
@@ -0,0 +1,77 @@
+---
+id: version-0.5.0-cql
+title: 使用命令行客户端 cql 创建数据库
+original_id: cql
+---
+本文档主要介绍 CovenantSQL 命令行客户端 `cql` 的使用。`cql` 是一个用于批量进行 SQLChain 上数据库的创建、查询、更新或删除操作的命令行工具。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 生成默认配置文件
+
+首先需要一个 config 文件和由你输入的主密码(master key)来初始化,其中主密码用来加密解密本地密钥对。使用 `cql-utils` 工具进行配置文件生成后,你可以在生成的配置文件目录下找到密钥文件。
+
+具体请参考: [cql-utils 使用文档](https://github.com/CovenantSQL/docs/tree/master/development-cmd-utils-zh.md#使用) 中配置文件及钱包地址生成相关章节。
+
+## 检查钱包余额
+
+使用 `cql` 命令来检查钱包余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000]
+### Public Key ###
+0388954cf083bb6bb2b9c7248849b57c76326296fcc0d69764fc61eedb5b8d820c
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+这里我们得到结果 **"stable coin balance is: 100"**。
+
+## 初始化一个 CovenantSQL 数据库
+
+准备好配置文件和主密码后就可以使用 `cql` 命令来创建数据库了,你的数据库 ID 将会输出到屏幕上:
+
+```bash
+# if a non-default password applied on master key, use `-password` to pass it
+$ cql -config conf/config.yaml -create 1
+INFO[0000]
+### Public Key ###
+039bc931161383c994ab9b81e95ddc1494b0efeb1cb735bb91e1043a1d6b98ebfd
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] the newly created database is: covenantsql://0e9103318821b027f35b96c4fd5562683543276b72c488966d616bfe0fe4d213 caller="main.go:297 main.main"
+```
+
+这里 `-create 1` 表示创建一个单节点的 SQLChain。
+
+```bash
+$ cql -config conf/config.yaml -dsn covenantsql://address
+```
+
+`address` 就是你的数据库 ID。
+
+`cql` 命令的详细使用帮助如下:
+
+```bash
+$ cql -help
+```
+
+## 使用 `cql`
+
+现在可以使用 `cql` 进行数据库操作了:
+
+```bash
+co:address=> show tables;
+```
\ No newline at end of file
From 0930f8e56c9c24c55d4f1d499bd41200cb1aeb15 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:21 +0800
Subject: [PATCH 091/421] New translations cql.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/cql.md | 144 ++++++++++++++++++
1 file changed, 144 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/cql.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/cql.md b/website/translated_docs/zh-CN/version-0.1.0/cql.md
new file mode 100644
index 0000000..49710cc
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/cql.md
@@ -0,0 +1,144 @@
+---
+id: version-0.1.0-cql
+title: '🖥️ CQL 命令行工具'
+original_id: cql
+---
+## 简介
+
+本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络。
+
+## 查询余额
+
+查询余额有两个命令:`cql -get-balance` 和 `cql -token-balance `。其中 `-get-balance` 将返回用户账户中 `Particle` 与 `Wave` 的数量,`-token-balance ` 将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+查看默认余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+ INFO[0000] Wave balance is: 10000000000000000000
+
+
+查看 Particle 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Particle
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+
+
+查看 Bitcoin 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Bitcoin
+```
+
+输出:
+
+ INFO[0000] Bitcoin balance is: 0
+
+
+## 转账
+
+转账操作使用 `cql -transfer` 并以 `json` 格式的转账信息为参数。
+
+```json
+{
+ "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount":"1000000 Particle" // 转账金额并带上单位
+}
+```
+
+其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
+
+转账 Particle:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+转账 Wave:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+```
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+查看余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 9999999999999000000
+ INFO[0000] Wave balance is: 9999999999999000000
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `-get-balance` 或者 `-token-balance ` 确定。
+
+## 数据库权限管理
+
+CovenantSQL 数据库有三类库级别权限:
+
+- `Admin`
+- `Write`
+- `Read`
+- `Void`
+
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin`, `Write` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql -update-perm` 并以 `json` 格式的权限信息为参数:
+
+```json
+{
+ "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm":"Write" // 权限内容
+}
+```
+
+增加写权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+吊销权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+
+为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
\ No newline at end of file
From de73b0e04e254e3c07ac1cf4b80aac6be853996e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:22 +0800
Subject: [PATCH 092/421] New translations development-cmd-cql-zh.md (Chinese
Simplified)
---
.../bck/development-cmd-cql-zh.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-zh.md b/website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-zh.md
new file mode 100644
index 0000000..d2fe9ab
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-zh.md
@@ -0,0 +1,77 @@
+---
+id: version-0.4.0-cql
+title: 使用命令行客户端 cql 创建数据库
+original_id: cql
+---
+本文档主要介绍 CovenantSQL 命令行客户端 `cql` 的使用。`cql` 是一个用于批量进行 SQLChain 上数据库的创建、查询、更新或删除操作的命令行工具。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 生成默认配置文件
+
+首先需要一个 config 文件和由你输入的主密码(master key)来初始化,其中主密码用来加密解密本地密钥对。使用 `cql-utils` 工具进行配置文件生成后,你可以在生成的配置文件目录下找到密钥文件。
+
+具体请参考: [cql-utils 使用文档](https://github.com/CovenantSQL/docs/tree/master/development-cmd-utils-zh.md#使用) 中配置文件及钱包地址生成相关章节。
+
+## 检查钱包余额
+
+使用 `cql` 命令来检查钱包余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000]
+### Public Key ###
+0388954cf083bb6bb2b9c7248849b57c76326296fcc0d69764fc61eedb5b8d820c
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+这里我们得到结果 **"stable coin balance is: 100"**。
+
+## 初始化一个 CovenantSQL 数据库
+
+准备好配置文件和主密码后就可以使用 `cql` 命令来创建数据库了,你的数据库 ID 将会输出到屏幕上:
+
+```bash
+# if a non-default password applied on master key, use `-password` to pass it
+$ cql -config conf/config.yaml -create 1
+INFO[0000]
+### Public Key ###
+039bc931161383c994ab9b81e95ddc1494b0efeb1cb735bb91e1043a1d6b98ebfd
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] the newly created database is: covenantsql://0e9103318821b027f35b96c4fd5562683543276b72c488966d616bfe0fe4d213 caller="main.go:297 main.main"
+```
+
+这里 `-create 1` 表示创建一个单节点的 SQLChain。
+
+```bash
+$ cql -config conf/config.yaml -dsn covenantsql://address
+```
+
+`address` 就是你的数据库 ID。
+
+`cql` 命令的详细使用帮助如下:
+
+```bash
+$ cql -help
+```
+
+## 使用 `cql`
+
+现在可以使用 `cql` 进行数据库操作了:
+
+```bash
+co:address=> show tables;
+```
\ No newline at end of file
From f7817ec213d5895a2db269d1f63b05e281602b18 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:24 +0800
Subject: [PATCH 093/421] New translations usecase.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.1.0/usecase.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/usecase.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/usecase.md b/website/translated_docs/zh-CN/version-0.1.0/usecase.md
new file mode 100644
index 0000000..f455dcb
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/usecase.md
@@ -0,0 +1,6 @@
+---
+id: version-0.1.0-usecase
+title: 使用案例
+original_id: usecase
+---
+## TBD
\ No newline at end of file
From 6566cb29bac59b985010350cdc7781d85d855d04 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:25 +0800
Subject: [PATCH 094/421] New translations getting-started-overview-zh.md
(Chinese Simplified)
---
.../getting-started-overview-zh.md | 122 ++++++++++++++++++
1 file changed, 122 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/getting-started-overview-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/getting-started-overview-zh.md b/website/translated_docs/zh-CN/version-0.0.6/getting-started-overview-zh.md
new file mode 100644
index 0000000..c170277
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/getting-started-overview-zh.md
@@ -0,0 +1,122 @@
+---
+id: version-0.0.6-intro
+title: 简介
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+- **SQL**: 支持 SQL-92 标准
+- **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+- **隐私**: 通过加密和授权许可进行访问
+- **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信[在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+#### 一行代码接入区块链数据
+
+```go
+sql.Open("CovenantSQL", dbURI)
+```
+
+# #
+
+
+
+- 第一层: **全局共识层**(主链,架构图中的中间环):
+ - 整个网络中只有一个主链。
+ - 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+- 第二层: **SQL 共识层**(子链,架构图中的两边环):
+ - 每个数据库都有自己独立的子链。
+ - 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+- 第三层: **数据储存层**(支持 SQL-92 的数据库引擎):
+ - 每个数据库都有自己独立的分布式引擎。
+ - 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+## 文章
+
+团队成员发表过的论文
+
+- [迅雷水晶:一种新颖的基于众筹的内容分发平台](https://dl.acm.org/citation.cfm?id=2736085)
+- [基于众筹的视频服务系统性能分析](https://ieeexplore.ieee.org/abstract/document/7114727/)
+- [迅雷水晶性能分析:基于众筹的视频分发平台](https://ieeexplore.ieee.org/abstract/document/7762143/)
+
+这些启发了我们:
+
+- [比特币:P2P电子现金系统](https://bitcoin.org/bitcoin.pdf)
+- [S/Kademlia](https://github.com/thunderdb/research/wiki/Secure-Kademlia)
+ - [S/Kademlia: 一种针对密钥的实用方法](https://ieeexplore.ieee.org/document/4447808/)
+- [vSQL: 验证动态外包数据库上的任意SQL查询](https://ieeexplore.ieee.org/abstract/document/7958614/)
+
+## Libs
+
+### 网络栈
+
+[DH-RPC](rpc/) := TLS - Cert + DHT
+
+| 层 | 应用 |
+|:------ |:------------------------------------------------------------------------------------------------------------:|
+| 远程调用协议 | `net/rpc` |
+| 寻址 | [**C**onsistent **S**ecure **DHT**](https://godoc.org/github.com/CovenantSQL/CovenantSQL/consistent) |
+| 会话池 | Session Pool |
+| 多路复用 | [smux](https://github.com/xtaci/smux) |
+| 传输安全 | [**E**nhanced **TLS**](https://github.com/CovenantSQL/research/wiki/ETLS(Enhanced-Transport-Layer-Security)) |
+| 网络 | TCP or KCP for optional later |
+
+#### 测试工具
+
+- [全球网络拓扑模拟器(GNTE)](https://github.com/CovenantSQL/GNTE) 用于网络模拟
+- [线性一致性测试](https://github.com/anishathalye/porcupine)
+
+#### 接口
+
+CovenantSQL仍在建设中,测试网已经发布,[尝试一下](https://testnet.covenantsql.io/).
+
+- [Golang](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+- [Java](https://github.com/CovenantSQL/covenant-connector/)
+- [NodeJS](https://github.com/CovenantSQL/node-covenantsql/)
+- [Python](https://github.com/CovenantSQL/python-driver/)
+- Coding for more……
+
+关注我们或[](https://twitter.com/intent/follow?screen_name=CovenantLabs) 保持更新
+
+## 测试网
+
+- [快捷入口](https://testnet.covenantsql.io/quickstart)
+- [测试网水龙头](https://testnet.covenantsql.io/)
+
+## 联系我们
+
+- [邮箱地址](mailto:webmaster@covenantsql.io)
+- [ ](https://twitter.com/intent/follow?screen_name=CovenantLabs)
+
+- [](https://gitter.im/CovenantSQL/CovenantSQL?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
\ No newline at end of file
From 1a50aa56caa736dc2eecc9ad66f4a54f4c0f207d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:26 +0800
Subject: [PATCH 095/421] New translations development-cmd-cql-zh.md (Chinese
Simplified)
---
.../bck/development-cmd-cql-zh.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-zh.md b/website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-zh.md
new file mode 100644
index 0000000..3bde205
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-zh.md
@@ -0,0 +1,77 @@
+---
+id: version-0.0.6-cql
+title: 使用命令行客户端 cql 创建数据库
+original_id: cql
+---
+本文档主要介绍 CovenantSQL 命令行客户端 `cql` 的使用。`cql` 是一个用于批量进行 SQLChain 上数据库的创建、查询、更新或删除操作的命令行工具。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 生成默认配置文件
+
+首先需要一个 config 文件和由你输入的主密码(master key)来初始化,其中主密码用来加密解密本地密钥对。使用 `cql-utils` 工具进行配置文件生成后,你可以在生成的配置文件目录下找到密钥文件。
+
+具体请参考: [cql-utils 使用文档](https://github.com/CovenantSQL/docs/tree/master/development-cmd-utils-zh.md#使用) 中配置文件及钱包地址生成相关章节。
+
+## 检查钱包余额
+
+使用 `cql` 命令来检查钱包余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000]
+### Public Key ###
+0388954cf083bb6bb2b9c7248849b57c76326296fcc0d69764fc61eedb5b8d820c
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+这里我们得到结果 **"stable coin balance is: 100"**。
+
+## 初始化一个 CovenantSQL 数据库
+
+准备好配置文件和主密码后就可以使用 `cql` 命令来创建数据库了,你的数据库 ID 将会输出到屏幕上:
+
+```bash
+# if a non-default password applied on master key, use `-password` to pass it
+$ cql -config conf/config.yaml -create 1
+INFO[0000]
+### Public Key ###
+039bc931161383c994ab9b81e95ddc1494b0efeb1cb735bb91e1043a1d6b98ebfd
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] the newly created database is: covenantsql://0e9103318821b027f35b96c4fd5562683543276b72c488966d616bfe0fe4d213 caller="main.go:297 main.main"
+```
+
+这里 `-create 1` 表示创建一个单节点的 SQLChain。
+
+```bash
+$ cql -config conf/config.yaml -dsn covenantsql://address
+```
+
+`address` 就是你的数据库 ID。
+
+`cql` 命令的详细使用帮助如下:
+
+```bash
+$ cql -help
+```
+
+## 使用 `cql`
+
+现在可以使用 `cql` 进行数据库操作了:
+
+```bash
+co:address=> show tables;
+```
\ No newline at end of file
From 396995abadf8ae7c55fba1fc3ac52d01e4cffd53 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:28 +0800
Subject: [PATCH 096/421] New translations development-golang-client-zh.md
(Chinese Simplified)
---
.../bck/development-golang-client-zh.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/development-golang-client-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/development-golang-client-zh.md b/website/translated_docs/zh-CN/version-0.0.6/bck/development-golang-client-zh.md
new file mode 100644
index 0000000..0089def
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/development-golang-client-zh.md
@@ -0,0 +1,108 @@
+---
+id: version-0.0.6-golang-client
+title: 使用 Golang 驱动访问数据库
+original_id: golang-client
+---
+本文档介绍 CovenantSQL 客户端的使用方式。客户端用来创建、查询、更新和删除 SQLChain 以及绑定的数据库。
+
+## 开始之前
+
+确保 `$GOPATH/bin` 目录在环境变量 `$PATH` 中,执行以下命令
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+然后在你的 go 代码中 import 第一个 `client` 包。
+
+## 初始化一个 CovenantSQL 客户端
+
+首先需要一个 config 文件和 master key 来初始化。master key 用来加密解密本地密钥对。以下是如何用一个自定义 master key 来生成默认的 config 文件:
+
+### 生成默认的配置文件
+
+运行以下 `cql-utils` 命令,输入 master key(类似密码)来生成本地密钥对。等待几十秒,会在 `conf` 文件夹中,生成一个私钥文件和一个名为 `config.yaml` 的配置文件。
+
+```bash
+$ cql-utils -tool confgen -root conf
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 025abec9b0072615170f4acf4a2fa1162a13864bb66bc3f140b29f6bf50ceafc75
+Generated key pair.
+Generating nonce...
+INFO[0005] cpu: 1
+INFO[0005] position: 0, shift: 0x0, i: 0
+nonce: {{1450338416 0 0 0} 26 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514}
+node id: 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+有了配置文件之后,可以通过以下 go 代码来初始化 CovenantSQL 客户端:
+
+```go
+client.Init(configFile, masterKey)
+```
+
+## 客户端使用方式
+
+### 创建一个 SQLChain 数据库
+
+创建 SQLChain 数据库需要指明需要几个节点(nodeCount变量):
+
+```go
+var (
+ dsn string
+ meta client.ResourceMeta
+)
+meta.Node = uint16(nodeCount)
+dsn, err = client.Create(meta)
+// process err
+```
+
+创建完毕会返回一个 dsn 字符串,用来访问这个数据库。
+
+### 查询和执行
+
+拿到 dsn 字符串后,可以通过以下代码在 SQLChain 中执行 SQL 语句:
+
+```go
+
db, err := sql.Open("covenantsql", dsn)
+ // process err
+
+ _, err = db.Exec("CREATE TABLE testSimple ( column int );")
+ // process err
+
+ _, err = db.Exec("INSERT INTO testSimple VALUES(?);", 42)
+ // process err
+
+ row := db.QueryRow("SELECT column FROM testSimple LIMIT 1;")
+
+ var result int
+ err = row.Scan(&result)
+ // process err
+ fmt.Printf("SELECT column FROM testSimple LIMIT 1; result %d\n", result)
+
+ err = db.Close()
+ // process err
+
+```
+
+用法和其他 go sql driver 一致。
+
+### 删除数据库
+
+使用 dsn 来删除数据库:
+
+```go
+ err = client.Drop(dsn)
+ // process err
+```
+
+### 完整示例
+
+在以下目录中有一个简单示例和复杂示例可以参考 [示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
\ No newline at end of file
From 4771f3dafa0cf885827c07a5bbf89f6501a5f4f7 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:30 +0800
Subject: [PATCH 097/421] New translations api-json-rpc.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/bck/api-json-rpc.md | 440 ++++++++++++++++++
1 file changed, 440 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/api-json-rpc.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/api-json-rpc.md b/website/translated_docs/zh-CN/version-0.0.6/bck/api-json-rpc.md
new file mode 100644
index 0000000..7ec30aa
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/api-json-rpc.md
@@ -0,0 +1,440 @@
+---
+id: version-0.0.6-api-json-rpc
+title: JSON RPC
+original_id: api-json-rpc
+---
+> JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+
+CovenantSQL provides a suite of RPC methods in [JSON-RPC 2.0](https://www.jsonrpc.org/specification) for easily accessing to CovenantSQL networks.
+
+## Javascript API
+
+[cql.js](https://github.com/covenantsql/cql.js) is a Javascript SDK which has encapsulated the RPC methods in order to give a much more convenient way to talk to the CovenantSQL networks. See the [Javascript API](cql-js.md) for more.
+
+## JSON RPC Endpoint
+
+| Network | Provider | URL |
+| ------------------------ | ------------- | -------------------------------------- |
+| CovenantSQL Test Network | Covenant Labs | https://jsonrpc.testnet.covenantsql.io |
+| CovenantSQL Main Network | Covenant Labs | Comming soon :) |
+
+## JSON RPC API Reference
+
+### bp_getProtocolVersion
+
+Returns the current CovenantSQL protocol version.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- string - the current CovenantSQL protocol version
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "bp_getProtocolVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+Response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0.1.0"
+}
+```
+
+### bp_getRunningStatus
+
+Returns some basic indicators describing the running status of the CovenantSQL network.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- object: an object describes the running status of the network.
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getRunningStatus",
+ "params": []
+}
+```
+
+Response:
+
+```js
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": 182414, // height of the latest block
+ "count_accounts": 103, // count of the accounts ever created
+ "count_databases": 912414, // count of the databases ever created
+ "qps": 10241 // estimated QPS of database operations of the whole net
+ }
+}
+```
+
+### bp_getBlockList
+
+Returns a list of the blocks.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------- | ---------------------- | ------ |
+| 0 | from | integer | start height, included | 1 |
+| 1 | to | integer | end height, excluded | 11 |
+
+**Constraints:** `to - from ∈ [5, 100]`
+
+#### Returns
+
+- array: list of the blocks, the object in the list is a [Block](#s-block), but **without** transaction details
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockList",
+ "params": [1, 11]
+}
+```
+
+Response: [Block](#s-block) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: block object }
+ ]
+}
+```
+
+### bp_getBlockListByTimeRange
+
+TODO: as a new API in the next release
+
+### bp_getBlockByHeight
+
+Returns information about the block specified by its height.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | height of the block | 1024 |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHeight",
+ "params": [1, true]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getBlockByHash
+
+Returns information about the block specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------- | ------ |
+| 0 | hash | string | hash of the block | "TODO" |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHash",
+ "params": ["TODO", true]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getTransactionList
+
+Returns a list of the transactions. Traverse page by page by using a transaction hash as the mark for paging.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | --------- | ------- | ------------------------------------------- | ---------- |
+| 0 | since | string | hash as the start point of traverse | "TODO" |
+| 1 | direction | string | traverse direction, "backward" or "forward" | "backward" |
+| 2 | size | integer | page size, [5, 100] | 20 |
+
+ QhcAe42Xf8cwGUf5NYGQDQ
+ XNZ9yipFBUV5ySBtreW1MA ↑ forward (in newer blocks)
+ 9fXd3s5HE5fC8lOYY6uAZA
+ KhytGjS0xjw5CJvcJYpsNg ← since (paging mark)
+ 2KOxrKMS4iVDKXnm6HuYiA
+ 71VwqOMOvAsBXJRMeBruWg ↓ backward (in older blocks)
+ 0P3k04RKHw8SEMKHxADC8A
+
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionList",
+ "params": ["KhytGjS0xjw5CJvcJYpsNg", "forward", 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: transaction object }
+ ]
+}
+```
+
+### bp_getTransactionListInBlock
+
+Returns a list of the transactions from a block by the specified height.
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | --------------------- | ------ |
+| 0 | height | integer | block height | 1024 |
+| 1 | from | integer | start index, included | 0 |
+| 2 | to | integer | end index, excluded | 10 |
+
+**Constraints:** `to - from ∈ [5, 100]`
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionListInBlock",
+ "params": [1024, 0, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: transaction object }
+ ]
+}
+```
+
+### bp_getTransactionByHash
+
+Returns information about the transaction specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------------- | ------ |
+| 0 | hash | string | hash of the transaction | "TODO" |
+
+#### Returns
+
+- object: transaction information object, it's a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionByHash",
+ "params": ["TODO", true]
+}
+```
+
+Response: [Transaction](#s-transaction)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: transaction object
+ }
+}
+```
+
+## Structure Reference
+
+Here are some common structure definitions used in the API.
+
+
+
+### Block
+
+The block generated in the CovenantSQL blockchain network.
+
+| Field | Type | Description |
+| ----------- | ------- | -------------------------------------------- |
+| height | integer | Height of the block |
+| hash | string | Hash of the block |
+| version | integer | Version number of the block |
+| producer | string | Address of the node who generated this block |
+| merkle_root | string | Hash of the merkle tree |
+| parent | string | Hash of its parent block |
+| timestamp | string | Create time of the block |
+| signee | string | Public key of the node who signed this block |
+| signature | string | Signature for the this block |
+| tx_count | integer | Count of the transactions in this block |
+
+Sample in JSON format:
+
+```json
+{
+ "height": 12,
+ "hash": "TODO",
+ "version": 1,
+ "producer": "4io8u9v9nydaQPXtmqibg8gJbkNFd7DdM47PLWuM7ubzBXZ4At7",
+ "merkle_root": "TODO",
+ "parent": "TODO",
+ "timestamp": "TODO",
+ "signee": "TODO",
+ "signature": "TODO",
+ "tx_count": 1
+}
+```
+
+
+
+### Transaction
+
+| Field | Type | Description |
+| ------------ | ------- | ------------------------------------------------------------------------------------------- |
+| block_height | integer | Height of the block this transaction belongs to |
+| index | integer | Index of the transaction in the block |
+| hash | string | Hash of the transaction data |
+| block_hash | string | Hash of the block this transaction belongs to |
+| type | integer | Type of the transaction |
+| signee | string | Public key of the account who signed this transaction |
+| address | string | Account address who signed this transaction |
+| signature | string | Signature of this transaction |
+| timestamp | string | Create time of the transaction |
+| raw | string | Raw content of the transaction data, in JSON format |
+| tx | object | Concrete transaction object, see supported [transaction types](#transaction-types) for more |
+
+Sample in JSON format:
+
+```json
+{
+ "block_height": 1,
+ "index": 0,
+ "hash": "TODO",
+ "block_hash": "TODO",
+ "timestamp": "TODO",
+ "type": 1,
+ "signee": "TODO",
+ "address": "TODO",
+ "signature": "TODO",
+ "raw": "TODO",
+ "tx": {
+ "field": "TODO"
+ }
+}
+```
+
+**Supported Transaction Types:**
+
+- [CreateDatabase](#s-transaction-createdatabase)
+
+TODO: more types
+
+
+
+### Transaction: CreateDatabase
+
+TODO: more types
\ No newline at end of file
From 5e130bc6d95f567179203084a06854cf10372a10 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:31 +0800
Subject: [PATCH 098/421] New translations guide-zh.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/bck/guide-zh.md | 114 ++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/guide-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/guide-zh.md b/website/translated_docs/zh-CN/version-0.0.6/bck/guide-zh.md
new file mode 100644
index 0000000..6c441ac
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/guide-zh.md
@@ -0,0 +1,114 @@
+---
+id: version-0.0.6-guide-zh
+title: 快速开始
+original_id: guide-zh
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development-golang-client-zh.md)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+- `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+- `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+- [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 552ca931d1ce579bc9eb1b5eea6df29dcfdc86c1 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:33 +0800
Subject: [PATCH 099/421] New translations getting-started-testnet-zh.md
(Chinese Simplified)
---
.../getting-started-testnet-zh.md | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/getting-started-testnet-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/getting-started-testnet-zh.md b/website/translated_docs/zh-CN/version-0.0.6/getting-started-testnet-zh.md
new file mode 100644
index 0000000..c3a90f9
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/getting-started-testnet-zh.md
@@ -0,0 +1,93 @@
+---
+id: version-0.0.6-testnet
+title: CovenantSQL 测试网快速入门
+original_id: testnet
+---
+[CovenantSQL](https://github.com/CovenantSQL/CovenantSQL/blob/develop/README-zh.md) 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+1. **SQL**: 支持 SQL-92 标准
+2. **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+3. **隐私**: 通过加密和授权许可进行访问
+4. **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## 0. 下载 CovenantSQL 工具
+
+在 [github](https://github.com/CovenantSQL/CovenantSQL/releases) 下载最新的发行版
+
+## 1. 用 `cql-utils` 生成配置文件访问测试网
+
+```bash
+$ cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 02296ea73240dcd69d2b3f1fb754c8debdf68c62147488abb10165428667ec8cbd
+Generated key pair.
+Generating nonce...
+nonce: {{731613648 0 0 0} 11 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9}
+node id: 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+运行完成后,`cql-utils`会在 `./conf` 目录生成一个配置文件。
+
+## 2. 用私钥生成钱包地址
+
+私钥可以再上一步的 `./conf` 目录中找到,文件名为 `private.key`
+
+```bash
+$ cql-utils -tool addrgen -private ./conf/private.key
+Enter master key(default: ""):
+⏎
+wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+```
+
+上述 `4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9` 就是钱包地址
+
+## 3. 在水龙头(Faucet)获取 Particle(PTC)
+
+水龙头(Faucet)的地址为: [CovenantSQL 测试网 Particle(PTC) 水龙头](https://testnet.covenantsql.io/)。
+
+完成教程之后,用 `cql` 命令来检查钱包地址的余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+当看到 **"stable coin balance is: 100"** 时,表明余额已经为 100。
+
+如果您需要更多的 PTC 作为长期测试使用,请联系 。
+
+对于有合作的商业伙伴,我们将直接提供 PTC 以供使用。
+
+## 4. 使用 `CLI` 创建数据库
+
+```bash
+$ cql -config conf/config.yaml -create 1
+INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+```
+
+第一行命令中的 `1` 表示申请几个矿工为你的数据库服务。`covenantsql://...` 开头的这个字符串就是创建的数据库访问地址,在 SDK 和 CLI 命令中都需要用此地址,在整个区块链中找到这个数据库。
+
+## 5. CLI 和 SDK 的详细文档
+
+创建好数据库后,您可以参考以下文档和示例,以便更快的使用CovenantSQL来开发应用。
+
+- [CLI 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/cmd/cql/README-zh.md)
+- [SDK 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/README-zh.md)
+- [SDK 示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+
+## 6. SQLChain 浏览器
+
+目前,测试网的数据库时不需要权限的。意味着您可以通过数据库的DSN(数据库访问地址),在[SQLChain 浏览器](https://explorer.dbhub.org)中拿到所有的修改历史和区块信息。
+
+更多的测试网技术支持,请访问:
+
+> [TestNet 发行日志](https://github.com/CovenantSQL/CovenantSQL/wiki/Release-Notes-zh)
\ No newline at end of file
From cc903946475237af75d1b74866bf522944916d5c Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:34 +0800
Subject: [PATCH 100/421] New translations development.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/development.md | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/development.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/development.md b/website/translated_docs/zh-CN/version-0.0.6/development.md
new file mode 100644
index 0000000..4c162b3
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/development.md
@@ -0,0 +1,173 @@
+---
+id: version-0.0.6-development
+title: 使用 CovenantSQL 开发 App
+original_id: development
+---
+## Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 72782824444af2685cbcc76ccdf0b39f031f233a Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:35 +0800
Subject: [PATCH 101/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.0.6/qna.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/qna.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/qna.md b/website/translated_docs/zh-CN/version-0.0.6/qna.md
new file mode 100644
index 0000000..519f07d
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/qna.md
@@ -0,0 +1,6 @@
+---
+id: version-0.0.6-qna
+title: 常见问题解答
+original_id: qna
+---
+## TBD
\ No newline at end of file
From 2303cf18b137ba3b17d0e2a055e8dfb5e72dfb7e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:37 +0800
Subject: [PATCH 102/421] New translations getting-started-zh.md (Chinese
Simplified)
---
.../zh-CN/version-0.0.6/getting-started-zh.md | 486 ++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/getting-started-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/getting-started-zh.md b/website/translated_docs/zh-CN/version-0.0.6/getting-started-zh.md
new file mode 100644
index 0000000..a7c7ce9
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/getting-started-zh.md
@@ -0,0 +1,486 @@
+---
+id: version-0.0.6-local-deployment
+title: CovenantSQL 综述
+original_id: local-deployment
+---
+# CovenantSQL 介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可变成 ĐApp
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是用户的钱包,那么 CovenantSQL 就是是用户的去中心化数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密 保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+# 安装 CovenantSQL 客户端
+
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+* [Go](./development-golang-client-zh.md)
+* [Java](https://github.com/CovenantSQL/covenant-connector)
+* [Python](https://github.com/CovenantSQL/python-driver)
+* [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+* `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+* `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+* [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
+
+# 部署 CovenantSQL
+
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+### SQLChain Explorer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Explorer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+# 使用 CovenantSQL 开发 App
+
+## Golang 使用 CovenantSQL
+
+#### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+#### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+#### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+#### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+#### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
+
+# CovenantSQL API
+
+# 常见问题解答
+
+补充
\ No newline at end of file
From 02b213b08aec248a5c580c788df5841108631126 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:39 +0800
Subject: [PATCH 103/421] New translations development-cmd-cql-utils-zh.md
(Chinese Simplified)
---
.../development-cmd-cql-utils-zh.md | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-utils-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-utils-zh.md b/website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-utils-zh.md
new file mode 100644
index 0000000..1bbea8e
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-utils-zh.md
@@ -0,0 +1,41 @@
+---
+id: version-0.0.6-keygen
+title: 使用 cql-utils 生成密钥与钱包
+original_id: keygen
+---
+`cql-utils` 是 CovenantSQL 的一个命令行工具,具体用法如下。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 使用
+
+### 生成公私钥对
+
+ $ cql-utils -tool keygen
+ Enter master key(press Enter for default: ""):
+ ⏎
+ Private key file: private.key
+ Public key's hex: 03bc9e90e3301a2f5ae52bfa1f9e033cde81b6b6e7188b11831562bf5847bff4c0
+
+
+生成的 private.key 文件即是使用主密码加密过的私钥文件,而输出到屏幕上的字符串就是使用十六进制进行编码的公钥。
+
+### 使用私钥文件或公钥生成钱包地址
+
+ $ cql-utils -tool addrgen -private private.key
+ Enter master key(default: ""):
+ ⏎
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+ $ cql-utils -tool addrgen -public 02f2707c1c6955a9019cd9d02ade37b931fbfa286a1163dfc1de965ec01a5c4ff8
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+
+
+你可以通过指定私钥文件,或者把上述的公钥十六进制编码字符串作为命令行参数来直接生成钱包地址。
\ No newline at end of file
From 3db95772501b59726e5614ce181a321f64118aab Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:40 +0800
Subject: [PATCH 104/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/deployment.md | 126 ++++++++++++++++++
1 file changed, 126 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/deployment.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/deployment.md b/website/translated_docs/zh-CN/version-0.0.6/deployment.md
new file mode 100644
index 0000000..ff3376a
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/deployment.md
@@ -0,0 +1,126 @@
+---
+id: version-0.0.6-deployment
+title: 部署 CovenantSQL 私有链
+original_id: deployment
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+### SQLChain Explorer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Explorer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
\ No newline at end of file
From 656d37d1778813d31dd1f34199f17ef1031dd490 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:41 +0800
Subject: [PATCH 105/421] New translations development-cmd-cql-utils-zh.md
(Chinese Simplified)
---
.../bck/development-cmd-cql-utils-zh.md | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-utils-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-utils-zh.md b/website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-utils-zh.md
new file mode 100644
index 0000000..1bbea8e
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/development-cmd-cql-utils-zh.md
@@ -0,0 +1,41 @@
+---
+id: version-0.0.6-keygen
+title: 使用 cql-utils 生成密钥与钱包
+original_id: keygen
+---
+`cql-utils` 是 CovenantSQL 的一个命令行工具,具体用法如下。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 使用
+
+### 生成公私钥对
+
+ $ cql-utils -tool keygen
+ Enter master key(press Enter for default: ""):
+ ⏎
+ Private key file: private.key
+ Public key's hex: 03bc9e90e3301a2f5ae52bfa1f9e033cde81b6b6e7188b11831562bf5847bff4c0
+
+
+生成的 private.key 文件即是使用主密码加密过的私钥文件,而输出到屏幕上的字符串就是使用十六进制进行编码的公钥。
+
+### 使用私钥文件或公钥生成钱包地址
+
+ $ cql-utils -tool addrgen -private private.key
+ Enter master key(default: ""):
+ ⏎
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+ $ cql-utils -tool addrgen -public 02f2707c1c6955a9019cd9d02ade37b931fbfa286a1163dfc1de965ec01a5c4ff8
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+
+
+你可以通过指定私钥文件,或者把上述的公钥十六进制编码字符串作为命令行参数来直接生成钱包地址。
\ No newline at end of file
From c2b935a825fc865743f2b210e1e5caf44d8499c8 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:43 +0800
Subject: [PATCH 106/421] New translations getting-started.md (Chinese
Simplified)
---
.../zh-CN/version-0.0.6/getting-started.md | 229 ++++++++++++++++++
1 file changed, 229 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/getting-started.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/getting-started.md b/website/translated_docs/zh-CN/version-0.0.6/getting-started.md
new file mode 100644
index 0000000..ff3aeb8
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/getting-started.md
@@ -0,0 +1,229 @@
+---
+id: version-0.0.6-getting-started
+title: CovenantSQL 一键开箱使用
+original_id: getting-started
+---
+## 一键部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 部署 CovenantSQL
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+$ git clone https://github.com/CovenantSQL/CovenantSQL
+$ cd CovenantSQL
+$ make start
+```
+
+后续的所有命令,wd 都是在 clone 的 CovenantSQL 源码目录中
+
+### 检查运行状态
+
+```shell
+$ docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+## 使用 CovenantSQL
+
+### 创建数据库
+
+创建一个单节点的数据库实例,可以将 create 的参数调整为 2 或者最多至 3(当前一键部署只部署了 3 个miner 节点,只能支持最多 3 节点的实例)
+
+```shell
+$ docker cp covenantsql_bp_1:/app/cql ./
+$ ./cql -config ./test/service/node_c/config.yaml -create 1
+```
+
+将会得到数据库的 dsn 串,当前示例是 `covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4`
+
+```shell
+INFO[0001] the newly created database is: "covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4"
+```
+
+### 使用 cql 命令行访问数据库
+
+```shell
+$ ./cql -config ./test/service/node_c/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+执行任何常见 SQL 命令(兼容 SQLite 语法 和 部分类似 MySQL 的 SHOW 语法)
+
+```shell
+INFO[0000] connecting to "covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4"
+Connected with driver covenantsql (feature/kayakPerformance-a6e183ed-20181107003651)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+示例
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> create table test (test string);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> show tables;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> \q
+
+$
+```
+
+## 使用 Java/Python Driver 操作 CovenantSQL
+
+当前 Java/Python Driver 需要依赖 ```covenantsql_adapter``` 服务使用,使用前确保 `covenantsql_adapter` 服务运行正常
+
+### Java JDBC Driver 使用
+
+**需要使用 maven 编译 java-connector
+
+```shell
+$ git clone https://github.com/CovenantSQL/covenant-connector
+$ cd covenant-connector/covenantsql-java-connector
+$ mvn package -Dmaven.test.skip=true
+```
+
+编译后将会得到 3 个编译 jar 结果
+
+```shell
+$ ls -l target/*.jar
+target/covenantsql-java-connector-1.0-SNAPSHOT-jar-with-dependencies.jar
+target/covenantsql-java-connector-1.0-SNAPSHOT-shaded.jar
+target/covenantsql-java-connector-1.0-SNAPSHOT.jar
+```
+
+Driver 提供了一个简单的 Example 测试
+
+Example 源码在 `./src/main/java/io/covenantsql/connector/example/Example.java`
+
+使用 dsn 串中的 host 部分 ```0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4``` 设置为 `COVENANTSQL_DATABASE` 这个 property 来测试 example
+
+```shell
+$ java -DCOVENANTSQL_DATABASE=0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4 -cp target/covenantsql-java-connector-1.0-SNAPSHOT-jar-with-dependencies.jar io.covenantsql.connector.example.Example
+```
+
+可以看到插入和查询的结果
+
+```shell
+[main] INFO io.covenantsql.connector.CovenantDriver - covenantsql driver registered
+Build url: jdbc:covenantsql://127.0.0.1:11105/0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+Connecting to database...
+Creating statement...
+ID: 1, Email: Apple, Password: appleisdelicious, Time: 00:01:17
+```
+
+### Python Driver 使用
+
+**当前支持 `python3` 下使用 Python Driver,`python2` 将会在兼容性测试后提供
+
+Demo 依赖 `python3` 和 `pipenv`
+
+Python3: https://www.python.org/download/releases/3.0/
+
+Pipenv: https://github.com/pypa/pipenv
+
+安装依赖完成后,clone demo 并安装依赖到 pipenv
+
+```shell
+$ git clone https://github.com/CovenantSQL/python-demos.git
+$ cd python-demos
+$ pipenv install
+```
+
+使用 dsn 串中的 host 部分 `0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4`设置为 `COVENANTSQL_DATABASE` env 变量来执行测试
+
+`COVENANTSQL_ROOT` 环境变量为开始 clone 的 CovenantSQL 代码目录
+
+```shell
+$ pipenv shell
+(python-demos-d0igWVYT) $ cd hello-covenantsql
+(python-demos-d0igWVYT) $ chmod u+x main.py
+(python-demos-d0igWVYT) $ COVENANTSQL_DATABASE=0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4 \
+COVENANTSQL_PRIVATE_KEY=${COVENANTSQL_ROOT}/test/service/node_c/admin.test.covenantsql.io-key.pem \
+COVENANTSQL_PROXY_PEM=${COVENANTSQL_ROOT}/test/service/node_c/admin.test.covenantsql.io.pem ./main.py
+```
+
+执行结果如下(因为使用了 Java JDBC Driver插入了一行数据,这里可以看到两行数据)
+
+```shell
+create table
+insert sample data
+affected rows: 1, lastrowid: 2
+select data from the table
+(1, '2018-11-07T16:01:17Z', 'Apple', 'appleisdelicious')
+(2, '2018-11-07T16:10:29Z', 'Apple', 'appleisdelicious')
+```
+
+退出 pipenv
+
+```shell
+(python-demos-d0igWVYT) $ deactive
+$
+```
+
+## 使用 MySQL Client(version <=5.7)操作 CovenantSQL
+
+**当前只支持 version <=5.7 的 MySQL Client 访问,且依赖 `covenantsql_mysql_adapter` 服务使用,使用前确保 `covenantsql_mysql_adapter` 服务运行正常
+
+```shell
+$ mysql -h127.0.0.1 -P11107 -uroot -pcalvin -D0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+可以执行任何常见 SQL 命令进行测试
+
+```shell
+Reading table information for completion of table and column names
+You can turn off this feature to get a quicker startup with -A
+
+Welcome to the MySQL monitor. Commands end with ; or \g.
+Your MySQL connection id is 10001
+Server version: 5.7.0
+
+Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
+
+Oracle is a registered trademark of Oracle Corporation and/or its
+affiliates. Other names may be trademarks of their respective
+owners.
+
+Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+
+mysql> show tables;
++-----------------+
+| name |
++-----------------+
+| test |
+| users |
+| sqlite_sequence |
++-----------------+
+3 rows in set (0.02 sec)
+
+mysql>
+```
\ No newline at end of file
From 0a65b9a8c668a897d80504266457dca83466d742 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:44 +0800
Subject: [PATCH 107/421] New translations install.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/install.md | 115 ++++++++++++++++++
1 file changed, 115 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/install.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/install.md b/website/translated_docs/zh-CN/version-0.0.6/install.md
new file mode 100644
index 0000000..c81fb23
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/install.md
@@ -0,0 +1,115 @@
+---
+id: version-0.0.6-install
+title: 安装 CovenantSQL 客户端
+original_id: install
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development-golang-client-zh.md)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [NodeJS](https://github.com/CovenantSQL/node-covenantsql)
+- [Web (WIP)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+- `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+- `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+- [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From b2364b5cd32703191e99be1e86d4c3f3243e6b7b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:45 +0800
Subject: [PATCH 108/421] New translations usecase.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.0.6/usecase.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/usecase.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/usecase.md b/website/translated_docs/zh-CN/version-0.0.6/usecase.md
new file mode 100644
index 0000000..87f5b00
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/usecase.md
@@ -0,0 +1,6 @@
+---
+id: version-0.0.6-usecase
+title: 使用案例
+original_id: usecase
+---
+## TBD
\ No newline at end of file
From d876276389451d3ac8d24914dbd7ec3c337c10da Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:47 +0800
Subject: [PATCH 109/421] New translations development-cmd-cql-zh.md (Chinese
Simplified)
---
.../version-0.0.6/development-cmd-cql-zh.md | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-zh.md b/website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-zh.md
new file mode 100644
index 0000000..3bde205
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/development-cmd-cql-zh.md
@@ -0,0 +1,77 @@
+---
+id: version-0.0.6-cql
+title: 使用命令行客户端 cql 创建数据库
+original_id: cql
+---
+本文档主要介绍 CovenantSQL 命令行客户端 `cql` 的使用。`cql` 是一个用于批量进行 SQLChain 上数据库的创建、查询、更新或删除操作的命令行工具。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 生成默认配置文件
+
+首先需要一个 config 文件和由你输入的主密码(master key)来初始化,其中主密码用来加密解密本地密钥对。使用 `cql-utils` 工具进行配置文件生成后,你可以在生成的配置文件目录下找到密钥文件。
+
+具体请参考: [cql-utils 使用文档](https://github.com/CovenantSQL/docs/tree/master/development-cmd-utils-zh.md#使用) 中配置文件及钱包地址生成相关章节。
+
+## 检查钱包余额
+
+使用 `cql` 命令来检查钱包余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000]
+### Public Key ###
+0388954cf083bb6bb2b9c7248849b57c76326296fcc0d69764fc61eedb5b8d820c
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+这里我们得到结果 **"stable coin balance is: 100"**。
+
+## 初始化一个 CovenantSQL 数据库
+
+准备好配置文件和主密码后就可以使用 `cql` 命令来创建数据库了,你的数据库 ID 将会输出到屏幕上:
+
+```bash
+# if a non-default password applied on master key, use `-password` to pass it
+$ cql -config conf/config.yaml -create 1
+INFO[0000]
+### Public Key ###
+039bc931161383c994ab9b81e95ddc1494b0efeb1cb735bb91e1043a1d6b98ebfd
+### Public Key ###
+ caller="privatekeystore.go:116 crypto/kms.InitLocalKeyPair"
+INFO[0000] the newly created database is: covenantsql://0e9103318821b027f35b96c4fd5562683543276b72c488966d616bfe0fe4d213 caller="main.go:297 main.main"
+```
+
+这里 `-create 1` 表示创建一个单节点的 SQLChain。
+
+```bash
+$ cql -config conf/config.yaml -dsn covenantsql://address
+```
+
+`address` 就是你的数据库 ID。
+
+`cql` 命令的详细使用帮助如下:
+
+```bash
+$ cql -help
+```
+
+## 使用 `cql`
+
+现在可以使用 `cql` 进行数据库操作了:
+
+```bash
+co:address=> show tables;
+```
\ No newline at end of file
From 09aacfc7a09dbc0e0738dede847c6f5343c45587 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:48 +0800
Subject: [PATCH 110/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/quickstart.md | 107 ++++++++++++++++++
1 file changed, 107 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/quickstart.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/quickstart.md b/website/translated_docs/zh-CN/version-0.0.6/quickstart.md
new file mode 100644
index 0000000..2ea23d0
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/quickstart.md
@@ -0,0 +1,107 @@
+---
+id: version-0.0.6-quickstart
+title: 快速开始
+original_id: quickstart
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。你将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为你准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示你创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [NodeJS](https://github.com/CovenantSQL/node-covenantsql)
+- [Web (WIP)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看你的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入你的数据库地址。
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+- `conf/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `conf/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+你可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入你生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为你的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 16446131040df67e2b1041858d7b037b2dd8ee6b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:49 +0800
Subject: [PATCH 111/421] New translations intro.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/intro.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/intro.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/intro.md b/website/translated_docs/zh-CN/version-0.0.6/intro.md
new file mode 100644
index 0000000..f71ecd6
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/intro.md
@@ -0,0 +1,73 @@
+---
+id: version-0.0.6-intro
+title: CovenantSQL 介绍
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 6a4c2cb8fb9cb4405ed7e3fdb5e678e1a30192b4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:51 +0800
Subject: [PATCH 112/421] New translations development-golang-client-zh.md
(Chinese Simplified)
---
.../development-golang-client-zh.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/development-golang-client-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/development-golang-client-zh.md b/website/translated_docs/zh-CN/version-0.0.6/development-golang-client-zh.md
new file mode 100644
index 0000000..0089def
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/development-golang-client-zh.md
@@ -0,0 +1,108 @@
+---
+id: version-0.0.6-golang-client
+title: 使用 Golang 驱动访问数据库
+original_id: golang-client
+---
+本文档介绍 CovenantSQL 客户端的使用方式。客户端用来创建、查询、更新和删除 SQLChain 以及绑定的数据库。
+
+## 开始之前
+
+确保 `$GOPATH/bin` 目录在环境变量 `$PATH` 中,执行以下命令
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+然后在你的 go 代码中 import 第一个 `client` 包。
+
+## 初始化一个 CovenantSQL 客户端
+
+首先需要一个 config 文件和 master key 来初始化。master key 用来加密解密本地密钥对。以下是如何用一个自定义 master key 来生成默认的 config 文件:
+
+### 生成默认的配置文件
+
+运行以下 `cql-utils` 命令,输入 master key(类似密码)来生成本地密钥对。等待几十秒,会在 `conf` 文件夹中,生成一个私钥文件和一个名为 `config.yaml` 的配置文件。
+
+```bash
+$ cql-utils -tool confgen -root conf
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 025abec9b0072615170f4acf4a2fa1162a13864bb66bc3f140b29f6bf50ceafc75
+Generated key pair.
+Generating nonce...
+INFO[0005] cpu: 1
+INFO[0005] position: 0, shift: 0x0, i: 0
+nonce: {{1450338416 0 0 0} 26 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514}
+node id: 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+有了配置文件之后,可以通过以下 go 代码来初始化 CovenantSQL 客户端:
+
+```go
+client.Init(configFile, masterKey)
+```
+
+## 客户端使用方式
+
+### 创建一个 SQLChain 数据库
+
+创建 SQLChain 数据库需要指明需要几个节点(nodeCount变量):
+
+```go
+var (
+ dsn string
+ meta client.ResourceMeta
+)
+meta.Node = uint16(nodeCount)
+dsn, err = client.Create(meta)
+// process err
+```
+
+创建完毕会返回一个 dsn 字符串,用来访问这个数据库。
+
+### 查询和执行
+
+拿到 dsn 字符串后,可以通过以下代码在 SQLChain 中执行 SQL 语句:
+
+```go
+
db, err := sql.Open("covenantsql", dsn)
+ // process err
+
+ _, err = db.Exec("CREATE TABLE testSimple ( column int );")
+ // process err
+
+ _, err = db.Exec("INSERT INTO testSimple VALUES(?);", 42)
+ // process err
+
+ row := db.QueryRow("SELECT column FROM testSimple LIMIT 1;")
+
+ var result int
+ err = row.Scan(&result)
+ // process err
+ fmt.Printf("SELECT column FROM testSimple LIMIT 1; result %d\n", result)
+
+ err = db.Close()
+ // process err
+
+```
+
+用法和其他 go sql driver 一致。
+
+### 删除数据库
+
+使用 dsn 来删除数据库:
+
+```go
+ err = client.Drop(dsn)
+ // process err
+```
+
+### 完整示例
+
+在以下目录中有一个简单示例和复杂示例可以参考 [示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
\ No newline at end of file
From 0425df815d701f4651f10358a183d0b72e16177e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:53 +0800
Subject: [PATCH 113/421] New translations api-json-rpc.md (Chinese Simplified)
---
.../zh-CN/version-0.0.6/api-json-rpc.md | 440 ++++++++++++++++++
1 file changed, 440 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/api-json-rpc.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/api-json-rpc.md b/website/translated_docs/zh-CN/version-0.0.6/api-json-rpc.md
new file mode 100644
index 0000000..7ec30aa
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/api-json-rpc.md
@@ -0,0 +1,440 @@
+---
+id: version-0.0.6-api-json-rpc
+title: JSON RPC
+original_id: api-json-rpc
+---
+> JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+
+CovenantSQL provides a suite of RPC methods in [JSON-RPC 2.0](https://www.jsonrpc.org/specification) for easily accessing to CovenantSQL networks.
+
+## Javascript API
+
+[cql.js](https://github.com/covenantsql/cql.js) is a Javascript SDK which has encapsulated the RPC methods in order to give a much more convenient way to talk to the CovenantSQL networks. See the [Javascript API](cql-js.md) for more.
+
+## JSON RPC Endpoint
+
+| Network | Provider | URL |
+| ------------------------ | ------------- | -------------------------------------- |
+| CovenantSQL Test Network | Covenant Labs | https://jsonrpc.testnet.covenantsql.io |
+| CovenantSQL Main Network | Covenant Labs | Comming soon :) |
+
+## JSON RPC API Reference
+
+### bp_getProtocolVersion
+
+Returns the current CovenantSQL protocol version.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- string - the current CovenantSQL protocol version
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "bp_getProtocolVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+Response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0.1.0"
+}
+```
+
+### bp_getRunningStatus
+
+Returns some basic indicators describing the running status of the CovenantSQL network.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- object: an object describes the running status of the network.
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getRunningStatus",
+ "params": []
+}
+```
+
+Response:
+
+```js
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": 182414, // height of the latest block
+ "count_accounts": 103, // count of the accounts ever created
+ "count_databases": 912414, // count of the databases ever created
+ "qps": 10241 // estimated QPS of database operations of the whole net
+ }
+}
+```
+
+### bp_getBlockList
+
+Returns a list of the blocks.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------- | ---------------------- | ------ |
+| 0 | from | integer | start height, included | 1 |
+| 1 | to | integer | end height, excluded | 11 |
+
+**Constraints:** `to - from ∈ [5, 100]`
+
+#### Returns
+
+- array: list of the blocks, the object in the list is a [Block](#s-block), but **without** transaction details
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockList",
+ "params": [1, 11]
+}
+```
+
+Response: [Block](#s-block) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: block object }
+ ]
+}
+```
+
+### bp_getBlockListByTimeRange
+
+TODO: as a new API in the next release
+
+### bp_getBlockByHeight
+
+Returns information about the block specified by its height.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | height of the block | 1024 |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHeight",
+ "params": [1, true]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getBlockByHash
+
+Returns information about the block specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------- | ------ |
+| 0 | hash | string | hash of the block | "TODO" |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHash",
+ "params": ["TODO", true]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getTransactionList
+
+Returns a list of the transactions. Traverse page by page by using a transaction hash as the mark for paging.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | --------- | ------- | ------------------------------------------- | ---------- |
+| 0 | since | string | hash as the start point of traverse | "TODO" |
+| 1 | direction | string | traverse direction, "backward" or "forward" | "backward" |
+| 2 | size | integer | page size, [5, 100] | 20 |
+
+ QhcAe42Xf8cwGUf5NYGQDQ
+ XNZ9yipFBUV5ySBtreW1MA ↑ forward (in newer blocks)
+ 9fXd3s5HE5fC8lOYY6uAZA
+ KhytGjS0xjw5CJvcJYpsNg ← since (paging mark)
+ 2KOxrKMS4iVDKXnm6HuYiA
+ 71VwqOMOvAsBXJRMeBruWg ↓ backward (in older blocks)
+ 0P3k04RKHw8SEMKHxADC8A
+
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionList",
+ "params": ["KhytGjS0xjw5CJvcJYpsNg", "forward", 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: transaction object }
+ ]
+}
+```
+
+### bp_getTransactionListInBlock
+
+Returns a list of the transactions from a block by the specified height.
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | --------------------- | ------ |
+| 0 | height | integer | block height | 1024 |
+| 1 | from | integer | start index, included | 0 |
+| 2 | to | integer | end index, excluded | 10 |
+
+**Constraints:** `to - from ∈ [5, 100]`
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionListInBlock",
+ "params": [1024, 0, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ { TODO: transaction object }
+ ]
+}
+```
+
+### bp_getTransactionByHash
+
+Returns information about the transaction specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------------- | ------ |
+| 0 | hash | string | hash of the transaction | "TODO" |
+
+#### Returns
+
+- object: transaction information object, it's a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionByHash",
+ "params": ["TODO", true]
+}
+```
+
+Response: [Transaction](#s-transaction)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: transaction object
+ }
+}
+```
+
+## Structure Reference
+
+Here are some common structure definitions used in the API.
+
+
+
+### Block
+
+The block generated in the CovenantSQL blockchain network.
+
+| Field | Type | Description |
+| ----------- | ------- | -------------------------------------------- |
+| height | integer | Height of the block |
+| hash | string | Hash of the block |
+| version | integer | Version number of the block |
+| producer | string | Address of the node who generated this block |
+| merkle_root | string | Hash of the merkle tree |
+| parent | string | Hash of its parent block |
+| timestamp | string | Create time of the block |
+| signee | string | Public key of the node who signed this block |
+| signature | string | Signature for the this block |
+| tx_count | integer | Count of the transactions in this block |
+
+Sample in JSON format:
+
+```json
+{
+ "height": 12,
+ "hash": "TODO",
+ "version": 1,
+ "producer": "4io8u9v9nydaQPXtmqibg8gJbkNFd7DdM47PLWuM7ubzBXZ4At7",
+ "merkle_root": "TODO",
+ "parent": "TODO",
+ "timestamp": "TODO",
+ "signee": "TODO",
+ "signature": "TODO",
+ "tx_count": 1
+}
+```
+
+
+
+### Transaction
+
+| Field | Type | Description |
+| ------------ | ------- | ------------------------------------------------------------------------------------------- |
+| block_height | integer | Height of the block this transaction belongs to |
+| index | integer | Index of the transaction in the block |
+| hash | string | Hash of the transaction data |
+| block_hash | string | Hash of the block this transaction belongs to |
+| type | integer | Type of the transaction |
+| signee | string | Public key of the account who signed this transaction |
+| address | string | Account address who signed this transaction |
+| signature | string | Signature of this transaction |
+| timestamp | string | Create time of the transaction |
+| raw | string | Raw content of the transaction data, in JSON format |
+| tx | object | Concrete transaction object, see supported [transaction types](#transaction-types) for more |
+
+Sample in JSON format:
+
+```json
+{
+ "block_height": 1,
+ "index": 0,
+ "hash": "TODO",
+ "block_hash": "TODO",
+ "timestamp": "TODO",
+ "type": 1,
+ "signee": "TODO",
+ "address": "TODO",
+ "signature": "TODO",
+ "raw": "TODO",
+ "tx": {
+ "field": "TODO"
+ }
+}
+```
+
+**Supported Transaction Types:**
+
+- [CreateDatabase](#s-transaction-createdatabase)
+
+TODO: more types
+
+
+
+### Transaction: CreateDatabase
+
+TODO: more types
\ No newline at end of file
From 02196b260eeea702050f87e20f3977c425df3f86 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:54 +0800
Subject: [PATCH 114/421] New translations api.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.0.6/api.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/api.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/api.md b/website/translated_docs/zh-CN/version-0.0.6/api.md
new file mode 100644
index 0000000..5e4a668
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/api.md
@@ -0,0 +1,6 @@
+---
+id: version-0.0.6-api
+title: CovenantSQL API
+original_id: api
+---
+## TBD
\ No newline at end of file
From 80702bc902d5311da0c57e6ee4cad7f1a2ee8bed Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:55 +0800
Subject: [PATCH 115/421] New translations nav.md (Chinese Simplified)
---
.../translated_docs/zh-CN/version-0.0.6/nav.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/nav.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/nav.md b/website/translated_docs/zh-CN/version-0.0.6/nav.md
new file mode 100644
index 0000000..b2842cb
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/nav.md
@@ -0,0 +1,18 @@
+---
+id: version-0.0.6-nav
+title: 使用导航
+original_id: nav
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🔗 Docker 一键部署 CovenantSQL 测试网](./deployment)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 6811ef49f277b22a5fcba31f0a85a7172f73569d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:56 +0800
Subject: [PATCH 116/421] New translations getting-started-overview-zh.md
(Chinese Simplified)
---
.../bck/getting-started-overview-zh.md | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-overview-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-overview-zh.md b/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-overview-zh.md
new file mode 100644
index 0000000..174cc0d
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-overview-zh.md
@@ -0,0 +1,63 @@
+---
+id: version-0.0.6-intro
+title: 简介
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+- **SQL**: 支持 SQL-92 标准
+- **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+- **隐私**: 通过加密和授权许可进行访问
+- **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信[在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+#### 一行代码接入区块链数据
+
+```go
+sql.Open("CovenantSQL", dbURI)
+```
+
+# #
+
+
+
+- 第一层: **全局共识层**(主链,架构图中的中间环):
+ - 整个网络中只有一个主链。
+ - 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+- 第二层: **SQL 共识层**(子链,架构图中的两边环):
+ - 每个数据库都有自己独立的子链。
+ - 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+- 第三层: **数据储存层**(支持 SQL-92 的数据库引擎):
+ - 每个数据库都有自己独立的分布式引擎。
+ - 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From d4a58d68ba14d07b5753ba71598b791cb2b86c9e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:57 +0800
Subject: [PATCH 117/421] New translations getting-started-zh.md (Chinese
Simplified)
---
.../version-0.0.6/bck/getting-started-zh.md | 486 ++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-zh.md b/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-zh.md
new file mode 100644
index 0000000..a7c7ce9
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-zh.md
@@ -0,0 +1,486 @@
+---
+id: version-0.0.6-local-deployment
+title: CovenantSQL 综述
+original_id: local-deployment
+---
+# CovenantSQL 介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可变成 ĐApp
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是用户的钱包,那么 CovenantSQL 就是是用户的去中心化数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密 保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+# 安装 CovenantSQL 客户端
+
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+* [Go](./development-golang-client-zh.md)
+* [Java](https://github.com/CovenantSQL/covenant-connector)
+* [Python](https://github.com/CovenantSQL/python-driver)
+* [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+* `conf/private.key`: 为您生成的私钥通过主密码加密保存在该文件中,您的账号地址需要使用该文件创建;
+* `conf/config.yaml`: 为您生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+* [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
+
+# 部署 CovenantSQL
+
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp
+covenantsql_explorer /bin/sh -c MAGIC_DOLLAR='$ ... Up 0.0.0.0:11108->80/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11106->4663/tcp
+```
+
+### SQLChain Explorer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Explorer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+# 使用 CovenantSQL 开发 App
+
+## Golang 使用 CovenantSQL
+
+#### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+#### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+#### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+#### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+#### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
+
+# CovenantSQL API
+
+# 常见问题解答
+
+补充
\ No newline at end of file
From a1642a5ee717b7d67299c7067f2b0df69421aa80 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:25:59 +0800
Subject: [PATCH 118/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/quickstart.md | 148 ++++++++++++++++++
1 file changed, 148 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/quickstart.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/quickstart.md b/website/translated_docs/zh-CN/version-0.1.0/quickstart.md
new file mode 100644
index 0000000..8892816
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/quickstart.md
@@ -0,0 +1,148 @@
+---
+id: version-0.1.0-quickstart
+title: '🌏 TestNet 快速开始'
+original_id: quickstart
+---
+## CovenantSQL 工具包
+
+### 工具包简介
+
+请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+
+例如,您使用的是:
+
+- MacOS 平台请下载:[**CovenantSQL-v0.1.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.1.0/CovenantSQL-v0.1.0.osx-amd64.tar.gz)
+- Linux 平台请下载:[**CovenantSQL-v0.1.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.1.0/CovenantSQL-v0.1.0.linux-amd64.tar.gz)
+- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+解压之后,你将得到以下命令行工具,包括:`cql`、`cql-utils` 等。
+
+| 工具名 | 介绍 |
+| ---------- | --------------------------------------------------- |
+| cql | CovenantSQL 的客户端,类似 mysql 命令,用于执行 SQL |
+| cql-utils | CovenantSQL 工具箱,用于和主链交互 |
+| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
+| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+
+### 测试网快速接入
+
+目前,我们已经发布了测试网 v0.1.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
+
+测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) ,或者使用以下命令:
+
+```bash
+mkdir conf
+wget https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml -O conf/config.yaml
+wget https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key -O conf/private.key
+chmod 600 conf/private.key
+```
+
+**测试网注**:
+
+> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+>
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
+
+## 创建并访问 CovenantSQL 数据库
+
+### 创建数据库
+
+```shell
+./cql -config conf/config.yaml -create 1
+```
+
+输出:
+
+ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+
+> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+>
+> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
+> 2. 数据库创建请求在 其它出块节点 进行验证和确认
+> 3. SQLChain 的符合条件的 Miner 收到数据库任务
+> 4. SQLChian 组建 Kayak 数据库集群
+> 5. 所有 Miner 准备就绪等待请求
+
+### 访问数据库
+
+```shell
+./cql -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 数据库SDK
+
+- [Golang开发指引](./development)
+
+## SQLChain区块浏览器
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
+
+> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: conf/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你创建一个 `conf` 目录:
+
+- `conf/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `conf/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private conf/private.key
+```
+
+输出:
+
+```toml
+wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+```
+
+你可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入你生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为你的钱包充值。有任何问题请来这里讨论:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+使用 cql 命令行工具查询余额:
+
+```shell
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From ffdf48ae45f87b30a5fbf3eaafe5b0e44f4010a6 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:00 +0800
Subject: [PATCH 119/421] New translations guide-zh.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/bck/guide-zh.md | 114 ++++++++++++++++++
1 file changed, 114 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/guide-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/guide-zh.md b/website/translated_docs/zh-CN/version-0.4.0/bck/guide-zh.md
new file mode 100644
index 0000000..5b25df1
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/guide-zh.md
@@ -0,0 +1,114 @@
+---
+id: version-0.4.0-guide-zh
+title: 快速开始
+original_id: guide-zh
+---
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+- [Go](./development-golang-client-zh.md)
+- [Java](https://github.com/CovenantSQL/covenant-connector)
+- [Python](https://github.com/CovenantSQL/python-driver)
+- [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+- [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 8621957d69bfc58b5669cfc9ad66d084da9ac01d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:01 +0800
Subject: [PATCH 120/421] New translations intro.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/intro.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/intro.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/intro.md b/website/translated_docs/zh-CN/version-0.1.0/intro.md
new file mode 100644
index 0000000..02dc58b
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/intro.md
@@ -0,0 +1,73 @@
+---
+id: version-0.1.0-intro
+title: CovenantSQL 介绍
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 7225d158bfa89b4bc6d41377d03535a03a0bf69d Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:02 +0800
Subject: [PATCH 121/421] New translations api.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.1.0/api.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/api.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/api.md b/website/translated_docs/zh-CN/version-0.1.0/api.md
new file mode 100644
index 0000000..a67acb9
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/api.md
@@ -0,0 +1,6 @@
+---
+id: version-0.1.0-api
+title: '👩🏻💻 CovenantSQL API'
+original_id: api
+---
+## TBD
\ No newline at end of file
From 844d4d25e1567a96447dbd14d6f15e06d6a673e2 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:04 +0800
Subject: [PATCH 122/421] New translations nav.md (Chinese Simplified)
---
.../zh-CN/version-0.1.0/nav.md | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.1.0/nav.md
diff --git a/website/translated_docs/zh-CN/version-0.1.0/nav.md b/website/translated_docs/zh-CN/version-0.1.0/nav.md
new file mode 100644
index 0000000..f3161b6
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.1.0/nav.md
@@ -0,0 +1,22 @@
+---
+id: version-0.1.0-nav
+title: '📖 使用导航'
+original_id: nav
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
+
+## 使用 CovenantSQL 开发应用
+
+[📦 CovenantSQL SDK](./development)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From f8bcd0c13cd8fdec3fdf49d19457f7e8b6445600 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:05 +0800
Subject: [PATCH 123/421] New translations getting-started-testnet-zh.md
(Chinese Simplified)
---
.../bck/getting-started-testnet-zh.md | 96 +++++++++++++++++++
1 file changed, 96 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-testnet-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-testnet-zh.md b/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-testnet-zh.md
new file mode 100644
index 0000000..e4c0d49
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-testnet-zh.md
@@ -0,0 +1,96 @@
+---
+id: version-0.4.0-testnet
+title: CovenantSQL 测试网快速入门
+original_id: testnet
+---
+[CovenantSQL](https://github.com/CovenantSQL/CovenantSQL/blob/develop/README-zh.md) 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+1. **SQL**: 支持 SQL-92 标准
+2. **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+3. **隐私**: 通过加密和授权许可进行访问
+4. **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## 0. 下载 CovenantSQL 工具
+
+在 [github](https://github.com/CovenantSQL/CovenantSQL/releases) 下载最新的发行版
+
+## 1. 用 `cql-utils` 生成配置文件访问测试网
+
+```bash
+$ cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: ~/.cql/private.key
+Public key's hex: 02296ea73240dcd69d2b3f1fb754c8debdf68c62147488abb10165428667ec8cbd
+Generated key pair.
+Generating nonce...
+nonce: {{731613648 0 0 0} 11 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9}
+node id: 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+## 2. 用私钥生成钱包地址
+
+私钥可以再上一步的 `~/.cql` 目录中找到,文件名为 `private.key`
+
+```bash
+$ cql-utils -tool addrgen -private ~/.cql/private.key
+Enter master key(default: ""):
+⏎
+wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+```
+
+上述 `4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9` 就是钱包地址
+
+## 3. 在水龙头(Faucet)获取 Particle(PTC)
+
+水龙头(Faucet)的地址为: [CovenantSQL 测试网 Particle(PTC) 水龙头](https://testnet.covenantsql.io/)。
+
+完成教程之后,用 `cql` 命令来检查钱包地址的余额(未加-config参数时,命令会自动找~/.cql目录的config.yaml文件):
+
+```bash
+$ cql -get-balance
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+当看到 **"stable coin balance is: 100"** 时,表明余额已经为 100。
+
+如果您需要更多的 PTC 作为长期测试使用,请联系 。
+
+对于有合作的商业伙伴,我们将直接提供 PTC 以供使用。
+
+## 4. 使用 `CLI` 创建数据库
+
+```bash
+$ cql -create 1
+INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+```
+
+第一行命令中的 `1` 表示申请几个矿工为你的数据库服务。`covenantsql://...` 开头的这个字符串就是创建的数据库访问地址,在 SDK 和 CLI 命令中都需要用此地址,在整个区块链中找到这个数据库。
+
+## 5. CLI 和 SDK 的详细文档
+
+创建好数据库后,您可以参考以下文档和示例,以便更快的使用CovenantSQL来开发应用。
+
+- [CLI 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/cmd/cql/README-zh.md)
+- [SDK 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/README-zh.md)
+- [SDK 示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+
+## 6. SQLChain 浏览器
+
+目前,测试网的数据库时不需要权限的。意味着您可以通过数据库的DSN(数据库访问地址),在[SQLChain 浏览器](https://explorer.dbhub.org)中拿到所有的修改历史和区块信息。
+
+更多的测试网技术支持,请访问:
+
+> [TestNet 发行日志](https://github.com/CovenantSQL/CovenantSQL/wiki/Release-Notes-zh)
\ No newline at end of file
From a255e50c61f78a992955794849aa2b94e3aca30f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:07 +0800
Subject: [PATCH 124/421] New translations getting-started-zh.md (Chinese
Simplified)
---
.../version-0.4.0/bck/getting-started-zh.md | 486 ++++++++++++++++++
1 file changed, 486 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-zh.md b/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-zh.md
new file mode 100644
index 0000000..0a86826
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-zh.md
@@ -0,0 +1,486 @@
+---
+id: version-0.4.0-local-deployment
+title: CovenantSQL 综述
+original_id: local-deployment
+---
+# CovenantSQL 介绍
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可变成 ĐApp
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是用户的钱包,那么 CovenantSQL 就是是用户的去中心化数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密 保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
+
+# 安装 CovenantSQL 客户端
+
+## 下载 CovenantSQL 工具包
+
+请 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。您将得到以下命令行工具:`cql`、`cql-utils`。
+
+## 创建并访问 CovenantSQL 数据库
+
+我们已经上线了 CovenantSQL 测试网,也为您准备了一个公共的测试账号,请下载账号配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/feature/chainBus-SQLChain/test/service/node_c/config.yaml)、[private.key](https://github.com/CovenantSQL/CovenantSQL/raw/feature/chainBus-SQLChain/test/service/node_c/private.key) 用于测试。
+
+**注**:该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放您的应用信息,我们会不定期清理数据库数据。
+
+### 使用 cql 命令行工具创建数据库
+
+```shell
+./cql -config config.yaml -create 1
+```
+
+输出:
+
+ INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+
+
+这里表示您创建了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库。
+
+### 使用 cql 命令行工具访问数据库
+
+```shell
+./cql -config config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,您可以按您操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 使用数据库驱动访问数据库
+
+* [Go](./development-golang-client-zh.md)
+* [Java](https://github.com/CovenantSQL/covenant-connector)
+* [Python](https://github.com/CovenantSQL/python-driver)
+* [Javascript(开发中)](https://github.com/CovenantSQL/cql.js)
+
+## 通过区块浏览器查看您的数据库操作记录
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,您可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。查询时,请在其页面右上角填入您的数据库地址。
+
+## 创建账号
+
+我们的测试网支持您创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(需要输入主密码):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+* `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+* `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+ wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+
+
+您可以在我们的 [CovenantSQL 测试网](https://testnet.covenantsql.io/) 输入您生成的钱包地址,通过发微博、推特等社交媒体来帮助我们推广我们的项目,我们会为您的钱包充值。
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+## 部署私有 CovenantSQL 数据库(搭建私链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+* [Docker 一键部署 CovenantSQL 测试网](./getting-started-zh.md)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
+
+# 部署 CovenantSQL
+
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 启动 Docker 容器
+
+执行以下的命令在本地运行 CovenantSQL
+
+```shell
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+make docker
+make start
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行`export COVENANTSQL_ROOT=$PWD`存为环境变量
+
+### 检查运行状态
+
+```shell
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+### SQLChain Observer
+
+我们在`:11108`端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况
+
+# 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+cql -config config/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+cql -config config/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+cql -config config/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+# 使用 CovenantSQL 开发 App
+
+## Golang 使用 CovenantSQL
+
+#### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+#### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+#### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+#### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+#### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
+
+# CovenantSQL API
+
+# 常见问题解答
+
+补充
\ No newline at end of file
From 95ad41bd6b7c48737783ffcb09acef22109dc8a4 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:08 +0800
Subject: [PATCH 125/421] New translations development-cmd-cql-utils-zh.md
(Chinese Simplified)
---
.../bck/development-cmd-cql-utils-zh.md | 41 +++++++++++++++++++
1 file changed, 41 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-utils-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-utils-zh.md b/website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-utils-zh.md
new file mode 100644
index 0000000..88329cb
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/development-cmd-cql-utils-zh.md
@@ -0,0 +1,41 @@
+---
+id: version-0.4.0-keygen
+title: 使用 cql-utils 生成密钥与钱包
+original_id: keygen
+---
+`cql-utils` 是 CovenantSQL 的一个命令行工具,具体用法如下。
+
+## 安装
+
+下载 [最新发布版本](https://github.com/CovenantSQL/CovenantSQL/releases) 或直接从源码编译:
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+*保证 Golang 环境变量 `$GOPATH/bin` 已在 `$PATH` 中*
+
+## 使用
+
+### 生成公私钥对
+
+ $ cql-utils -tool keygen
+ Enter master key(press Enter for default: ""):
+ ⏎
+ Private key file: private.key
+ Public key's hex: 03bc9e90e3301a2f5ae52bfa1f9e033cde81b6b6e7188b11831562bf5847bff4c0
+
+
+生成的 private.key 文件即是使用主密码加密过的私钥文件,而输出到屏幕上的字符串就是使用十六进制进行编码的公钥。
+
+### 使用私钥文件或公钥生成钱包地址
+
+ $ cql-utils -tool addrgen -private private.key
+ Enter master key(default: ""):
+ ⏎
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+ $ cql-utils -tool addrgen -public 02f2707c1c6955a9019cd9d02ade37b931fbfa286a1163dfc1de965ec01a5c4ff8
+ wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+
+
+你可以通过指定私钥文件,或者把上述的公钥十六进制编码字符串作为命令行参数来直接生成钱包地址。
\ No newline at end of file
From 8bf372418839c485f03db9c7329b7fd2f3e99bcf Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:09 +0800
Subject: [PATCH 126/421] New translations getting-started-overview-zh.md
(Chinese Simplified)
---
.../bck/getting-started-overview-zh.md | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-overview-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-overview-zh.md b/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-overview-zh.md
new file mode 100644
index 0000000..5573dce
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/getting-started-overview-zh.md
@@ -0,0 +1,63 @@
+---
+id: version-0.4.0-intro
+title: 简介
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+- **SQL**: 支持 SQL-92 标准
+- **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+- **隐私**: 通过加密和授权许可进行访问
+- **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信[在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+#### 一行代码接入区块链数据
+
+```go
+sql.Open("CovenantSQL", dbURI)
+```
+
+# #
+
+
+
+- 第一层: **全局共识层**(主链,架构图中的中间环):
+ - 整个网络中只有一个主链。
+ - 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+- 第二层: **SQL 共识层**(子链,架构图中的两边环):
+ - 每个数据库都有自己独立的子链。
+ - 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+- 第三层: **数据储存层**(支持 SQL-92 的数据库引擎):
+ - 每个数据库都有自己独立的分布式引擎。
+ - 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 076fa80497c1b0b67832b30cf7eec73b95a03489 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:11 +0800
Subject: [PATCH 127/421] New translations development-golang-client-zh.md
(Chinese Simplified)
---
.../bck/development-golang-client-zh.md | 108 ++++++++++++++++++
1 file changed, 108 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/development-golang-client-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/development-golang-client-zh.md b/website/translated_docs/zh-CN/version-0.4.0/bck/development-golang-client-zh.md
new file mode 100644
index 0000000..68d800f
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/development-golang-client-zh.md
@@ -0,0 +1,108 @@
+---
+id: version-0.4.0-golang-client
+title: 使用 Golang 驱动访问数据库
+original_id: golang-client
+---
+本文档介绍 CovenantSQL 客户端的使用方式。客户端用来创建、查询、更新和删除 SQLChain 以及绑定的数据库。
+
+## 开始之前
+
+确保 `$GOPATH/bin` 目录在环境变量 `$PATH` 中,执行以下命令
+
+```bash
+$ go get github.com/CovenantSQL/CovenantSQL/client
+$ go get github.com/CovenantSQL/CovenantSQL/cmd/cql-utils
+```
+
+然后在你的 go 代码中 import 第一个 `client` 包。
+
+## 初始化一个 CovenantSQL 客户端
+
+首先需要一个 config 文件和 master key 来初始化。master key 用来加密解密本地密钥对。以下是如何用一个自定义 master key 来生成默认的 config 文件:
+
+### 生成默认的配置文件
+
+运行以下 `cql-utils` 命令,输入 master key(类似密码)来生成本地密钥对。等待几十秒,会在 `~/.cql` 文件夹中,生成一个私钥文件和一个名为 `config.yaml` 的配置文件。
+
+```bash
+./cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: ~/.cql/private.key
+Public key's hex: 025abec9b0072615170f4acf4a2fa1162a13864bb66bc3f140b29f6bf50ceafc75
+Generated key pair.
+Generating nonce...
+INFO[0005] cpu: 1
+INFO[0005] position: 0, shift: 0x0, i: 0
+nonce: {{1450338416 0 0 0} 26 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514}
+node id: 0000002dd8bdb50ba0270642e4c4bc593c1630ef7784653f311b3c3d6374e514
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+有了配置文件之后,可以通过以下 go 代码来初始化 CovenantSQL 客户端:
+
+```go
+client.Init(configFile, masterKey)
+```
+
+## 客户端使用方式
+
+### 创建一个 SQLChain 数据库
+
+创建 SQLChain 数据库需要指明需要几个节点(nodeCount变量):
+
+```go
+var (
+ dsn string
+ meta client.ResourceMeta
+)
+meta.Node = uint16(nodeCount)
+dsn, err = client.Create(meta)
+// process err
+```
+
+创建完毕会返回一个 dsn 字符串,用来访问这个数据库。
+
+### 查询和执行
+
+拿到 dsn 字符串后,可以通过以下代码在 SQLChain 中执行 SQL 语句:
+
+```go
+
db, err := sql.Open("covenantsql", dsn)
+ // process err
+
+ _, err = db.Exec("CREATE TABLE testSimple ( column int );")
+ // process err
+
+ _, err = db.Exec("INSERT INTO testSimple VALUES(?);", 42)
+ // process err
+
+ row := db.QueryRow("SELECT column FROM testSimple LIMIT 1;")
+
+ var result int
+ err = row.Scan(&result)
+ // process err
+ fmt.Printf("SELECT column FROM testSimple LIMIT 1; result %d\n", result)
+
+ err = db.Close()
+ // process err
+
+```
+
+用法和其他 go sql driver 一致。
+
+### 删除数据库
+
+使用 dsn 来删除数据库:
+
+```go
+ err = client.Drop(dsn)
+ // process err
+```
+
+### 完整示例
+
+在以下目录中有一个简单示例和复杂示例可以参考 [示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
\ No newline at end of file
From 6bbbeab8891eda7a23d3d7ab423b8fcee081f830 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:13 +0800
Subject: [PATCH 128/421] New translations api-json-rpc.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/bck/api-json-rpc.md | 442 ++++++++++++++++++
1 file changed, 442 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/bck/api-json-rpc.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/bck/api-json-rpc.md b/website/translated_docs/zh-CN/version-0.4.0/bck/api-json-rpc.md
new file mode 100644
index 0000000..3491c49
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/bck/api-json-rpc.md
@@ -0,0 +1,442 @@
+---
+id: version-0.4.0-api-json-rpc
+title: JSON RPC
+original_id: api-json-rpc
+---
+> JSON-RPC is a stateless, light-weight remote procedure call (RPC) protocol.
+
+CovenantSQL provides a suite of RPC methods in [JSON-RPC 2.0](https://www.jsonrpc.org/specification) for easily accessing to CovenantSQL networks.
+
+## Javascript API
+
+[cql.js](https://github.com/covenantsql/cql.js) is a Javascript SDK which has encapsulated the RPC methods in order to give a much more convenient way to talk to the CovenantSQL networks. See the [Javascript API](cql-js.md) for more.
+
+## JSON RPC Endpoint
+
+| Network | Provider | URL |
+| ------------------------ | ------------- | -------------------------------------- |
+| CovenantSQL Test Network | Covenant Labs | https://jsonrpc.testnet.covenantsql.io |
+| CovenantSQL Main Network | Covenant Labs | Comming soon :) |
+
+## JSON RPC API Reference
+
+### bp_getProtocolVersion
+
+Returns the current CovenantSQL protocol version.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- string - the current CovenantSQL protocol version
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "method": "bp_getProtocolVersion",
+ "params": [],
+ "id": 1
+}
+```
+
+Response:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": "0.1.0"
+}
+```
+
+### bp_getRunningStatus
+
+Returns some basic indicators describing the running status of the CovenantSQL network.
+
+#### Parameters
+
+None.
+
+#### Returns
+
+- object: an object describes the running status of the network.
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getRunningStatus",
+ "params": []
+}
+```
+
+Response:
+
+```js
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "block_height": 182414, // height of the latest block
+ "count_accounts": 103, // count of the accounts ever created
+ "count_shardchains": 912414, // count of the databases ever created
+ "qps": 10241 // estimated QPS of database operations of the whole net
+ "storage_size": 109870095269 // storage size
+ }
+}
+```
+
+### bp_getBlockList
+
+Returns a list of the blocks.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | ---------------------- | ------ |
+| 0 | since | integer | since height, excluded | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the blocks, the object in the list is a [Block](#s-block), but **without** transaction details
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockList",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Block](#s-block) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "blocks" [ { TODO: block object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 102,
+ "pages": 11
+ }
+}
+```
+
+### bp_getBlockListByTimeRange
+
+TODO: as a new API in the next release
+
+### bp_getBlockByHeight
+
+Returns information about the block specified by its height.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | height of the block | 1024 |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHeight",
+ "params": [1]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getBlockByHash
+
+Returns information about the block specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------- | ------ |
+| 0 | hash | string | hash of the block | "TODO" |
+
+#### Returns
+
+- object: block information object, it's a [Block](#s-block)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getBlockByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Block](#s-block)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: block object
+ }
+}
+```
+
+### bp_getTransactionList
+
+Returns a list of the transactions. Traverse page by page by using a transaction hash as the mark for paging.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ----- | ------- | -------------------- | ------ |
+| 0 | since | string | since hash, excluded | "TODO" |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionList",
+ "params": ["KhytGjS0xjw5CJvcJYpsNg", 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionListOfBlock
+
+Returns a list of the transactions from a block by the specified height.
+
+| Position | Name | type | Description | Sample |
+| -------- | ------ | ------- | ------------------- | ------ |
+| 0 | height | integer | of block height | 1024 |
+| 1 | page | integer | page number | 1 |
+| 2 | size | integer | page size, max 1000 | 10 |
+
+#### Returns
+
+- array: list of the transactions, the object in the list is a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionListOfBlock",
+ "params": [1024, 1, 10]
+}
+```
+
+Response: [Transaction](#s-transaction) array
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ "transactions": [ { TODO: transaction object } ],
+ "pagination": {
+ "page": 1,
+ "size": 10,
+ "total": 8,
+ "pages": 1
+ }
+ }
+}
+```
+
+### bp_getTransactionByHash
+
+Returns information about the transaction specified by its hash.
+
+#### Parameters
+
+| Position | Name | type | Description | Sample |
+| -------- | ---- | ------ | ----------------------- | ------ |
+| 0 | hash | string | hash of the transaction | "TODO" |
+
+#### Returns
+
+- object: transaction information object, it's a [Transaction](#s-transaction)
+
+#### Example
+
+Request:
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "bp_getTransactionByHash",
+ "params": ["TODO"]
+}
+```
+
+Response: [Transaction](#s-transaction)
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": {
+ TODO: transaction object
+ }
+}
+```
+
+## Structure Reference
+
+Here are some common structure definitions used in the API.
+
+
+
+### Block
+
+The block generated in the CovenantSQL blockchain network.
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------- |
+| height | integer | Height of the block |
+| hash | string | Hash of the block |
+| version | integer | Version number of the block |
+| producer | string | Address of the node who generated this block |
+| merkle_root | string | Hash of the merkle tree |
+| parent | string | Hash of its parent block |
+| timestamp | integer | Create time of the block, unix time in nanoseconds |
+| timestamp_human | string | Create time of the block, human readable RFC3339 format |
+| tx_count | integer | Count of the transactions in this block |
+
+Sample in JSON format:
+
+```json
+{
+ "height": 12,
+ "hash": "TODO",
+ "version": 1,
+ "producer": "4io8u9v9nydaQPXtmqibg8gJbkNFd7DdM47PLWuM7ubzBXZ4At7",
+ "merkle_root": "TODO",
+ "parent": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "tx_count": 1
+}
+```
+
+
+
+### Transaction
+
+| Field | Type | Description |
+| --------------- | ------- | ------------------------------------------------------------------------------------------- |
+| block_height | integer | Height of the block this transaction belongs to |
+| index | integer | Index of the transaction in the block |
+| hash | string | Hash of the transaction data |
+| block_hash | string | Hash of the block this transaction belongs to |
+| type | integer | Type of the transaction |
+| address | string | Account address who signed this transaction |
+| timestamp | integer | Create time of the transaction, unix time in nanoseconds |
+| timestamp_human | string | Create time of the transaction, human readable RFC3339 format |
+| raw | string | Raw content of the transaction data, in JSON format |
+| tx | object | Concrete transaction object, see supported [transaction types](#transaction-types) for more |
+
+Sample in JSON format:
+
+```json
+{
+ "block_height": 1,
+ "index": 0,
+ "hash": "TODO",
+ "block_hash": "TODO",
+ "timestamp": "TODO",
+ "timestamp_human": "TODO",
+ "type": 1,
+ "address": "TODO",
+ "raw": "TODO",
+ "tx": {
+ "field": "TODO"
+ }
+}
+```
+
+**Supported Transaction Types:**
+
+- [CreateDatabase](#s-transaction-createdatabase)
+
+TODO: more types
+
+
+
+### Transaction: CreateDatabase
+
+TODO: more types
\ No newline at end of file
From f7cb7a4fa96ac948e7f7e824bf8d4a23981ed7c1 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:14 +0800
Subject: [PATCH 129/421] New translations proxy.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/proxy.md | 111 ++++++++++++++++++
1 file changed, 111 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/proxy.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/proxy.md b/website/translated_docs/zh-CN/version-0.4.0/proxy.md
new file mode 100644
index 0000000..7ea1ffa
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/proxy.md
@@ -0,0 +1,111 @@
+---
+id: version-0.4.0-adapter
+title: '📦 CovenantSQL Adapter SDK'
+original_id: adapter
+---
+# 通过 Adapter 使用 CovenantSQL
+
+## 简介
+
+`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+
+## 安装和使用
+
+首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+
+### Docker 运行 Adapter
+
+下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+
+```bash
+export adapter_addr=0.0.0.0:11105
+docker rm -f cql-adapter
+docker run -itd \
+ --env COVENANT_ROLE=adapter --env COVENANT_CONF=/app/config.yaml \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --name cql-adapter -p $adapter_addr:4661 \
+ covenantsql/covenantsql:testnet -listen 0.0.0.0:4661
+```
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker run -it --rm \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --entrypoint /app/cql covenantsql/covenantsql:testnet \
+ -config /app/config.yaml -create 1
+```
+
+命令会返回创建的数据库实例的连接串(DSN)
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+## 主流语言 Driver 的使用
+
+### NodeJS
+
+NodeJS 开发者可以通过 [node-covenantsql](https://github.com/CovenantSQL/node-covenantsql) 来与 CovenantSQL Adapter 进行交互。
+
+#### 下载安装
+
+可以直接通过 `npm` 或者 `yarn` 来安装 `node-covenantsql`
+
+```bash
+npm install --save node-covenantsql
+```
+
+or
+
+```bash
+yarn add node-covenantsql
+```
+
+#### 使用
+
+在运行本地 Adapter 之后,将 Adapter 的 endpoint 填入 `node-covenantsql` 的 config 之中:
+
+```javascript
+const config = {
+ endpoint: 'localhost:11105', // local testnet endpoint without https
+ database: `${DSN}`, // your DB id created by `cql` tools
+ bypassPem: true // bypass https config
+}
+```
+
+这里 `bypassPem` 为 `true` 表示应用中所有对链上数据库的操作都会经过本地的 Adapter 进行代理,我们默认本地环境是可控,安全的,无需用 HTTPS 来保证这段连接的信道安全,少了证书的繁琐认证,所以成为 `bypassPem`。
+
+接着连通之后则可进行链上数据库的增删改查:
+
+```typescript
+const cql from 'node-covenantsql'
+
+const config = {...} // see above
+
+cql.createConnection(config).then(async (connection: any) => {
+ // read
+ const data1 = await connection.query("select ? + ?", [2.1, 3.2]);
+ console.log(data1);
+
+ // write
+ const createTableSQL = `
+ CREATE TABLE IF NOT EXISTS contacts (\
+ contact_id INTEGER PRIMARY KEY,
+ first_name TEXT NOT NULL,
+ last_name TEXT NOT NULL,
+ email text NOT NULL UNIQUE,
+ phone text NOT NULL UNIQUE
+ );
+ `
+ const status1 = await connection.exec(createTableSQL)
+ console.log(`exec1 status:`, status1);
+
+ const data2 = await connection.query("show tables;");
+ console.log(data2);
+}).catch((e: any) => console.log(e))
+```
\ No newline at end of file
From 24b479c4412e076c0a9523757cf9a13b702f45c5 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:16 +0800
Subject: [PATCH 130/421] New translations getting-started-testnet-zh.md
(Chinese Simplified)
---
.../bck/getting-started-testnet-zh.md | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-testnet-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-testnet-zh.md b/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-testnet-zh.md
new file mode 100644
index 0000000..c3a90f9
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.0.6/bck/getting-started-testnet-zh.md
@@ -0,0 +1,93 @@
+---
+id: version-0.0.6-testnet
+title: CovenantSQL 测试网快速入门
+original_id: testnet
+---
+[CovenantSQL](https://github.com/CovenantSQL/CovenantSQL/blob/develop/README-zh.md) 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+1. **SQL**: 支持 SQL-92 标准
+2. **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+3. **隐私**: 通过加密和授权许可进行访问
+4. **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## 0. 下载 CovenantSQL 工具
+
+在 [github](https://github.com/CovenantSQL/CovenantSQL/releases) 下载最新的发行版
+
+## 1. 用 `cql-utils` 生成配置文件访问测试网
+
+```bash
+$ cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 02296ea73240dcd69d2b3f1fb754c8debdf68c62147488abb10165428667ec8cbd
+Generated key pair.
+Generating nonce...
+nonce: {{731613648 0 0 0} 11 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9}
+node id: 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+运行完成后,`cql-utils`会在 `./conf` 目录生成一个配置文件。
+
+## 2. 用私钥生成钱包地址
+
+私钥可以再上一步的 `./conf` 目录中找到,文件名为 `private.key`
+
+```bash
+$ cql-utils -tool addrgen -private ./conf/private.key
+Enter master key(default: ""):
+⏎
+wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+```
+
+上述 `4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9` 就是钱包地址
+
+## 3. 在水龙头(Faucet)获取 Particle(PTC)
+
+水龙头(Faucet)的地址为: [CovenantSQL 测试网 Particle(PTC) 水龙头](https://testnet.covenantsql.io/)。
+
+完成教程之后,用 `cql` 命令来检查钱包地址的余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+当看到 **"stable coin balance is: 100"** 时,表明余额已经为 100。
+
+如果您需要更多的 PTC 作为长期测试使用,请联系 。
+
+对于有合作的商业伙伴,我们将直接提供 PTC 以供使用。
+
+## 4. 使用 `CLI` 创建数据库
+
+```bash
+$ cql -config conf/config.yaml -create 1
+INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+```
+
+第一行命令中的 `1` 表示申请几个矿工为你的数据库服务。`covenantsql://...` 开头的这个字符串就是创建的数据库访问地址,在 SDK 和 CLI 命令中都需要用此地址,在整个区块链中找到这个数据库。
+
+## 5. CLI 和 SDK 的详细文档
+
+创建好数据库后,您可以参考以下文档和示例,以便更快的使用CovenantSQL来开发应用。
+
+- [CLI 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/cmd/cql/README-zh.md)
+- [SDK 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/README-zh.md)
+- [SDK 示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+
+## 6. SQLChain 浏览器
+
+目前,测试网的数据库时不需要权限的。意味着您可以通过数据库的DSN(数据库访问地址),在[SQLChain 浏览器](https://explorer.dbhub.org)中拿到所有的修改历史和区块信息。
+
+更多的测试网技术支持,请访问:
+
+> [TestNet 发行日志](https://github.com/CovenantSQL/CovenantSQL/wiki/Release-Notes-zh)
\ No newline at end of file
From 356e504ec730cdbd27e68d22c6337fd6401eed2a Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:17 +0800
Subject: [PATCH 131/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.4.0/qna.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/qna.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/qna.md b/website/translated_docs/zh-CN/version-0.4.0/qna.md
new file mode 100644
index 0000000..ff7276d
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/qna.md
@@ -0,0 +1,6 @@
+---
+id: version-0.4.0-qna
+title: '🙋 常见问题解答'
+original_id: qna
+---
+## TBD
\ No newline at end of file
From a9e869b169105d4571c0d2151762373f477cf639 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:18 +0800
Subject: [PATCH 132/421] New translations cql.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/cql.md | 203 ++++++++++++++++++
1 file changed, 203 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/cql.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/cql.md b/website/translated_docs/zh-CN/version-0.4.0/cql.md
new file mode 100644
index 0000000..a934859
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/cql.md
@@ -0,0 +1,203 @@
+---
+id: version-0.4.0-cql
+title: '🖥️ CQL 命令行工具'
+original_id: cql
+---
+## 简介
+
+本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络。
+
+## 查询余额
+
+查询余额有两个命令:`cql -get-balance` 和 `cql -token-balance `。其中 `-get-balance` 将返回用户账户中 `Particle` 与 `Wave` 的数量,`-token-balance ` 将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+查看默认余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+ INFO[0000] Wave balance is: 10000000000000000000
+
+
+查看 Particle 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Particle
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 10000000000000000000
+
+
+查看 Bitcoin 余额:
+
+```bash
+./cql -config conf/config.yaml -token-balance Bitcoin
+```
+
+输出:
+
+ INFO[0000] Bitcoin balance is: 0
+
+
+## 转账
+
+转账操作使用 `cql -transfer` 并以 `json` 格式的转账信息为参数。
+
+```json
+{
+ "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount":"1000000 Particle" // 转账金额并带上单位
+}
+```
+
+其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
+
+转账 Particle:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+转账 Wave:
+
+```bash
+./cql -config conf/config.yaml -transfer '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+```
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+查看余额:
+
+```bash
+./cql -config conf/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] Particle balance is: 9999999999999000000
+ INFO[0000] Wave balance is: 9999999999999000000
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `-get-balance` 或者 `-token-balance ` 确定。
+
+## 数据库权限管理
+
+#### 访问权限
+
+CovenantSQL 数据库有三类库级别权限:
+
+- `Admin`
+- `Write`
+- `Read`
+- `Void`
+
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql -update-perm` 并以 `json` 格式的权限信息为参数:
+
+```json
+{
+ "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm":"Write" // 权限内容
+}
+```
+
+增加写权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+吊销权限:
+
+```bash
+./cql -config conf/config.yaml -update-perm '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+```
+
+输出:
+
+ INFO[0000] succeed in sending transaction to CovenantSQL
+
+
+注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+
+为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
+
+使用新账户给数据库充值:
+
+```bash
+./cql -config new_user_config/config.yaml -transfer '{"addr":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount":"90000000 Particle"}'
+```
+
+#### SQL 白名单
+
+CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除货更新操作。
+
+增加白名单:
+
+```shell
+./cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": [
+ "SELECT COUNT(1) FROM a",
+ "SELECT * FROM a WHERE id = ? LIMIT 1"
+ ],
+ "role": "Read"
+ }
+}
+'
+```
+
+*白名单功能是基于数据库权限的一个扩展,且当前不支持增量的白名单更新,在设置白名单时需要写明所有授权该用户使用的语句,以及该用户对数据库的访问权限*
+
+设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a`的 总数据量。
+
+去掉白名单限制:
+
+```shell
+./cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": {
+ "patterns": nil,
+ "role": "Read"
+ }
+}
+'
+# or
+./cql -config conf/config.yaml -update-perm '
+{
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
+ "perm": "Read"
+}
+'
+```
+
+将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
\ No newline at end of file
From 4492ef8561347e398c5b5f525d2b01772d8e80c3 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:19 +0800
Subject: [PATCH 133/421] New translations native.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/native.md | 173 ++++++++++++++++++
1 file changed, 173 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/native.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/native.md b/website/translated_docs/zh-CN/version-0.4.0/native.md
new file mode 100644
index 0000000..f2b845e
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/native.md
@@ -0,0 +1,173 @@
+---
+id: version-0.4.0-native
+title: '📦 CovenantSQL Native SDK'
+original_id: native
+---
+## 用 Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 8414dfac76ea1e4aa778eb852e501a5d04f51af7 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:22 +0800
Subject: [PATCH 134/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/deployment.md | 162 ++++++++++++++++++
1 file changed, 162 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/deployment.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/deployment.md b/website/translated_docs/zh-CN/version-0.4.0/deployment.md
new file mode 100644
index 0000000..85f8abb
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/deployment.md
@@ -0,0 +1,162 @@
+---
+id: version-0.4.0-deployment
+title: '🐳 Docker 一键部署'
+original_id: deployment
+---
+## 使用 CovenantSQL Docker 部署
+
+### 安装 Docker
+
+需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### 下载项目
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+存为环境变量
+
+### 启动 Docker 容器
+
+现在有两种方式启动 CovenantSQL 容器:
+
+1. 使用 Docker Hub 上的公共镜像
+2. 构建 CovenantSQL Docker 镜像
+
+> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+
+#### 1. 使用 Docker Hub 上的公共镜像
+
+然后直接启动:
+
+```bash
+make start
+```
+
+#### 2. 构建 CovenantSQL Docker 镜像
+
+执行以下的命令在本地运行 CovenantSQL
+
+```bash
+make docker # 从头编译新的镜像
+make start
+```
+
+### 检查运行状态
+
+检查容器状态:
+
+```bash
+docker-compose ps
+```
+
+确认所有组件都处于 `Up` 的状态
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+## 操作 CovenantSQL
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 1
+```
+
+> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -create 2
+```
+
+命令会返回创建的数据库实例的连接串
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### 访问数据库
+
+使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+
+```shell
+docker exec -it covenantsql_adapter /app/cql -config /app/config.yaml -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+会得到如下输出,并进入 `cql` 交互命令行模式
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+会得到如下输出
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+
+### SQLChain Observer
+
+镜像中的 Observer 角色使用了和 mysql-adapter 镜像中相同的 private.key ,故可以免去新账户授权和转账的过程制。
+
+(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+
+#### 在浏览器使用 SQLChain Observer
+
+我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
From d516e175fca9c16b699e969fba97b67737dc2f03 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:25 +0800
Subject: [PATCH 135/421] New translations quandl.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/quandl.md | 298 ++++++++++++++++++
1 file changed, 298 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/quandl.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/quandl.md b/website/translated_docs/zh-CN/version-0.4.0/quandl.md
new file mode 100644
index 0000000..d41d0b6
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/quandl.md
@@ -0,0 +1,298 @@
+---
+id: version-0.4.0-quandl
+title: 基于 Quandl 的金融数据分析
+original_id: quandl
+---
+## 关于 Quandl
+
+Quandl 是一个针对金融投资行业的大数据平台,其数据来源包括联合国、世界银行、中央银行等公开数据,核心财务数据来自 CLS 集团,Zacks 和 ICE 等,所有的数据源自 500 多家发布商, 是为投资专业人士提供金融,经济和替代数据的首选平台,拥有海量的经济和金融数据。
+
+## Quandl 数据索引
+
+### CovenantSQL 使用简介
+
+首先,我们已基于 Quandl 的开放 API 将数据存放在 CovenantSQL 中,首先应该浏览一下 CovenantSQL 的使用介绍来熟悉一下如何连接并且使用 CovenantSQL。
+
+现在由于客户端兼容问题, 请直接使用我们的 HTTP 服务来对 Quandl 数据库进行 query,未来兼容现在的 `cql` 客户端后会第一时间更新此文档。
+
+具体通过 HTTP 服务来使用 CovenantSQL 请参考 [Python 驱动文档](https://github.com/CovenantSQL/python-driver/blob/master/README.rst) 和 [NodeJS 驱动文档](https://github.com/CovenantSQL/node-covenantsql/blob/master/README.md)
+
+所需参数:
+
+ host: 'e.morenodes.com'
+ port: 11108
+ database: '057e55460f501ad071383c95f691293f2f0a7895988e22593669ceeb52a6452a'
+
+
+### 数据使用方法
+
+Quandl 数据分为表以及子表两层索引
+
+数据库中,表名为`quandl_` + `database_code`为完整表名
+
+通过查询表名来查看表的内容
+
+具体使用时,需要结合`quandl_updateindex` 这张索引表来使用,(查询索引表时,请务必 limit 小于 10 万,因为全表数据量过大)
+
+使用时,请使用 where 语句限定`quandlcode`字段来查询表中的子表数据。
+
+### 查询示例
+
+1. 我们想要查询 欧盟委员会年度宏观经济数据库 的数据,我们找到其第一层索引的 `databasecode` 为`quandl_ameco`,于是,我们可以查询其第二层索引,用以下 SQL 命令行:
+
+ `select * from quandl_updateindex where databasecode like 'ameco' group by quandlcode limit 10000`
+
+2. 然后通过第三列,我们可以查看`quandlcode`对应的描述
+
+ 比如 AMECO/ALB_1_0_0_0_AAGE 对应的就是阿尔巴尼亚的进出口相关信息,时间从 1960 到 1988。
+
+ Average share of imports and exports of goods in world trade excluding intra EU trade; Foreign trade statistics (1960-1998 Former EU-15) - Albania
+
+ 于是,我们可以用以下方式把这个子表给查询出来
+
+ `select * from quandl_ameco where quandlcode like 'AMECO/ALB_1_0_0_0_AAGE' limit 10000`
+
+3. 注意:如果内容整列为 null 的,属于表结构本身不存在的字段,可以自行去除。
+
+## Quandl 数据 Excel 插件使用说明
+
+您可以下载 Quandl 数据 Excel 插件,无须安装,请解压到任意文件夹中。此插件目前仅支持 Office 2010 以及以上版本,office 2007 以及以下版本目前暂不支持。
+
+### 配置 Excel 插件
+
+解压下载后压缩包,在文件夹中有两个.xll 文件,`ClassLibrary7-AddIn.xll` 以及 `ClassLibrary7-AddIn64.xll` 文件,这两个文件分别对应 32 位的 Excel 与 64 位的 Excel,请根据您的电脑配置使用对应插件。
+
+#### 修改 xml 配置
+
+每个 `.xll` 文件对应一个 `.config` 的配置文件,也就是 `ClassLibrary7-AddIn.xll.config` 和`ClassLibrary7-AddIn64.xll.config`,为如下 xml 配置:
+
+```xml
+
+
+
+
+
+
+
+
+
+```
+
+其中有如下配置需要修改,并保存:
+
+- certpath: 请填写 `read.data.thunderdb.io.pfx` 证书的绝对路径
+
+#### 安装插件
+
+有两种办法使用此 Excel 插件
+
+1. 直接双击对应的 32 位或 64 位 Excel 的 xll 文件打开
+
+
+
+如果弹出如上对话框,选择第一个: `仅为本回话启用此加载项`。然后新建一个 Excel 表格,如果在 Excel 的上方选项卡中看到 CovenantSQL,说明插件加载成功。
+
+2. 打开 Excel,然后依次选择 `文件 — 选项 — 加载项`,管理选择 Excel 加载项,点击转到然后浏览选择解压后的对应版本的 `.xll` 文件,然后点击 `确定`,在选项卡中如果成功加载出 CovenantSQL 即为成功加载,如下图:
+
+
+
+#### 使用插件
+
+选择 CovenantSQL 的选项卡可以看到 Quandl 数据查询,点击 Quandl 数据查询,会弹出一个窗体如下图所示:
+
+
+
+- 其中红色框住的列表部分是一级目录,下方则是所选项的具体描述
+
+- 绿色按钮是通过选择的一级目录来查询二级目录。这里查询时间会随着所查询二级目录的大小以及用户自身的网络速度等因素而不同,可能查询时间会超过 1 分钟,请耐心等待。
+
+- 黄色部分左边的列表是二级目录,右边的窗体则为列表项所选择的表的描述。
+
+- 蓝色部分是导出数据的可选项
+
+ - Limit Number 是一次导出的最多数据条数,默认为 10000 条,最大值可填写 100000
+ - Offset Number 是从数据库的第几条开始导出,因为之前会限定条数,例如我们之前导出了 10000 条数据,但是明显数据还没有导出全部,我们可以使用此功能选择 offset 10000 来从第 10000 条开始导出(注:数据库的计数从 0 开始,所以前 10000 条为 0-9999)
+
+现在,您即可在 Excel 中方便的调用存在 CovenantSQL 上的 Quandl 数据。
+
+## 附件表
+
+| DataBase | 名称 | 描述 |
+| ------------ | ------------------------ | ------------------------------------------------------------------------------------------- |
+| BUNDESBANK | 德意志联邦银行数据仓库 | 有关德国经济,货币和资本市场,公共财政,银行,家庭,欧元区总量,贸易和外债的数据。 |
+| URC | 独角兽研究公司数据 | 纽约证券交易所,美国证券交易所和纳斯达克证券交易所的预付和下跌数据。从各种公开来源和报告中值。 |
+| DCE | 大连商品交易所数据 | 来自DCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WFC | 富国银行住房抵押贷款数据 | 该数据库提供富国银行(Wells Fargo Bank)分部Wells Fargo Home Mortgage的抵押贷款购买和再融资利率。 |
+| USDAFNS | 美国农业部食品与营养服务项目数据 | 食品和营养服务局为低收入家庭和儿童管理联邦营养援助计划。成本和参与率数据。 |
+| LJUBSE | 卢布尔雅那证券交易所数据 | 该数据库包含卢布尔雅那股票交易所指数,总部位于斯洛文尼亚的卢布尔雅那。 |
+| TOCOM | 东京商品交易所数据 | 来自东京商品交易所(TOCOM)的农业和商品期货,历史跨越了近十年的特定期货。 |
+| WCSC | 世界银行企业积分卡数据 | 该数据库旨在提供世界银行集团在消除极端贫困和促进共同繁荣方面的表现的战略概述。 |
+| CMHC | 加拿大住房抵押贷款公司 | CMHC是一家政府所有的公司,为加拿大公民提供经济适用房,并收集价格,建筑和供应等数据。 |
+| WGEC | 世界银行全球经济监测商品数据(GEM) | 包含1960年至今的商品价格和指数的数据。 |
+| FED | 美联储数据公布 | 美国官方关于货币供应量,利率,抵押贷款,政府财政,银行资产和债务,汇率,工业生产的数据。 |
+| WPSD | 世界银行公共部分支出数据 | 由世界银行和国际货币基金组织共同开发的数据,汇集了详细的公共部门政府债务数据。 |
+| UGID | 联合国全球指标 | 该数据库提供广泛的全球指标,涵盖人口,公共卫生,就业,贸易,教育,通货膨胀和外债。 |
+| RBA | 澳大利亚储备银行数据 | 中央银行和货币当局,监管银行业,设定利率,并为政府债务提供服务。关键经济指标数据。 |
+| UCOM | 联合国商品贸易数据 | 该数据库提供有关食品,活体动物,药品,金属,燃料和机械等商品进出口的全面综合数据。 |
+| SIDC | 太阳影响数据分析中心数据 | SIDC主持从1700年开始的太阳活动数据,特别是太阳黑子活动。 |
+| ZCE | 郑州商品交易所数据 | 来自ZCE的农业和商品期货,历史跨越了近十年的特定期货。 |
+| USDAFAS | 美国农业部外国农业服务数据(FAS) | 美国农业部外国农业服务局将美国农业与世界市场联系起来。它提供了国外生产和出口的统计数据。 |
+| OECD | 世界经济合作与发展组织数据 | 促进经济福利的发达国家国际组织。从成员和其他人收集数据以提出政策建议。 |
+| OPEC | 欧佩克数据 | 国际组织和经济卡特尔监督伊拉克,伊朗,沙特阿拉伯和委内瑞拉等石油生产国的政策、油价数据。 |
+| MCX | 印度多种商品交易所数据 | 印度最大的商品交易所,为金属,能源和农业期货交易提供服务。世界第三大合约和交易量交易所。 |
+| ECONOMIST | 经济学人 - 巨无霸指数 | 巨无霸指数是由经济学家于1986年发明的,是一个轻松的指南,指出货币是否处于“正确”水平。它基于购买力平价理论(PPP)。 |
+| NSDL | 国家证券存管有限公司(印度)数据 | 在印度存放负责该国经济发展的国家,该国家建立了国际标准的国家基础设施,处理在印度资本市场以非物质形式持有和结算的大部分证券。 |
+| GDT | 全球乳品贸易数据 | nan |
+| CFFEX | 中国金融期货交易所数据 | 来自CFFEX的指数和债券期货,对于特定期货的历史跨越近十年。 |
+| CITYPOP | Thomas Brinkhoff的城市人口数据 | Thomas Brinkhoff提供了大多数国家城市和行政区域的人口数据。 |
+| BCHARTS | 比特币图表汇率数据 | 来自所有主要比特币交易所的比特币兑换大量货币的汇率,包括当前和历史汇率。 |
+| LOCALBTC | Local Bitcoins数据 | nan |
+| JODI | JODI石油世界数据库 | JODI石油和天然气数据来自100多个国家,包括多种能源产品和各种计量方法。 |
+| UENG | 联合国能源统计数据 | 该数据库提供有关新能源和可再生能源的生产,贸易,转换和最终消费的全面统计数据。 |
+| ULMI | 联合国劳工市场指标 | 该数据库为世界上所有国家提供了按性别划分的全面青年失业数字。 |
+| MAURITIUSSE | 毛里求斯证券交易所数据 | 毛里求斯证券交易所指数数据。 |
+| UKRSE | 乌克兰交易所数据 | UKRSE提供与乌克兰最大证券交易所相关的最新数据。该交易所位于基辅,约占乌克兰总股本交易量的四分之三 |
+| BITSTAMP | Bitstamp数据 | Bitstamp是一个比特币的交易平台。 |
+| UNAE | 联合国国民账户估算数据 | 该数据库提供了全球所有国家不同部门的国内生产总值,国民总收入和总增加值的全球数据。 |
+| UNAC | 联合国国民账户官方国家数据 | 该数据库提供有关国民账户的全球数据,例如家庭,公司和政府的资产和负债。 |
+| UTOR | 联合国世界旅游业数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| WFE | 世界交易所联合会数据 | 该数据库提供有关国际旅游的综合数据。数据包括所有国家的旅游人数和旅游支出。 |
+| FRBC | 克利夫兰联邦储备银行数据 | 克利夫兰联邦储备银行从数百家金融机构收集数据,包括存款机构,银行控股公司和其他用于评估金融机构状况的实体,以及收集经济和金融体系运作方式的见解。 |
+| UGEN | 联合国性别信息 | 该数据库提供关于各种与性别有关的指标的全面综合数据,涵盖人口,卫生,教育和就业。 |
+| BITFINEX | Bitfinex数据 | Bitfinex是比特币,莱特币和Darkcoin的交易平台,具有许多先进功能,包括保证金交易,交易所和点对点保证金融资。 |
+| UGHG | 联合国温室气体清单 | 该数据库提供有关六种主要温室气体人为排放的全面综合数据。数据可以追溯到1990年。 |
+| UIST | 联合国工业发展组织数据 | 该数据库提供有关工业发展指标的全球数据,包括产量,员工,工资,各种行业的增加值。 |
+| PRAGUESE | 布拉格证券交易所数据 | 布拉格证券交易所的价格指数数据。 |
+| PFTS | PFTS证券交易所(乌克兰)数据 | 来自PFTS证券交易所的指数数据,这是乌克兰最大的市场。 |
+| WARSAWSE | 华沙证券交易所数据 | WIG20指数自1994年4月16日起根据WSE主要清单中20家最主要和最具流动性公司的股票价值计算。 |
+| TUNISSE | 突尼斯证券交易所数据 | 突尼斯证券交易所的主要参考指数。 |
+| FRKC | 堪萨斯城联邦储备银行数据 | FRKC是美联储第10区的区域中央银行,主要发布农业交易中的银行业务数据。 |
+| UENV | 联合国环境统计数据 | 该数据库提供有关水和废物相关指标的全球数据,包括淡水供应和降水,以及废物的产生和收集。 |
+| UFAO | 联合国粮食和农业数据 | 该数据库提供全球粮食和农业数据,包括作物生产,化肥消费,农业用地和牲畜用途。 |
+| TAIFEX | 台湾期货交易所数据 | 来自TAIFEX的指数和债券期货,其历史跨越了十多年的特定期货。 |
+| GDAX | GDAX(全球数字资产交易所)数据 | GDAX是世界上最受欢迎的买卖比特币的地方。 |
+| ARES | 房地产证券化协会数据 | ARES保护投资者,有助于房地产证券化产品市场的发展,并促进房地产投资市场的扩张。 |
+| SHADOWS | 影子联邦基金利率模型数据 | 该数据集包含 吴-侠 论文中关于影子联邦基金的三个主要指标,用于识别所有三大银行的影子利率。 |
+| NAAIM | 全国积极投资管理者协会头寸指数 | NAAIM暴露指数代表NAAIM成员报告的美国股票市场的平均风险敞口。 |
+| CBRT | 土耳其共和国中央银行数据 | CBRT负责采取措施维持土耳其金融体系的稳定。 |
+| CEGH | 中欧天然气中心数据 | nan |
+| FINRA | 美国金融业监管局数据 | 金融业监管局提供证券公司和交易所市场的短期利息数据。 |
+| NASDAQOMX | 纳斯达克OMX全球指数数据 | 纳斯达克OMX发布的全球指数超过35,000种,包括全球股票,固定收益,股息,绿色,北欧,伊斯兰教等。每日数据。 |
+| EURONEXT | 泛欧证券交易所数据 | 欧洲最大的交易所Euronext的历史股票数据。 |
+| UICT | 联合国信息和通信技术数据 | 该数据库提供有关信息和通信技术的全面全球数据,包括所有国家的电话,蜂窝和互联网使用情况。 |
+| USAID | 美国国际开发署数据 | 美国国际开发署提供了美国向世界其他地方提供的所有外国援助的完整历史记录。 |
+| ZAGREBSE | 萨格勒布证券交易所数据 | 克罗地亚唯一的证券交易所。它发布有关其股票和债券指数表现的数据。 |
+| QUITOSE | 基多证券交易所(厄瓜多尔)数据 | 厄瓜多尔国家证券交易所的指数。 |
+| ECBCS | 欧盟委员会商业和消费者调查 | 该数据库中的数据来自欧盟(EU)和欧盟申请国的不同经济部门的统一调查。 |
+| PSE | 巴黎经济学院数据 | 该数据库描述了越来越多国家的最高收入分配。数字是使用税收数据得出的。 |
+| MALTASE | 马耳他证券交易所数据 | 马耳他证券交易所发挥作用,为其认可的名单提供金融工具的结构,随后可在受监管,透明和有序的市场(二级市场)进行交易。市场的主要参与者是发行人,股票交易所会员(股票经纪人)和投资者一般。 |
+| GPP | 全球石油价格 | nan |
+| PPE | 波兰电力交易所(TGE)数据 | nan |
+| UKONS | 英国国家统计局数据 | 关于英国就业,投资,住房,家庭支出,国民账户和许多其他社会经济指标的数据。 |
+| NCDEX | 国家商品及衍生品交易所(印度)数据 | 印度专业管理的在线多商品交易所 |
+| WSE | 华沙证券交易所(GPW)数据 | nan |
+| TFX | 东京金融交易所数据 | 东京金融交易所是一个期货交易所,主要交易金融工具市场,处理证券和市场衍生品。 |
+| WGFD | 世界银行全球金融发展数据 | 有关金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| CEPEA | 应用经济学应用研究中心(巴西)数据 | CEPEA是圣保罗大学的一个经济研究中心,专注于农业企业问题,发布巴西商品价格指数。 |
+| SBJ | 日本统计局数据 | 日本政府统计机构,提供有关就业和劳动力的统计数据。 |
+| WGEM | 世界银行全球经济监测 | 关于全球经济发展的数据,涵盖高收入国家和发展中国家。 |
+| WGDF | 世界银行全球发展金融 | 关于金融系统特征的数据,包括金融机构和市场的规模,使用,获取,效率和稳定性的衡量标准。 |
+| WWDI | 世界银行世界发展指标 | 最新和最准确的发展指标,由官方认可的国际来源汇编而成。 |
+| WESV | 世界银行企业调查 | 公司级私营部门数据,涵盖金融,腐败,基础设施,犯罪,竞争和绩效衡量等业务主题。 |
+| WDBU | 世界银行存续商业数据 | 关于成员国和地方和区域一级选定城市的商业法规及其执法的数据。 |
+| OSE | 大阪证券交易所数据 | 日本第二大证券交易所。与东京证券交易所不同,OSE在衍生品交易方面表现最为强劲,是日本的大多数期货和期权。 |
+| RFSS | 俄罗斯联邦统计局数据 | 俄罗斯政府统计机构,负责在国家和地方层面发布俄罗斯的社会,经济和人口统计数据。 |
+| SHFE | 上海期货交易所数据 | 大宗商品交换能源,金属和化学相关的工业产品。许多商品期货的衍生品市场。 |
+| WGEP | 世界银行全球环境规划经济前景数据 | 关于全球经济的短期,中期和长期前景以及对发展中国家和减贫的影响的数据。 |
+| USMISERY | 美国痛苦指数 | 由经济学家亚瑟·奥肯(Arthur Okun)开发的苦难指数是失业率加上通胀率。 |
+| WJKP | 世界银行知识平台工作数据 | 与劳工有关的主题指标。 |
+| WMDG | 世界银行千年发展目标数据 | 根据千年发展目标(MDGs)的目标和指标重新组织的世界发展指标数据。 |
+| WPOV | 世界银行贫困统计 | 贫困人口比率,贫困差距以及国际和国家贫困线贫困人口数量的指标。 |
+| EUREKA | Eurekahedge数据 | 一家研究公司专注于对冲基金和其他另类投资基金。它公布了对冲基金业绩的数据。 |
+| MOFJ | 日本财务省数据 | 日本政府债券利率数据,由财政部每日公布。 |
+| PIKETTY | Thomas Piketty数据 | “21世纪资本”中的收入和财富数据,哈佛大学出版社,2014。 |
+| PSX | 巴基斯坦证交所数据 | 巴基斯坦证券交易所的股票收盘价格。 |
+| SGX | 新加坡交易所数据 | 亚洲证券和衍生品交易所为许多大型新加坡和其他亚洲公司进行股票交易。在自己的交易所上市。 |
+| UIFS | 联合国国际金融统计 | 该数据库提供有关国际财务指标的综合数据,如平均收入,债券收益率,政府收入和支出。 |
+| UINC | 联合国工业商品数据 | 该数据库提供有关工业商品生产的全球数据,如矿石和矿物,食品,可运输货物和金属产品。 |
+| INSEE | 国家统计和经济研究所(法国)数据 | INSEE是法国的国家统计机构。它收集有关法国经济和社会的数据,如社会经济指标和国民账户。 |
+| SNB | 瑞士国家银行数据 | 中央银行负责货币政策和货币。有关国际账户,利率,货币供应和其他宏观经济指标的数据。 |
+| ODE | 大阪道岛商品交易所数据 | 日本关西地区的一个非营利性商品交易所,交易七种主要农产品。 |
+| WGEN | 世界银行性别统计 | 描述收入,工作类型,工作部门,农民生产率以及企业家公司规模和利润的性别差异的数据。 |
+| WHNP | 世界银行健康营养与人口统计 | 关键的健康,营养和人口统计数据。 |
+| WIDA | 世界银行国际发展协会 | 关于选定指标的IDA(国际开发协会)国家总体成果进展情况的数据。 |
+| ECMCI | 欧盟委员会货币状况指数 | 每月更新,此数据库提供欧元区的货币状况指数值。历史可以追溯到1999年。 |
+| NBSC | 中国国家统计局数据 | 中国有关金融,工业,贸易,农业,房地产和交通运输的统计数据。 |
+| MAS | 新加坡金融管理局数据 | nan |
+| MGEX | 明尼阿波利斯谷物交易所数据 | 促进农业指数贸易的区域商品期货和期权合约市场。 |
+| WWGI | 世界银行全球治理指标 | 六个治理层面的总体和个别治理指标数据。 |
+| ISM | 供应管理研究所 | ISM促进供应链管理实践,并发布有关生产和供应链,新订单,库存和资本支出的数据。 |
+| UKR | 乌克兰交易所数据 | nan |
+| FRBNY | 纽约联邦储备银行数据 | FRBNY是美国最大的区域中央银行。为纽约,康涅狄格州和新泽西州的大部分地区以及一些地区设定货币政策。 |
+| FRBP | 费城联邦储备银行数据 | FRBP是美联储的区域中央银行。它发布有关商业信心指数,GDP,消费和其他经济指标的数据。 |
+| FMSTREAS | 美国财政部 - 财务管理处数据 | 美利坚合众国的月收入/支出和赤字/盈余。 |
+| EIA | 美国能源信息管理局数据 | 美国国家和州有关所有主要能源产品(如电力,煤炭,天然气和石油)的生产,消费和其他指标的数据。 |
+| SOCSEC | 美国社会保障局数据 | 提供有关美国社会保障计划的数据,特别是受益人的人口统计数据;残疾人,老人和幸存者。 |
+| TFGRAIN | 顶级飞行谷物合作社数据 | 玉米和大豆的现货价格,包括前月期货合约的基础。 |
+| IRPR | 波多黎各统计研究所数据 | 波多黎各统计研究所制造业统计数据。 |
+| BCHAIN | blockchain.com数据 | Blockchain是一个发布与比特币相关的数据的网站,每日更新。 |
+| BITCOINWATCH | Bitcoin Watch数据 | 比特币采矿统计。 |
+| ODA | 国际货币基金组织跨国宏观经济统计 | 国际货币基金组织的初级商品价格和世界经济展望数据,由非洲开放数据公布。优秀的跨国宏观经济数据。 |
+| WADI | 世界银行非洲发展指标 | 关于非洲的一系列发展指标,包括国家,区域和全球估计数。 |
+| WEDU | 世界银行教育统计 | 关于教育机会,进展,完成,扫盲,教师,人口和支出的国际可比指标。 |
+| WGLF | 世界银行全球Findex(全球金融包容性数据库) | 关于人们如何储蓄,借贷,支付和管理风险的金融包容性指标。 |
+| WWID | 世界财富和收入数据库 | 世界财富和收入数据库旨在提供开放和便捷的途径,以获取有关国家内部和国家之间世界收入和财富分配历史演变的最广泛的现有数据库。 |
+| BTER | 比特儿数据 | 加密货币的历史汇率数据。 |
+| CFTC | 商品期货交易委员会报告 | 交易员和集中比率的每周承诺。期货头寸以及期货加期权头寸的报告。新旧格式。 |
+| BOE | 英格兰银行官方统计 | 当前和历史汇率,担保贷款和定期存款利率,欧元商业票据利率和政府证券收益率。 |
+| EXMPL | Quandl时间序列数据示例 | 一个时间序列数据库示例。 |
+| WORLDAL | 铝价格 | 世界铝产能和产量(千公吨)。 |
+| WGC | 黄金价格 | 世界黄金协会是黄金行业的市场开发组织。它以不同货币发布黄金价格数据。 |
+| MX | 加拿大期货数据 | 蒙特利尔交易所是一家衍生品交易所,交易期货合约以及股票,指数,货币,ETF,能源和利率的期权。 |
+| UMICH | 消费者情绪 | 密歇根大学的消费者调查 - 最近6个月的数据点是非官方的;它们来自华尔街日报的文章。 |
+| JOHNMATT | 稀有金属价格数据 | 关于铂族金属的当前和历史数据,如价格,供应和需求。 |
+| NAHB | 美国住房指数 | 美国的住房和经济指数。 |
+| RATEINF | 通货膨胀率 | 阿根廷,澳大利亚,加拿大,德国,欧元区,法国,意大利,日本,新西兰等国的通货膨胀率和消费物价指数CPI。 |
+| RENCAP | IPO数据 | 有关美国IPO市场的数据。 |
+| ML | 公司债券收益率数据 | 美林(Merrill Lynch)是美国一家大型银行,它发布了不同地区公司债券收益率的数据。 |
+| MULTPL | S&P 500 | nan |
+| RICI | 商品指数 | 综合,以美元为基础的总回报指数,代表全球经济中消费的一篮子商品的价值。 |
+| AAII | 投资者情绪 | 美国个人投资者协会的情绪数据。 |
+| BIS | 国际清算银行数据 | 国际清算银行为中央银行提供货币和金融稳定管理,促进国际合作,并作为中央银行的银行。 |
+| BCB | 巴西中央银行统计数据库 | 巴西宏观经济数据,涵盖公共财政,国民账户,支付系统,通货膨胀,汇率,贸易和国际储备。 |
+| BCRA | 阿根廷中央银行数据 | 阿根廷中央银行负责货币政策,提供外汇市场数据和主要宏观经济指标。 |
+| FSE | 法兰克福证券交易所 | 法兰克福证券交易所的每日股票价格 |
+| BLSN | 劳工统计局国际数据 | 各国的进出口价格统计,由劳工统计局公布。 |
+| BLSP | 劳工统计局生产力数据 | 美国制造业,劳务和商业统计,由劳工统计局公布。 |
+| FDIC | 联邦存款保险公司数据 | FDIC是一家银行存款高达25万美元的联邦保险公司,负责收集商业银行和储蓄机构的财务数据。 |
+| BLSI | 美国劳工统计局通货膨胀和价格统计 | 美国国家和州一级的通胀数据,由劳工统计局公布。 |
+| BLSE | 美国劳工统计局就业与失业统计 | 美国国家和州一级的就业和失业统计数据,由劳工统计局公布。 |
+| BLSB | 美国劳工统计局薪酬福利统计 | 由劳工统计局公布的美国停工统计数据。 |
+| BP | BP能源生产和消费数据 | BP是一家大型能源生产商和分销商。它提供了各个国家和较大次区域的能源生产和消费数据。 |
+| LPPM | 白金和钯价格数据 | 全球钯金和铂金市场清算价格数据。 |
+| CASS | 运费指数 | 自1990年以来,CASS每月提供与其他经济和供应链指标相关的货运趋势的CASS运费指数报告。 |
+| MORTGAGEX | 可调利率抵押贷款指数 | ARM索引的历史住房数据。 |
+| BUCHARESTSE | 布加勒斯特证券交易所数据 | 布加勒斯特证券交易所发布股票,权利,债券,基金单位,结构性产品和期货合约活动数据。 |
+| AMECO | 欧盟委员会年度宏观经济数据库 | 欧洲委员会经济和财政事务总局(DG ECFIN)年度宏观经济数据库。 |
+| ACC | 美国化学理事会数据 | 化学活性晴雨表(CAB)由美国化学理事会(ACC)出版。 CAB是一个经济指标,有助于预测整个美国经济的高峰和低谷,并突出了美国其他行业的潜在趋势。 |
+| ABMI | 亚洲债券市场计划 | 中国和日本债券市场的指标,如规模和构成,市场流动性,收益率收益率和波动率。 |
+| BITAL | 意大利证交所数据 | 该数据库提供了Borsa Italiana(现为伦敦证券交易所集团的一部分)的股票期货合约数据。 |
+| BANKRUSSIA | 俄罗斯银行数据 | 俄罗斯银行的主要指标,包括银行业,货币供应量,金融市场和宏观经济统计数据。 |
+| BOC | 加拿大银行统计数据库 | 加拿大的经济,金融和银行数据。包括利率,通货膨胀,国民账户等。每日更新。 |
+| HKEX | 香港交易所数据 | 香港交易所股票价格,历史分割期货等每日更新。 |
+| AMFI | 印度共同基金协会数据 | 该数据库代表印度共同基金协会的基金信息。 |
+| BDM | 墨西哥银行数据 | 墨西哥银行负责货币政策和本国货币(比索),并提供账户和所有宏观经济变量的数据。 |
+| BATS | BATS美国证券交易所数据 | Bats是美国的股票市场运营商,经营四个股票交易所--BZX Exchange,BYX Exchange,EDGA Exchange和EDGX Exchange |
+| BSE | 孟买证券交易所数据 | 在印度孟买证券交易所交易的公司的日终价格,指数和其他信息。 |
+| FRED | 美联储经济数据 | 来自圣路易斯联邦储备银行研究部门的增长,就业,通货膨胀,劳工,制造业和其他美国经济统计数据。 |
+| FMAC | 房地美数据 | Freddie Mac的主要抵押贷款市场调查和其他地区特定历史抵押贷款利率的数据。 |
+| EUREX | 欧洲期货交易所数据 | 欧洲最大的期货交易所EUREX的指数,利率,农业和能源期货,历史跨越了特定期货的十年。 |
+| ECB | 欧洲中央银行数据 | 欧盟中央银行监督货币政策和欧元,并提供相关宏观经济变量的数据。 |
+| BOF | 法国银行数据 | 法兰西银行通过欧洲中央银行体系的政策负责货币政策,并提供关键经济指标的数据。 |
+| BELGRADESE | 贝尔格莱德证券交易所数据 | 贝尔格莱德证券交易所数据,每日更新。 |
+| CHRIS | 维基连续期货 | Quandl所有600个期货的连续合约。建立在CME,ICE,LIFFE等原始数据之上。由Quandl社区策划。 50年的历史。 |
+| BOJ | 日本银行数据 | nan |
+| USTREASURY | 美国财政部数据 | 美国财政部确保国家的金融安全,管理国家债务,收取税收,发行货币,提供收益率数据。 |
+| LBMA | 伦敦金银市场协会数据 | 伦敦黄金和白银市场的国际贸易协会,由中央银行,私人投资者,生产商,炼油商和其他代理商组成。 |
+| PERTH | 珀斯铸币厂数据 | 珀斯造币厂的利率和商品价格的高点,低点和平均值每月更新一次。 |
+| ZILLOW2 | Zillow房地产研究 | 房屋价格和租金按大小,类型和等级划分;住房供应,需求和销售。按邮政编码,街区,城市,都市区,县和州切片。 |
\ No newline at end of file
From 42c53dc43af8f75ae1c4c1905a829ad84676db49 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:26 +0800
Subject: [PATCH 136/421] New translations usecase.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.4.0/usecase.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/usecase.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/usecase.md b/website/translated_docs/zh-CN/version-0.4.0/usecase.md
new file mode 100644
index 0000000..6d4193c
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/usecase.md
@@ -0,0 +1,6 @@
+---
+id: version-0.4.0-usecase
+title: 使用案例
+original_id: usecase
+---
+## TBD
\ No newline at end of file
From a995efce5fe943713c12d487b26d756f43b009da Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:28 +0800
Subject: [PATCH 137/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/quickstart.md | 148 ++++++++++++++++++
1 file changed, 148 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/quickstart.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/quickstart.md b/website/translated_docs/zh-CN/version-0.4.0/quickstart.md
new file mode 100644
index 0000000..4794758
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/quickstart.md
@@ -0,0 +1,148 @@
+---
+id: version-0.4.0-quickstart
+title: '🌏 TestNet 快速开始'
+original_id: quickstart
+---
+## CovenantSQL 工具包
+
+### 工具包简介
+
+请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+
+例如,您使用的是:
+
+- MacOS 平台请下载:[**CovenantSQL-v0.4.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.4.0/CovenantSQL-v0.4.0.osx-amd64.tar.gz)
+- Linux 平台请下载:[**CovenantSQL-v0.4.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.4.0/CovenantSQL-v0.4.0.linux-amd64.tar.gz)
+- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+
+解压之后,你将得到以下命令行工具,包括:`cql`、`cql-utils` 等。
+
+| 工具名 | 介绍 |
+| ---------- | --------------------------------------------------- |
+| cql | CovenantSQL 的客户端,类似 mysql 命令,用于执行 SQL |
+| cql-utils | CovenantSQL 工具箱,用于和主链交互 |
+| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
+| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+
+### 测试网快速接入
+
+目前,我们已经发布了测试网 v0.4.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
+
+测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) ,或者使用以下命令:
+
+```bash
+mkdir conf
+wget https://git.io/fhFZe -O conf/config.yaml
+wget https://git.io/fhFZv -O conf/private.key
+chmod 600 conf/private.key
+```
+
+**测试网注**:
+
+> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
+>
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
+
+## 创建并访问 CovenantSQL 数据库
+
+### 创建数据库
+
+```shell
+./cql -config conf/config.yaml -create 1
+```
+
+输出:
+
+ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+
+> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+>
+> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
+> 2. 数据库创建请求在 其它出块节点 进行验证和确认
+> 3. SQLChain 的符合条件的 Miner 收到数据库任务
+> 4. SQLChian 组建 Kayak 数据库集群
+> 5. 所有 Miner 准备就绪等待请求
+
+### 访问数据库
+
+```shell
+./cql -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
+
+连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
+
+### 数据库 SDK
+
+- [Golang 开发指引](./development)
+
+## SQLChain 区块浏览器
+
+CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
+
+> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+
+## 创建账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+
+```shell
+./cql-utils -tool confgen
+```
+
+输出:
+
+ Generating key pair...
+ Enter master key(press Enter for default: ""):
+ Private key file: ~/.cql/private.key
+ Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Generated key pair.
+ Generating nonce...
+ INFO[0075] cpu: 4
+ INFO[0075] position: 3, shift: 0x0, i: 3
+ INFO[0075] position: 1, shift: 0x0, i: 1
+ INFO[0075] position: 0, shift: 0x0, i: 0
+ INFO[0075] position: 2, shift: 0x0, i: 2
+ nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+ node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ Generated nonce.
+ Generating config file...
+ Generated nonce.
+
+
+该命令会为你在~目录下创建一个 `.cql` 目录:
+
+- `~/.cql/private.key`: 为你生成的私钥通过主密码加密保存在该文件中,你的账号地址需要使用该文件创建;
+- `~/.cql/config.yaml`: 为你生成的配置,cql 可以通过读取该配置来访问 CovenantSQL 测试网。
+
+再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
+
+```shell
+./cql-utils -tool addrgen -private ~/.cql/private.key
+```
+
+输出:
+
+```toml
+wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+```
+
+你可以在这里回复上面得到的钱包地址 [GitHub Issue](https://github.com/CovenantSQL/CovenantSQL/issues/283),我们会为你的钱包充值。
+
+使用 cql 命令行工具查询余额(未加 -config 参数时,命令会自动找 ~/.cql 目录的 config.yaml 文件):
+
+```shell
+./cql -config ~/.cql/config.yaml -get-balance
+```
+
+输出:
+
+ INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+ INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+
+
+恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 2a794ef5924f63e63643817367940e3b76e728b2 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:29 +0800
Subject: [PATCH 138/421] New translations intro.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/intro.md | 73 +++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/intro.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/intro.md b/website/translated_docs/zh-CN/version-0.4.0/intro.md
new file mode 100644
index 0000000..dea44aa
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/intro.md
@@ -0,0 +1,73 @@
+---
+id: version-0.4.0-intro
+title: CovenantSQL 介绍
+original_id: intro
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CovenantSQL 是应用区块链技术构建的去中心化 SQL 云数据库,
+
+结合了区块链、共享经济、分布式数据库的优势,保障了用户隐私及对数据的所有权。
+
+CovenantSQL 具备以下特点:
+
+* **SQL接口**: 支持 SQL-92 标准,传统 App 几乎0修改即可数据上链
+* **去中心化**: 基于独有的高效拜占庭容错共识算法 Kayak 实现的去中心化结构
+* **不可篡改**: CovenantSQL 中的 Query 历史记录是可追溯的
+* **隐私**: 如果 Bitcoin 是人们的私人钱包,那么 CovenantSQL 就是是人们的去中心化的私密数据库
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## CovenantSQL 原理
+
+CovenantSQL 是一个运行在 Internet 上的开放网络,主要有以下三种角色组成:
+
+* 主链节点:
+ * 通过去中心化的架构,DPoS 模式的共识机制对矿工和用户进行撮合、协调、仲裁
+* 侧链矿工:
+ * 所有人都可以通过运行 Covenant Miner 来提供数据库服务来赚取奖励
+ * 通过 ETLS 传输层加密、应用层签名、落盘加密、端到端加密来保证用户数据隐私
+* 数据库用户:
+ * 用户通过一个私钥就可以创建指定数量节点的分布式数据库,存储自己的结构化数据
+ * 数据矿工的分布和地址仅对数据库用户可见,防止用户数据被嗅探
+ * 通过 **去中心化的高可用的架构** 和 **Miner 押金机制**,用户的数据可以在成本和可靠性、可用性上达到平衡可控
+
+
+
+* 第一层:**全局共识层**(主链,架构图中的中间环):
+ * 整个网络中只有一个主链。
+ * 主要负责数据库矿工与用户的合同匹配,交易结算,反作弊,子链哈希锁定等全局共识事宜。
+* 第二层:**SQL 共识层**(子链,架构图中的两边环):
+ * 每个数据库都有自己独立的子链。
+ * 主要负责数据库各种事务的签名,交付和一致性。这里主要实现永久可追溯性的数据历史,并且在主链中执行哈希锁定。
+* 第三层:**数据储存层**(支持 SQL-92 的数据库引擎):
+ * 每个数据库都有自己独立的分布式引擎。
+ * 主要负责:数据库存储和加密;查询处理和签名;高效索引。
\ No newline at end of file
From 25607802406f908aa343c88f8d36f0d0a6ea124f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:30 +0800
Subject: [PATCH 139/421] New translations api.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.4.0/api.md | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/api.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/api.md b/website/translated_docs/zh-CN/version-0.4.0/api.md
new file mode 100644
index 0000000..f124f52
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/api.md
@@ -0,0 +1,6 @@
+---
+id: version-0.4.0-api
+title: '👩🏻💻 CovenantSQL API'
+original_id: api
+---
+## TBD
\ No newline at end of file
From 65991f1147fc2f0def9aa573b8abe41101864075 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:31 +0800
Subject: [PATCH 140/421] New translations nav.md (Chinese Simplified)
---
.../zh-CN/version-0.4.0/nav.md | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.4.0/nav.md
diff --git a/website/translated_docs/zh-CN/version-0.4.0/nav.md b/website/translated_docs/zh-CN/version-0.4.0/nav.md
new file mode 100644
index 0000000..403ba6e
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.4.0/nav.md
@@ -0,0 +1,22 @@
+---
+id: version-0.4.0-nav
+title: '📖 使用导航'
+original_id: nav
+---
+## 直接使用测试网
+
+[🌏 TestNet 快速开始](./quickstart)
+
+## 部署私有 CovenantSQL 数据库(搭建私有链)
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
+
+## 使用 CovenantSQL 开发应用
+
+[📦 CovenantSQL SDK](./development)
+
+## CovenantSQL 联盟链解决方案
+
+正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 247890ab16fd0b82ce1048a83eee15517462127a Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 19:26:33 +0800
Subject: [PATCH 141/421] New translations getting-started-testnet-zh.md
(Chinese Simplified)
---
.../bck/getting-started-testnet-zh.md | 93 +++++++++++++++++++
1 file changed, 93 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-testnet-zh.md
diff --git a/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-testnet-zh.md b/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-testnet-zh.md
new file mode 100644
index 0000000..f7c9caf
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.2.0/bck/getting-started-testnet-zh.md
@@ -0,0 +1,93 @@
+---
+id: version-0.2.0-testnet
+title: CovenantSQL 测试网快速入门
+original_id: testnet
+---
+[CovenantSQL](https://github.com/CovenantSQL/CovenantSQL/blob/develop/README-zh.md) 是一个基于区块链技术的去中心化众筹式 SQL 数据库,并具备以下特点:
+
+1. **SQL**: 支持 SQL-92 标准
+2. **去中心化**: 基于独有的高效共识算法 DH-RPC 和 Kayak 实现的中心化
+3. **隐私**: 通过加密和授权许可进行访问
+4. **不可篡改**: CovenantSQL 中的查询历史记录是不可变且可跟踪的
+
+我们相信 [在下一个互联网时代,每个人都应该有完整的**数据权利**](https://medium.com/@covenant_labs/covenantsql-the-sql-database-on-blockchain-db027aaf1e0e)
+
+## 0. 下载 CovenantSQL 工具
+
+在 [github](https://github.com/CovenantSQL/CovenantSQL/releases) 下载最新的发行版
+
+## 1. 用 `cql-utils` 生成配置文件访问测试网
+
+```bash
+$ cql-utils -tool confgen
+Generating key pair...
+Enter master key(press Enter for default: ""):
+⏎
+Private key file: conf/private.key
+Public key's hex: 02296ea73240dcd69d2b3f1fb754c8debdf68c62147488abb10165428667ec8cbd
+Generated key pair.
+Generating nonce...
+nonce: {{731613648 0 0 0} 11 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9}
+node id: 001ea9c8381c4e8bb875372df9e02cd74326cbec33ef6f5d4c6829fcbf5012e9
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+运行完成后,`cql-utils`会在 `./conf` 目录生成一个配置文件。
+
+## 2. 用私钥生成钱包地址
+
+私钥可以再上一步的 `./conf` 目录中找到,文件名为 `private.key`
+
+```bash
+$ cql-utils -tool addrgen -private ./conf/private.key
+Enter master key(default: ""):
+⏎
+wallet address: 4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9
+```
+
+上述 `4jXvNvPHKNPU8Sncz5u5F5WSGcgXmzC1g8RuAXTCJzLsbF9Dsf9` 就是钱包地址
+
+## 3. 在水龙头(Faucet)获取 Particle(PTC)
+
+水龙头(Faucet)的地址为: [CovenantSQL 测试网 Particle(PTC) 水龙头](https://testnet.covenantsql.io/)。
+
+完成教程之后,用 `cql` 命令来检查钱包地址的余额:
+
+```bash
+$ cql -config conf/config.yaml -get-balance
+INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
+INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+```
+
+当看到 **"stable coin balance is: 100"** 时,表明余额已经为 100。
+
+如果您需要更多的 PTC 作为长期测试使用,请联系 。
+
+对于有合作的商业伙伴,我们将直接提供 PTC 以供使用。
+
+## 4. 使用 `CLI` 创建数据库
+
+```bash
+$ cql -config conf/config.yaml -create 1
+INFO[0000] the newly created database is: "covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872?use_follower=false&use_leader=true"
+```
+
+第一行命令中的 `1` 表示申请几个矿工为你的数据库服务。`covenantsql://...` 开头的这个字符串就是创建的数据库访问地址,在 SDK 和 CLI 命令中都需要用此地址,在整个区块链中找到这个数据库。
+
+## 5. CLI 和 SDK 的详细文档
+
+创建好数据库后,您可以参考以下文档和示例,以便更快的使用CovenantSQL来开发应用。
+
+- [CLI 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/cmd/cql/README-zh.md)
+- [SDK 文档](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/README-zh.md)
+- [SDK 示例](https://github.com/CovenantSQL/CovenantSQL/tree/develop/client/_example)
+
+## 6. SQLChain 浏览器
+
+目前,测试网的数据库时不需要权限的。意味着您可以通过数据库的DSN(数据库访问地址),在[SQLChain 浏览器](https://explorer.dbhub.org)中拿到所有的修改历史和区块信息。
+
+更多的测试网技术支持,请访问:
+
+> [TestNet 发行日志](https://github.com/CovenantSQL/CovenantSQL/wiki/Release-Notes-zh)
\ No newline at end of file
From c460c04942300d42caa7311d6150dea1d2f504f8 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 22:25:56 +0800
Subject: [PATCH 142/421] New translations deployment.md (Chinese Simplified)
---
website/translated_docs/zh-CN/deployment.md | 46 ++++++++++-----------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/website/translated_docs/zh-CN/deployment.md b/website/translated_docs/zh-CN/deployment.md
index 3ef403b..8b5b8c8 100644
--- a/website/translated_docs/zh-CN/deployment.md
+++ b/website/translated_docs/zh-CN/deployment.md
@@ -64,18 +64,18 @@ docker-compose ps
确认所有组件都处于 `Up` 的状态
```shell
- Name Command State Ports
-------------------------------------------------------------------------------------------------------
-covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
-covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
-covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
-covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
-covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
-covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
-covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
-covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
-covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
-covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+ Name Command State Ports
+---------------------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp, 0.0.0.0:12099->4665/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp, 0.0.0.0:12100->4665/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp, 0.0.0.0:12101->4665/tcp
+covenantsql_fn_0 ./docker-entry.sh -wsapi :8546 Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp, 0.0.0.0:12102->4665/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp, 0.0.0.0:12103->4665/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp, 0.0.0.0:12104->4665/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh Up 4661/tcp, 0.0.0.0:11108->80/tcp
```
## 操作 CovenantSQL
@@ -85,19 +85,19 @@ covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tc
使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":1}'
```
> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":2}'
```
命令会返回创建的数据库实例的连接串
```shell
-covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
```
### 访问数据库
@@ -105,16 +105,16 @@ covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
```shell
-docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+docker exec -it covenantsql_adapter /app/cql console -config /app/node_adapter/config.yaml -no-password -dsn covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
```
会得到如下输出,并进入 `cql` 交互命令行模式
```shell
-Connected with driver covenantsql (develop)
+Connected with driver covenantsql (develop-34ae741a-20190415135520)
Type "help" for help.
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
```
`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
@@ -129,23 +129,23 @@ SELECT * FROM test;
会得到如下输出
```shell
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> CREATE TABLE test (test TEXT);
CREATE TABLE
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SHOW TABLES;
name
------
test
(1 row)
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> INSERT INTO test VALUES("happy");
INSERT
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SELECT * FROM test;
test
-------
happy
(1 row)
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
```
使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
From 2249701438e2cb2f33cced8be5486016bd1216c7 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 23:18:21 +0800
Subject: [PATCH 143/421] New translations deployment-en.md (Chinese
Simplified)
---
.../translated_docs/zh-CN/deployment-en.md | 162 ++++++++++++++++++
1 file changed, 162 insertions(+)
create mode 100644 website/translated_docs/zh-CN/deployment-en.md
diff --git a/website/translated_docs/zh-CN/deployment-en.md b/website/translated_docs/zh-CN/deployment-en.md
new file mode 100644
index 0000000..b94d5df
--- /dev/null
+++ b/website/translated_docs/zh-CN/deployment-en.md
@@ -0,0 +1,162 @@
+---
+id: deployment
+title: '🐳 Docker one-line deployment'
+---
+## Deploy with CovenantSQL Docker
+
+### Install Docker
+
+You need to install docker and docker-compose on your machine to deploy CovenantSQL.
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### Download project
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+For all subsequent commands, the working directory is by default in the cloned CovenantSQL root directory, which can be saved as an environment variable:
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+### Start Docker container
+
+There are now two ways to start the CovenantSQL container:
+
+1. Use a public image on Docker Hub
+2. Build a CovenantSQL Docker image
+
+> We recommend that regular users test CovenantSQL in the first way, and the second is only used to experience the latest development features.
+
+#### 1. Use a public image on Docker Hub
+
+Then start directly:
+
+```bash
+make start
+```
+
+#### 2. Build a CovenantSQL Docker image
+
+Run CovenantSQL locally by executing the following command
+
+```bash
+make docker # compile a new image from source files
+make start
+```
+
+### Check running status
+
+Check the container status:
+
+```bash
+docker-compose ps
+```
+
+Confirm that all components are in the `Up` state
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+## Operate CovenantSQL
+
+### Create a database
+
+Create a DB instance by using the `cql` command and using the `create` parameter to provide the required number of database nodes.
+
+e.g.: creating a single-node database instance
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+> Modify the value of the `create` parameter to create an instance running on multiple nodes
+> e.g.: create an instance of two nodes
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+The command will return the connection string of the created database instance
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### Accessing the database
+
+Use the `cql` command and use the `dsn` parameter to provide a connection string for the database instance access:
+
+```shell
+docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+After that, it will get the following output, and enter the `cql` interactive command line mode
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+The `cql` interactive command line mode is similar to the `mysql` command. For example, create a table named test, view the tables in the database, insert records, and query results etc.
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+After that, it will get the following output:
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+Use the `Ctrl + D` shortcut or type `\q` to exit the `cql` interactive command line
+
+### SQLChain Observer
+
+The Observer role in the image uses the same private.key as in the mysql-adapter image, so the new account authorization and transfer process can be eliminated.
+
+(For details on rights management, please refer to [Database Permission Managemen](cql.md#数据库权限管理))
+
+#### Use SQLChain Observer in your browser
+
+We provide a SQLChain Observer at port `127.0.0.1:11108` to see the SQL statement on the chain.
\ No newline at end of file
From a11036a9907343410434b40fac1524261781e351 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 23:27:22 +0800
Subject: [PATCH 144/421] New translations driver_golang.md (Chinese
Simplified)
---
.../translated_docs/zh-CN/driver_golang.md | 172 ++++++++++++++++++
1 file changed, 172 insertions(+)
create mode 100644 website/translated_docs/zh-CN/driver_golang.md
diff --git a/website/translated_docs/zh-CN/driver_golang.md b/website/translated_docs/zh-CN/driver_golang.md
new file mode 100644
index 0000000..f3f2d45
--- /dev/null
+++ b/website/translated_docs/zh-CN/driver_golang.md
@@ -0,0 +1,172 @@
+---
+id: driver_golang
+title: '📦 Golang'
+---
+## 用 Golang 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+
+`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+
+### 兼容性
+
+`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+
+### 安装和使用
+
+`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
+
+可以执行 `go get` 命令进行安装
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API 文档
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### 示例
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // 使用节点配置文件初始化 Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // 连接数据库实例
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // 写入数据
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // 查询数据
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 914da14a43260ded18129d46fe954abad65ba307 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 23:27:23 +0800
Subject: [PATCH 145/421] New translations driver_js.md (Chinese Simplified)
---
website/translated_docs/zh-CN/driver_js.md | 67 ++++++++++++++++++++++
1 file changed, 67 insertions(+)
create mode 100644 website/translated_docs/zh-CN/driver_js.md
diff --git a/website/translated_docs/zh-CN/driver_js.md b/website/translated_docs/zh-CN/driver_js.md
new file mode 100644
index 0000000..c173d7a
--- /dev/null
+++ b/website/translated_docs/zh-CN/driver_js.md
@@ -0,0 +1,67 @@
+---
+id: driver_js
+title: '📦 Javascript'
+---
+## 用 NodeJS 使用 CovenantSQL
+
+NodeJS 开发者可以通过 [node-covenantsql](https://github.com/CovenantSQL/node-covenantsql) 来与 CovenantSQL Adapter 进行交互。
+
+#### 下载安装
+
+可以直接通过 `npm` 或者 `yarn` 来安装 `node-covenantsql`
+
+```bash
+npm install --save node-covenantsql
+```
+
+or
+
+```bash
+yarn add node-covenantsql
+```
+
+#### 使用
+
+使用前需要 [部署 Adapter 工具](./adapter)
+
+在运行本地 Adapter 之后,将 Adapter 的 endpoint 填入 `node-covenantsql` 的 config 之中:
+
+```javascript
+const config = {
+ endpoint: 'localhost:11105', // local testnet endpoint without https
+ database: `${DSN}`, // your DB id created by `cql` tools
+ bypassPem: true // bypass https config
+}
+```
+
+这里 `bypassPem` 为 `true` 表示应用中所有对链上数据库的操作都会经过本地的 Adapter 进行代理,我们默认本地环境是可控,安全的,无需用 HTTPS 来保证这段连接的信道安全,少了证书的繁琐认证,所以成为 `bypassPem`。
+
+接着连通之后则可进行链上数据库的增删改查:
+
+```typescript
+const cql from 'node-covenantsql'
+
+const config = {...} // see above
+
+cql.createConnection(config).then(async (connection: any) => {
+ // read
+ const data1 = await connection.query("select ? + ?", [2.1, 3.2]);
+ console.log(data1);
+
+ // write
+ const createTableSQL = `
+ CREATE TABLE IF NOT EXISTS contacts (\
+ contact_id INTEGER PRIMARY KEY,
+ first_name TEXT NOT NULL,
+ last_name TEXT NOT NULL,
+ email text NOT NULL UNIQUE,
+ phone text NOT NULL UNIQUE
+ );
+ `
+ const status1 = await connection.exec(createTableSQL)
+ console.log(`exec1 status:`, status1);
+
+ const data2 = await connection.query("show tables;");
+ console.log(data2);
+}).catch((e: any) => console.log(e))
+```
\ No newline at end of file
From 495012f086086dc300d9679c7794697d2d5d16b3 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 23:27:24 +0800
Subject: [PATCH 146/421] New translations adpater.md (Chinese Simplified)
---
website/translated_docs/zh-CN/adpater.md | 52 ++++++++++++++++++++++++
1 file changed, 52 insertions(+)
create mode 100644 website/translated_docs/zh-CN/adpater.md
diff --git a/website/translated_docs/zh-CN/adpater.md b/website/translated_docs/zh-CN/adpater.md
new file mode 100644
index 0000000..dd7ceb8
--- /dev/null
+++ b/website/translated_docs/zh-CN/adpater.md
@@ -0,0 +1,52 @@
+---
+id: adapter
+title: '📦 CovenantSQL Adapter SDK'
+---
+# 通过 Adapter 使用 CovenantSQL
+
+## 简介
+
+`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+
+## 安装和使用
+
+首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+
+### Docker 运行 Adapter
+
+下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+
+```bash
+export adapter_addr=0.0.0.0:11105
+docker rm -f cql-adapter
+docker run -itd \
+ --env COVENANT_ROLE=adapter --env COVENANT_CONF=/app/config.yaml \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --name cql-adapter -p $adapter_addr:4661 \
+ covenantsql/covenantsql:testnet 0.0.0.0:4661
+```
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker run -it --rm \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --entrypoint /app/cql covenantsql/covenantsql:testnet \
+ create -config /app/config.yaml -wait-tx-confirm '{"node": 1}'
+```
+
+命令会返回创建的数据库实例的连接串(DSN)
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+## 主流语言 Driver 的使用
+
+1. [Java](./driver_java)
+2. [Python](./driver_python)
+3. [NodeJS](./driver_js)
\ No newline at end of file
From 534a743b0d627f98183cb0cf63757d1f7b8cb46f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 23:27:26 +0800
Subject: [PATCH 147/421] New translations driver_java.md (Chinese Simplified)
---
website/translated_docs/zh-CN/driver_java.md | 68 ++++++++++++++++++++
1 file changed, 68 insertions(+)
create mode 100644 website/translated_docs/zh-CN/driver_java.md
diff --git a/website/translated_docs/zh-CN/driver_java.md b/website/translated_docs/zh-CN/driver_java.md
new file mode 100644
index 0000000..6e185d2
--- /dev/null
+++ b/website/translated_docs/zh-CN/driver_java.md
@@ -0,0 +1,68 @@
+---
+id: driver_java
+title: '📦 Java'
+---
+## 用 Java 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Java SDK`,可通过 `Adapter` 工具转换协议访问数据库实例。
+
+`Java SDK` 遵守 `Java` 标准的 `JDBC4` 接口定义,能够使用常见的 `ORM` 例如 `MyBatis` 进行使用。
+
+### 兼容性
+
+`Java SDK` 目前只兼容 `Java 1.7+` 的 `JDK` 版本。
+
+### 安装和使用
+
+使用 `Java SDK` 需要 [部署 Adapter 工具](./adapter)。
+
+然后通过 `jdbc:covenantsql:///` URI,将其中的 `adapter_endpoint` 替换为 adapter 的地址,`database_id` 替换为数据库的 DSN 串访问数据库实例。
+
+#### Maven
+
+```xml
+
+
+ mvn-repo
+ https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo
+
+ true
+
+
+ true
+
+
+
+```
+
+```xml
+
+
+ io.covenantsql
+ covenantsql-java
+ 1.0-SNAPSHOT
+
+
+```
+
+#### Gradle
+
+```gradle
+repositories {
+ maven {
+ url 'https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo'
+ }
+}
+
+dependencies {
+ compile 'io.covenantsql:covenantsql-java-connector:1.0-SNAPSHOT'
+}
+```
+
+### 示例
+
+1. [JDBC示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/jdbc/Example.java)
+2. [MyBatis示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/mybatis/Example.java)
+3. [大型项目示例](https://github.com/CovenantSQL/covenantsql-mybatis-spring-boot-jpetstore)
\ No newline at end of file
From 2b8819130bd9b3232f73ac5f26650886c94c3bf2 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Mon, 15 Apr 2019 23:27:27 +0800
Subject: [PATCH 148/421] New translations driver_python.md (Chinese
Simplified)
---
.../translated_docs/zh-CN/driver_python.md | 53 +++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 website/translated_docs/zh-CN/driver_python.md
diff --git a/website/translated_docs/zh-CN/driver_python.md b/website/translated_docs/zh-CN/driver_python.md
new file mode 100644
index 0000000..b86897a
--- /dev/null
+++ b/website/translated_docs/zh-CN/driver_python.md
@@ -0,0 +1,53 @@
+---
+id: driver_python
+title: '📦 Python'
+---
+## 用 Python 使用 CovenantSQL
+
+开发者可以通过 [PyCovenantSQL](https://github.com/CovenantSQL/python-driver) 来使用 CovenantSQL。
+
+### 兼容性
+
+`Python SDK` 目前只兼容 `python 3.4+`
+
+### 安装和使用
+
+使用 `Python SDK` 需要 [部署 Adapter 工具](./adapter)。
+
+使用 pip 安装 PyCovenantSQL
+
+```shell
+$ python3 -m pip install PyCovenantSQL
+```
+
+### 示例
+
+将 `adapter_host` 替换为 adapter 地址,`adapter_port` 替换为 adapter 的端口,adapter
+
+```python
+import pycovenantsql
+
+# Connect to the database
+connection = pycovenantsql.connect(host='',
+ port=,
+ database=''
+ )
+
+try:
+ with connection.cursor() as cursor:
+ # Create a new record
+ sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
+ cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
+
+ # connection is autocommit. No need to commit in any case.
+ # connection.commit()
+
+ with connection.cursor() as cursor:
+ # Read a single record
+ sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
+ cursor.execute(sql, ('webmaster@python.org',))
+ result = cursor.fetchone()
+ print(result)
+finally:
+ connection.close()
+```
\ No newline at end of file
From 91ab923320c02328fffdde1653e94a7f7eb573f2 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Tue, 16 Apr 2019 16:29:00 +0800
Subject: [PATCH 149/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/deployment.md | 46 +++++++++----------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/deployment.md b/website/translated_docs/zh-CN/version-0.5.0/deployment.md
index 705df6e..0b2f381 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/deployment.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/deployment.md
@@ -65,18 +65,18 @@ docker-compose ps
确认所有组件都处于 `Up` 的状态
```shell
- Name Command State Ports
-------------------------------------------------------------------------------------------------------
-covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
-covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
-covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
-covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
-covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
-covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
-covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
-covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
-covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
-covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+ Name Command State Ports
+---------------------------------------------------------------------------------------------------------------------
+covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
+covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp, 0.0.0.0:12099->4665/tcp
+covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp, 0.0.0.0:12100->4665/tcp
+covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp, 0.0.0.0:12101->4665/tcp
+covenantsql_fn_0 ./docker-entry.sh -wsapi :8546 Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp, 0.0.0.0:12102->4665/tcp
+covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp, 0.0.0.0:12103->4665/tcp
+covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp, 0.0.0.0:12104->4665/tcp
+covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer ./docker-entry.sh Up 4661/tcp, 0.0.0.0:11108->80/tcp
```
## 操作 CovenantSQL
@@ -86,19 +86,19 @@ covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tc
使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":1}'
```
> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":2}'
```
命令会返回创建的数据库实例的连接串
```shell
-covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
```
### 访问数据库
@@ -106,16 +106,16 @@ covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
```shell
-docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+docker exec -it covenantsql_adapter /app/cql console -config /app/node_adapter/config.yaml -no-password -dsn covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
```
会得到如下输出,并进入 `cql` 交互命令行模式
```shell
-Connected with driver covenantsql (develop)
+Connected with driver covenantsql (develop-34ae741a-20190415135520)
Type "help" for help.
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
```
`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
@@ -130,23 +130,23 @@ SELECT * FROM test;
会得到如下输出
```shell
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> CREATE TABLE test (test TEXT);
CREATE TABLE
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SHOW TABLES;
name
------
test
(1 row)
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> INSERT INTO test VALUES("happy");
INSERT
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SELECT * FROM test;
test
-------
happy
(1 row)
-co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
```
使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
From d761c71e40df0f5308b133cfa59b61e9c267db30 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Tue, 16 Apr 2019 16:48:35 +0800
Subject: [PATCH 150/421] New translations adpater.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/adpater.md | 53 +++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/adpater.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/adpater.md b/website/translated_docs/zh-CN/version-0.5.0/adpater.md
new file mode 100644
index 0000000..85992aa
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/adpater.md
@@ -0,0 +1,53 @@
+---
+id: version-0.5.0-adapter
+title: '📦 CovenantSQL Adapter SDK'
+original_id: adapter
+---
+# 通过 Adapter 使用 CovenantSQL
+
+## 简介
+
+`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+
+## 安装和使用
+
+首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+
+### Docker 运行 Adapter
+
+下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+
+```bash
+export adapter_addr=0.0.0.0:11105
+docker rm -f cql-adapter
+docker run -itd \
+ --env COVENANT_ROLE=adapter --env COVENANT_CONF=/app/config.yaml \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --name cql-adapter -p $adapter_addr:4661 \
+ covenantsql/covenantsql:testnet 0.0.0.0:4661
+```
+
+### 创建数据库
+
+使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+
+```shell
+docker run -it --rm \
+ -v ~/.cql/config.yaml:/app/config.yaml \
+ -v ~/.cql/private.key:/app/private.key \
+ --entrypoint /app/cql covenantsql/covenantsql:testnet \
+ create -config /app/config.yaml -wait-tx-confirm '{"node": 1}'
+```
+
+命令会返回创建的数据库实例的连接串(DSN)
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+## 主流语言 Driver 的使用
+
+1. [Java](./driver_java)
+2. [Python](./driver_python)
+3. [NodeJS](./driver_js)
\ No newline at end of file
From d7cfd9b9b406377c5c1828f81145a6771ad0cca0 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Tue, 16 Apr 2019 16:48:36 +0800
Subject: [PATCH 151/421] New translations deployment-en.md (Chinese
Simplified)
---
.../zh-CN/version-0.5.0/deployment-en.md | 163 ++++++++++++++++++
1 file changed, 163 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/deployment-en.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/deployment-en.md b/website/translated_docs/zh-CN/version-0.5.0/deployment-en.md
new file mode 100644
index 0000000..adfe539
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/deployment-en.md
@@ -0,0 +1,163 @@
+---
+id: version-0.5.0-deployment
+title: '🐳 Docker one-line deployment'
+original_id: deployment
+---
+## Deploy with CovenantSQL Docker
+
+### Install Docker
+
+You need to install docker and docker-compose on your machine to deploy CovenantSQL.
+
+Docker:https://docs.docker.com/install/
+
+Docker-Compose:https://docs.docker.com/compose/install/
+
+### Download project
+
+```bash
+git clone https://github.com/CovenantSQL/CovenantSQL
+cd CovenantSQL
+```
+
+For all subsequent commands, the working directory is by default in the cloned CovenantSQL root directory, which can be saved as an environment variable:
+
+```bash
+export COVENANTSQL_ROOT=$PWD
+```
+
+### Start Docker container
+
+There are now two ways to start the CovenantSQL container:
+
+1. Use a public image on Docker Hub
+2. Build a CovenantSQL Docker image
+
+> We recommend that regular users test CovenantSQL in the first way, and the second is only used to experience the latest development features.
+
+#### 1. Use a public image on Docker Hub
+
+Then start directly:
+
+```bash
+make start
+```
+
+#### 2. Build a CovenantSQL Docker image
+
+Run CovenantSQL locally by executing the following command
+
+```bash
+make docker # compile a new image from source files
+make start
+```
+
+### Check running status
+
+Check the container status:
+
+```bash
+docker-compose ps
+```
+
+Confirm that all components are in the `Up` state
+
+```shell
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
+```
+
+## Operate CovenantSQL
+
+### Create a database
+
+Create a DB instance by using the `cql` command and using the `create` parameter to provide the required number of database nodes.
+
+e.g.: creating a single-node database instance
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+> Modify the value of the `create` parameter to create an instance running on multiple nodes
+> e.g.: create an instance of two nodes
+
+```shell
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
+```
+
+The command will return the connection string of the created database instance
+
+```shell
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+```
+
+### Accessing the database
+
+Use the `cql` command and use the `dsn` parameter to provide a connection string for the database instance access:
+
+```shell
+docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
+ ```
+
+After that, it will get the following output, and enter the `cql` interactive command line mode
+
+```shell
+Connected with driver covenantsql (develop)
+Type "help" for help.
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+The `cql` interactive command line mode is similar to the `mysql` command. For example, create a table named test, view the tables in the database, insert records, and query results etc.
+
+```sql
+CREATE TABLE test (test TEXT);
+SHOW TABLES;
+INSERT INTO test VALUES("happy");
+SELECT * FROM test;
+```
+
+After that, it will get the following output:
+
+```shell
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
+CREATE TABLE
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
+ name
+------
+ test
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
+INSERT
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
+ test
+-------
+ happy
+(1 row)
+
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
+```
+
+Use the `Ctrl + D` shortcut or type `\q` to exit the `cql` interactive command line
+
+### SQLChain Observer
+
+The Observer role in the image uses the same private.key as in the mysql-adapter image, so the new account authorization and transfer process can be eliminated.
+
+(For details on rights management, please refer to [Database Permission Managemen](cql.md#数据库权限管理))
+
+#### Use SQLChain Observer in your browser
+
+We provide a SQLChain Observer at port `127.0.0.1:11108` to see the SQL statement on the chain.
\ No newline at end of file
From ddb2c17ed7fdc3eedd4cba9aff63b3733faeb05e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Tue, 16 Apr 2019 16:48:38 +0800
Subject: [PATCH 152/421] New translations driver_java.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/driver_java.md | 69 +++++++++++++++++++
1 file changed, 69 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/driver_java.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_java.md b/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
new file mode 100644
index 0000000..bb03333
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
@@ -0,0 +1,69 @@
+---
+id: version-0.5.0-driver_java
+title: '📦 Java'
+original_id: driver_java
+---
+## 用 Java 使用 CovenantSQL
+
+### 简介
+
+`CovenantSQL` 提供了 `Java SDK`,可通过 `Adapter` 工具转换协议访问数据库实例。
+
+`Java SDK` 遵守 `Java` 标准的 `JDBC4` 接口定义,能够使用常见的 `ORM` 例如 `MyBatis` 进行使用。
+
+### 兼容性
+
+`Java SDK` 目前只兼容 `Java 1.7+` 的 `JDK` 版本。
+
+### 安装和使用
+
+使用 `Java SDK` 需要 [部署 Adapter 工具](./adapter)。
+
+然后通过 `jdbc:covenantsql:///` URI,将其中的 `adapter_endpoint` 替换为 adapter 的地址,`database_id` 替换为数据库的 DSN 串访问数据库实例。
+
+#### Maven
+
+```xml
+
+
+ mvn-repo
+ https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo
+
+ true
+
+
+ true
+
+
+
+```
+
+```xml
+
+
+ io.covenantsql
+ covenantsql-java
+ 1.0-SNAPSHOT
+
+
+```
+
+#### Gradle
+
+```gradle
+repositories {
+ maven {
+ url 'https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo'
+ }
+}
+
+dependencies {
+ compile 'io.covenantsql:covenantsql-java-connector:1.0-SNAPSHOT'
+}
+```
+
+### 示例
+
+1. [JDBC示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/jdbc/Example.java)
+2. [MyBatis示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/mybatis/Example.java)
+3. [大型项目示例](https://github.com/CovenantSQL/covenantsql-mybatis-spring-boot-jpetstore)
\ No newline at end of file
From e6ea738357271d1f57ccff842ae36785752249aa Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Tue, 16 Apr 2019 16:48:39 +0800
Subject: [PATCH 153/421] New translations driver_python.md (Chinese
Simplified)
---
.../zh-CN/version-0.5.0/driver_python.md | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/driver_python.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_python.md b/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
new file mode 100644
index 0000000..af9f079
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
@@ -0,0 +1,54 @@
+---
+id: version-0.5.0-driver_python
+title: '📦 Python'
+original_id: driver_python
+---
+## 用 Python 使用 CovenantSQL
+
+开发者可以通过 [PyCovenantSQL](https://github.com/CovenantSQL/python-driver) 来使用 CovenantSQL。
+
+### 兼容性
+
+`Python SDK` 目前只兼容 `python 3.4+`
+
+### 安装和使用
+
+使用 `Python SDK` 需要 [部署 Adapter 工具](./adapter)。
+
+使用 pip 安装 PyCovenantSQL
+
+```shell
+$ python3 -m pip install PyCovenantSQL
+```
+
+### 示例
+
+将 `adapter_host` 替换为 adapter 地址,`adapter_port` 替换为 adapter 的端口,adapter
+
+```python
+import pycovenantsql
+
+# Connect to the database
+connection = pycovenantsql.connect(host='',
+ port=,
+ database=''
+ )
+
+try:
+ with connection.cursor() as cursor:
+ # Create a new record
+ sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
+ cursor.execute(sql, ('webmaster@python.org', 'very-secret'))
+
+ # connection is autocommit. No need to commit in any case.
+ # connection.commit()
+
+ with connection.cursor() as cursor:
+ # Read a single record
+ sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
+ cursor.execute(sql, ('webmaster@python.org',))
+ result = cursor.fetchone()
+ print(result)
+finally:
+ connection.close()
+```
\ No newline at end of file
From 7426203b33ccf405900adc644bb1d9e0d60b81de Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Tue, 16 Apr 2019 22:30:12 +0800
Subject: [PATCH 154/421] New translations cql.md (Chinese Simplified)
---
website/translated_docs/zh-CN/cql.md | 568 +++++++++++++++++++++++----
1 file changed, 498 insertions(+), 70 deletions(-)
diff --git a/website/translated_docs/zh-CN/cql.md b/website/translated_docs/zh-CN/cql.md
index be990f0..8757ca2 100644
--- a/website/translated_docs/zh-CN/cql.md
+++ b/website/translated_docs/zh-CN/cql.md
@@ -1,111 +1,299 @@
---
id: cql
-title: '🖥️ CQL 命令行工具'
+title: '🖥️ CQL 命令行工具集'
---
## 简介
-本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络, 并将 `cql` 可执行文件保存在 `PATH` 目录。
+CovenantSQL 为终端用户提供 `cql` 命令行工具集,用于对用户账号、钱包以及名下的数据库进行便捷的管理和访问操作。~~工具下载地址见 [release](https://github.com/CovenantSQL/CovenantSQL/releases) 页面。请将 `cql` 二进制解压到自己系统 PATH 路径里以方便调用。~~(补充:使用包管理工具安装 `cql`)。
-### 配置文件
+### 账号私钥和配置文件
-`cql`命令依赖配置文件`config.yaml`和私钥文件`private.key`。这两个文件如果使用`cql generate config`命令生成,会默认放在`~/.cql/`目录下。在此目录下时,`cql`所有子命令的`-config`参数均可以省略不填写。
+运行 `cql` 依赖私钥文件 `private.key` 和配置文件 `config.yaml`,其中:
-### Master key
+- `private.key`:生成用户账户时所分配的私钥,请务必妥善保管好这个私钥
+- `config.yaml`:主要用于配置 `cql` 命令要连接的 CovenantSQL 网络(如 TestNet 或用户使用 [Docker 一键部署](deployment)的网络)
-`private.key`文件在生成时需要输入密码,`cql`命令会自动请求输入master key (密码)。 如果想在脚本中使用,可以在子命令后面增加`-password your_master_key`,空密码时用`-no-password`参数。
+出于安全方面的考虑,私钥文件通常需要使用主密码进行加密。主密码在创建账号时由用户输入,之后由用户自行记忆或保管,而不会保存到配置文件中。当需要使用到私钥的时候,`cql` 命令会要求用户输入主密码以解开私钥文件。
-## 查询余额
+### 子命令通用参数
-查询余额的命令是:`cql wallet -balance `。其中`token_type`设置为`all`时将返回用户账户中 `Particle` 与 `Wave` 的数量,其他关键词将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+以下列出子命令中使用到的通用参数:
-- `Particle`
-- `Wave`
-- `Bitcoin`
-- `Ether`
-- `EOS`
+```bash
+ -bypass-signature
+ 禁用签名和验签,仅用于开发者测试
+ -config string
+ 指定配置文件路径,默认值为 "~/.cql/config.yaml"
+ -no-password
+ 使用空白主密码加密私钥
+ -password string
+ 私钥主密码(不安全,仅用于调试或安全环境下的脚本模式)
+```
+
+注意,因为私钥文件的路径是在配置文件中设定的,默认值为相对路径 `./private.key`,即配置文件的同一目录下,所以我们通常把私钥和配置文件放置到同一目录下,而不设置单独的参数来指定私钥文件。
+
+## 账号管理
+
+对于 TestNet 环境,我们提供了一个公用的测试账号私钥及配置文件用于快速接入测试,详情请参见 [CovenantSQL TestNet](quickstart) 快速上手教程。另外你也可以选择参照如下教程在本地创建新账号。
+
+### 创建新账号
-查看默认余额:
+子命令 `generate` 在指定目录生成私钥及指向 TestNet 的配置文件,示例:
```bash
-cql wallet -balance all -config conf/config.yaml
+cql generate config
```
+> 目前默认生成的配置文件指向测试网,还需要提供生成指向 Docker 一键部署网络的配置方法。
+
+指定目录的参数详见[完整参数说明](#子命令-generate
-完整参数)。
+
输出:
- INFO[0000] Particle balance is: 10000000000000000000
- INFO[0000] Wave balance is: 10000000000000000000
-
+```bash
+Generating key pair...
+Enter master key(press Enter for default: ""):
+Private key file: ~/.cql/private.key
+Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+Generated key pair.
+Generating nonce...
+INFO[0075] cpu: 4
+INFO[0075] position: 3, shift: 0x0, i: 3
+INFO[0075] position: 1, shift: 0x0, i: 1
+INFO[0075] position: 0, shift: 0x0, i: 0
+INFO[0075] position: 2, shift: 0x0, i: 2
+nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+### 获取私钥文件的公钥
-查看 Particle 余额:
+子命令 `generate` 也可以用来获取已经存在的私钥文件对应的公钥十六进制串。示例:
```bash
-cql wallet -balance Particle -config conf/config.yaml
+cql generate public
```
输出:
- INFO[0000] Particle balance is: 10000000000000000000
-
+```bash
+Enter master key(press Enter for default: ""):
+
+INFO[0011] init config success path=/home/levente/.cql/private.key
+INFO[0011] use public key in config file: /home/levente/.cql/config.yaml
+Public key's hex: 02fd4089e7f4ca224f576d4baa573b3e9662153c952fce3f87f9586ffdd11baef6
+```
+
+> 这一功能实际使用过程中暂时不会用到
+
+### 子命令 `generate` 完整参数
+
+通用参数部分参考 [子命令通用参数](#子命令通用参数),以下介绍其他子命令时不再另外说明。
-查看 Bitcoin 余额:
+特殊地,在使用 `cql generate config` 命令生成新账号配置时,`-config`、`-no-password` 和 `-password` 等参数实际作用于将要生成的新私钥和配置文件,而不是要读取的文件。
```bash
-cql wallet -balance Bitcoin -config conf/config.yaml
+usage: cql generate [参数]... config | public
+
+生成新私钥及配置文件,或获取指定配置的私钥文件对应的公钥。
+
+Params:
+ 没有额外参数
+```
+
+### 计算 Node ID
+
+子命令 `idminer` 用于计算指定配置文件(对应的私钥)的 Node ID(Node ID 的相关知识请参考[链接](terms#Node-ID))。示例:
+
+```bash
+cql idminer
```
输出:
- INFO[0000] Bitcoin balance is: 0
-
+```bash
+INFO[0000] cql build: cql develop-34ae741a-20190415161544 linux amd64 go1.11.5
+Enter master key(press Enter for default: ""):
+
+INFO[0008] init config success path=/home/levente/.cql/config.yaml
+INFO[0008] use public key in config file: /home/levente/.cql/config.yaml
+INFO[0008] cpu: 8
+INFO[0008] position: 3, shift: 0x20, i: 7
+INFO[0008] position: 0, shift: 0x0, i: 0
+INFO[0008] position: 3, shift: 0x0, i: 6
+INFO[0008] position: 1, shift: 0x0, i: 2
+INFO[0008] position: 2, shift: 0x0, i: 4
+INFO[0008] position: 1, shift: 0x20, i: 3
+INFO[0008] position: 2, shift: 0x20, i: 5
+INFO[0008] position: 0, shift: 0x20, i: 1
+nonce: {{1251426 4506240821 0 0} 25 00000041bc2b3de3bcb96328d0004c684628a908f0233eb31fe9998ef0c6288e}
+node id: 00000041bc2b3de3bcb96328d0004c684628a908f0233eb31fe9998ef0c6288e
+```
+
+> 这一功能实际使用过程中暂时不会用到
+
+### 子命令 `idminer` 完整参数
-## 转账
+```bash
+usage: cql idminer [-config file] [-difficulty number] [-loop false]
+
+为指定配置的私钥文件计算新的 Node ID。
+
+Params:
+ -difficulty int
+ 生成 Node ID 的难度要求,默认值为 24
+ -loop
+ 循环计算以取得更高难度的 Node ID
+```
+
+## 钱包管理
+
+### 查看钱包地址
-转账操作使用 `cql transfer` 并以 `json` 格式的转账信息为参数。
+在配置好账号以后,可以通过 `wallet` 子命令来获取账号的钱包地址:
+
+```bash
+cql wallet
+```
+
+输出:
+
+```bash
+Enter master key(press Enter for default: ""):
+
+wallet address: 43602c17adcc96acf2f68964830bb6ebfbca6834961c0eca0915fcc5270e0b40
+```
+
+这里可以看到我们用于测试的账号私钥文件对应的钱包地址是 `43602c17adcc96acf2f68964830bb6ebfbca6834961c0eca0915fcc5270e0b40`。
+
+### 查看钱包余额
+
+获得钱包地址之后,就可以使用 `wallet` 子命令来查看你的钱包余额了。目前 CovenantSQL 支持的代币类型为以下 5 种:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+其中 `Particle` 和 `Wave` 为 CovenantSQL 默认使用的代币,查看默认代币余额的命令为:
+
+```bash
+cql wallet -balance all
+```
+
+输出:
+
+```bash
+INFO[0000] Particle balance is: 10000000000000000000
+INFO[0000] Wave balance is: 10000000000000000000
+```
+
+也可以单独指定代币类型,如查看 `Bitcoin` 余额:
+
+```bash
+cql wallet -balance Bitcoin
+```
+
+输出:
+
+```bash
+INFO[0000] Bitcoin balance is: 0
+```
+
+### 向其他账号转账
+
+从 [TestNet](quickstart) 获得代币或 [Docker 一键部署](deployment)的网络获得代币后,可以使用 `transfer` 命令来向其他账号转账。转账操作使用 `json` 格式的转账信息作为参数,例如:
```json
{
- "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
- "amount":"1000000 Particle" // 转账金额并带上单位
+ "addr": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount": "1000000 Particle" // 转账金额并带上单位
}
```
其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
-转账 Particle:
+把以上参数传给 `transfer` 子命令来进行转账:
```bash
-cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+cql transfer '{"addr": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount": "1000000 Particle"}'
```
输出:
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+```bash
+INFO[0000] succeed in sending transaction to CovenantSQL
+```
+
+注意,以上输出信息只说明交易请求已经成功发送至 CovenantSQL 网络,需要等待 BP 节点执行并确认交易后才能实际生效。交易能否成功、何时成功可以通过执行 `cql wallet -balance ` 来确定,也可以在执行命令时添加 `-wait-tx-confirm` 参数来让 `cql` 命令查询到执行结果之后再退出。
-转账 Wave:
+### 子命令 `wallet` 完整参数
```bash
-cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+usage: cql wallet [-config file] [-balance token_type]
+
+查看账号钱包地址和代币余额。
+示例:
+ cql wallet
+ cql wallet -balance Particle
+ cql wallet -balance all
+
+Params:
+ -balance string
+ 获取当前账号中指定代币类型的余额
```
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+### 子命令 `transfer` 完整参数
-查看余额:
+```bash
+usage: cql transfer [-config file] [-wait-tx-confirm] meta_json
+
+向目标账号地址进行转账。输入参数为 JSON 格式的转账交易数据。
+示例:
+ cql transfer '{"addr": "your_account_addr", "amount": "100 Particle"}'
+
+由于 CovenantSQL 是区块链上的数据库,在交易生效之前你可能需要等待执行确认。
+示例:
+ cql transfer -wait-tx-confirm '{"addr": "your_account_addr", "amount": "100 Particle"}'
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+## 数据库管理
+
+### 创建数据库
+
+创建数据库与 `transfer` 子命令类似使用 `json` 格式的输入参数,创建由一个节点组成的数据库:
```bash
-cql wallet -balance all -config conf/config.yaml
+cql create '{"node": 1}'
```
输出:
- INFO[0000] Particle balance is: 9999999999999000000
- INFO[0000] Wave balance is: 9999999999999000000
-
+```bash
+Enter master key(press Enter for default: ""):
+
+covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
-注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `cql wallet -balance ` 确定。
+注意这里生成的 `covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 即为数据库的连接字符串(dsn),其中 `covenantsql` 为数据库协议字段,一般也可以缩写为 `cql`;`//` 后的十六进制串为数据库地址,可以在 `transfer` 子命令中作为收款地址使用。
-## 数据库权限管理
+子命令 `grant` 通过向 BP 发起交易实现,所以也支持 `wait-tx-confirm` 参数。
+
+关于子命令 `create` 输入参数的完整说明,请参见[完整参数](#子命令-create
-完整参数)。
+
+### ~~删除数据库~~
+
+~~未实现。~~
+
+### 数据库权限管理
#### 访问权限
@@ -116,56 +304,60 @@ CovenantSQL 数据库有三类库级别权限:
- `Read`
- `Void`
-其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql grant` 并以 `json` 格式的权限信息为参数:
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。
+
+假设我们用默认账号创建好了数据库 `covenantsql:\\4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5`,在目录 `account2` 下创建好新账号配置,账号地址为 `011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6`,现在用默认账号给新账号授权已经创建好的数据库的访问权限,同样使用 `json` 格式的授权信息为参数:
```json
{
- "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
- "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
- "perm":"Write" // 权限内容
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm": "Read,Write" // 权限内容,多个权限用英文逗号隔开
}
```
-增加写权限:
+把以上参数传给 `grant` 子命令来增加读写权限:
```bash
-cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+cql grant '{"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", "perm": "Read,Write"}'
```
输出:
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+```bash
+INFO[0000] succeed in sending transaction to CovenantSQL
+```
吊销权限:
```bash
-cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+cql grant '{"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", "perm": "Void"}'
```
输出:
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+```bash
+INFO[0000] succeed in sending transaction to CovenantSQL
+```
-注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+子命令 `grant` 通过向 BP 发起交易实现,所以也支持 `wait-tx-confirm` 参数。
-为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
+由于目前每个数据库实例分别为每个用户独立计费,所以为数据库添加新的账户权限后,需要以新账户身份向该数据库转押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
使用新账户给数据库充值:
```bash
-cql transfer -config new_user_config/config.yaml '{"addr":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount":"90000000 Particle"}'
+cql -config "account2/config.yaml" transfer '{"addr": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount": "90000000 Particle"}'
```
#### SQL 白名单
-CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除货更新操作。
+CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除或更新操作。
增加白名单:
-```shell
-cql -config conf/config.yaml -update-perm '
+```bash
+cql grant '
{
"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
"user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
@@ -174,7 +366,7 @@ cql -config conf/config.yaml -update-perm '
"SELECT COUNT(1) FROM a",
"SELECT * FROM a WHERE id = ? LIMIT 1"
],
- "role": "Read"
+ "role": "Read,Write"
}
}
'
@@ -182,29 +374,265 @@ cql -config conf/config.yaml -update-perm '
*白名单功能是基于数据库权限的一个扩展,且当前不支持增量的白名单更新,在设置白名单时需要写明所有授权该用户使用的语句,以及该用户对数据库的访问权限*
-设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a`的 总数据量。
+设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a` 的总数据量。
去掉白名单限制:
-```shell
-cql -config conf/config.yaml -update-perm '
+```bash
+cql grant '
{
"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
"user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
"perm": {
"patterns": nil,
- "role": "Read"
+ "role": "Read,Write"
}
}
'
# or
-cql -config conf/config.yaml -update-perm '
+cql grant '
{
"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
"user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
- "perm": "Read"
+ "perm": "Read,Write"
}
'
```
-将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
\ No newline at end of file
+将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
+
+### 子命令 `create` 完整参数
+
+```bash
+usage: cql create [-config file] [-wait-tx-confirm] db_meta_json
+
+为当前账号创建数据库实例,输入参数为 JSON 格式的创建交易数据,其中节点数 node 为必带字段。
+示例:
+ cql create '{"node": 2}'
+
+完整的 db_meta_json 字段解释如下:
+ targetminers []string // 目标节点的账号地址
+ node int // 目标节点数
+ space int // 需要的硬盘空间,0 为任意
+ memory int // 需要的内存空间,0 为任意
+ loadavgpercpu float // 需要的 CPU 资源占用,0 为任意
+ encryptionkey string // 落盘加密密钥
+ useeventualconsistency bool // 各个数据库节点之间是否使用最终一致性同步
+ consistencylevel float // 一致性级别,通过 node*consistencylevel 得到强同步的节点数
+ isolationlevel int // 单个节点上的隔离级别,默认级别为线性级别
+
+由于 CovenantSQL 是区块链上的数据库,在真正访问数据库之前你可能需要等待创建请求的执行确认以及在数据库节点上的实际创建。
+示例:
+ cql create -wait-tx-confirm '{"node": 2}'
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+### 子命令 `drop` 完整参数
+
+```bash
+usage: cql drop [-config file] [-wait-tx-confirm] dsn/dbid
+
+通过数据库的连接字符串或账号地址来删除数据库。
+示例:
+ cql drop the_dsn_of_your_database
+
+由于 CovenantSQL 是区块链上的数据库,在删除操作生效之前你可能需要等待删除请求的执行确认以及在数据库节点上的实际执行。
+示例:
+ cql drop -wait-tx-confirm the_dsn_of_your_database
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+### 子命令 `grant` 完整参数
+
+```bash
+usage: cql grant [-config file] [-wait-tx-confirm] permission_meta_json
+
+为指定账号进行数据库权限授权。
+示例:
+ cql grant '{"chain": "your_chain_addr", "user": "user_addr", "perm": "perm_struct"}'
+
+由于 CovenantSQL 是区块链上的数据库,在授权操作生效之前你可能需要等待授权请求的执行确认以及在数据库节点上的实际更新。
+示例
+ cql grant -wait-tx-confirm '{"chain": "your_chain_addr", "user": "user_addr", "perm": "perm_struct"}'
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+## 访问数据库
+
+完成数据库的创建后,就可以使用 `console` 子命令来对数据库进行交互式的命令行访问了:
+
+```bash
+cql console -dsn 'covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5'
+```
+
+输出
+
+```bash
+Enter master key(press Enter for default: ""):
+
+INFO[0010] init config success path=/home/levente/.cql/config.yaml
+INFO[0010] connecting to "covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5"
+Connected with driver covenantsql (develop-34ae741a-20190416184528)
+Type "help" for help.
+
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+```
+
+或者使用以授权的账号来连接:
+
+```bash
+cql console -config "account2/config.yaml" -dsn 'covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5'
+```
+
+输出
+
+```bash
+Enter master key(press Enter for default: ""):
+
+INFO[0010] init config success path=/home/levente/.config/cql/account2/config.yaml
+INFO[0010] connecting to "covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5"
+Connected with driver covenantsql (develop-34ae741a-20190416184528)
+Type "help" for help.
+
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+```
+
+交互式访问示例:
+
+```bash
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> create table t1 (c1 int);
+CREATE TABLE
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> insert into t1 values (1), (2), (3);
+INSERT
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> select * from t1;
+c1
+----
+1
+2
+3
+(3 rows)
+
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+```
+
+### 子命令 `console` 完整参数
+
+子命令 `console` 同时也支持在后台启动 `adapter` 和 `explorer` 服务,关于这些服务的相关说明请参考 [本地服务](#本地服务) 的相关章节。
+
+```bash
+usage: cql console [-config file] [-dsn dsn_string] [-command sqlcommand] [-file filename] [-out outputfile] [-no-rc true/false] [-single-transaction] [-variable variables] [-explorer explorer_addr] [-adapter adapter_addr]
+
+为 CovenantSQL 运行交互式的命令行访问。
+示例:
+ cql console -dsn the_dsn_of_your_database
+
+另外也可以通过 -command 参数来直接运行 SQL 查询语句或通过 -file 参数来从文件读取查询语句。
+在指定了这些参数的情况下 `console` 子命令将会直接执行命令后退出,而不会进入交互式的命令行模式。
+示例:
+ cql console -dsn the_dsn_of_your_database -command "create table test1(test2 int);"
+
+Params:
+ -adapter string
+ 指定数据库子链的 adapter 服务器的监听地址
+ -command string
+ 执行单条 SQL 语句并退出
+ -dsn string
+ 数据库连接字符串
+ -explorer string
+ 指定数据库子链的 explorer 服务器监听地址
+ -file string
+ 执行 SQL 脚本中的语句并退出
+ -no-rc
+ 启动时不加载 .rc 初始脚本
+ -out string
+ 指定输出文件
+ -single-transaction
+ 在非交互模式下使用单个事务执行所有语句
+ -variable value
+ 设置环境变量
+```
+
+## 本地服务
+
+### Explorer 完整参数
+
+```bash
+usage: cql explorer [-config file] [-tmp-path path] [-bg-log-level level] address
+
+为数据库子链运行 adapter 服务器。
+示例:
+ cql explorer 127.0.0.1:8546
+
+Params:
+ -bg-log-level string
+ 后台服务日志级别
+ -tmp-path string
+ 后台服务使用的临时目录,默认使用系统的默认临时文件路径
+```
+
+### Mirror 完整参数
+
+```bash
+usage: cql mirror [-config file] [-tmp-path path] [-bg-log-level level] dsn/dbid address
+
+为数据库子链运行 mirror 服务器。
+示例:
+ cql mirror database_id 127.0.0.1:9389
+
+Params:
+ -bg-log-level string
+ 后台服务日志级别
+ -tmp-path string
+ 后台服务使用的临时目录,默认使用系统的默认临时文件路径
+```
+
+### Adapter 完整参数
+
+```bash
+usage: cql adapter [-config file] [-tmp-path path] [-bg-log-level level] [-mirror addr] address
+
+为数据库子链运行 adapter 服务器。
+示例:
+ cql adapter 127.0.0.1:7784
+
+Params:
+ -bg-log-level string
+ 后台服务日志级别
+ -mirror string
+ 指定镜像 adapter 服务器地址
+ -tmp-path string
+ 后台服务使用的临时目录,默认使用系统的默认临时文件路径
+```
+
+## 高级使用
+
+### RPC 完整参数
+
+```bash
+usage: cql rpc [-config file] [-wait-tx-confirm] -name rpc_name -endpoint rpc_endpoint -req rpc_request
+
+向目标服务器发送 RPC 请求。
+示例:
+ cql rpc -name 'MCC.QuerySQLChainProfile' \
+ -endpoint 000000fd2c8f68d54d55d97d0ad06c6c0d91104e4e51a7247f3629cc2a0127cf \
+ -req '{"DBID": "c8328272ba9377acdf1ee8e73b17f2b0f7430c798141080d0282195507eb94e7"}'
+
+Params:
+ -endpoint string
+ 目标 RPC 服务地址
+ -name string
+ 目标 RPC 方法名
+ -req string
+ RPC 请求数据,JSON 格式
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
\ No newline at end of file
From 8a2bccc43e0c9ab7cc8f55c32bafc034dc6bc80a Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 10:24:23 +0800
Subject: [PATCH 155/421] New translations cql.md (Chinese Simplified)
---
website/translated_docs/zh-CN/cql.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/website/translated_docs/zh-CN/cql.md b/website/translated_docs/zh-CN/cql.md
index 8757ca2..a58841e 100644
--- a/website/translated_docs/zh-CN/cql.md
+++ b/website/translated_docs/zh-CN/cql.md
@@ -46,7 +46,7 @@ cql generate config
> 目前默认生成的配置文件指向测试网,还需要提供生成指向 Docker 一键部署网络的配置方法。
-指定目录的参数详见[完整参数说明](#子命令-generate
-完整参数)。
+指定目录的参数详见[完整参数说明](#子命令-generate-完整参数)。
输出:
@@ -287,7 +287,7 @@ covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
子命令 `grant` 通过向 BP 发起交易实现,所以也支持 `wait-tx-confirm` 参数。
-关于子命令 `create` 输入参数的完整说明,请参见[完整参数](#子命令-create
-完整参数)。
+关于子命令 `create` 输入参数的完整说明,请参见[完整参数](#子命令-create-完整参数)。
### ~~删除数据库~~
From d5b0fec3a7ddd9cbfc5c3c9a1e084ab4f5beee7c Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 10:24:35 +0800
Subject: [PATCH 156/421] New translations cql.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/cql.md | 568 +++++++++++++++---
1 file changed, 498 insertions(+), 70 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/cql.md b/website/translated_docs/zh-CN/version-0.5.0/cql.md
index 0c7c33d..7fdc6ed 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/cql.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/cql.md
@@ -1,112 +1,300 @@
---
id: version-0.5.0-cql
-title: '🖥️ CQL 命令行工具'
+title: '🖥️ CQL 命令行工具集'
original_id: cql
---
## 简介
-本文将介绍如何使用 `cql` 进行查询、转账和数据库权限管理。在使用 `cql` 前请先确认已接入 [CovenantSQL TestNet](quickstart) 或者在本地使用 [Docker 一键部署](development)的网络, 并将 `cql` 可执行文件保存在 `PATH` 目录。
+CovenantSQL 为终端用户提供 `cql` 命令行工具集,用于对用户账号、钱包以及名下的数据库进行便捷的管理和访问操作。~~工具下载地址见 [release](https://github.com/CovenantSQL/CovenantSQL/releases) 页面。请将 `cql` 二进制解压到自己系统 PATH 路径里以方便调用。~~(补充:使用包管理工具安装 `cql`)。
-### 配置文件
+### 账号私钥和配置文件
-`cql`命令依赖配置文件`config.yaml`和私钥文件`private.key`。这两个文件如果使用`cql generate config`命令生成,会默认放在`~/.cql/`目录下。在此目录下时,`cql`所有子命令的`-config`参数均可以省略不填写。
+运行 `cql` 依赖私钥文件 `private.key` 和配置文件 `config.yaml`,其中:
-### Master key
+- `private.key`:生成用户账户时所分配的私钥,请务必妥善保管好这个私钥
+- `config.yaml`:主要用于配置 `cql` 命令要连接的 CovenantSQL 网络(如 TestNet 或用户使用 [Docker 一键部署](deployment)的网络)
-`private.key`文件在生成时需要输入密码,`cql`命令会自动请求输入master key (密码)。 如果想在脚本中使用,可以在子命令后面增加`-password your_master_key`,空密码时用`-no-password`参数。
+出于安全方面的考虑,私钥文件通常需要使用主密码进行加密。主密码在创建账号时由用户输入,之后由用户自行记忆或保管,而不会保存到配置文件中。当需要使用到私钥的时候,`cql` 命令会要求用户输入主密码以解开私钥文件。
-## 查询余额
+### 子命令通用参数
-查询余额的命令是:`cql wallet -balance `。其中`token_type`设置为`all`时将返回用户账户中 `Particle` 与 `Wave` 的数量,其他关键词将返回用户账户中特定 `token_type` 的 token 数量。目前系统支持的 `token_type` 有:
+以下列出子命令中使用到的通用参数:
-- `Particle`
-- `Wave`
-- `Bitcoin`
-- `Ether`
-- `EOS`
+```bash
+ -bypass-signature
+ 禁用签名和验签,仅用于开发者测试
+ -config string
+ 指定配置文件路径,默认值为 "~/.cql/config.yaml"
+ -no-password
+ 使用空白主密码加密私钥
+ -password string
+ 私钥主密码(不安全,仅用于调试或安全环境下的脚本模式)
+```
+
+注意,因为私钥文件的路径是在配置文件中设定的,默认值为相对路径 `./private.key`,即配置文件的同一目录下,所以我们通常把私钥和配置文件放置到同一目录下,而不设置单独的参数来指定私钥文件。
+
+## 账号管理
+
+对于 TestNet 环境,我们提供了一个公用的测试账号私钥及配置文件用于快速接入测试,详情请参见 [CovenantSQL TestNet](quickstart) 快速上手教程。另外你也可以选择参照如下教程在本地创建新账号。
+
+### 创建新账号
-查看默认余额:
+子命令 `generate` 在指定目录生成私钥及指向 TestNet 的配置文件,示例:
```bash
-cql wallet -balance all -config conf/config.yaml
+cql generate config
```
+> 目前默认生成的配置文件指向测试网,还需要提供生成指向 Docker 一键部署网络的配置方法。
+
+指定目录的参数详见[完整参数说明](#子命令-generate-完整参数)。
+
输出:
- INFO[0000] Particle balance is: 10000000000000000000
- INFO[0000] Wave balance is: 10000000000000000000
-
+```bash
+Generating key pair...
+Enter master key(press Enter for default: ""):
+Private key file: ~/.cql/private.key
+Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+Generated key pair.
+Generating nonce...
+INFO[0075] cpu: 4
+INFO[0075] position: 3, shift: 0x0, i: 3
+INFO[0075] position: 1, shift: 0x0, i: 1
+INFO[0075] position: 0, shift: 0x0, i: 0
+INFO[0075] position: 2, shift: 0x0, i: 2
+nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
+node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+Generated nonce.
+Generating config file...
+Generated nonce.
+```
+
+### 获取私钥文件的公钥
-查看 Particle 余额:
+子命令 `generate` 也可以用来获取已经存在的私钥文件对应的公钥十六进制串。示例:
```bash
-cql wallet -balance Particle -config conf/config.yaml
+cql generate public
```
输出:
- INFO[0000] Particle balance is: 10000000000000000000
-
+```bash
+Enter master key(press Enter for default: ""):
+
+INFO[0011] init config success path=/home/levente/.cql/private.key
+INFO[0011] use public key in config file: /home/levente/.cql/config.yaml
+Public key's hex: 02fd4089e7f4ca224f576d4baa573b3e9662153c952fce3f87f9586ffdd11baef6
+```
+
+> 这一功能实际使用过程中暂时不会用到
+
+### 子命令 `generate` 完整参数
+
+通用参数部分参考 [子命令通用参数](#子命令通用参数),以下介绍其他子命令时不再另外说明。
-查看 Bitcoin 余额:
+特殊地,在使用 `cql generate config` 命令生成新账号配置时,`-config`、`-no-password` 和 `-password` 等参数实际作用于将要生成的新私钥和配置文件,而不是要读取的文件。
```bash
-cql wallet -balance Bitcoin -config conf/config.yaml
+usage: cql generate [参数]... config | public
+
+生成新私钥及配置文件,或获取指定配置的私钥文件对应的公钥。
+
+Params:
+ 没有额外参数
+```
+
+### 计算 Node ID
+
+子命令 `idminer` 用于计算指定配置文件(对应的私钥)的 Node ID(Node ID 的相关知识请参考[链接](terms#Node-ID))。示例:
+
+```bash
+cql idminer
```
输出:
- INFO[0000] Bitcoin balance is: 0
-
+```bash
+INFO[0000] cql build: cql develop-34ae741a-20190415161544 linux amd64 go1.11.5
+Enter master key(press Enter for default: ""):
+
+INFO[0008] init config success path=/home/levente/.cql/config.yaml
+INFO[0008] use public key in config file: /home/levente/.cql/config.yaml
+INFO[0008] cpu: 8
+INFO[0008] position: 3, shift: 0x20, i: 7
+INFO[0008] position: 0, shift: 0x0, i: 0
+INFO[0008] position: 3, shift: 0x0, i: 6
+INFO[0008] position: 1, shift: 0x0, i: 2
+INFO[0008] position: 2, shift: 0x0, i: 4
+INFO[0008] position: 1, shift: 0x20, i: 3
+INFO[0008] position: 2, shift: 0x20, i: 5
+INFO[0008] position: 0, shift: 0x20, i: 1
+nonce: {{1251426 4506240821 0 0} 25 00000041bc2b3de3bcb96328d0004c684628a908f0233eb31fe9998ef0c6288e}
+node id: 00000041bc2b3de3bcb96328d0004c684628a908f0233eb31fe9998ef0c6288e
+```
+
+> 这一功能实际使用过程中暂时不会用到
+
+### 子命令 `idminer` 完整参数
-## 转账
+```bash
+usage: cql idminer [-config file] [-difficulty number] [-loop false]
+
+为指定配置的私钥文件计算新的 Node ID。
+
+Params:
+ -difficulty int
+ 生成 Node ID 的难度要求,默认值为 24
+ -loop
+ 循环计算以取得更高难度的 Node ID
+```
+
+## 钱包管理
+
+### 查看钱包地址
-转账操作使用 `cql transfer` 并以 `json` 格式的转账信息为参数。
+在配置好账号以后,可以通过 `wallet` 子命令来获取账号的钱包地址:
+
+```bash
+cql wallet
+```
+
+输出:
+
+```bash
+Enter master key(press Enter for default: ""):
+
+wallet address: 43602c17adcc96acf2f68964830bb6ebfbca6834961c0eca0915fcc5270e0b40
+```
+
+这里可以看到我们用于测试的账号私钥文件对应的钱包地址是 `43602c17adcc96acf2f68964830bb6ebfbca6834961c0eca0915fcc5270e0b40`。
+
+### 查看钱包余额
+
+获得钱包地址之后,就可以使用 `wallet` 子命令来查看你的钱包余额了。目前 CovenantSQL 支持的代币类型为以下 5 种:
+
+- `Particle`
+- `Wave`
+- `Bitcoin`
+- `Ether`
+- `EOS`
+
+其中 `Particle` 和 `Wave` 为 CovenantSQL 默认使用的代币,查看默认代币余额的命令为:
+
+```bash
+cql wallet -balance all
+```
+
+输出:
+
+```bash
+INFO[0000] Particle balance is: 10000000000000000000
+INFO[0000] Wave balance is: 10000000000000000000
+```
+
+也可以单独指定代币类型,如查看 `Bitcoin` 余额:
+
+```bash
+cql wallet -balance Bitcoin
+```
+
+输出:
+
+```bash
+INFO[0000] Bitcoin balance is: 0
+```
+
+### 向其他账号转账
+
+从 [TestNet](quickstart) 获得代币或 [Docker 一键部署](deployment)的网络获得代币后,可以使用 `transfer` 命令来向其他账号转账。转账操作使用 `json` 格式的转账信息作为参数,例如:
```json
{
- "addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
- "amount":"1000000 Particle" // 转账金额并带上单位
+ "addr": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 收款地址
+ "amount": "1000000 Particle" // 转账金额并带上单位
}
```
其中收款地址可以是一个个人钱包地址也可以是一个数据库子链地址。转账至数据库地址时将在该数据库账户上补充付款人的押金与预付款。
-转账 Particle:
+把以上参数传给 `transfer` 子命令来进行转账:
```bash
-cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Particle"}'
+cql transfer '{"addr": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount": "1000000 Particle"}'
```
输出:
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+```bash
+INFO[0000] succeed in sending transaction to CovenantSQL
+```
+
+注意,以上输出信息只说明交易请求已经成功发送至 CovenantSQL 网络,需要等待 BP 节点执行并确认交易后才能实际生效。交易能否成功、何时成功可以通过执行 `cql wallet -balance ` 来确定,也可以在执行命令时添加 `-wait-tx-confirm` 参数来让 `cql` 命令查询到执行结果之后再退出。
-转账 Wave:
+### 子命令 `wallet` 完整参数
```bash
-cql transfer -config conf/config.yaml '{"addr":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","amount":"1000000 Wave"}'
+usage: cql wallet [-config file] [-balance token_type]
+
+查看账号钱包地址和代币余额。
+示例:
+ cql wallet
+ cql wallet -balance Particle
+ cql wallet -balance all
+
+Params:
+ -balance string
+ 获取当前账号中指定代币类型的余额
```
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+### 子命令 `transfer` 完整参数
-查看余额:
+```bash
+usage: cql transfer [-config file] [-wait-tx-confirm] meta_json
+
+向目标账号地址进行转账。输入参数为 JSON 格式的转账交易数据。
+示例:
+ cql transfer '{"addr": "your_account_addr", "amount": "100 Particle"}'
+
+由于 CovenantSQL 是区块链上的数据库,在交易生效之前你可能需要等待执行确认。
+示例:
+ cql transfer -wait-tx-confirm '{"addr": "your_account_addr", "amount": "100 Particle"}'
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+## 数据库管理
+
+### 创建数据库
+
+创建数据库与 `transfer` 子命令类似使用 `json` 格式的输入参数,创建由一个节点组成的数据库:
```bash
-cql wallet -balance all -config conf/config.yaml
+cql create '{"node": 1}'
```
输出:
- INFO[0000] Particle balance is: 9999999999999000000
- INFO[0000] Wave balance is: 9999999999999000000
-
+```bash
+Enter master key(press Enter for default: ""):
+
+covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+```
-注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易能否成功、何时成功需要通过 `cql wallet -balance ` 确定。
+注意这里生成的 `covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 即为数据库的连接字符串(dsn),其中 `covenantsql` 为数据库协议字段,一般也可以缩写为 `cql`;`//` 后的十六进制串为数据库地址,可以在 `transfer` 子命令中作为收款地址使用。
-## 数据库权限管理
+子命令 `grant` 通过向 BP 发起交易实现,所以也支持 `wait-tx-confirm` 参数。
+
+关于子命令 `create` 输入参数的完整说明,请参见[完整参数](#子命令-create-完整参数)。
+
+### ~~删除数据库~~
+
+~~未实现。~~
+
+### 数据库权限管理
#### 访问权限
@@ -117,56 +305,60 @@ CovenantSQL 数据库有三类库级别权限:
- `Read`
- `Void`
-其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。若 `Admin` 需要赋予他人权限请使用 `cql grant` 并以 `json` 格式的权限信息为参数:
+其中,`Admin` 可以赋予其他钱包地址数据库的权限(`Admin`、`Write` 或 `Read`);`Admin` 和 `Write` 可以对数据库进行写操作(`CREATE`, `INSERT` 等);`Admin` 和 `Read` 可以对数据库进行读操作(`SHOW`, `SELECT` 等);如果需要设置用户有读写权限但是不能修改其他用户或自己的权限,可以将权限设置为 `Read,Write`;`Void` 是一个特殊的权限,当 `Admin` 想取消某个地址的权限时可以将该地址的权限设置为 `Void`,这样该地址将无法继续读写数据库。创建数据库的地址的权限默认为 `Admin`。
+
+假设我们用默认账号创建好了数据库 `covenantsql:\\4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5`,在目录 `account2` 下创建好新账号配置,账号地址为 `011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6`,现在用默认账号给新账号授权已经创建好的数据库的访问权限,同样使用 `json` 格式的授权信息为参数:
```json
{
- "chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
- "user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
- "perm":"Write" // 权限内容
+ "chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", // 需要进行权限变更的数据库地址
+ "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", // 需要赋予权限的钱包地址
+ "perm": "Read,Write" // 权限内容,多个权限用英文逗号隔开
}
```
-增加写权限:
+把以上参数传给 `grant` 子命令来增加读写权限:
```bash
-cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user":"011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Write"}'
+cql grant '{"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", "perm": "Read,Write"}'
```
输出:
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+```bash
+INFO[0000] succeed in sending transaction to CovenantSQL
+```
吊销权限:
```bash
-cql grant -config conf/config.yaml '{"chain":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6","perm":"Void"}'
+cql grant '{"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5", "user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6", "perm": "Void"}'
```
输出:
- INFO[0000] succeed in sending transaction to CovenantSQL
-
+```bash
+INFO[0000] succeed in sending transaction to CovenantSQL
+```
-注意,`succeed in sending transaction to CovenantSQL` 只说明交易已成功发送至主网,交易成功与否请通过查询数据库确认。
+子命令 `grant` 通过向 BP 发起交易实现,所以也支持 `wait-tx-confirm` 参数。
-为数据库添加新的账户权限后账户需补充押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
+由于目前每个数据库实例分别为每个用户独立计费,所以为数据库添加新的账户权限后,需要以新账户身份向该数据库转押金与预付款才能进行正常查询。押金与预付款最小值的计算公式:`gas_price*number_of_miner*120000`。
使用新账户给数据库充值:
```bash
-cql transfer -config new_user_config/config.yaml '{"addr":"4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount":"90000000 Particle"}'
+cql -config "account2/config.yaml" transfer '{"addr": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5","amount": "90000000 Particle"}'
```
#### SQL 白名单
-CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除货更新操作。
+CovenantSQL 还支持给用户设置可执行的 SQL 白名单,可以限定用户以指定的 SQL Pattern 和可配的 Query 参数来访问数据库。在指定语句白名单的功能支持下,可以提高数据库的安全性,避免被单语句拖库或执行不正确的删除或更新操作。
增加白名单:
-```shell
-cql -config conf/config.yaml -update-perm '
+```bash
+cql grant '
{
"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
"user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
@@ -175,7 +367,7 @@ cql -config conf/config.yaml -update-perm '
"SELECT COUNT(1) FROM a",
"SELECT * FROM a WHERE id = ? LIMIT 1"
],
- "role": "Read"
+ "role": "Read,Write"
}
}
'
@@ -183,29 +375,265 @@ cql -config conf/config.yaml -update-perm '
*白名单功能是基于数据库权限的一个扩展,且当前不支持增量的白名单更新,在设置白名单时需要写明所有授权该用户使用的语句,以及该用户对数据库的访问权限*
-设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a`的 总数据量。
+设置完成后,用户将只能执行 `SELECT COUNT(1) FROM a` 或 `SELECT * FROM a WHERE id = ? LIMIT 1` 的语句(语句内容严格匹配,使用 `select COUNT(1) FROM a` 或 `SELECT COUNT(1) FROM a` 也不可以);其中 第二条语句支持用户提供一个参数,以支持查询不同记录的目的。最终可以实现限定用户访问 `表 a`,并一次只能查询 `表 a` 中的一条数据或查询 `表 a` 的总数据量。
去掉白名单限制:
-```shell
-cql -config conf/config.yaml -update-perm '
+```bash
+cql grant '
{
"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
"user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
"perm": {
"patterns": nil,
- "role": "Read"
+ "role": "Read,Write"
}
}
'
# or
-cql -config conf/config.yaml -update-perm '
+cql grant '
{
"chain": "4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5",
"user": "011f72fea9efa1a49a6663d66e514a34e45e426524c13335cf20bec1b47d10d6",
- "perm": "Read"
+ "perm": "Read,Write"
}
'
```
-将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
\ No newline at end of file
+将 `pattern` 设置为 `nil` 或直接设置用户权限,都可以将用户的白名单限制去掉,设置回可以查询所有内容的读权限。
+
+### 子命令 `create` 完整参数
+
+```bash
+usage: cql create [-config file] [-wait-tx-confirm] db_meta_json
+
+为当前账号创建数据库实例,输入参数为 JSON 格式的创建交易数据,其中节点数 node 为必带字段。
+示例:
+ cql create '{"node": 2}'
+
+完整的 db_meta_json 字段解释如下:
+ targetminers []string // 目标节点的账号地址
+ node int // 目标节点数
+ space int // 需要的硬盘空间,0 为任意
+ memory int // 需要的内存空间,0 为任意
+ loadavgpercpu float // 需要的 CPU 资源占用,0 为任意
+ encryptionkey string // 落盘加密密钥
+ useeventualconsistency bool // 各个数据库节点之间是否使用最终一致性同步
+ consistencylevel float // 一致性级别,通过 node*consistencylevel 得到强同步的节点数
+ isolationlevel int // 单个节点上的隔离级别,默认级别为线性级别
+
+由于 CovenantSQL 是区块链上的数据库,在真正访问数据库之前你可能需要等待创建请求的执行确认以及在数据库节点上的实际创建。
+示例:
+ cql create -wait-tx-confirm '{"node": 2}'
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+### 子命令 `drop` 完整参数
+
+```bash
+usage: cql drop [-config file] [-wait-tx-confirm] dsn/dbid
+
+通过数据库的连接字符串或账号地址来删除数据库。
+示例:
+ cql drop the_dsn_of_your_database
+
+由于 CovenantSQL 是区块链上的数据库,在删除操作生效之前你可能需要等待删除请求的执行确认以及在数据库节点上的实际执行。
+示例:
+ cql drop -wait-tx-confirm the_dsn_of_your_database
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+### 子命令 `grant` 完整参数
+
+```bash
+usage: cql grant [-config file] [-wait-tx-confirm] permission_meta_json
+
+为指定账号进行数据库权限授权。
+示例:
+ cql grant '{"chain": "your_chain_addr", "user": "user_addr", "perm": "perm_struct"}'
+
+由于 CovenantSQL 是区块链上的数据库,在授权操作生效之前你可能需要等待授权请求的执行确认以及在数据库节点上的实际更新。
+示例
+ cql grant -wait-tx-confirm '{"chain": "your_chain_addr", "user": "user_addr", "perm": "perm_struct"}'
+
+Params:
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
+
+## 访问数据库
+
+完成数据库的创建后,就可以使用 `console` 子命令来对数据库进行交互式的命令行访问了:
+
+```bash
+cql console -dsn 'covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5'
+```
+
+输出
+
+```bash
+Enter master key(press Enter for default: ""):
+
+INFO[0010] init config success path=/home/levente/.cql/config.yaml
+INFO[0010] connecting to "covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5"
+Connected with driver covenantsql (develop-34ae741a-20190416184528)
+Type "help" for help.
+
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+```
+
+或者使用以授权的账号来连接:
+
+```bash
+cql console -config "account2/config.yaml" -dsn 'covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5'
+```
+
+输出
+
+```bash
+Enter master key(press Enter for default: ""):
+
+INFO[0010] init config success path=/home/levente/.config/cql/account2/config.yaml
+INFO[0010] connecting to "covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5"
+Connected with driver covenantsql (develop-34ae741a-20190416184528)
+Type "help" for help.
+
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+```
+
+交互式访问示例:
+
+```bash
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> create table t1 (c1 int);
+CREATE TABLE
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> insert into t1 values (1), (2), (3);
+INSERT
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> select * from t1;
+c1
+----
+1
+2
+3
+(3 rows)
+
+co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+```
+
+### 子命令 `console` 完整参数
+
+子命令 `console` 同时也支持在后台启动 `adapter` 和 `explorer` 服务,关于这些服务的相关说明请参考 [本地服务](#本地服务) 的相关章节。
+
+```bash
+usage: cql console [-config file] [-dsn dsn_string] [-command sqlcommand] [-file filename] [-out outputfile] [-no-rc true/false] [-single-transaction] [-variable variables] [-explorer explorer_addr] [-adapter adapter_addr]
+
+为 CovenantSQL 运行交互式的命令行访问。
+示例:
+ cql console -dsn the_dsn_of_your_database
+
+另外也可以通过 -command 参数来直接运行 SQL 查询语句或通过 -file 参数来从文件读取查询语句。
+在指定了这些参数的情况下 `console` 子命令将会直接执行命令后退出,而不会进入交互式的命令行模式。
+示例:
+ cql console -dsn the_dsn_of_your_database -command "create table test1(test2 int);"
+
+Params:
+ -adapter string
+ 指定数据库子链的 adapter 服务器的监听地址
+ -command string
+ 执行单条 SQL 语句并退出
+ -dsn string
+ 数据库连接字符串
+ -explorer string
+ 指定数据库子链的 explorer 服务器监听地址
+ -file string
+ 执行 SQL 脚本中的语句并退出
+ -no-rc
+ 启动时不加载 .rc 初始脚本
+ -out string
+ 指定输出文件
+ -single-transaction
+ 在非交互模式下使用单个事务执行所有语句
+ -variable value
+ 设置环境变量
+```
+
+## 本地服务
+
+### Explorer 完整参数
+
+```bash
+usage: cql explorer [-config file] [-tmp-path path] [-bg-log-level level] address
+
+为数据库子链运行 adapter 服务器。
+示例:
+ cql explorer 127.0.0.1:8546
+
+Params:
+ -bg-log-level string
+ 后台服务日志级别
+ -tmp-path string
+ 后台服务使用的临时目录,默认使用系统的默认临时文件路径
+```
+
+### Mirror 完整参数
+
+```bash
+usage: cql mirror [-config file] [-tmp-path path] [-bg-log-level level] dsn/dbid address
+
+为数据库子链运行 mirror 服务器。
+示例:
+ cql mirror database_id 127.0.0.1:9389
+
+Params:
+ -bg-log-level string
+ 后台服务日志级别
+ -tmp-path string
+ 后台服务使用的临时目录,默认使用系统的默认临时文件路径
+```
+
+### Adapter 完整参数
+
+```bash
+usage: cql adapter [-config file] [-tmp-path path] [-bg-log-level level] [-mirror addr] address
+
+为数据库子链运行 adapter 服务器。
+示例:
+ cql adapter 127.0.0.1:7784
+
+Params:
+ -bg-log-level string
+ 后台服务日志级别
+ -mirror string
+ 指定镜像 adapter 服务器地址
+ -tmp-path string
+ 后台服务使用的临时目录,默认使用系统的默认临时文件路径
+```
+
+## 高级使用
+
+### RPC 完整参数
+
+```bash
+usage: cql rpc [-config file] [-wait-tx-confirm] -name rpc_name -endpoint rpc_endpoint -req rpc_request
+
+向目标服务器发送 RPC 请求。
+示例:
+ cql rpc -name 'MCC.QuerySQLChainProfile' \
+ -endpoint 000000fd2c8f68d54d55d97d0ad06c6c0d91104e4e51a7247f3629cc2a0127cf \
+ -req '{"DBID": "c8328272ba9377acdf1ee8e73b17f2b0f7430c798141080d0282195507eb94e7"}'
+
+Params:
+ -endpoint string
+ 目标 RPC 服务地址
+ -name string
+ 目标 RPC 方法名
+ -req string
+ RPC 请求数据,JSON 格式
+ -wait-tx-confirm
+ 等待交易执行确认(或者出现任何错误)后再退出
+```
\ No newline at end of file
From f24080352a8e6d3a437a27a74359c9835bd2ea4f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 10:44:38 +0800
Subject: [PATCH 157/421] New translations cql.md (Chinese Simplified)
---
website/translated_docs/zh-CN/cql.md | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/website/translated_docs/zh-CN/cql.md b/website/translated_docs/zh-CN/cql.md
index a58841e..a42f3c7 100644
--- a/website/translated_docs/zh-CN/cql.md
+++ b/website/translated_docs/zh-CN/cql.md
@@ -52,7 +52,8 @@ cql generate config
```bash
Generating key pair...
-Enter master key(press Enter for default: ""):
+Enter master key(press Enter for default: ""):
+
Private key file: ~/.cql/private.key
Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
Generated key pair.
@@ -80,7 +81,7 @@ cql generate public
输出:
```bash
-Enter master key(press Enter for default: ""):
+Enter master key(press Enter for default: ""):
INFO[0011] init config success path=/home/levente/.cql/private.key
INFO[0011] use public key in config file: /home/levente/.cql/config.yaml
@@ -162,7 +163,7 @@ cql wallet
输出:
```bash
-Enter master key(press Enter for default: ""):
+Enter master key(press Enter for default: ""):
wallet address: 43602c17adcc96acf2f68964830bb6ebfbca6834961c0eca0915fcc5270e0b40
```
@@ -563,7 +564,7 @@ Params:
## 本地服务
-### Explorer 完整参数
+### 子命令 `explorer` 完整参数
```bash
usage: cql explorer [-config file] [-tmp-path path] [-bg-log-level level] address
@@ -579,7 +580,7 @@ Params:
后台服务使用的临时目录,默认使用系统的默认临时文件路径
```
-### Mirror 完整参数
+### 子命令 `mirror` 完整参数
```bash
usage: cql mirror [-config file] [-tmp-path path] [-bg-log-level level] dsn/dbid address
@@ -595,7 +596,9 @@ Params:
后台服务使用的临时目录,默认使用系统的默认临时文件路径
```
-### Adapter 完整参数
+### 子命令 `adapter` 完整参数
+
+关于 `adapter` 服务的说明请参考 。
```bash
usage: cql adapter [-config file] [-tmp-path path] [-bg-log-level level] [-mirror addr] address
@@ -615,7 +618,9 @@ Params:
## 高级使用
-### RPC 完整参数
+子命令 `rpc` 直接在 CovenantSQL 网络上进行 RPC 调用。
+
+### 子命令 `rpc` 完整参数
```bash
usage: cql rpc [-config file] [-wait-tx-confirm] -name rpc_name -endpoint rpc_endpoint -req rpc_request
@@ -628,9 +633,9 @@ usage: cql rpc [-config file] [-wait-tx-confirm] -name rpc_name -endpoint rpc_en
Params:
-endpoint string
- 目标 RPC 服务地址
+ 目标 RPC Node ID
-name string
- 目标 RPC 方法名
+ 目标 RPC 服务.方法名
-req string
RPC 请求数据,JSON 格式
-wait-tx-confirm
From 6fa1172aa2a1ae38ea5626ead31a5d554253cf18 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 10:44:48 +0800
Subject: [PATCH 158/421] New translations cql.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/cql.md | 23 +++++++++++--------
1 file changed, 14 insertions(+), 9 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/cql.md b/website/translated_docs/zh-CN/version-0.5.0/cql.md
index 7fdc6ed..880c26d 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/cql.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/cql.md
@@ -53,7 +53,8 @@ cql generate config
```bash
Generating key pair...
-Enter master key(press Enter for default: ""):
+Enter master key(press Enter for default: ""):
+
Private key file: ~/.cql/private.key
Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
Generated key pair.
@@ -81,7 +82,7 @@ cql generate public
输出:
```bash
-Enter master key(press Enter for default: ""):
+Enter master key(press Enter for default: ""):
INFO[0011] init config success path=/home/levente/.cql/private.key
INFO[0011] use public key in config file: /home/levente/.cql/config.yaml
@@ -163,7 +164,7 @@ cql wallet
输出:
```bash
-Enter master key(press Enter for default: ""):
+Enter master key(press Enter for default: ""):
wallet address: 43602c17adcc96acf2f68964830bb6ebfbca6834961c0eca0915fcc5270e0b40
```
@@ -564,7 +565,7 @@ Params:
## 本地服务
-### Explorer 完整参数
+### 子命令 `explorer` 完整参数
```bash
usage: cql explorer [-config file] [-tmp-path path] [-bg-log-level level] address
@@ -580,7 +581,7 @@ Params:
后台服务使用的临时目录,默认使用系统的默认临时文件路径
```
-### Mirror 完整参数
+### 子命令 `mirror` 完整参数
```bash
usage: cql mirror [-config file] [-tmp-path path] [-bg-log-level level] dsn/dbid address
@@ -596,7 +597,9 @@ Params:
后台服务使用的临时目录,默认使用系统的默认临时文件路径
```
-### Adapter 完整参数
+### 子命令 `adapter` 完整参数
+
+关于 `adapter` 服务的说明请参考 。
```bash
usage: cql adapter [-config file] [-tmp-path path] [-bg-log-level level] [-mirror addr] address
@@ -616,7 +619,9 @@ Params:
## 高级使用
-### RPC 完整参数
+子命令 `rpc` 直接在 CovenantSQL 网络上进行 RPC 调用。
+
+### 子命令 `rpc` 完整参数
```bash
usage: cql rpc [-config file] [-wait-tx-confirm] -name rpc_name -endpoint rpc_endpoint -req rpc_request
@@ -629,9 +634,9 @@ usage: cql rpc [-config file] [-wait-tx-confirm] -name rpc_name -endpoint rpc_en
Params:
-endpoint string
- 目标 RPC 服务地址
+ 目标 RPC Node ID
-name string
- 目标 RPC 方法名
+ 目标 RPC 服务.方法名
-req string
RPC 请求数据,JSON 格式
-wait-tx-confirm
From 9d15dfd720ba4f7b31231d18e272c80d4d319978 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:07 +0800
Subject: [PATCH 159/421] New translations adpater.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/adpater.md | 33 +++++++++++--------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/adpater.md b/website/translated_docs/zh-CN/version-0.5.0/adpater.md
index 85992aa..5bae4e4 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/adpater.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/adpater.md
@@ -3,19 +3,19 @@ id: version-0.5.0-adapter
title: '📦 CovenantSQL Adapter SDK'
original_id: adapter
---
-# 通过 Adapter 使用 CovenantSQL
+# Use Adapter to access CovenantSQL
-## 简介
+`CovenantSQL` provides an HTTP/HTTPS adapter service. Developers could access CovenantSQL like a cloud database by using HTTP Rest requests.
-`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+## How to use
-## 安装和使用
+First, [Install docker](https://docs.docker.com/install/).
-首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+Secondly, before using CovenantSQL, a proper configuration file and an asymmetric key-pair is required. If no configuration file is specified, CovenantSQL tries to load configuration from `~/.cql/config.yaml`. For configuration file and key-pair generation, please refer to [QuickStart#CreateAccount](./quickstart#CreateAccount)
-### Docker 运行 Adapter
+### Start adapter using docker
-下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+Following command will use config file `~/.cql/config.yaml` and key-pair `~/.cql/private.key` to start adapter service and serving at `0.0.0.0:11105`.
```bash
export adapter_addr=0.0.0.0:11105
@@ -28,9 +28,11 @@ docker run -itd \
covenantsql/covenantsql:testnet 0.0.0.0:4661
```
-### 创建数据库
+### Create database
-使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+Create new database using `cql create` command and provide database instance requirements.
+
+For example, create a single node database instance:
```shell
docker run -it --rm \
@@ -40,14 +42,17 @@ docker run -it --rm \
create -config /app/config.yaml -wait-tx-confirm '{"node": 1}'
```
-命令会返回创建的数据库实例的连接串(DSN)
+This command would produce a database connection string (DSN) similar to following example.
```shell
covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
```
-## 主流语言 Driver 的使用
+Use DSN to access CovenantSQL using various drivers.
+
+## Drivers
-1. [Java](./driver_java)
-2. [Python](./driver_python)
-3. [NodeJS](./driver_js)
\ No newline at end of file
+1. [Golang](./driver_golang)
+2. [Java](./driver_java)
+3. [Python](./driver_python)
+4. [NodeJS](./driver_js)
\ No newline at end of file
From 43093f452fc4f6285e55e4be6395bff26e95bb14 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:09 +0800
Subject: [PATCH 160/421] New translations driver_java.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/driver_java.md | 26 +++++++++----------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_java.md b/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
index bb03333..c6dcf52 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
@@ -3,23 +3,21 @@ id: version-0.5.0-driver_java
title: '📦 Java'
original_id: driver_java
---
-## 用 Java 使用 CovenantSQL
+## Use Java to access CovenantSQL
-### 简介
+`CovenantSQL` provides `Java SDK` to access database instance through [`Adapter`](./adapter) service.
-`CovenantSQL` 提供了 `Java SDK`,可通过 `Adapter` 工具转换协议访问数据库实例。
+`Java SDK` is compatible with `JDBC4` specifications,and popular `ORM` like `MyBatis` is supported through JDBC interface.
-`Java SDK` 遵守 `Java` 标准的 `JDBC4` 接口定义,能够使用常见的 `ORM` 例如 `MyBatis` 进行使用。
+### Compatibility
-### 兼容性
+`Java SDK` requires `Java 1.7+`.
-`Java SDK` 目前只兼容 `Java 1.7+` 的 `JDK` 版本。
+### Installation and quick start
-### 安装和使用
+Before using `Java SDK`, an adapter tool deployment is required, please see [Deploy Adapter Service](./adapter).
-使用 `Java SDK` 需要 [部署 Adapter 工具](./adapter)。
-
-然后通过 `jdbc:covenantsql:///` URI,将其中的 `adapter_endpoint` 替换为 adapter 的地址,`database_id` 替换为数据库的 DSN 串访问数据库实例。
+Now you can use `jdbc:covenantsql:///` uri,replacing `adapter_endpoint` with adapter listen address,`database_id` with database id。
#### Maven
@@ -62,8 +60,8 @@ dependencies {
}
```
-### 示例
+### Examples
-1. [JDBC示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/jdbc/Example.java)
-2. [MyBatis示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/mybatis/Example.java)
-3. [大型项目示例](https://github.com/CovenantSQL/covenantsql-mybatis-spring-boot-jpetstore)
\ No newline at end of file
+1. [JDBC Example](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/jdbc/Example.java)
+2. [MyBatis Example](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/mybatis/Example.java)
+3. [SpringBoot + MyBatis Project Example](https://github.com/CovenantSQL/covenantsql-mybatis-spring-boot-jpetstore)
\ No newline at end of file
From 2c5ea987e1d58b8b6196ae5383ef02ce294606b5 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:10 +0800
Subject: [PATCH 161/421] New translations driver_python.md (Chinese
Simplified)
---
.../zh-CN/version-0.5.0/driver_python.md | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_python.md b/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
index af9f079..d9a537c 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
@@ -3,27 +3,27 @@ id: version-0.5.0-driver_python
title: '📦 Python'
original_id: driver_python
---
-## 用 Python 使用 CovenantSQL
+## Use Python to access CovenantSQL
-开发者可以通过 [PyCovenantSQL](https://github.com/CovenantSQL/python-driver) 来使用 CovenantSQL。
+Developers could use [PyCovenantSQL](https://github.com/CovenantSQL/python-driver) to access CovenantSQL through [Adapter](./adapter).
-### 兼容性
+### Compatibility
-`Python SDK` 目前只兼容 `python 3.4+`
+`Python SDK` requires `python 3.4+`.
-### 安装和使用
+### Installation and quick start
-使用 `Python SDK` 需要 [部署 Adapter 工具](./adapter)。
+Before using `Python SDK`, an adapter deployment is required, please see [Deploy Adapter Service](./adapter).
-使用 pip 安装 PyCovenantSQL
+Install `PyCovenantSQL` using pip:
```shell
$ python3 -m pip install PyCovenantSQL
```
-### 示例
+### Example
-将 `adapter_host` 替换为 adapter 地址,`adapter_port` 替换为 adapter 的端口,adapter
+Replace `adapter_host` with adapter listen host, `adapter_port` with adapter listen port, `dsn` with database dsn.
```python
import pycovenantsql
@@ -31,7 +31,7 @@ import pycovenantsql
# Connect to the database
connection = pycovenantsql.connect(host='',
port=,
- database=''
+ database=''
)
try:
From bf89dce6cf97b63d9735fed830dd25b31e64ccc0 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:15 +0800
Subject: [PATCH 162/421] New translations driver_golang.md (Chinese
Simplified)
---
.../translated_docs/zh-CN/driver_golang.md | 30 ++++++++-----------
1 file changed, 13 insertions(+), 17 deletions(-)
diff --git a/website/translated_docs/zh-CN/driver_golang.md b/website/translated_docs/zh-CN/driver_golang.md
index f3f2d45..c39b391 100644
--- a/website/translated_docs/zh-CN/driver_golang.md
+++ b/website/translated_docs/zh-CN/driver_golang.md
@@ -2,33 +2,29 @@
id: driver_golang
title: '📦 Golang'
---
-## 用 Golang 使用 CovenantSQL
+## Use Golang to access CovenantSQL
-### 简介
+`CovenantSQL` provides `Golang SDK` to access database using native rpc protocol. The `cql` tool is developed based on `Golang SDK`.
-`CovenantSQL` 提供了 `Golang SDK` ,支持以 `Golang` App 以原生通讯协议的形式访问数据库实例,是当前性能最高的使用方法, `cql` 等工具也是基于 `Golang SDK` 进行开发的。
+`Golang SDK` is compatible with Golang `database/sql` driver standard, and popular `Golang ORM` is supported for advanced uses.
-`Golang SDK` 遵守 `Golang` 标准的 `database/sql` 接口定义,能够使用常见的 `Golang ORM` 进行使用。
+### Compatibility
-### 兼容性
+`Golang SDK` is compatible with Golang `1.10+`.
-`Golang SDK` 目前只兼容 `1.10+` 的 Golang 版本。
+### Installation and quick start
-### 安装和使用
-
-`Golang SDK` 的 import 地址是 `github.com/CovenantSQL/CovenantSQL/client`
-
-可以执行 `go get` 命令进行安装
+Install it with:
```shell
go get github.com/CovenantSQL/CovenantSQL/client
```
-### API 文档
+### API doc
https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
-### 示例
+### Example
```go
package main
@@ -50,13 +46,13 @@ func main() {
flag.StringVar(&password, "password", "", "master key password for covenantsql")
flag.Parse()
- // 使用节点配置文件初始化 Golang SDK
+ // Use config file to initialize Golang SDK
err := client.Init(config, []byte(password))
if err != nil {
log.Fatal(err)
}
- // 连接数据库实例
+ // Connect to database instance
db, err := sql.Open("covenantsql", dsn)
if err != nil {
log.Fatal(err)
@@ -80,7 +76,7 @@ func main() {
);
CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
- // 写入数据
+ // Insert records
_, err = db.Exec(Q)
if err != nil {
log.Fatal(err)
@@ -118,7 +114,7 @@ func main() {
ORDER BY Population DESC
LIMIT 10;`
- // 查询数据
+ // Query records
rows, err := db.Query(Q)
if err != nil {
log.Fatal(err)
From 898b0b1dc4b4b681eecfde96d526956c9e8d6fc9 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:17 +0800
Subject: [PATCH 163/421] New translations driver_js.md (Chinese Simplified)
---
website/translated_docs/zh-CN/driver_js.md | 23 ++++++++++------------
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/website/translated_docs/zh-CN/driver_js.md b/website/translated_docs/zh-CN/driver_js.md
index c173d7a..a1f40e2 100644
--- a/website/translated_docs/zh-CN/driver_js.md
+++ b/website/translated_docs/zh-CN/driver_js.md
@@ -2,13 +2,13 @@
id: driver_js
title: '📦 Javascript'
---
-## 用 NodeJS 使用 CovenantSQL
+## Use Javascript to access CovenantSQL
-NodeJS 开发者可以通过 [node-covenantsql](https://github.com/CovenantSQL/node-covenantsql) 来与 CovenantSQL Adapter 进行交互。
+Front-end developers could use [covenantsql-proxy-js](https://github.com/CovenantSQL/covenantsql-proxy-js) to access CovenantSQL through CovenantSQL [Adapter](./adapter).
-#### 下载安装
+#### Installation
-可以直接通过 `npm` 或者 `yarn` 来安装 `node-covenantsql`
+Install `node-covenantsql` using package manager `npm` or `yarn`:
```bash
npm install --save node-covenantsql
@@ -20,23 +20,20 @@ or
yarn add node-covenantsql
```
-#### 使用
+#### Quick start
-使用前需要 [部署 Adapter 工具](./adapter)
+First, [Deploy Adapter Service](./adapter).
-在运行本地 Adapter 之后,将 Adapter 的 endpoint 填入 `node-covenantsql` 的 config 之中:
+Configure `node-covenantsql`, replace `adapter_listen_address` with adapter listen address, replace `database_id` with created database id:
```javascript
const config = {
- endpoint: 'localhost:11105', // local testnet endpoint without https
- database: `${DSN}`, // your DB id created by `cql` tools
- bypassPem: true // bypass https config
+ endpoint: '', // local testnet endpoint without https
+ database: 'database_id', // your DB id created by `cql` tools
}
```
-这里 `bypassPem` 为 `true` 表示应用中所有对链上数据库的操作都会经过本地的 Adapter 进行代理,我们默认本地环境是可控,安全的,无需用 HTTPS 来保证这段连接的信道安全,少了证书的繁琐认证,所以成为 `bypassPem`。
-
-接着连通之后则可进行链上数据库的增删改查:
+After successfully connected to adapter, any CRUD operation is available using typical database operations:
```typescript
const cql from 'node-covenantsql'
From fd63cdfcaefb9476e8235d7e5f39b65468f5372e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:23 +0800
Subject: [PATCH 164/421] New translations adpater.md (Chinese Simplified)
---
website/translated_docs/zh-CN/adpater.md | 33 ++++++++++++++----------
1 file changed, 19 insertions(+), 14 deletions(-)
diff --git a/website/translated_docs/zh-CN/adpater.md b/website/translated_docs/zh-CN/adpater.md
index dd7ceb8..45bb887 100644
--- a/website/translated_docs/zh-CN/adpater.md
+++ b/website/translated_docs/zh-CN/adpater.md
@@ -2,19 +2,19 @@
id: adapter
title: '📦 CovenantSQL Adapter SDK'
---
-# 通过 Adapter 使用 CovenantSQL
+# Use Adapter to access CovenantSQL
-## 简介
+`CovenantSQL` provides an HTTP/HTTPS adapter service. Developers could access CovenantSQL like a cloud database by using HTTP Rest requests.
-`CovenantSQL` 提供了 HTTP/HTTPS Adapter,类似于云数据库, 开发者可以直接用 HTTP 的形式使用 CovenantSQL。
+## How to use
-## 安装和使用
+First, [Install docker](https://docs.docker.com/install/).
-首先,需要确认我们有一个可用的配置和公私钥对,通常我们默认的配置和公私钥对的存储位置为 `~/.cql/` 目录。生成或获取请参考 [QuickStart#创建账号](./quickstart#创建账号)
+Secondly, before using CovenantSQL, a proper configuration file and an asymmetric key-pair is required. If no configuration file is specified, CovenantSQL tries to load configuration from `~/.cql/config.yaml`. For configuration file and key-pair generation, please refer to [QuickStart#CreateAccount](./quickstart#CreateAccount)
-### Docker 运行 Adapter
+### Start adapter using docker
-下面的命令将使用`~/.cql/config.yaml` 和 `~/.cql/private.key` 启动 Adapter,并把端口映射在 `0.0.0.0:11105`
+Following command will use config file `~/.cql/config.yaml` and key-pair `~/.cql/private.key` to start adapter service and serving at `0.0.0.0:11105`.
```bash
export adapter_addr=0.0.0.0:11105
@@ -27,9 +27,11 @@ docker run -itd \
covenantsql/covenantsql:testnet 0.0.0.0:4661
```
-### 创建数据库
+### Create database
-使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+Create new database using `cql create` command and provide database instance requirements.
+
+For example, create a single node database instance:
```shell
docker run -it --rm \
@@ -39,14 +41,17 @@ docker run -it --rm \
create -config /app/config.yaml -wait-tx-confirm '{"node": 1}'
```
-命令会返回创建的数据库实例的连接串(DSN)
+This command would produce a database connection string (DSN) similar to following example.
```shell
covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
```
-## 主流语言 Driver 的使用
+Use DSN to access CovenantSQL using various drivers.
+
+## Drivers
-1. [Java](./driver_java)
-2. [Python](./driver_python)
-3. [NodeJS](./driver_js)
\ No newline at end of file
+1. [Golang](./driver_golang)
+2. [Java](./driver_java)
+3. [Python](./driver_python)
+4. [NodeJS](./driver_js)
\ No newline at end of file
From ed6f49c967284ad4e4470347da1b91dca0cefaac Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:24 +0800
Subject: [PATCH 165/421] New translations driver_java.md (Chinese Simplified)
---
website/translated_docs/zh-CN/driver_java.md | 32 +++++++++-----------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/website/translated_docs/zh-CN/driver_java.md b/website/translated_docs/zh-CN/driver_java.md
index 6e185d2..05e5f39 100644
--- a/website/translated_docs/zh-CN/driver_java.md
+++ b/website/translated_docs/zh-CN/driver_java.md
@@ -2,23 +2,21 @@
id: driver_java
title: '📦 Java'
---
-## 用 Java 使用 CovenantSQL
+## Use Java to access CovenantSQL
-### 简介
+`CovenantSQL` provides `Java SDK` to access database instance through [`Adapter`](./adapter) service.
-`CovenantSQL` 提供了 `Java SDK`,可通过 `Adapter` 工具转换协议访问数据库实例。
+`Java SDK` is compatible with `JDBC4` specifications,and popular `ORM` like `MyBatis` is supported through JDBC interface.
-`Java SDK` 遵守 `Java` 标准的 `JDBC4` 接口定义,能够使用常见的 `ORM` 例如 `MyBatis` 进行使用。
+### Compatibility
-### 兼容性
+`Java SDK` requires `Java 1.7+`.
-`Java SDK` 目前只兼容 `Java 1.7+` 的 `JDK` 版本。
+### Installation and quick start
-### 安装和使用
+Before using `Java SDK`, an adapter tool deployment is required, please see [Deploy Adapter Service](./adapter).
-使用 `Java SDK` 需要 [部署 Adapter 工具](./adapter)。
-
-然后通过 `jdbc:covenantsql:///` URI,将其中的 `adapter_endpoint` 替换为 adapter 的地址,`database_id` 替换为数据库的 DSN 串访问数据库实例。
+Now you can use `jdbc:covenantsql:///` uri,replacing `adapter_endpoint` with adapter listen address,`database_id` with database id。
#### Maven
@@ -26,7 +24,7 @@ title: '📦 Java'
mvn-repo
- https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo
+ https://raw.githack.com/CovenantSQL/covenant-connector/master/covenantsql-java-connector/mvn-repo
true
@@ -41,7 +39,7 @@ title: '📦 Java'
io.covenantsql
- covenantsql-java
+ covenantsql-java-connector
1.0-SNAPSHOT
@@ -52,7 +50,7 @@ title: '📦 Java'
```gradle
repositories {
maven {
- url 'https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo'
+ url 'https://raw.githack.com/CovenantSQL/covenant-connector/master/covenantsql-java-connector/mvn-repo'
}
}
@@ -61,8 +59,8 @@ dependencies {
}
```
-### 示例
+### Examples
-1. [JDBC示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/jdbc/Example.java)
-2. [MyBatis示例](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/mybatis/Example.java)
-3. [大型项目示例](https://github.com/CovenantSQL/covenantsql-mybatis-spring-boot-jpetstore)
\ No newline at end of file
+1. [JDBC Example](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/jdbc/Example.java)
+2. [MyBatis Example](https://github.com/CovenantSQL/covenant-connector/blob/master/covenantsql-java-connector/example/src/main/java/io/covenantsql/connector/example/mybatis/Example.java)
+3. [SpringBoot + MyBatis Project Example](https://github.com/CovenantSQL/covenantsql-mybatis-spring-boot-jpetstore)
\ No newline at end of file
From c9385fdb39da7d303c587a16a0d328ee0519114e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 11:57:25 +0800
Subject: [PATCH 166/421] New translations driver_python.md (Chinese
Simplified)
---
.../translated_docs/zh-CN/driver_python.md | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/website/translated_docs/zh-CN/driver_python.md b/website/translated_docs/zh-CN/driver_python.md
index b86897a..e1192ed 100644
--- a/website/translated_docs/zh-CN/driver_python.md
+++ b/website/translated_docs/zh-CN/driver_python.md
@@ -2,27 +2,27 @@
id: driver_python
title: '📦 Python'
---
-## 用 Python 使用 CovenantSQL
+## Use Python to access CovenantSQL
-开发者可以通过 [PyCovenantSQL](https://github.com/CovenantSQL/python-driver) 来使用 CovenantSQL。
+Developers could use [PyCovenantSQL](https://github.com/CovenantSQL/python-driver) to access CovenantSQL through [Adapter](./adapter).
-### 兼容性
+### Compatibility
-`Python SDK` 目前只兼容 `python 3.4+`
+`Python SDK` requires `python 3.4+`.
-### 安装和使用
+### Installation and quick start
-使用 `Python SDK` 需要 [部署 Adapter 工具](./adapter)。
+Before using `Python SDK`, an adapter deployment is required, please see [Deploy Adapter Service](./adapter).
-使用 pip 安装 PyCovenantSQL
+Install `PyCovenantSQL` using pip:
```shell
$ python3 -m pip install PyCovenantSQL
```
-### 示例
+### Example
-将 `adapter_host` 替换为 adapter 地址,`adapter_port` 替换为 adapter 的端口,adapter
+Replace `adapter_host` with adapter listen host, `adapter_port` with adapter listen port, `dsn` with database dsn.
```python
import pycovenantsql
@@ -30,7 +30,7 @@ import pycovenantsql
# Connect to the database
connection = pycovenantsql.connect(host='',
port=,
- database=''
+ database=''
)
try:
From 88eabc67cda22674b6ed621a87869f1177d89d2f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 12:09:54 +0800
Subject: [PATCH 167/421] New translations adpater.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/adpater.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/adpater.md b/website/translated_docs/zh-CN/version-0.5.0/adpater.md
index 5bae4e4..24dbf68 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/adpater.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/adpater.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-adapter
-title: '📦 CovenantSQL Adapter SDK'
+title: '📦 Adapter SDK'
original_id: adapter
---
# Use Adapter to access CovenantSQL
From a480ba23b2487cefc76c29061c39cfb2a84dee84 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 12:09:56 +0800
Subject: [PATCH 168/421] New translations driver_java.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/driver_java.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_java.md b/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
index c6dcf52..894d538 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_java.md
@@ -25,7 +25,7 @@ Now you can use `jdbc:covenantsql:///` uri,repl
mvn-repo
- https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo
+ https://raw.githack.com/CovenantSQL/covenant-connector/master/covenantsql-java-connector/mvn-repo
true
@@ -40,7 +40,7 @@ Now you can use `jdbc:covenantsql:///` uri,repl
io.covenantsql
- covenantsql-java
+ covenantsql-java-connector
1.0-SNAPSHOT
@@ -51,7 +51,7 @@ Now you can use `jdbc:covenantsql:///` uri,repl
```gradle
repositories {
maven {
- url 'https://rawcdn.githack.com/CovenantSQL/covenant-connector/tree/master/covenantsql-java-connector/mvn-repo'
+ url 'https://raw.githack.com/CovenantSQL/covenant-connector/master/covenantsql-java-connector/mvn-repo'
}
}
From 23b95c74d65502b17a391d779e9d1d44a6d85804 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 12:09:57 +0800
Subject: [PATCH 169/421] New translations driver_golang.md (Chinese
Simplified)
---
.../zh-CN/version-0.5.0/driver_golang.md | 169 ++++++++++++++++++
1 file changed, 169 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/driver_golang.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_golang.md b/website/translated_docs/zh-CN/version-0.5.0/driver_golang.md
new file mode 100644
index 0000000..13f9632
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_golang.md
@@ -0,0 +1,169 @@
+---
+id: version-0.5.0-driver_golang
+title: '📦 Golang'
+original_id: driver_golang
+---
+## Use Golang to access CovenantSQL
+
+`CovenantSQL` provides `Golang SDK` to access database using native rpc protocol. The `cql` tool is developed based on `Golang SDK`.
+
+`Golang SDK` is compatible with Golang `database/sql` driver standard, and popular `Golang ORM` is supported for advanced uses.
+
+### Compatibility
+
+`Golang SDK` is compatible with Golang `1.10+`.
+
+### Installation and quick start
+
+Install it with:
+
+```shell
+go get github.com/CovenantSQL/CovenantSQL/client
+```
+
+### API doc
+
+https://godoc.org/github.com/CovenantSQL/CovenantSQL/client
+
+### Example
+
+```go
+package main
+
+import (
+ "database/sql"
+ "flag"
+
+ "github.com/CovenantSQL/CovenantSQL/client"
+ "github.com/CovenantSQL/CovenantSQL/utils/log"
+)
+
+func main() {
+ log.SetLevel(log.DebugLevel)
+ var config, password, dsn string
+
+ flag.StringVar(&config, "config", "./conf/config.yaml", "config file path")
+ flag.StringVar(&dsn, "dsn", "", "database url")
+ flag.StringVar(&password, "password", "", "master key password for covenantsql")
+ flag.Parse()
+
+ // Use config file to initialize Golang SDK
+ err := client.Init(config, []byte(password))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // Connect to database instance
+ db, err := sql.Open("covenantsql", dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ Q := `DROP TABLE IF EXISTS cityPop;
+ CREATE TABLE cityPop (
+ ID INT,
+ Name VARCHAR,
+ CountryCode VARCHAR,
+ District VARCHAR,
+ Population INT
+ );
+ CREATE INDEX cityCountryCodeIndex ON cityPop ( CountryCode );
+
+ DROP TABLE IF EXISTS countryGDP;
+ CREATE TABLE countryGDP (
+ ID integer PRIMARY KEY,
+ CountryCode string NOT NULL,
+ GDP integer
+ );
+ CREATE INDEX countryCountryCodeIndex ON countryGDP ( CountryCode );`
+
+ // Insert records
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `INSERT INTO countryGDP VALUES
+ (0, "ZWE", 99999),(1, "CHN", 3000000000000),
+ (2, "PSE", 321312313),(3, "JPN", 300000000);
+ INSERT INTO cityPop VALUES (707,'Shenzhen','CHN','Guangzhou',99442);
+ INSERT INTO cityPop VALUES (1074,'Shenzhen','CHN','Guangzhou',353632);
+ INSERT INTO cityPop VALUES (1591,'Toyama','JPN','Toyama',325790);
+ INSERT INTO cityPop VALUES (1649,'Takaoka','JPN','Toyama',174380);
+ INSERT INTO cityPop VALUES (1762,'Takasago','JPN','Hyogo',97632);
+ INSERT INTO cityPop VALUES (1763,'Fujimi','JPN','Saitama',96972);
+ INSERT INTO cityPop VALUES (1764,'Urasoe','JPN','Okinawa',96002);
+ INSERT INTO cityPop VALUES (1765,'Yonezawa','JPN','Yamagata',95592);
+ INSERT INTO cityPop VALUES (1766,'Konan','JPN','Aichi',95521);
+ INSERT INTO cityPop VALUES (1767,'Yamatokoriyama','JPN','Nara',95165);
+ INSERT INTO cityPop VALUES (1768,'Maizuru','JPN','Kyoto',94784);
+ INSERT INTO cityPop VALUES (1769,'Onomichi','JPN','Hiroshima',93756);
+ INSERT INTO cityPop VALUES (1770,'Higashimatsuyama','JPN','Saitama',93342);
+ INSERT INTO cityPop VALUES (2707,'Xai-Xai','MOZ','Gaza',99442);
+ INSERT INTO cityPop VALUES (4074,'Gaza','PSE','Gaza',353632);
+ INSERT INTO cityPop VALUES (4077,'Jabaliya','PSE','North Gaza',113901);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT * FROM cityPop
+ WHERE District IN ("Shenzhen", "Balkh", "Gaza", "North Gaza")
+ GROUP BY cityPop.CountryCode
+ ORDER BY Population DESC
+ LIMIT 10;`
+
+ // Query records
+ rows, err := db.Query(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+ log.Println("ID Name CountryCode District Population")
+ var ID, GDP, Population int
+ var Name, CountryCode, District string
+ var GDPPerson float64
+
+ for rows.Next() {
+ err = rows.Scan(&ID, &Name, &CountryCode, &District, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %s %d", ID, Name, CountryCode, District, Population)
+ }
+ Q = `UPDATE countryGDP SET GDP = 1234567 WHERE CountryCode LIKE "CHN";
+ UPDATE cityPop SET Population = 123456 WHERE CountryCode LIKE "CHN";
+ REPLACE INTO countryGDP (ID, CountryCode, GDP) VALUES (77, "AFG", 11111111);`
+ _, err = db.Exec(Q)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Printf("\nExec:\n %s\n", Q)
+
+ Q = `SELECT cityPop.ID, cityPop.CountryCode, cityPop.District,
+ countryGDP.GDP / cityPop.Population, countryGDP.GDP, cityPop.Population
+ FROM cityPop
+ LEFT JOIN countryGDP
+ ON countryGDP.CountryCode = cityPop.CountryCode
+ WHERE District IN ( "Shenzhen", "Balkh", "North Gaza", "Toyama", "Yonezawa") AND countryGDP.GDP > 0
+ GROUP BY cityPop.CountryCode
+ ORDER BY countryGDP.GDP / cityPop.Population DESC
+ LIMIT 10;`
+ rows, err = db.Query(Q)
+ log.Printf("\nExec:\n %s\n", Q)
+
+ log.Println("ID CountryCode District GDPPerson GDP Population")
+ for rows.Next() {
+ err = rows.Scan(&ID, &CountryCode, &District, &GDPPerson, &GDP, &Population)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ log.Printf("%d %s %s %f %d %d",
+ ID, CountryCode, District, GDPPerson, GDP, Population)
+ }
+}
+```
\ No newline at end of file
From 78c381cb68ceffbdb68736b8055453f105b16002 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 12:10:09 +0800
Subject: [PATCH 170/421] New translations adpater.md (Chinese Simplified)
---
website/translated_docs/zh-CN/adpater.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/adpater.md b/website/translated_docs/zh-CN/adpater.md
index 45bb887..a6546f0 100644
--- a/website/translated_docs/zh-CN/adpater.md
+++ b/website/translated_docs/zh-CN/adpater.md
@@ -1,6 +1,6 @@
---
id: adapter
-title: '📦 CovenantSQL Adapter SDK'
+title: '📦 Adapter SDK'
---
# Use Adapter to access CovenantSQL
From 4372832c3ae98fe60b62f6bc78d1224889416eeb Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 12:10:12 +0800
Subject: [PATCH 171/421] New translations driver_js.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/driver_js.md | 65 +++++++++++++++++++
1 file changed, 65 insertions(+)
create mode 100644 website/translated_docs/zh-CN/version-0.5.0/driver_js.md
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_js.md b/website/translated_docs/zh-CN/version-0.5.0/driver_js.md
new file mode 100644
index 0000000..4012c58
--- /dev/null
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_js.md
@@ -0,0 +1,65 @@
+---
+id: version-0.5.0-driver_js
+title: '📦 Javascript'
+original_id: driver_js
+---
+## Use Javascript to access CovenantSQL
+
+Front-end developers could use [covenantsql-proxy-js](https://github.com/CovenantSQL/covenantsql-proxy-js) to access CovenantSQL through CovenantSQL [Adapter](./adapter).
+
+#### Installation
+
+Install `node-covenantsql` using package manager `npm` or `yarn`:
+
+```bash
+npm install --save node-covenantsql
+```
+
+or
+
+```bash
+yarn add node-covenantsql
+```
+
+#### Quick start
+
+First, [Deploy Adapter Service](./adapter).
+
+Configure `node-covenantsql`, replace `adapter_listen_address` with adapter listen address, replace `database_id` with created database id:
+
+```javascript
+const config = {
+ endpoint: '', // local testnet endpoint without https
+ database: 'database_id', // your DB id created by `cql` tools
+}
+```
+
+After successfully connected to adapter, any CRUD operation is available using typical database operations:
+
+```typescript
+const cql from 'node-covenantsql'
+
+const config = {...} // see above
+
+cql.createConnection(config).then(async (connection: any) => {
+ // read
+ const data1 = await connection.query("select ? + ?", [2.1, 3.2]);
+ console.log(data1);
+
+ // write
+ const createTableSQL = `
+ CREATE TABLE IF NOT EXISTS contacts (\
+ contact_id INTEGER PRIMARY KEY,
+ first_name TEXT NOT NULL,
+ last_name TEXT NOT NULL,
+ email text NOT NULL UNIQUE,
+ phone text NOT NULL UNIQUE
+ );
+ `
+ const status1 = await connection.exec(createTableSQL)
+ console.log(`exec1 status:`, status1);
+
+ const data2 = await connection.query("show tables;");
+ console.log(data2);
+}).catch((e: any) => console.log(e))
+```
\ No newline at end of file
From 6913a8c3ef027c65b25a53f12422c6bf5cc02b91 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 14:16:38 +0800
Subject: [PATCH 172/421] New translations quickstart.md (Chinese Simplified)
---
website/translated_docs/zh-CN/quickstart.md | 137 ++++++++++++--------
1 file changed, 86 insertions(+), 51 deletions(-)
diff --git a/website/translated_docs/zh-CN/quickstart.md b/website/translated_docs/zh-CN/quickstart.md
index c2cd203..195dcad 100644
--- a/website/translated_docs/zh-CN/quickstart.md
+++ b/website/translated_docs/zh-CN/quickstart.md
@@ -4,24 +4,58 @@ title: '🌏 TestNet 快速开始'
---
## CovenantSQL 工具包
-### 工具包简介
+### 工具包安装
-请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+请根据您使用的操作系统平台选择安装方式:
-例如,您使用的是:
+- MacOS 平台
+
+ - 🍺 Homebrew 用户可以直接在命令行:
+
+```bash
+ brew tap CovenantSQL/cql && brew install cql
+ ```
+
+ - 非 Homebrew,可以执行:
+
+ - ```bash
+ curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.osx-amd64.tar.gz" | \
+ sudo tar xzv -C /usr/local/bin/ --strip-components=1
+ ```
+
+- Linux 平台请可以执行:
+
+ - ```bash
+ curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.linux-amd64.tar.gz" | \
+ sudo tar xzv -C /usr/local/bin/ --strip-components=1
+ ```
+
+安装完成后可以执行下面的命令,查看是否安装成功
+
+```bash
+cql version
+```
+
+如果对于 MacOS 或者 Linux 平台有任何错误,可以执行如下命令进行修复:
+
+```bash
+sudo chmod a+x /usr/local/bin/cql* # Fix Permission
+sudo ln -s /usr/local/bin/cql* /usr/bin/ # Fix if /usr/local/bin not in $PATH
+```
-- MacOS 平台请下载:[**CovenantSQL-v0.5.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.osx-amd64.tar.gz)
-- Linux 平台请下载:[**CovenantSQL-v0.5.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.linux-amd64.tar.gz)
-- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+如果问题依旧存在请在我们的 GitHub 页面[提交 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D)。
-解压之后,你将得到以下命令行工具,包括:`cql`、`cql-minerd` 等, 请将此文件移动到 `PATH` 目录。
+### 工具包介绍
| 工具名 | 介绍 |
| ---------- | ---------------------------------------------------------------- |
| cql | CovenantSQL 的客户端,`cql console` 命令类似 mysql 命令,用于执行 SQL。还有其他丰富的工具链 |
+| cql-fuse | CovenantSQL 的 FUSE 客户端,可以把 CovenantSQL 数据库 mount 成文件系统 |
| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+> Windows 平台我们稍后发布,有需求请在 GitHub [提 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=&template=feature_request.md&title=) 讨论。
+
### 测试网快速接入
目前,我们已经发布了测试网 v0.5.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
@@ -29,34 +63,33 @@ title: '🌏 TestNet 快速开始'
测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) (密码为空),或者使用以下命令:
```bash
-mkdir conf
-wget https://git.io/fhFZe -O conf/config.yaml
-wget https://git.io/fhFZv -O conf/private.key
-chmod 600 conf/private.key
+mkdir -p ~/.cql/testnet-conf
+curl -L https://git.io/fhFZe --output ~/.cql/testnet-conf/config.yaml
+curl -L https://git.io/fhFZv --output ~/.cql/testnet-conf/private.key
+chmod 600 ~/.cql/testnet-conf/private.key
```
**测试网注**:
> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
>
-> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
-
-## 创建并访问 CovenantSQL 数据库
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持 `create 3` 创建 3 个节点组成的数据库。
-### 创建数据库
+## 创建数据库
-```shell
-cql create -config conf/config.yaml '{"node":1}'
+```bash
+cql create -config=~/.cql/testnet-conf/config.yaml -no-password \
+-wait-tx-confirm '{"node":1}'
```
-在命令行提示中输入master key的密码,之后控制台会输出:
+命令执行耗时较长,大约 30s 之后控制台会输出:
covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
-这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链,并创建数据库完成。
-> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+> 命令执行耗时较长,大致过程为:
>
> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
> 2. 数据库创建请求在 其它出块节点 进行验证和确认
@@ -64,52 +97,54 @@ cql create -config conf/config.yaml '{"node":1}'
> 4. SQLChian 组建 Kayak 数据库集群
> 5. 所有 Miner 准备就绪等待请求
-### 访问数据库
+## 访问数据库
```shell
-cql console -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+cql console -config=~/.cql/testnet-conf/config.yaml -no-password \
+-dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
```
-在控制台中根据提示输入master key的密码。连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
-
-### 数据库 SDK
-
-- [Golang 开发指引](./development)
+连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
## SQLChain 区块浏览器
CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
-> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+> 测试网的`区块浏览器`目前是开放权限的,使用 TestNet 的公共 Key 创建并且知道数据库 ID 的人都能看到您的数据
-查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 。你可以看到使用 TestNet 的 Key 创建的所有数据的信息:
-## 创建账号
+
-我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+> **如果想要创建自己的私有数据库,需要从头开始创建一个新的公私钥对,请参考下面的章节。**
-```shell
-cql generate config
+## 创建新账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,可以加上 `-no-password` 留空):
+
+```bash
+cql generate -no-password config
```
输出:
+ INFO[0000] cql build: cql HEAD-48fff30-20190328075135 linux amd64 go1.11.6
+ "/home/work/.cql" already exists.
+ Do you want to delete it? (y or n, press Enter for default n):
+ y
Generating key pair...
- Enter master key(press Enter for default: ""):
- Private key file: ~/.cql/private.key
- Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Private key file: /home/work/.cql/private.key
+ Public key's hex: 024123d10696cf54fbf2b1e2b507ec4d1cbf2b4e87095774ad5fd6376cdae88e87
Generated key pair.
Generating nonce...
- INFO[0075] cpu: 4
- INFO[0075] position: 3, shift: 0x0, i: 3
- INFO[0075] position: 1, shift: 0x0, i: 1
- INFO[0075] position: 0, shift: 0x0, i: 0
- INFO[0075] position: 2, shift: 0x0, i: 2
- nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
- node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ INFO[0001] cpu: 2
+ INFO[0001] position: 2, shift: 0x0, i: 1
+ INFO[0001] position: 0, shift: 0x0, i: 0
+ nonce: {{2556203225 0 0 0} 24 000000829171cb94b765b4d51f2601aaf2c0f5270827ed97ddbecf0075437dad}
+ node id: 000000829171cb94b765b4d51f2601aaf2c0f5270827ed97ddbecf0075437dad
Generated nonce.
Generating config file...
- Generated nonce.
+ Generated config.
该命令会为你在~目录下创建一个 `.cql` 目录:
@@ -119,28 +154,28 @@ cql generate config
再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
-```shell
-cql wallet
+```bash
+cql wallet -no-password
```
输出:
```toml
-wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+wallet address: bc3cba461500f49c2adf6e6e98c1b3513063227063512f0dd6a5160c01de5e3c
```
你可以在这里回复上面得到的钱包地址 [GitHub Issue](https://github.com/CovenantSQL/CovenantSQL/issues/283),我们会为你的钱包充值。
使用 cql 命令行工具查询余额(可以添加 -config 参数,指定其他的 config.yaml 所在目录):
-```shell
-cql wallet -balance all
+```bash
+cql wallet -no-password -balance all
```
输出:
- INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
- INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+ Particle balance is: 100
+ Wave balance is: 0
恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From eabf8f9c86fd4926a11588b1ba85e09e5a4d9521 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 14:16:46 +0800
Subject: [PATCH 173/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/quickstart.md | 137 +++++++++++-------
1 file changed, 86 insertions(+), 51 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/quickstart.md b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
index 1993893..81691da 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
@@ -5,24 +5,58 @@ original_id: quickstart
---
## CovenantSQL 工具包
-### 工具包简介
+### 工具包安装
-请根据您使用的操作系统平台选择 [下载最新版 CovenantSQL 工具包](https://github.com/CovenantSQL/CovenantSQL/releases)。
+请根据您使用的操作系统平台选择安装方式:
-例如,您使用的是:
+- MacOS 平台
+
+ - 🍺 Homebrew 用户可以直接在命令行:
+
+```bash
+ brew tap CovenantSQL/cql && brew install cql
+ ```
+
+ - 非 Homebrew,可以执行:
+
+ - ```bash
+ curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.osx-amd64.tar.gz" | \
+ sudo tar xzv -C /usr/local/bin/ --strip-components=1
+ ```
+
+- Linux 平台请可以执行:
+
+ - ```bash
+ curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.linux-amd64.tar.gz" | \
+ sudo tar xzv -C /usr/local/bin/ --strip-components=1
+ ```
+
+安装完成后可以执行下面的命令,查看是否安装成功
+
+```bash
+cql version
+```
+
+如果对于 MacOS 或者 Linux 平台有任何错误,可以执行如下命令进行修复:
+
+```bash
+sudo chmod a+x /usr/local/bin/cql* # Fix Permission
+sudo ln -s /usr/local/bin/cql* /usr/bin/ # Fix if /usr/local/bin not in $PATH
+```
-- MacOS 平台请下载:[**CovenantSQL-v0.5.0.osx-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.osx-amd64.tar.gz)
-- Linux 平台请下载:[**CovenantSQL-v0.5.0.linux-amd64.tar.gz**](https://github.com/CovenantSQL/CovenantSQL/releases/download/v0.5.0/CovenantSQL-v0.5.0.linux-amd64.tar.gz)
-- Windows 平台我们稍后发布,有需求请戳这里:[](https://gitter.im/CovenantSQL/CovenantSQL)
+如果问题依旧存在请在我们的 GitHub 页面[提交 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D)。
-解压之后,你将得到以下命令行工具,包括:`cql`、`cql-minerd` 等, 请将此文件移动到 `PATH` 目录。
+### 工具包介绍
| 工具名 | 介绍 |
| ---------- | ---------------------------------------------------------------- |
| cql | CovenantSQL 的客户端,`cql console` 命令类似 mysql 命令,用于执行 SQL。还有其他丰富的工具链 |
+| cql-fuse | CovenantSQL 的 FUSE 客户端,可以把 CovenantSQL 数据库 mount 成文件系统 |
| cql-minerd | CovenantSQL 矿工客户端,用于运行数据库赚取奖励,以后会开放加入 |
| cqld | CovenantSQL 主链节点,主要由 CovenantLabs 以及合作伙伴以 DPoS 模式运行 |
+> Windows 平台我们稍后发布,有需求请在 GitHub [提 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=&template=feature_request.md&title=) 讨论。
+
### 测试网快速接入
目前,我们已经发布了测试网 v0.5.0,供大家进行原理性验证和体验。你可以选在使用公共的测试账号快速进行接入测试。
@@ -30,34 +64,33 @@ original_id: quickstart
测试账号的配置文件和私钥:[config.yaml](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/config.yaml)、[private.key](https://raw.githubusercontent.com/CovenantSQL/CovenantSQL/develop/conf/testnet/private.key) (密码为空),或者使用以下命令:
```bash
-mkdir conf
-wget https://git.io/fhFZe -O conf/config.yaml
-wget https://git.io/fhFZv -O conf/private.key
-chmod 600 conf/private.key
+mkdir -p ~/.cql/testnet-conf
+curl -L https://git.io/fhFZe --output ~/.cql/testnet-conf/config.yaml
+curl -L https://git.io/fhFZv --output ~/.cql/testnet-conf/private.key
+chmod 600 ~/.cql/testnet-conf/private.key
```
**测试网注**:
> 该账号是公共的且只供测试使用,请不要在该账号创建的数据库中存放你的应用信息,我们会不定期清理数据库数据。
>
-> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持`create 3`创建 3 个节点组成的数据库。
-
-## 创建并访问 CovenantSQL 数据库
+> 测试网暂时由 3 个 Miner 组成,所以暂时最大只支持 `create 3` 创建 3 个节点组成的数据库。
-### 创建数据库
+## 创建数据库
-```shell
-cql create -config conf/config.yaml '{"node":1}'
+```bash
+cql create -config=~/.cql/testnet-conf/config.yaml -no-password \
+-wait-tx-confirm '{"node":1}'
```
-在命令行提示中输入master key的密码,之后控制台会输出:
+命令执行耗时较长,大约 30s 之后控制台会输出:
covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
-这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链。
+这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链,并创建数据库完成。
-> 我们需要等待大概 30s 的时间,等待数据库创建,大致过程为:
+> 命令执行耗时较长,大致过程为:
>
> 1. 收到请求的 出块节点(Block Producer)进行 Miner 和数据库创建请求的撮合
> 2. 数据库创建请求在 其它出块节点 进行验证和确认
@@ -65,52 +98,54 @@ cql create -config conf/config.yaml '{"node":1}'
> 4. SQLChian 组建 Kayak 数据库集群
> 5. 所有 Miner 准备就绪等待请求
-### 访问数据库
+## 访问数据库
```shell
-cql console -config conf/config.yaml -dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+cql console -config=~/.cql/testnet-conf/config.yaml -no-password \
+-dsn covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
```
-在控制台中根据提示输入master key的密码。连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
-
-### 数据库 SDK
-
-- [Golang 开发指引](./development)
+连接上数据库后,你可以按你操作数据库的习惯来操作 CovenantSQL 上的数据库。比如执行 `CREATE TABLE` 创建表、`SELECT` 查询数据等操作。
## SQLChain 区块浏览器
CovenantSQL 有一个特性是**其操作记录是不可变且可跟踪的**,你可以通过 [测试网区块浏览器](https://explorer.dbhub.org/) 来查询某个数据库的操作记录。
-> 测试网的`区块浏览器`目前是开放权限的,所以任何知道数据库 ID 的人都能看到您的数据
+> 测试网的`区块浏览器`目前是开放权限的,使用 TestNet 的公共 Key 创建并且知道数据库 ID 的人都能看到您的数据
-查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872`
+查询时,请在其页面右上角填入你的数据库 ID。例如:`0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 。你可以看到使用 TestNet 的 Key 创建的所有数据的信息:
-## 创建账号
+
-我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,测试期间建议直接回车留空):
+> **如果想要创建自己的私有数据库,需要从头开始创建一个新的公私钥对,请参考下面的章节。**
-```shell
-cql generate config
+## 创建新账号
+
+我们的测试网支持你创建自己的的账号,并在自己的账号下创建数据库。通过以下的命令创建账号(会询问设置主密码,可以加上 `-no-password` 留空):
+
+```bash
+cql generate -no-password config
```
输出:
+ INFO[0000] cql build: cql HEAD-48fff30-20190328075135 linux amd64 go1.11.6
+ "/home/work/.cql" already exists.
+ Do you want to delete it? (y or n, press Enter for default n):
+ y
Generating key pair...
- Enter master key(press Enter for default: ""):
- Private key file: ~/.cql/private.key
- Public key's hex: 027af3584b8b4736d6ba1e78ace5f0fdefe561f08749c5cac39d23668c3030fe39
+ Private key file: /home/work/.cql/private.key
+ Public key's hex: 024123d10696cf54fbf2b1e2b507ec4d1cbf2b4e87095774ad5fd6376cdae88e87
Generated key pair.
Generating nonce...
- INFO[0075] cpu: 4
- INFO[0075] position: 3, shift: 0x0, i: 3
- INFO[0075] position: 1, shift: 0x0, i: 1
- INFO[0075] position: 0, shift: 0x0, i: 0
- INFO[0075] position: 2, shift: 0x0, i: 2
- nonce: {{1056388 0 0 1424219234} 25 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01}
- node id: 000000737633a77a39fc5e0a1855ca2c441486fef049ac4069e93dde6e58bb01
+ INFO[0001] cpu: 2
+ INFO[0001] position: 2, shift: 0x0, i: 1
+ INFO[0001] position: 0, shift: 0x0, i: 0
+ nonce: {{2556203225 0 0 0} 24 000000829171cb94b765b4d51f2601aaf2c0f5270827ed97ddbecf0075437dad}
+ node id: 000000829171cb94b765b4d51f2601aaf2c0f5270827ed97ddbecf0075437dad
Generated nonce.
Generating config file...
- Generated nonce.
+ Generated config.
该命令会为你在~目录下创建一个 `.cql` 目录:
@@ -120,28 +155,28 @@ cql generate config
再运行命令用来生成账号地址(也叫钱包地址、CovenantSQL 地址):
-```shell
-cql wallet
+```bash
+cql wallet -no-password
```
输出:
```toml
-wallet address: 4kcCg4niPjWURuFyT633V8TF9Xb9PvUR5Xbf6aTvGxFZkJFQaS9
+wallet address: bc3cba461500f49c2adf6e6e98c1b3513063227063512f0dd6a5160c01de5e3c
```
你可以在这里回复上面得到的钱包地址 [GitHub Issue](https://github.com/CovenantSQL/CovenantSQL/issues/283),我们会为你的钱包充值。
使用 cql 命令行工具查询余额(可以添加 -config 参数,指定其他的 config.yaml 所在目录):
-```shell
-cql wallet -balance all
+```bash
+cql wallet -no-password -balance all
```
输出:
- INFO[0000] stable coin balance is: 100 caller="main.go:246 main.main"
- INFO[0000] covenant coin balance is: 0 caller="main.go:247 main.main"
+ Particle balance is: 100
+ Wave balance is: 0
恭喜,你已收到我们发出的 PTC 稳定币,现在即可开始使用 CovenantSQL, 你可以参考 [Golang 使用 CovenantSQL 文档](./development) 进行开发。
\ No newline at end of file
From 715e37d5afa2e5e3190a5a617fd40b8b892ca3a8 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 14:34:54 +0800
Subject: [PATCH 174/421] New translations quickstart.md (Chinese Simplified)
---
website/translated_docs/zh-CN/quickstart.md | 34 +++++++++++----------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/website/translated_docs/zh-CN/quickstart.md b/website/translated_docs/zh-CN/quickstart.md
index 195dcad..0e70988 100644
--- a/website/translated_docs/zh-CN/quickstart.md
+++ b/website/translated_docs/zh-CN/quickstart.md
@@ -8,27 +8,29 @@ title: '🌏 TestNet 快速开始'
请根据您使用的操作系统平台选择安装方式:
-- MacOS 平台
-
- - 🍺 Homebrew 用户可以直接在命令行:
+#### MacOS 平台
+
+- 🍺 Homebrew 用户可以直接在命令行:
```bash
- brew tap CovenantSQL/cql && brew install cql
- ```
+brew tap CovenantSQL/cql && brew install cql
+```
+
+- 非 Homebrew,可以执行:
- - 非 Homebrew,可以执行:
+```bash
+sudo bash -c 'curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.osx-amd64.tar.gz" | \
+ tar xzv -C /usr/local/bin/ --strip-components=1'
+```
- - ```bash
- curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.osx-amd64.tar.gz" | \
- sudo tar xzv -C /usr/local/bin/ --strip-components=1
- ```
+#### Linux 平台
-- Linux 平台请可以执行:
+在命令行中执行:
- - ```bash
- curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.linux-amd64.tar.gz" | \
- sudo tar xzv -C /usr/local/bin/ --strip-components=1
- ```
+```bash
+sudo bash -c 'curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.linux-amd64.tar.gz" | \
+tar xzv -C /usr/local/bin/ --strip-components=1'
+```
安装完成后可以执行下面的命令,查看是否安装成功
@@ -43,7 +45,7 @@ sudo chmod a+x /usr/local/bin/cql* # Fix Permission
sudo ln -s /usr/local/bin/cql* /usr/bin/ # Fix if /usr/local/bin not in $PATH
```
-如果问题依旧存在请在我们的 GitHub 页面[提交 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D)。
+如果问题依旧存在请在我们的 GitHub 页面 [提交 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D)。
### 工具包介绍
From 046f70099988b9d61fcc10fb84ec928188acf563 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Wed, 17 Apr 2019 14:35:04 +0800
Subject: [PATCH 175/421] New translations quickstart.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/quickstart.md | 34 ++++++++++---------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/quickstart.md b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
index 81691da..06eb95c 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
@@ -9,27 +9,29 @@ original_id: quickstart
请根据您使用的操作系统平台选择安装方式:
-- MacOS 平台
-
- - 🍺 Homebrew 用户可以直接在命令行:
+#### MacOS 平台
+
+- 🍺 Homebrew 用户可以直接在命令行:
```bash
- brew tap CovenantSQL/cql && brew install cql
- ```
+brew tap CovenantSQL/cql && brew install cql
+```
+
+- 非 Homebrew,可以执行:
- - 非 Homebrew,可以执行:
+```bash
+sudo bash -c 'curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.osx-amd64.tar.gz" | \
+ tar xzv -C /usr/local/bin/ --strip-components=1'
+```
- - ```bash
- curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.osx-amd64.tar.gz" | \
- sudo tar xzv -C /usr/local/bin/ --strip-components=1
- ```
+#### Linux 平台
-- Linux 平台请可以执行:
+在命令行中执行:
- - ```bash
- curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.linux-amd64.tar.gz" | \
- sudo tar xzv -C /usr/local/bin/ --strip-components=1
- ```
+```bash
+sudo bash -c 'curl -L "https://bintray.com/covenantsql/bin/download_file?file_path=CovenantSQL-v0.5.0.linux-amd64.tar.gz" | \
+tar xzv -C /usr/local/bin/ --strip-components=1'
+```
安装完成后可以执行下面的命令,查看是否安装成功
@@ -44,7 +46,7 @@ sudo chmod a+x /usr/local/bin/cql* # Fix Permission
sudo ln -s /usr/local/bin/cql* /usr/bin/ # Fix if /usr/local/bin not in $PATH
```
-如果问题依旧存在请在我们的 GitHub 页面[提交 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D)。
+如果问题依旧存在请在我们的 GitHub 页面 [提交 Issue](https://github.com/CovenantSQL/CovenantSQL/issues/new?assignees=&labels=bug&template=bug_report.md&title=%5BBUG%5D)。
### 工具包介绍
From dabae2b40530ff036314039a3ec5aafafec8c540 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:04 +0800
Subject: [PATCH 176/421] New translations cql.md (Chinese Simplified)
---
website/translated_docs/zh-CN/cql.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/cql.md b/website/translated_docs/zh-CN/cql.md
index a42f3c7..c73b324 100644
--- a/website/translated_docs/zh-CN/cql.md
+++ b/website/translated_docs/zh-CN/cql.md
@@ -1,6 +1,6 @@
---
id: cql
-title: '🖥️ CQL 命令行工具集'
+title: Client
---
## 简介
From 7ec0a48c6dafc1adbc17c3ce241ec1be06e6f996 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:05 +0800
Subject: [PATCH 177/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/qna.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/qna.md b/website/translated_docs/zh-CN/version-0.5.0/qna.md
index ad187f5..ea2a604 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/qna.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/qna.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-qna
-title: '🙋 常见问题解答'
+title: Q&A
original_id: qna
---
## TBD
\ No newline at end of file
From aad734c7d8e3b7534146832f2709a5d114ca505e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:07 +0800
Subject: [PATCH 178/421] New translations deployment.md (Chinese Simplified)
---
website/translated_docs/zh-CN/deployment.md | 119 ++++++++++----------
1 file changed, 60 insertions(+), 59 deletions(-)
diff --git a/website/translated_docs/zh-CN/deployment.md b/website/translated_docs/zh-CN/deployment.md
index 8b5b8c8..451e55a 100644
--- a/website/translated_docs/zh-CN/deployment.md
+++ b/website/translated_docs/zh-CN/deployment.md
@@ -1,123 +1,124 @@
---
id: deployment
-title: '🐳 Docker 一键部署'
+title: Docker Deploy
---
-## 使用 CovenantSQL Docker 部署
+## Deploy with CovenantSQL Docker
-### 安装 Docker
+### Install Docker
-需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+You need to install docker and docker-compose on your machine to deploy CovenantSQL.
Docker:https://docs.docker.com/install/
Docker-Compose:https://docs.docker.com/compose/install/
-### 下载项目
+### Download project
```bash
git clone https://github.com/CovenantSQL/CovenantSQL
cd CovenantSQL
```
-后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+For all subsequent commands, the working directory is by default in the cloned CovenantSQL root directory, which can be saved as an environment variable:
```bash
export COVENANTSQL_ROOT=$PWD
```
-存为环境变量
+### Start Docker container
-### 启动 Docker 容器
+There are now two ways to start the CovenantSQL container:
-现在有两种方式启动 CovenantSQL 容器:
+1. Use a public image on Docker Hub
+2. Build a CovenantSQL Docker image
-1. 使用 Docker Hub 上的公共镜像
-2. 构建 CovenantSQL Docker 镜像
+> We recommend that regular users test CovenantSQL in the first way, and the second is only used to experience the latest development features.
-> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+#### 1. Use a public image on Docker Hub
-#### 1. 使用 Docker Hub 上的公共镜像
-
-然后直接启动:
+Then start directly:
```bash
make start
```
-#### 2. 构建 CovenantSQL Docker 镜像
+#### 2. Build a CovenantSQL Docker image
-执行以下的命令在本地运行 CovenantSQL
+Run CovenantSQL locally by executing the following command
```bash
-make docker # 从头编译新的镜像
+make docker # compile a new image from source files
make start
```
-### 检查运行状态
+### Check running status
-检查容器状态:
+Check the container status:
```bash
docker-compose ps
```
-确认所有组件都处于 `Up` 的状态
+Confirm that all components are in the `Up` state
```shell
- Name Command State Ports
----------------------------------------------------------------------------------------------------------------------
-covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
-covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp, 0.0.0.0:12099->4665/tcp
-covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp, 0.0.0.0:12100->4665/tcp
-covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp, 0.0.0.0:12101->4665/tcp
-covenantsql_fn_0 ./docker-entry.sh -wsapi :8546 Up 4661/tcp, 0.0.0.0:11110->8546/tcp
-covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp, 0.0.0.0:12102->4665/tcp
-covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp, 0.0.0.0:12103->4665/tcp
-covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp, 0.0.0.0:12104->4665/tcp
-covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
-covenantsql_observer ./docker-entry.sh Up 4661/tcp, 0.0.0.0:11108->80/tcp
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
```
-## 操作 CovenantSQL
+## Operate CovenantSQL
+
+### Create a database
-### 创建数据库
+Create a DB instance by using the `cql` command and using the `create` parameter to provide the required number of database nodes.
-使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+e.g.: creating a single-node database instance
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":1}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
```
-> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+> Modify the value of the `create` parameter to create an instance running on multiple nodes
+> e.g.: create an instance of two nodes
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":2}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
```
-命令会返回创建的数据库实例的连接串
+The command will return the connection string of the created database instance
```shell
-covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
```
-### 访问数据库
+### Accessing the database
-使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+Use the `cql` command and use the `dsn` parameter to provide a connection string for the database instance access:
```shell
-docker exec -it covenantsql_adapter /app/cql console -config /app/node_adapter/config.yaml -no-password -dsn covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
+docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
```
-会得到如下输出,并进入 `cql` 交互命令行模式
+After that, it will get the following output, and enter the `cql` interactive command line mode
```shell
-Connected with driver covenantsql (develop-34ae741a-20190415135520)
+Connected with driver covenantsql (develop)
Type "help" for help.
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
```
-`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+The `cql` interactive command line mode is similar to the `mysql` command. For example, create a table named test, view the tables in the database, insert records, and query results etc.
```sql
CREATE TABLE test (test TEXT);
@@ -126,36 +127,36 @@ INSERT INTO test VALUES("happy");
SELECT * FROM test;
```
-会得到如下输出
+After that, it will get the following output:
```shell
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> CREATE TABLE test (test TEXT);
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
CREATE TABLE
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SHOW TABLES;
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
name
------
test
(1 row)
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> INSERT INTO test VALUES("happy");
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
INSERT
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SELECT * FROM test;
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
test
-------
happy
(1 row)
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
```
-使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+Use the `Ctrl + D` shortcut or type `\q` to exit the `cql` interactive command line
### SQLChain Observer
-镜像中的 Observer 角色使用了和 mysql-adapter 镜像中相同的 private.key ,故可以免去新账户授权和转账的过程制。
+The Observer role in the image uses the same private.key as in the mysql-adapter image, so the new account authorization and transfer process can be eliminated.
-(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+(For details on rights management, please refer to [Database Permission Managemen](cql.md#数据库权限管理))
-#### 在浏览器使用 SQLChain Observer
+#### Use SQLChain Observer in your browser
-我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
+We provide a SQLChain Observer at port `127.0.0.1:11108` to see the SQL statement on the chain.
\ No newline at end of file
From 249d7bd438855e3ebb17e305a0b6e30c3f4537a9 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:08 +0800
Subject: [PATCH 179/421] New translations deployment.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/deployment.md | 119 +++++++++---------
1 file changed, 60 insertions(+), 59 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/deployment.md b/website/translated_docs/zh-CN/version-0.5.0/deployment.md
index 0b2f381..5366a86 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/deployment.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/deployment.md
@@ -1,124 +1,125 @@
---
id: version-0.5.0-deployment
-title: '🐳 Docker 一键部署'
+title: Docker Deploy
original_id: deployment
---
-## 使用 CovenantSQL Docker 部署
+## Deploy with CovenantSQL Docker
-### 安装 Docker
+### Install Docker
-需要在机器上安装 docker 和 docker-compose 来一键部署 CovenantSQL
+You need to install docker and docker-compose on your machine to deploy CovenantSQL.
Docker:https://docs.docker.com/install/
Docker-Compose:https://docs.docker.com/compose/install/
-### 下载项目
+### Download project
```bash
git clone https://github.com/CovenantSQL/CovenantSQL
cd CovenantSQL
```
-后续的所有命令,工作目录默认都是在 clone 的 CovenantSQL 源码目录中,可以执行
+For all subsequent commands, the working directory is by default in the cloned CovenantSQL root directory, which can be saved as an environment variable:
```bash
export COVENANTSQL_ROOT=$PWD
```
-存为环境变量
+### Start Docker container
-### 启动 Docker 容器
+There are now two ways to start the CovenantSQL container:
-现在有两种方式启动 CovenantSQL 容器:
+1. Use a public image on Docker Hub
+2. Build a CovenantSQL Docker image
-1. 使用 Docker Hub 上的公共镜像
-2. 构建 CovenantSQL Docker 镜像
+> We recommend that regular users test CovenantSQL in the first way, and the second is only used to experience the latest development features.
-> 我们推荐普通用户使用第一种方式测试 CovenantSQL,第二种仅用于体验最新的开发中的特性。
+#### 1. Use a public image on Docker Hub
-#### 1. 使用 Docker Hub 上的公共镜像
-
-然后直接启动:
+Then start directly:
```bash
make start
```
-#### 2. 构建 CovenantSQL Docker 镜像
+#### 2. Build a CovenantSQL Docker image
-执行以下的命令在本地运行 CovenantSQL
+Run CovenantSQL locally by executing the following command
```bash
-make docker # 从头编译新的镜像
+make docker # compile a new image from source files
make start
```
-### 检查运行状态
+### Check running status
-检查容器状态:
+Check the container status:
```bash
docker-compose ps
```
-确认所有组件都处于 `Up` 的状态
+Confirm that all components are in the `Up` state
```shell
- Name Command State Ports
----------------------------------------------------------------------------------------------------------------------
-covenantsql_adapter ./docker-entry.sh Up 0.0.0.0:11105->4661/tcp
-covenantsql_bp_0 ./docker-entry.sh Up 0.0.0.0:11099->4661/tcp, 0.0.0.0:12099->4665/tcp
-covenantsql_bp_1 ./docker-entry.sh Up 0.0.0.0:11100->4661/tcp, 0.0.0.0:12100->4665/tcp
-covenantsql_bp_2 ./docker-entry.sh Up 0.0.0.0:11101->4661/tcp, 0.0.0.0:12101->4665/tcp
-covenantsql_fn_0 ./docker-entry.sh -wsapi :8546 Up 4661/tcp, 0.0.0.0:11110->8546/tcp
-covenantsql_miner_0 ./docker-entry.sh Up 0.0.0.0:11102->4661/tcp, 0.0.0.0:12102->4665/tcp
-covenantsql_miner_1 ./docker-entry.sh Up 0.0.0.0:11103->4661/tcp, 0.0.0.0:12103->4665/tcp
-covenantsql_miner_2 ./docker-entry.sh Up 0.0.0.0:11104->4661/tcp, 0.0.0.0:12104->4665/tcp
-covenantsql_mysql_adapter ./docker-entry.sh -listen ... Up 4661/tcp, 0.0.0.0:11107->4664/tcp
-covenantsql_observer ./docker-entry.sh Up 4661/tcp, 0.0.0.0:11108->80/tcp
+ Name Command State Ports
+------------------------------------------------------------------------------------------------------
+covenantsql_bp_0 "./docker-entry.sh" Up 0.0.0.0:11099->4661/tcp
+covenantsql_bp_1 "./docker-entry.sh" Up 0.0.0.0:11100->4661/tcp
+covenantsql_bp_2 "./docker-entry.sh" Up 0.0.0.0:11101->4661/tcp
+covenantsql_miner_0 "./docker-entry.sh" Up 0.0.0.0:11102->4661/tcp
+covenantsql_miner_1 "./docker-entry.sh" Up 0.0.0.0:11103->4661/tcp
+covenantsql_miner_2 "./docker-entry.sh" Up 0.0.0.0:11104->4661/tcp
+covenantsql_adapter "./docker-entry.sh" Up 0.0.0.0:11105->4661/tcp
+covenantsql_mysql_adapter "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11107->4664/tcp
+covenantsql_observer "./docker-entry.sh" Up 4661/tcp, 0.0.0.0:11108->80/tcp
+covenantsql_fn_0 "./docker-entry.sh -…" Up 4661/tcp, 0.0.0.0:11110->8546/tcp
```
-## 操作 CovenantSQL
+## Operate CovenantSQL
+
+### Create a database
-### 创建数据库
+Create a DB instance by using the `cql` command and using the `create` parameter to provide the required number of database nodes.
-使用 `cql` 命令并使用 `create` 参数提供所需的数据库节点数量创建数据库实例,例如:创建一个单节点的数据库实例
+e.g.: creating a single-node database instance
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":1}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
```
-> 修改 `create` 参数的值,可以创建运行在多节点上的实例,例如:创建两个节点的实例
+> Modify the value of the `create` parameter to create an instance running on multiple nodes
+> e.g.: create an instance of two nodes
```shell
-docker exec -it covenantsql_adapter /app/cql create -config /app/node_adapter/config.yaml -no-password '{"node":2}'
+docker exec -it covenantsql_adapter /app/cql create -config /app/config.yaml -no-password '{"node":1}'
```
-命令会返回创建的数据库实例的连接串
+The command will return the connection string of the created database instance
```shell
-covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
+covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
```
-### 访问数据库
+### Accessing the database
-使用 `cql` 命令并使用 `dsn` 参数提供数据库实例的连接串进行数据库访问
+Use the `cql` command and use the `dsn` parameter to provide a connection string for the database instance access:
```shell
-docker exec -it covenantsql_adapter /app/cql console -config /app/node_adapter/config.yaml -no-password -dsn covenantsql://4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5
+docker exec -it covenantsql_adapter /app/cql console -config /app/config.yaml -no-password -dsn covenantsql://0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4
```
-会得到如下输出,并进入 `cql` 交互命令行模式
+After that, it will get the following output, and enter the `cql` interactive command line mode
```shell
-Connected with driver covenantsql (develop-34ae741a-20190415135520)
+Connected with driver covenantsql (develop)
Type "help" for help.
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
```
-`cql` 交互命令行模式的使用方法类似 `mysql` 命令,例如:创建一个名为 `test` 的表,查看数据库中的表,插入记录,查询结果
+The `cql` interactive command line mode is similar to the `mysql` command. For example, create a table named test, view the tables in the database, insert records, and query results etc.
```sql
CREATE TABLE test (test TEXT);
@@ -127,36 +128,36 @@ INSERT INTO test VALUES("happy");
SELECT * FROM test;
```
-会得到如下输出
+After that, it will get the following output:
```shell
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> CREATE TABLE test (test TEXT);
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> CREATE TABLE test (test TEXT);
CREATE TABLE
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SHOW TABLES;
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SHOW TABLES;
name
------
test
(1 row)
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> INSERT INTO test VALUES("happy");
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> INSERT INTO test VALUES("happy");
INSERT
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=> SELECT * FROM test;
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=> SELECT * FROM test;
test
-------
happy
(1 row)
-co:4bc27a06ae52a7b8b1747f3808dda786ddd188627bafe8e34a332626e7232ba5=>
+co:0a255f136520a2bc6a29055a619ec4f72c2c80fa600daf73b1caa375946ea0e4=>
```
-使用 `Ctrl + D` 快捷键或输入 `\q` 可以退出 `cql` 交互命令行
+Use the `Ctrl + D` shortcut or type `\q` to exit the `cql` interactive command line
### SQLChain Observer
-镜像中的 Observer 角色使用了和 mysql-adapter 镜像中相同的 private.key ,故可以免去新账户授权和转账的过程制。
+The Observer role in the image uses the same private.key as in the mysql-adapter image, so the new account authorization and transfer process can be eliminated.
-(关于权限管理的详细说明请参考[数据库权限管理](cql.md#数据库权限管理))
+(For details on rights management, please refer to [Database Permission Managemen](cql.md#数据库权限管理))
-#### 在浏览器使用 SQLChain Observer
+#### Use SQLChain Observer in your browser
-我们在 `127.0.0.1:11108` 端口提供了一个 SQLChain 的 Observer 可以看到 SQL 语句在链上的情况。
\ No newline at end of file
+We provide a SQLChain Observer at port `127.0.0.1:11108` to see the SQL statement on the chain.
\ No newline at end of file
From b94180abe2bbaa3055ac19ec91dd8f569159c09b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:12 +0800
Subject: [PATCH 180/421] New translations usecase.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/usecase.md | 37 ++++++++++++++++++-
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/usecase.md b/website/translated_docs/zh-CN/version-0.5.0/usecase.md
index 9444a0c..fedfbe6 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/usecase.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/usecase.md
@@ -1,6 +1,39 @@
---
id: version-0.5.0-usecase
-title: 使用案例
+title: Use case
original_id: usecase
---
-## TBD
\ No newline at end of file
+## Traditional App
+
+### Privacy data
+
+If you are a developper of password management tools just like [1Password](https://1password.com/) or [LastPass](https://www.lastpass.com/). You can use CQL as the database to take benefits:
+
+1. Serverless: no need to deploy a server to store your user's password for sync which is the hot potato.
+2. Security: CQL handles all the encryption work. Decentralized data storage gives more confidence to your users.
+3. Regulation: CQL naturally comply with [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation).
+
+### IoT storage
+
+CQL miners are deployed globally, IoT node can write to nearest CQL miner directly.
+
+1. Cheaper: Without passing all the traffic through a gateway, you can save a large bandwidth fee. And, CQL is a shared economic database which makes storage cheaper.
+2. Faster: CQL consensus protocol is designed for Internet where network latency is unavoidable.
+
+### Open data service
+
+For example, you are the most detailed Bitcoin OHLC data maintainer. You can directly expose an online SQL interface to your customers to meet a wide range of query needs.
+
+1. CQL can limit specific SQL query statements to meet the needs while also balancing data security;
+2. CQL can record SQL query records on the blockchain, which is very convenient for customers to check their bills for long-tail customers and billing, like [this](https://explorer.dbhub.org/dbs/7a51191ae06afa22595b3904dc558d41057a279393b22650a95a3fc610e1e2df/requests/f466f7bf89d4dd1ece7849ef3cbe5c619c2e6e793c65b31966dbe4c7db0bb072)
+3. For customers with high performance requirements, Slave nodes can be deployed at the customer to meet the needs of customers with low latency queries while enabling almost real-time data updates.
+
+### Secure storage
+
+Thanks to the CQL data history is immutable, CQL can be used as a storage for sensitive operational logs to prevent hacking and erasure access logs.
+
+* * *
+
+## ĐApp
+
+Storing data on Bitcoin or Ethereum is quite expensive ($4305 / MB on Ethereum 2018-05-15). Programming is very complicated due to the lack of support for structured data storage. CQL gives you a low-cost structured SQL database and also provides more room for ĐApp to exchange data with real-world.
\ No newline at end of file
From 3e13df18112753922ae319c3cfd0107da6ff0b7e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:14 +0800
Subject: [PATCH 181/421] New translations quickstart.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/quickstart.md | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/quickstart.md b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
index 06eb95c..d3a34ba 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/quickstart.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-quickstart
-title: '🌏 TestNet 快速开始'
+title: Quick Start
original_id: quickstart
---
## CovenantSQL 工具包
@@ -87,8 +87,9 @@ cql create -config=~/.cql/testnet-conf/config.yaml -no-password \
命令执行耗时较长,大约 30s 之后控制台会输出:
- covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
-
+> covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链,并创建数据库完成。
From 97974f8a4b3ea2e4a06dfbc15d4f8b1584b6495f Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:16 +0800
Subject: [PATCH 182/421] New translations intro.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/intro.md b/website/translated_docs/zh-CN/version-0.5.0/intro.md
index dd9addc..0fa6d06 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/intro.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/intro.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-intro
-title: CovenantSQL 介绍
+title: CovenantSQL Intro
original_id: intro
---
From 51982d165bd962ee8843429f9f364804b1f1db70 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:17 +0800
Subject: [PATCH 183/421] New translations nav.md (Chinese Simplified)
---
.../zh-CN/version-0.5.0/nav.md | 30 ++++++++++++-------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/nav.md b/website/translated_docs/zh-CN/version-0.5.0/nav.md
index 8597bac..5c472bd 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/nav.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/nav.md
@@ -1,22 +1,32 @@
---
id: version-0.5.0-nav
-title: '📖 使用导航'
+title: 使用导航
original_id: nav
---
-## 直接使用测试网
+## 快速开始
-[🌏 TestNet 快速开始](./quickstart)
+[TestNet 快速开始](./quickstart)
-## 部署私有 CovenantSQL 数据库(搭建私有链)
+[CQL 操作手册](./cql)
-如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+## 开发应用
-[🐳 Docker 一键部署](./deployment)
+[Golang](./driver_golang)
+
+[Java](./driver_java)
+
+[Python](./driver_python)
+
+[NodeJS](./driver_js)
-## 使用 CovenantSQL 开发应用
+## 高级使用
-[📦 CovenantSQL SDK](./development)
+#### 私有部署
+
+如果您是企业用户,希望在自己的网络搭建 CovenantSQL 数据库服务,请参考:
+
+[🐳 Docker 一键部署](./deployment)
-## CovenantSQL 联盟链解决方案
+#### 联盟链解决方案
-正在建设中,如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
+如需咨询请邮件至 webmaster@covenantsql.io。
\ No newline at end of file
From 762cb8968e28d235317249229efdd538f28ccc01 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:19 +0800
Subject: [PATCH 184/421] New translations cql.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/cql.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/cql.md b/website/translated_docs/zh-CN/version-0.5.0/cql.md
index 880c26d..428ca40 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/cql.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/cql.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-cql
-title: '🖥️ CQL 命令行工具集'
+title: Client
original_id: cql
---
## 简介
From f69d5d8c41bc071b20c0883d3643c38ad11d7439 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:20 +0800
Subject: [PATCH 185/421] New translations qna.md (Chinese Simplified)
---
website/translated_docs/zh-CN/qna.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/qna.md b/website/translated_docs/zh-CN/qna.md
index c910445..b820313 100644
--- a/website/translated_docs/zh-CN/qna.md
+++ b/website/translated_docs/zh-CN/qna.md
@@ -1,5 +1,5 @@
---
id: qna
-title: '🙋 常见问题解答'
+title: Q&A
---
## TBD
\ No newline at end of file
From 30a5f2fe2fd6750db1a9f7a3827618c169792193 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:21 +0800
Subject: [PATCH 186/421] New translations intro.md (Chinese Simplified)
---
website/translated_docs/zh-CN/intro.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/intro.md b/website/translated_docs/zh-CN/intro.md
index 2eab7a1..bcdec0e 100644
--- a/website/translated_docs/zh-CN/intro.md
+++ b/website/translated_docs/zh-CN/intro.md
@@ -1,6 +1,6 @@
---
id: intro
-title: CovenantSQL 介绍
+title: CovenantSQL Intro
---
From 556b42d609e7fb4aacb3159da7353d7ec02de582 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:23 +0800
Subject: [PATCH 187/421] New translations driver_js.md (Chinese Simplified)
---
website/translated_docs/zh-CN/driver_js.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/website/translated_docs/zh-CN/driver_js.md b/website/translated_docs/zh-CN/driver_js.md
index a1f40e2..7f03e57 100644
--- a/website/translated_docs/zh-CN/driver_js.md
+++ b/website/translated_docs/zh-CN/driver_js.md
@@ -1,8 +1,8 @@
---
id: driver_js
-title: '📦 Javascript'
+title: JavaScript
---
-## Use Javascript to access CovenantSQL
+## Use JavaScript to access CovenantSQL
Front-end developers could use [covenantsql-proxy-js](https://github.com/CovenantSQL/covenantsql-proxy-js) to access CovenantSQL through CovenantSQL [Adapter](./adapter).
From 2f5783fc9c8764423f6421da80163c4bc2d27e33 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:24 +0800
Subject: [PATCH 188/421] New translations driver_golang.md (Chinese
Simplified)
---
website/translated_docs/zh-CN/driver_golang.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/driver_golang.md b/website/translated_docs/zh-CN/driver_golang.md
index c39b391..c3d2d84 100644
--- a/website/translated_docs/zh-CN/driver_golang.md
+++ b/website/translated_docs/zh-CN/driver_golang.md
@@ -1,6 +1,6 @@
---
id: driver_golang
-title: '📦 Golang'
+title: Golang
---
## Use Golang to access CovenantSQL
From 5cfaf60f7d6292560951e22618b805ebd821e9d5 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:26 +0800
Subject: [PATCH 189/421] New translations quickstart.md (Chinese Simplified)
---
website/translated_docs/zh-CN/quickstart.md | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/website/translated_docs/zh-CN/quickstart.md b/website/translated_docs/zh-CN/quickstart.md
index 0e70988..93d6f8d 100644
--- a/website/translated_docs/zh-CN/quickstart.md
+++ b/website/translated_docs/zh-CN/quickstart.md
@@ -1,6 +1,6 @@
---
id: quickstart
-title: '🌏 TestNet 快速开始'
+title: Quick Start
---
## CovenantSQL 工具包
@@ -86,8 +86,9 @@ cql create -config=~/.cql/testnet-conf/config.yaml -no-password \
命令执行耗时较长,大约 30s 之后控制台会输出:
- covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
-
+> covenantsql://0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872
+
+
这里表示你提交了 `0a10b74439f2376d828c9a70fd538dac4b69e0f4065424feebc0f5dbc8b34872` 这个数据库的创建请求到主链,并创建数据库完成。
From d0d188c4280ec6790ad7fe32cc7eec1ae4950d39 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:27 +0800
Subject: [PATCH 190/421] New translations adpater.md (Chinese Simplified)
---
website/translated_docs/zh-CN/adpater.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/website/translated_docs/zh-CN/adpater.md b/website/translated_docs/zh-CN/adpater.md
index a6546f0..bf93a78 100644
--- a/website/translated_docs/zh-CN/adpater.md
+++ b/website/translated_docs/zh-CN/adpater.md
@@ -1,10 +1,10 @@
---
id: adapter
-title: '📦 Adapter SDK'
+title: Adapter
---
# Use Adapter to access CovenantSQL
-`CovenantSQL` provides an HTTP/HTTPS adapter service. Developers could access CovenantSQL like a cloud database by using HTTP Rest requests.
+`CovenantSQL` provides an HTTP/HTTPS adapter service. Developers could access CovenantSQL like a cloud database by using HTTP RESTful requests.
## How to use
From 827e1ad404a64d50a8c92e3472cc28af9b99e99a Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:28 +0800
Subject: [PATCH 191/421] New translations driver_java.md (Chinese Simplified)
---
website/translated_docs/zh-CN/driver_java.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/driver_java.md b/website/translated_docs/zh-CN/driver_java.md
index 05e5f39..27d0176 100644
--- a/website/translated_docs/zh-CN/driver_java.md
+++ b/website/translated_docs/zh-CN/driver_java.md
@@ -1,6 +1,6 @@
---
id: driver_java
-title: '📦 Java'
+title: Java
---
## Use Java to access CovenantSQL
From a340d3388e738bfafa8467c49600886e2b774df0 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:29 +0800
Subject: [PATCH 192/421] New translations driver_python.md (Chinese
Simplified)
---
website/translated_docs/zh-CN/driver_python.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/website/translated_docs/zh-CN/driver_python.md b/website/translated_docs/zh-CN/driver_python.md
index e1192ed..c273518 100644
--- a/website/translated_docs/zh-CN/driver_python.md
+++ b/website/translated_docs/zh-CN/driver_python.md
@@ -1,6 +1,6 @@
---
id: driver_python
-title: '📦 Python'
+title: Python
---
## Use Python to access CovenantSQL
@@ -8,7 +8,7 @@ Developers could use [PyCovenantSQL](https://github.com/CovenantSQL/python-drive
### Compatibility
-`Python SDK` requires `python 3.4+`.
+`Python SDK` requires `Python 3.4+`.
### Installation and quick start
From 357d21308f4aecdbc3cbd9200fbe35e54edc4c9e Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:31 +0800
Subject: [PATCH 193/421] New translations deployment-en.md (Chinese
Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/deployment-en.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/deployment-en.md b/website/translated_docs/zh-CN/version-0.5.0/deployment-en.md
index adfe539..b97f767 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/deployment-en.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/deployment-en.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-deployment
-title: '🐳 Docker one-line deployment'
+title: Docker one-line deployment
original_id: deployment
---
## Deploy with CovenantSQL Docker
From 27b41e62d28fc6cd2b5c6fa85302ab5bc759f780 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:32 +0800
Subject: [PATCH 194/421] New translations driver_js.md (Chinese Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/driver_js.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_js.md b/website/translated_docs/zh-CN/version-0.5.0/driver_js.md
index 4012c58..4cd7824 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/driver_js.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_js.md
@@ -1,9 +1,9 @@
---
id: version-0.5.0-driver_js
-title: '📦 Javascript'
+title: JavaScript
original_id: driver_js
---
-## Use Javascript to access CovenantSQL
+## Use JavaScript to access CovenantSQL
Front-end developers could use [covenantsql-proxy-js](https://github.com/CovenantSQL/covenantsql-proxy-js) to access CovenantSQL through CovenantSQL [Adapter](./adapter).
From 275321ba1d41d8d227c38c191ddc112812f2c10b Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:34 +0800
Subject: [PATCH 195/421] New translations driver_golang.md (Chinese
Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/driver_golang.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_golang.md b/website/translated_docs/zh-CN/version-0.5.0/driver_golang.md
index 13f9632..f3bd07a 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/driver_golang.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_golang.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-driver_golang
-title: '📦 Golang'
+title: Golang
original_id: driver_golang
---
## Use Golang to access CovenantSQL
From 77d7349741bb460a4143467fae84d81d2dd7fca8 Mon Sep 17 00:00:00 2001
From: foreseaz
Date: Thu, 18 Apr 2019 16:57:35 +0800
Subject: [PATCH 196/421] New translations driver_python.md (Chinese
Simplified)
---
website/translated_docs/zh-CN/version-0.5.0/driver_python.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/website/translated_docs/zh-CN/version-0.5.0/driver_python.md b/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
index d9a537c..db5defa 100644
--- a/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
+++ b/website/translated_docs/zh-CN/version-0.5.0/driver_python.md
@@ -1,6 +1,6 @@
---
id: version-0.5.0-driver_python
-title: '📦 Python'
+title: Python
original_id: driver_python
---
## Use Python to access CovenantSQL
@@ -9,7 +9,7 @@ Developers could use [PyCovenantSQL](https://github.com/CovenantSQL/python-drive
### Compatibility
-`Python SDK` requires `python 3.4+`.
+`Python SDK` requires `Python 3.4+`.
### Installation and quick start
From 49988af441e56a1186fba694ce20b6d6c3524862 Mon Sep 17 00:00:00 2001
From: foreseaz