天空幣是下一代的加密貨幣。
天空幣解決了比特幣很多需要解決的問題。
天空幣是暗網(wǎng)計劃和權(quán)利再分配計劃的一小部分。
+++++++++++++++++++++++++++++++++
相關(guān)鏈接:
官方網(wǎng)站? https://www.skycoin.net/
官方博客? https://www.skycoin.net/blog/
相關(guān)資料? https://www.skycoin.net/docs/
區(qū)塊鏈瀏覽器? https://explorer.skycoin.net/
電報群? https://t.me/skycoindev
+++++++++++++++++++++++++++++++++
目錄列表:
-日志
-安裝
--GO語言1.10 安裝及設(shè)置
--獲取skycoin
--命令行運行skycoin
--顯示skycoin節(jié)點選項
--選擇運行skycoin
--Docker 圖像
--建立個人圖像
-API文檔
--REST API
--JSON-RPC 2.0 API
--Skycoin 命令行接口
-Skycoin與你的應(yīng)用集成
-為網(wǎng)絡(luò)貢獻一個節(jié)點
-URI規(guī)范
-開發(fā)項目
--模塊
--客戶端庫
--運行測試
-運行集成測試
--穩(wěn)定集成測試
--現(xiàn)場集成測試
--調(diào)試集成測試
--更新黃金文件集成測試數(shù)據(jù)
-格式化
-代碼規(guī)范
-依賴項管理
-錢包GUI開發(fā)
-發(fā)布
--預(yù)發(fā)布測試
--創(chuàng)建發(fā)布版本
--發(fā)布簽名
++++++++++++++++++++++++++++++++++
目錄
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
現(xiàn)實skycoin節(jié)點選項
cd $GOPATH/src/github.com/skycoin/skycoin
make run-help
運行節(jié)點選項
實例:
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。 當(dāng)你在安裝的時候,容器會改變他們的所屬者標(biāo)識。所以你必須意識到是否你正在一個已經(jīng)存在的卷,它們屬于10000。
容器會運行一些默認(rèn)的選項,但是你可以改變他們通過
docker run
命令。
下面的例子將會展示給你可得到的選項:
docker run --rm skycoin/skycoin -help
儀表盤入口:?
http://localhost:6420
API入口 :
http://localhost:6420/version
構(gòu)建你自己的鏡像
Building your own images. (文本文檔)
開發(fā)鏡像
為了更加容易的開發(fā) skycoin,提供了
skycoin/skycoindev-cli docker image
它附帶了編譯器、語法規(guī)范、調(diào)試工具、VIM編輯器以及其他的工具。
API 文檔
-REST API
REST API Documentation (文本文檔)
-JSON-RPC 2.0 API
(已棄用,避免使用 )
JSON 2.0 RPC API Documentation (文本文檔)
- skycoin 命令行接口
CLI command API? (文本文檔)
在你的應(yīng)用中集成skycoin
Skycoin 集成文檔 (文本文檔)
為網(wǎng)絡(luò)貢獻一個節(jié)點
添加你節(jié)點的ip和端口:
ip:port? ?
到peer.txt文件中 。
這個文件會定期上傳到:
https://downloads.skycoin.net/blockchain/peers.txt
并用于生成客戶的種子。
注意: 不要添加Skywire節(jié)點 到peers.txt
只添加具有高運行時間的Skycoin節(jié)點和靜態(tài)IP地址(就好像是托管在VPS上的Skycoin節(jié)點)。
URI 規(guī)范
Skycoin URI遵循與Bitcoin的BIP21規(guī)定相同的規(guī)則。他們使用相同的字段,除了添加一個可選的小時參數(shù),指定幣時。
https://github.com/bitcoin/bips/blob/master/bip-0021.mediawiki
(BIP21規(guī)定 ,文本文檔)
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
開發(fā)
我們有兩個分支: master 和 develop
develop是默認(rèn)的分支, 并將有最新的代碼。
master將始終同步當(dāng)前穩(wěn)定的版本,并應(yīng)對應(yīng)最新的發(fā)布標(biāo)簽,發(fā)布在網(wǎng)站上。
模塊
api? :? REST API接口
api/webrpc : JSON RPC 2.0 API [已否決]
cipher : 密碼庫
cli :CLI 庫
coin: 區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)
daemon: 頂層應(yīng)用程序管理器,組件包含(網(wǎng)絡(luò)、數(shù)據(jù)庫、錢包)
daemon/gnet:網(wǎng)絡(luò)庫
daemon/pex: peer 管理
visor: 頂層區(qū)塊鏈數(shù)據(jù)層
visor/blockdb: 底層區(qū)塊鏈數(shù)據(jù)層
visor/historydb: 歷史區(qū)塊鏈元數(shù)據(jù)所屬底層區(qū)塊鏈數(shù)據(jù)
wallet: 錢包文件管理
客戶端庫
從其他編程語言導(dǎo)出用于使用的skycoin的核心功能。
lib/cgo/: libskycoin C 客戶端庫? ( 文本文檔 )
有關(guān)進一步的細(xì)節(jié),運行:
make docs
生成文檔并讀取相應(yīng)的自述文件和 API 引用。
運行測試
make test
運行集成測試
有 CLI 和 HTTP API 接口的集成測試。他們有兩種運行模式, "stable"穩(wěn)定 和 "live"實況。
穩(wěn)定集成測試會使用一個skycoin守護進程,它的區(qū)塊鏈會同步到一個特定的點,并且禁用網(wǎng)絡(luò),所以內(nèi)部狀態(tài)不會改變。
實況集成測試應(yīng)該針對啟用同步網(wǎng)絡(luò)的同步節(jié)點運行。
穩(wěn)定集成測試 :
make integration-test-stable
或者:
./ci-scripts/integration-test-stable.sh -v -w
-W選項, 運行錢包集成測試。
-V選項,顯示詳細(xì)日志。
時實集成測試
時實集成測試是針對一個實時運行的Skycoin節(jié)點運行的,所以在運行測試之前,我們需要啟動一個Skycoin節(jié)點。
在Skycoin節(jié)點啟動后,運行以下命令啟動實時測試:
./ci-scripts/integration-test.live.sh -v
除了錢包相關(guān)的測試之外,上面的命令將運行所有的測試。
要運行錢包測試, 我們需要手動指定一個錢包文件, 它必須有至少2 coin和 256 coinhours, 它也必須是已加載的節(jié)點。
我們可以通過設(shè)置兩個環(huán)境變量來指定錢包:
WALLET_DIR
WALLET_NAME
Wallet_dir表示錢包目錄的絕對路徑,Wallet_name表示錢包文件名。
注意: WALLET_DIR 僅用于 CLI 集成測試。GUI 集成測試使用節(jié)點的配置的錢包目錄, 它可以在運行節(jié)點時用錢包-dir 控制。
如果錢包是加密的, 也設(shè)置:
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
調(diào)試集成測試
運行特殊測試用例:
運行所有測試來檢查我們真正關(guān)心的測試是否正常工作是很煩人的, 很浪費時間。
有一個選項:-R,它可以用來運行特定的測試用例。例如:如果我們只想測試TestStestAdvestSaltSalk并查看結(jié)果,我們可以運行:
./ci-scripts/integration-test-stable.sh -v -r TestStableAddressBalance
在集成測試數(shù)據(jù)中更新黃金文件:
金文件預(yù)計從CLI或HTTP API保存到磁盤的數(shù)據(jù)響應(yīng)。當(dāng)測試運行時,將它們的輸出與黃金文件進行比較。
金色的更新文件,使用-U選項:
./ci-scripts/integration-test-live.sh -v -u
./ci-scripts/integration-test-stable.sh -v -u
我們還可以用-R選項更新特定的測試用例的黃金文件。
格式化
所有. go源文件應(yīng)格式化 goimports。您可以執(zhí)行以下操作:
make format
代碼風(fēng)格
安裝依賴項:
make install-linters
運行依賴:
make lint
依賴管理
依賴關(guān)系用DEP管理。
安裝dep:
go get -u github.com/golang/dep
DEP供應(yīng)商將所有依賴項轉(zhuǎn)換為庫。
如果更改依賴項,則需要根據(jù)DEP確保對它們進行更新。
使用 dep help 可得到有關(guān) vendoring 特定版本的依賴項的說明, 或者更新它們。
當(dāng)更新或初始化時,DEP將找到編譯的依賴項的最新版本。
實例:?
初始化所以依賴項:
dep init
更新所有依賴項:
dep ensure -update -v
添加單個依賴項 (最新版本):
dep ensure github.com/foo/bar
添加單個依賴項(更具體的版本),或降級現(xiàn)有的依賴項:
dep ensure github.com/foo/bar@tag
配置模式
有4種配置模式,您可以運行一個Skycoin節(jié)點:
開發(fā)桌面守護進程
服務(wù)器守護進程
電子桌面客戶端
獨立桌面客戶端
開發(fā)桌面守護進程模式,此模式通過run.sh配置。
$ ./run.sh
服務(wù)器守護進程模式
Skycoin節(jié)點的默認(rèn)設(shè)置是為服務(wù)器守護進程選擇的,它通常是從源運行的。這種模式通常是以安全選項運行的,盡管是-disable-csrf是正常的,默認(rèn)情況下它是啟用的。
$ go run cmd/skycoin/skycoin.go
電子桌面客戶端模式
此模式通過電子electron-main.js
獨立運行的桌面客戶端模式
此模式是通過使用STANDALONE_CLIENT構(gòu)建標(biāo)記編譯而配置的。配置在
cmd/skycoin/skycoin.go
錢包 GUI 開發(fā)
已編譯的錢包源應(yīng)簽入到庫中, 以便其他人不需要安裝節(jié)點來運行軟件。
執(zhí)行此操作的說明:
(Wallet GUI Development README 文本文檔)
發(fā)布
0.如果主分支具有不在開發(fā)中的提交(例如由于應(yīng)用于主控程序的修復(fù)),則將主控合并到開發(fā)中。
1.編譯? src/gui/static/dist/? 確保它的數(shù)據(jù)是最新的(參見錢包 GUI 開發(fā)手冊)
2. 更新版本中的所有版本字符串(GRIP為新版本)
3. 更新日志CHANGELOG.md? : 將 "未發(fā)布 " 更改移動到版本并添加日期
4. 合并這些更改到devlop
5. 遵循預(yù)發(fā)布測試中的步驟
6. 制定一個PR 將devlop 合并到master 分支
7.審核PR并將其合并
8.使用版本號標(biāo)記主分支。版本標(biāo)簽以 v 開頭, 例如 v0.20.0。在標(biāo)簽上簽名。如果您在 github 中有您的 "公鑰" 密鑰, 則在 github 網(wǎng)站上創(chuàng)建一個發(fā)布將自動標(biāo)記該版本。它可以用 git 標(biāo)記的命令行標(biāo)記-作為
git tag -as v0.20.0
$COMMIT_ID
但 Github 不會將其識別為 "發(fā)布"。
9. 確??蛻舳藦闹鞣种д_運行
10. 發(fā)布版本是由特拉維斯創(chuàng)建和上傳的。手動完成,要手動執(zhí)行此操作, 請簽出主分支并按照 "創(chuàng)建版本" 生成說明進行操作。
如果合并到主機后發(fā)現(xiàn)問題,請重新啟動并增加第三版本號。例如,V0.20.0變?yōu)閂0.20.1,用于較小的修復(fù)。
預(yù)發(fā)布測試
在發(fā)布之前執(zhí)行這些操作:
make check
make integration-test-live
(參見實時集成測試文檔)都使用未加密和加密的錢包。
go run cmd/cli/cli.go checkdb
同步節(jié)點
在所有操作系統(tǒng)平臺中,確??蛻舳藦拿钚姓_運行。
./run.sh
構(gòu)建發(fā)布,確保電子客戶端在Windows、Linux和Mac OS上正常運行。
- 使用沒有錢包或數(shù)據(jù)庫的干凈數(shù)據(jù)目錄從零開始同步,并驗證錢包安裝向?qū)А?/p>
- 從種子加載非零余額測試錢包確認(rèn)錢包加載工程
- 將硬幣發(fā)送到另一個錢包確認(rèn)支出工作
- 重新啟動客戶端, 確認(rèn)它已正確重載
創(chuàng)建發(fā)布版本
Create Release builds (文本文檔)
發(fā)布簽名
發(fā)行版使用此 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
關(guān)注項目: https://www.torproject.org/docs/verifying-signatures.html.en
如果您不能或不想從 keyserver 導(dǎo)入密鑰, 則在庫中可以使用簽名密鑰: gz-c.asc? (文本文檔)
版本及其簽名可以在:
https://github.com/skycoin/skycoin/releases
生成PGP密鑰、發(fā)布它、簽署標(biāo)簽和二進制文件的指令:
https://github.com/skycoin/skycoin/blob/develop/README.md