美文网首页我爱编程
Skycoin: README.md

Skycoin: README.md

作者: AntCaveWeb3 | 来源:发表于2018-06-05 15:25 被阅读0次

天空币是下一代的加密货币。

天空币解决了比特币很多需要解决的问题。

天空币是暗网计划和权利再分配计划的一小部分。

+++++++++++++++++++++++++++++++++

相关链接:

官方网站  https://www.skycoin.net/

官方博客  https://www.skycoin.net/blog/

相关资料  https://www.skycoin.net/docs/

区块链浏览器  https://explorer.skycoin.net/

电报群  https://t.me/skycoindev

+++++++++++++++++++++++++++++++++

目录列表:

-日志

-安装

--GO语言1.10 安装及设置

--获取skycoin

--命令行运行skycoin

--显示skycoin节点选项

--选择运行skycoin

--Docker 图像

--建立个人图像

-API文档

--REST API

--JSON-RPC 2.0 API

--Skycoin 命令行接口

-Skycoin与你的应用集成

-为网络贡献一个节点

-URI规范

-开发项目

--模块

--客户端库

--运行测试

-运行集成测试

--稳定集成测试

--现场集成测试

--调试集成测试

--更新黄金文件集成测试数据

-格式化

-代码规范

-依赖项管理

-钱包GUI开发

-发布

--预发布测试

--创建发布版本

--发布签名

++++++++++++++++++++++++++++++++++

目录

CHANGELOG.md  (文本文件)

安装

Skycoin 支持 go1.10+ 版本

Go 1.10+安装与配置

INSTALLATION.md  (文本文档)

使用GO安装skycoin

go get github.com/skycoin/skycoin/...

它会下载

github.com/skycoin/skycoin

$GOPATH/src/github.com/skycoin/skycoin

你也可以直接clone仓库,通过使用:

git clone https://github.com/skycoin/skycoin

但它必须被克隆至该路径:

$GOPATH/src/github.com/skycoin/skycoin

通过命令行运行skycoin

cd $GOPATH/src/github.com/skycoin/skycoin
make run

现实skycoin节点选项

cd $GOPATH/src/github.com/skycoin/skycoin
make run-help

运行节点选项

实例:

cd $GOPATH/src/github.com/skycoin/skycoin
make ARGS="--launch-browser=false -data-dir=/custom/path" run

Docker 镜像

通过Docker用最快的方法使用skycoin

$ docker volume create skycoin-data
$ docker volume create skycoin-wallet
$ docker run -ti --rm \
    -v skycoin-data:/data/.skycoin \
    -v skycoin-wallet:/wallet \
    -p 6000:6000 \
    -p 6420:6420 \
    skycoin/skycoin

这个镜像有一个skycoin用户的守护进程运行着,而且是UID和GID 10000。 当你在安装的时候,容器会改变他们的所属者标识。所以你必须意识到是否你正在一个已经存在的卷,它们属于10000。

容器会运行一些默认的选项,但是你可以改变他们通过

docker run

命令。

下面的例子将会展示给你可得到的选项:

docker run --rm skycoin/skycoin -help

仪表盘入口: 

http://localhost:6420

API入口 :

http://localhost:6420/version

构建你自己的镜像

Building your own images. (文本文档)

开发镜像

为了更加容易的开发 skycoin,提供了

skycoin/skycoindev-cli docker image

它附带了编译器、语法规范、调试工具、VIM编辑器以及其他的工具。

API 文档

-REST API

REST API Documentation (文本文档)

-JSON-RPC 2.0 API

(已弃用,避免使用 )

JSON 2.0 RPC API Documentation (文本文档)

- skycoin 命令行接口

CLI command API  (文本文档)

在你的应用中集成skycoin

Skycoin 集成文档 (文本文档)

为网络贡献一个节点

添加你节点的ip和端口:

ip:port   

到peer.txt文件中 。

这个文件会定期上传到:

https://downloads.skycoin.net/blockchain/peers.txt

并用于生成客户的种子。

注意: 不要添加Skywire节点 到peers.txt

只添加具有高运行时间的Skycoin节点和静态IP地址(就好像是托管在VPS上的Skycoin节点)。

URI 规范

Skycoin URI遵循与Bitcoin的BIP21规定相同的规则。他们使用相同的字段,除了添加一个可选的小时参数,指定币时。

https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki

(BIP21规定 ,文本文档)

Skycoin URIs 示例 :

