本文對星云鏈Nebulas的簡介和環(huán)境搭建作介紹蒿赢,后續(xù)再添加其他方面相關(guān)內(nèi)容赁濒。
1毛嫉、星云鏈的簡介
-
星云鏈世界觀
星云鏈Nebulas(也稱星云鏈NAS)等浊,是一個為區(qū)塊鏈數(shù)據(jù)提供去中心化搜索框架的開源公有鏈。作為全球首個區(qū)塊鏈搜索引擎抄谐,被稱之為“區(qū)塊鏈世界中的谷歌”渺鹦。
目前有各種主鏈上有各種去中心化應用DApp,互不聯(lián)通互不兼容蛹含,用戶去尋找新應用非常不方便毅厚。就像互聯(lián)網(wǎng)沒有出現(xiàn)搜索引擎之前,人們在網(wǎng)上搜集資料很麻煩浦箱。后來出現(xiàn)了雅虎吸耿、谷歌等搜索引擎,解決了這個問題酷窥。
星云鏈(NAS)意圖構(gòu)建一個能夠量化價值尺度咽安、具備自進化能力,并能促進區(qū)塊鏈生態(tài)建設(shè)的區(qū)塊鏈系統(tǒng)蓬推,主要包括:定義價值尺度的星云指數(shù) Nebulas Rank(NR) 妆棒,支持核心協(xié)議和智能合約鏈上升級的星云原力 Nebulas Force(NF) ,開發(fā)者激勵協(xié)議 Developer Incentive Protocol(DIP) ,貢獻度證明共識算法 Proof of Devotion(PoD)糕珊,去中心化應用的搜索引擎 动分。通過星云指數(shù)Nebulas Rank(NR) 、星云原力 Nebulas Force(NF)红选、貢獻度證明共識算法Proof of Devotion(PoD)澜公,去中心化應用搜索引擎四個模塊搭建能實現(xiàn)價值尺度量化、具備自進化能力喇肋,并促進區(qū)塊鏈生態(tài)建設(shè)的區(qū)塊鏈系統(tǒng)坟乾。
-
星云鏈代幣NAS
星云幣代幣為NAS。星云幣作為星云鏈的原生代幣蝶防,用于支付星云鏈上的交易手續(xù)費和計算服務費甚侣。
2017年12月,星云鏈公開發(fā)行代幣NAS慧脱,總量為1億枚渺绒,目前流通量為3000萬枚。已于2017年9月28日完成眾籌,眾籌價為2美元,目前Nas價格為7.02美元齐遵,較之上漲了3.5倍,在所有幣種中排名52名殷绍。
不同于眾多主鏈的主網(wǎng)集中"六月上線",星云鏈于2018年3月30日已經(jīng)上線主網(wǎng)鹊漠。
-
星云鏈三大核心技術(shù)
1主到、星云指數(shù)
星云指數(shù) Nebulas Rank (NR),核心的排序算法躯概,已開源登钥。以流動性、傳播性娶靡、互操作性等體現(xiàn)數(shù)據(jù)互動關(guān)系的因素為基礎(chǔ)牧牢,可以用來衡量地址、智能合約姿锭、去中心化應用等對象的影響力塔鳍。2、自進化能力
星云原力(Nebulas Force)可以為星云鏈及其應用提供自進化能力呻此,有了NF轮纫,開發(fā)者可以游刃有余地修改、升級和修復焚鲜,無需硬分叉掌唾,應對變化和風險更加自如放前。3、原生激勵
激勵是區(qū)塊鏈進化第一原動力郑兴。星云激勵包括開發(fā)者激勵協(xié)議(Developer Incentive Protocol, DIP)和貢獻度證明(Proof of Devotion, PoD)犀斋。開發(fā)者激勵協(xié)議構(gòu)建一個反饋循環(huán)贝乎,激勵開發(fā)者研發(fā)高質(zhì)量的去中心化應用情连。通過貢獻度證明,用戶可以依照星云指數(shù)排名參與記賬览效,從中獲得星云幣(NAS)却舀。
-
星云鏈創(chuàng)始人團隊
徐義吉,星云鏈(Nebulas)& 小蟻(AntShares)創(chuàng)始人锤灿,前螞蟻金服區(qū)塊鏈平臺部負責人挽拔,前谷歌反作弊小組成員,同濟大學計算機學士但校。
鐘馥百螃诅,星云鏈(Nebulas)聯(lián)合創(chuàng)始人,前螞蟻金服區(qū)塊鏈平臺部架構(gòu)師状囱,前海豚瀏覽器高級研發(fā)總監(jiān)术裸、游戲業(yè)務負責人,畢業(yè)于華中科技大學亭枷。
王冠袭艺,星云鏈(Nebulas)和小蟻(NEO)聯(lián)合創(chuàng)始人,OpenIP&IP圈發(fā)起人叨粘,畢業(yè)于東南大學猾编,區(qū)塊鏈行業(yè)連續(xù)創(chuàng)業(yè)者。
-
星云鏈相關(guān)鏈接
星云鏈官網(wǎng)
星云鏈非技術(shù)白皮書
星云鏈技術(shù)白皮書
星云鏈Github地址
星云鏈瀏覽器
星云鏈錢包
領(lǐng)取測試網(wǎng)絡星云幣
星云寵物卡DApp
2升敲、星云鏈的安裝要求
星云鏈現(xiàn)階段只能在Mac和Linux上運行答倡,后續(xù)會推出windows版本。
注意:以下開始介紹星云鏈的環(huán)境搭建驴党,均在MacOS上面操作瘪撇,Linux系統(tǒng)安裝請參考官網(wǎng)Github
安裝前提條件:
- 安裝Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
- 安裝Go(Go版本號必須>=1.9.2):
# 安裝
brew install go
# 配置環(huán)境變量
export GOPATH=/path/to/workspace
3、編譯星云鏈
1鼻弧、下載源碼
mkdir -p $GOPATH/src/github.com/nebulasio
cd $GOPATH/src/github.com/nebulasio
# 下載源碼
git clone https://github.com/nebulasio/go-nebulas.git
# 進入項目目錄
cd go-nebulas
# 切換到最穩(wěn)定的master分支
git checkout master
終端操作如下:
wenzildeiMac:Study wenzil$ mkdir -p $GOPATH/src/github.com/nebulasio
wenzildeiMac:Study wenzil$ cd $GOPATH/src/github.com/nebulasio
wenzildeiMac:nebulasio wenzil$ git clone https://github.com/nebulasio/go-nebulas.git
Cloning into 'go-nebulas'...
remote: Counting objects: 19448, done.
remote: Compressing objects: 100% (99/99), done.
remote: Total 19448 (delta 73), reused 107 (delta 50), pack-reused 19298
Receiving objects: 100% (19448/19448), 169.79 MiB | 60.00 KiB/s, done.
Resolving deltas: 100% (13666/13666), done.
wenzildeiMac:nebulasio wenzil$ cd go-nebulas
wenzildeiMac:go-nebulas wenzil$ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
2设江、安裝rocksdb依賴庫
brew install rocksdb
3、安裝Go依賴庫
在Go-Nebulas中攘轩,Go的三方庫都通過Dep來做管理叉存,Dep版本號需要>=0.3.1。
brew install dep
brew upgrade dep
4度帮、下載Go第三方庫
切換到Go-Nebulas項目根目錄歼捏,然后使用Dep來下載三方庫稿存。
wget http://ory7cn4fx.bkt.clouddn.com/vendor.tar.gz
cd $GOPATH/src/github.com/nebulasio/go-nebulas
tar zxf vendor.tar.gz
終端操作如下:
wenzildeiMac:go-nebulas wenzil$ wget http://ory7cn4fx.bkt.clouddn.com/vendor.tar.gz
--2018-06-05 17:32:18-- http://ory7cn4fx.bkt.clouddn.com/vendor.tar.gz
正在解析主機 ory7cn4fx.bkt.clouddn.com (ory7cn4fx.bkt.clouddn.com)... 14.215.166.109, 61.140.13.201, 14.215.166.199, ...
正在連接 ory7cn4fx.bkt.clouddn.com (ory7cn4fx.bkt.clouddn.com)|14.215.166.109|:80... 已連接。
已發(fā)出 HTTP 請求瞳秽,正在等待回應... 200 OK
長度:19022460 (18M) [application/x-gzip]
正在保存至: “vendor.tar.gz”
vendor.tar.gz 100%[===================>] 18.14M 948KB/s 用時 20s
2018-06-05 17:32:38 (946 KB/s) - 已保存 “vendor.tar.gz” [19022460/19022460])
wenzildeiMac:go-nebulas wenzil$ cd $GOPATH/src/github.com/nebulasio/go-nebulas
wenzildeiMac:go-nebulas wenzil$ tar zxf vendor.tar.gz
如果出現(xiàn)類似如下信息瓣履,需要安裝"wget":
-bash: wget: command not found
安裝"wget"命令:
brew install wget
5、安裝Chrome V8依賴庫
星云虛擬機目前依賴于Chrome的V8引擎练俐,為了大家使用方便袖迎,我們已經(jīng)為Mac OSX和Linux編譯好了V8的動態(tài)庫。運行如下指令就可以完成安裝腺晾。
cd $GOPATH/src/github.com/nebulasio/go-nebulas
make deploy-v8
終端操作如下:
wenzildeiMac:go-nebulas wenzil$ cd $GOPATH/src/github.com/nebulasio/go-nebulas
wenzildeiMac:go-nebulas wenzil$ make deploy-v8
install nf/nvm/native-lib/*.dylib /usr/local/lib/
6燕锥、編譯可執(zhí)行文件
完成所有上述依賴庫的安裝后,進入Go-Nebulas根目錄編譯星云鏈的可執(zhí)行文件悯蝉。
cd $GOPATH/src/github.com/nebulasio/go-nebulas
make build
終端操作如下:
wenzildeiMac:go-nebulas wenzil$ cd $GOPATH/src/github.com/nebulasio/go-nebulas
wenzildeiMac:go-nebulas wenzil$ make deploy-v8
install nf/nvm/native-lib/*.dylib /usr/local/lib/
wenzildeiMac:go-nebulas wenzil$ cd $GOPATH/src/github.com/nebulasio/go-nebulas
wenzildeiMac:go-nebulas wenzil$ make build
cd cmd/neb; go build -ldflags "-X main.version=1.0.1 -X main.commit=a7aaa0aaef2677038562356e1bbdccfb848d2fb4 -X main.branch=master -X main.compileAt=`date +%s`" -o ../../neb-a7aaa0aaef2677038562356e1bbdccfb848d2fb4
cd cmd/crashreporter; go build -ldflags "-X main.version=1.0.1 -X main.commit=a7aaa0aaef2677038562356e1bbdccfb848d2fb4 -X main.branch=master -X main.compileAt=`date +%s`" -o ../../neb-crashreporter
rm -f neb
ln -s neb-a7aaa0aaef2677038562356e1bbdccfb848d2fb4 neb
4归形、運行星云鏈
創(chuàng)世區(qū)塊
在啟動一個新的星云鏈前,我們必須定義創(chuàng)世區(qū)塊的配置文件鼻由。
1暇榴、配置創(chuàng)世區(qū)塊
(可跳過此步,只是查看一下配置文件)
進入到下載的星云鏈的根目錄下蕉世,找到"nebulasio/go-nebulas/conf/default"目錄下的"genesis.conf"文件蔼紧,可以按照如下配置內(nèi)容來修改。
meta {
# 每條鏈的唯一標識
# 每個區(qū)塊和交易只會屬于一條唯一的鏈讨彼,保證安全性
chain_id: 100
}
consensus {
# 在貢獻度證明(PoD)被充分驗證前歉井,星云鏈采用DPoS共識算法
# DPoS共識中,21個人組成一個朝代
# 每隔一段時間都會切換朝代哈误,每個朝代內(nèi)哩至,21個礦工輪流出塊
# 由于DPoS只是過渡方案,所以暫時不開放給公眾挖礦蜜自,即當前版本朝代不會發(fā)生變更
dpos {
# 初始朝代菩貌,包含21個初始礦工地址
dynasty: [
[ miner address ],
...
]
}
}
# 預分配的代幣
token_distribution [
{
address: [ allocation address ]
value: [ amount of allocation tokens ]
},
...
]
終端操作如下:
###打開"genesis.conf"文件所在目錄
wenzildeiMac:go-nebulas wenzil$ open $GOPATH/src/github.com/nebulasio/go-nebulas/conf/default
配置文件
在啟動一個星云節(jié)點前,需要定義好該節(jié)點的配置文件重荠。
進入到下載的星云鏈的根目錄下箭阶,找到"nebulasio/go-nebulas/conf/default"目錄下的"config.conf"文件,可以按照如下配置內(nèi)容來修改戈鲁。
# 網(wǎng)絡配置
network {
# 對于全網(wǎng)第一個節(jié)點仇参,不需要配置seed
# 否則,其他節(jié)點啟動時需要配置seed婆殿,seed節(jié)點將會把網(wǎng)絡中其他節(jié)點的路由信息同步給剛啟動的節(jié)點
# 可以配置多個seed, ["...", "..."]
seed: ["/ip4/127.0.0.1/tcp/8680/ipfs/QmP7HDFcYmJL12Ez4ZNVCKjKedfE7f48f1LAkUc3Whz4jP"]
# 節(jié)點監(jiān)聽網(wǎng)絡消息端口诈乒,可以配置多個
listen: ["0.0.0.0:8680"]
# 網(wǎng)絡私鑰,用于確認身份節(jié)點
# private_key: "conf/network/id_ed25519"
}
# 鏈配置
chain {
# 鏈的唯一標識
chain_id: 100
# 數(shù)據(jù)存儲地址
datadir: "data.db"
# 賬戶keystore文件存儲地址
keydir: "keydir"
# 創(chuàng)世區(qū)塊配置
genesis: "conf/default/genesis.conf"
# 簽名算法婆芦,請勿修改
signature_ciphers: ["ECC_SECP256K1"]
# 礦工地址怕磨,礦工的keystore文件需要放置在配置的keydir下
miner: "n1XkoVVjswb5Gek3rRufqjKNpwrDdsnQ7Hq"
# Coinbase地址喂饥,該地址用于接收礦工的挖礦獎勵,可以和礦工地址一致
# 該地址的keystore無需暴露肠鲫,不用放置在配置的keydir下
coinbase: "n1FF1nz6tarkDVwWQkMnnwFPuPKUaQTdptE"
# 礦工地址的密碼
passphrase: "passphrase"
}
# API配置
rpc {
# GRPC服務端口
rpc_listen: ["127.0.0.1:8684"]
# HTTP服務端口
http_listen: ["127.0.0.1:8685"]
# 開放的API模塊
# API模塊包含所有和用戶私鑰無關(guān)的接口
# Admin模塊包含所有和用戶私鑰相關(guān)的接口员帮,需要慎重考慮該模塊的訪問權(quán)限
http_module: ["api", "admin"]
}
# 日志配置
app {
# 日志級別: 支持[debug, info, warn, error, fatal]
log_level: "info"
# 日志存放位置
log_file: "logs"
# 是否打開crash report服務
enable_crash_report: false
}
# 監(jiān)控服務配置
stats {
# 是否打開監(jiān)控服務
enable_metrics: false
# 監(jiān)控服務將數(shù)據(jù)上傳到Influxdb
# 配置Influxdb的訪問信息
influxdb: {
host: "http://localhost:8086"
db: "nebulas"
user: "admin"
password: "admin"
}
}
5、啟動星云鏈
此時啟動的星云鏈是本地的私有鏈导饲,和官方的測試網(wǎng)和主網(wǎng)沒有任何相互關(guān)聯(lián)
啟動你的第一個星云節(jié)點捞高,命令如下
cd $GOPATH/src/github.com/nebulasio/go-nebulas
./neb -c conf/default/config.conf
啟動成功的話,將會看到如下信息帜消,有Started Neblet的日志輸出棠枉。
默認情況下,使用配置文件conf/default/config.conf啟動的節(jié)點不是礦工節(jié)點泡挺。
接下來,啟動你的第一個礦工節(jié)點命浴,它的seed節(jié)點即我們剛剛啟動的第一個節(jié)點娄猫。
cd $GOPATH/src/github.com/nebulasio/go-nebulas
./neb -c conf/example/miner.conf
在這個節(jié)點啟動后,你會先看到如下信息生闲,表示當前節(jié)點正在找種子節(jié)點同步媳溺。
等待一會兒,將會看到如下信息碍讯,表示當前節(jié)點已經(jīng)連上了seed節(jié)點完成了同步悬蔽。
再等待幾分鐘,你會看到如下信息捉兴,表示當前礦工節(jié)點挖出了第一個區(qū)塊蝎困。
每當?shù)V工挖個區(qū)塊時,星云鏈節(jié)點會將礦工挖到的區(qū)塊添加到區(qū)塊鏈中倍啥。
提示: 目前的DPoS共識算法禾乘,會有21個節(jié)點輪流出塊。由于我們只啟動了21個礦工節(jié)點中的一個礦工節(jié)點虽缕,所以每隔15*21s才出一個塊始藕。你可以啟動更多的礦工節(jié)點,填補的空缺氮趋。但是需要注意伍派,多個節(jié)點間的端口號不要相互沖突了。
本文章部分內(nèi)容來源于如下網(wǎng)址剩胁,對部分內(nèi)容作了刪改诉植,全部重新運行并截圖,如有侵權(quán)聯(lián)系我刪除文章摧冀。
參考網(wǎng)址:
http://www.qukuaiwang.com.cn/news/1738.html
https://blog.csdn.net/lwbcxc/article/details/79681902
https://github.com/nebulasio/wiki
下一篇
PS:剛?cè)肟拥男“妆蹲伲芏嗖欢倒€請各位大佬多賜教,謝謝建车!