Skycoin: README.md

天空幣是下一代的加密貨幣。

天空幣解決了比特幣很多需要解決的問題。

天空幣是暗網(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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,202評論 3 119
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實...
    香橙柚子閱讀 24,748評論 8 183
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評論 19 139
  • 今天,我寫完作業(yè),坐在沙發(fā)上玩著媽媽的手機。 我把手機點開了“百度”,看看里面有什么天大的新聞,可突然有一個標(biāo)題吸...
    施佳言閱讀 203評論 0 1
  • 真正的幸福的婚姻生活是怎么樣的呢? 比較困惑 雖然我是一個已婚之人,然而幸福的婚姻是什么樣子的?我一直都在問自己:...
    yoyo的小小妹閱讀 145評論 0 0

友情鏈接更多精彩內(nèi)容