skycoin:2hYbwYudg34AjkJJCRVRcMeqSWHUixjkfwY

skycoin:2hYbwYudg34AjkJJCRVRcMeqSWHUixjkfwY?amount=123.456&hours=70

skycoin:2hYbwYudg34AjkJJCRVRcMeqSWHUixjkfwYamount=123.456&hours=70&label=friend&message=Birthday%20Gift

skycoin:2hYbwYudg34AjkJJCRVRcMeqSWHUixjkfwY?amount=123.456&hours=70&label=friend&message=Birthday%20Gift

开发

我们有两个分支: master 和 develop

develop是默认的分支, 并将有最新的代码。

master将始终同步当前稳定的版本,并应对应最新的发布标签,发布在网站上。

模块

api  :  REST API接口
api/webrpc : JSON RPC 2.0 API [已否决]
cipher : 密码库
cli :CLI 库
coin: 区块链数据结构
daemon: 顶层应用程序管理器,组件包含(网络、数据库、钱包)
daemon/gnet:网络库
daemon/pex: peer 管理
visor: 顶层区块链数据层
visor/blockdb: 底层区块链数据层
visor/historydb: 历史区块链元数据所属底层区块链数据
wallet: 钱包文件管理

客户端库

从其他编程语言导出用于使用的skycoin的核心功能。

lib/cgo/: libskycoin C 客户端库  ( 文本文档 )

有关进一步的细节,运行:

make docs

生成文档并读取相应的自述文件和 API 引用。

运行测试

make test

运行集成测试

有 CLI 和 HTTP API 接口的集成测试。他们有两种运行模式, "stable"稳定 和 "live"实况。

稳定集成测试会使用一个skycoin守护进程,它的区块链会同步到一个特定的点,并且禁用网络,所以内部状态不会改变。

实况集成测试应该针对启用同步网络的同步节点运行。

稳定集成测试 :

make integration-test-stable

或者:

./ci-scripts/integration-test-stable.sh -v -w

-W选项, 运行钱包集成测试。

-V选项,显示详细日志。

时实集成测试

时实集成测试是针对一个实时运行的Skycoin节点运行的,所以在运行测试之前,我们需要启动一个Skycoin节点。

在Skycoin节点启动后,运行以下命令启动实时测试:

./ci-scripts/integration-test.live.sh -v

除了钱包相关的测试之外,上面的命令将运行所有的测试。

要运行钱包测试, 我们需要手动指定一个钱包文件, 它必须有至少2 coin和 256 coinhours, 它也必须是已加载的节点。

我们可以通过设置两个环境变量来指定钱包:

WALLET_DIR
WALLET_NAME

Wallet_dir表示钱包目录的绝对路径,Wallet_name表示钱包文件名。

注意: WALLET_DIR 仅用于 CLI 集成测试。GUI 集成测试使用节点的配置的钱包目录, 它可以在运行节点时用钱包-dir 控制。

如果钱包是加密的, 也设置:

WALLET_PASSWORD

例如:

export WALLET_DIR="$HOME/.skycoin/wallets"
export WALLET_NAME="$valid_wallet_filename"
export WALLET_PASSWORD="$wallet_password"

然后使用以下命令运行测试:

make integration-test-live

或者

./ci-scripts/integration-test-live.sh -v -w

调试集成测试

运行特殊测试用例:

运行所有测试来检查我们真正关心的测试是否正常工作是很烦人的, 很浪费时间。

有一个选项:-R,它可以用来运行特定的测试用例。例如:如果我们只想测试TestStestAdvestSaltSalk并查看结果,我们可以运行:

./ci-scripts/integration-test-stable.sh -v -r TestStableAddressBalance

在集成测试数据中更新黄金文件:

金文件预计从CLI或HTTP API保存到磁盘的数据响应。当测试运行时,将它们的输出与黄金文件进行比较。

金色的更新文件,使用-U选项:

./ci-scripts/integration-test-live.sh -v -u
./ci-scripts/integration-test-stable.sh -v -u

我们还可以用-R选项更新特定的测试用例的黄金文件。

格式化

所有. go源文件应格式化 goimports。您可以执行以下操作:

make format

代码风格

安装依赖项:

make install-linters

运行依赖:

make lint

依赖管理

依赖关系用DEP管理。

安装dep:

go get -u github.com/golang/dep

DEP供应商将所有依赖项转换为库。

如果更改依赖项,则需要根据DEP确保对它们进行更新。

