天空币是下一代的加密货币。
天空币解决了比特币很多需要解决的问题。
天空币是暗网计划和权利再分配计划的一小部分。
+++++++++++++++++++++++++++++++++
相关链接:
官方网站 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
网友评论