使用 dep help 可得到有关 vendoring 特定版本的依赖项的说明, 或者更新它们。

当更新或初始化时,DEP将找到编译的依赖项的最新版本。

实例: 

初始化所以依赖项:

dep init

更新所有依赖项:

dep ensure -update -v

添加单个依赖项 (最新版本):

dep ensure github.com/foo/bar

添加单个依赖项(更具体的版本),或降级现有的依赖项:

dep ensure github.com/foo/bar@tag

配置模式

有4种配置模式,您可以运行一个Skycoin节点:

开发桌面守护进程

服务器守护进程

电子桌面客户端

独立桌面客户端

开发桌面守护进程模式,此模式通过run.sh配置。

$ ./run.sh

服务器守护进程模式

Skycoin节点的默认设置是为服务器守护进程选择的,它通常是从源运行的。这种模式通常是以安全选项运行的,尽管是-disable-csrf是正常的,默认情况下它是启用的。

$ go run cmd/skycoin/skycoin.go

电子桌面客户端模式

此模式通过电子electron-main.js

独立运行的桌面客户端模式

此模式是通过使用STANDALONE_CLIENT构建标记编译而配置的。配置在

cmd/skycoin/skycoin.go

钱包 GUI 开发

已编译的钱包源应签入到库中, 以便其他人不需要安装节点来运行软件。

执行此操作的说明:

(Wallet GUI Development README 文本文档)

发布

0.如果主分支具有不在开发中的提交(例如由于应用于主控程序的修复),则将主控合并到开发中。

1.编译  src/gui/static/dist/  确保它的数据是最新的(参见钱包 GUI 开发手册)

2. 更新版本中的所有版本字符串(GRIP为新版本)

3. 更新日志CHANGELOG.md  : 将 "未发布 " 更改移动到版本并添加日期

4. 合并这些更改到devlop

5. 遵循预发布测试中的步骤

6. 制定一个PR 将devlop 合并到master 分支

7.审核PR并将其合并

8.使用版本号标记主分支。版本标签以 v 开头, 例如 v0.20.0。在标签上签名。如果您在 github 中有您的 "公钥" 密钥, 则在 github 网站上创建一个发布将自动标记该版本。它可以用 git 标记的命令行标记-作为

git tag -as v0.20.0
$COMMIT_ID

但 Github 不会将其识别为 "发布"。

9. 确保客户端从主分支正确运行

10. 发布版本是由特拉维斯创建和上传的。手动完成,要手动执行此操作, 请签出主分支并按照 "创建版本" 生成说明进行操作。

如果合并到主机后发现问题,请重新启动并增加第三版本号。例如,V0.20.0变为V0.20.1,用于较小的修复。

预发布测试

在发布之前执行这些操作:

make check
make integration-test-live

(参见实时集成测试文档)都使用未加密和加密的钱包。

go run cmd/cli/cli.go checkdb

同步节点

在所有操作系统平台中,确保客户端从命令行正确运行。

./run.sh

构建发布,确保电子客户端在Windows、Linux和Mac OS上正常运行。

- 使用没有钱包或数据库的干净数据目录从零开始同步,并验证钱包安装向导。

- 从种子加载非零余额测试钱包确认钱包加载工程

- 将硬币发送到另一个钱包确认支出工作

- 重新启动客户端, 确认它已正确重载

创建发布版本

Create Release builds (文本文档)

发布签名

发行版使用此 PGP 密钥进行签名:

0x5801631BD27C7874

这个键的指纹是:

pub  ed25519 2017-09-01 [SC] [expires: 2023-03-18]
      10A7 22B7 6F2F FE7B D238  0222 5801 631B D27C 7874
uid                      GZ-C SKYCOIN <token@protonmail.com>
sub  cv25519 2017-09-01 [E] [expires: 2
Keybase.io账户: https://keybase.io/gzc
关注项目: https://www.torproject.org/docs/verifying-signatures.html.en

如果您不能或不想从 keyserver 导入密钥, 则在库中可以使用签名密钥: gz-c.asc  (文本文档)

版本及其签名可以在:
https://github.com/skycoin/skycoin/releases

生成PGP密钥、发布它、签署标签和二进制文件的指令:

https://github.com/skycoin/skycoin/blob/develop/README.md

相关文章

网友评论

    本文标题:Skycoin: README.md

    本文链接:https://www.haomeiwen.com/subject/hkzpsftx.html