星云鏈Nebulas——1.簡介與環(huán)境搭建

本文對星云鏈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è)者。

星云鏈創(chuàng)始人團隊

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
終端執(zhí)行open命令打開對應文件夾
配置文件

在啟動一個星云節(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的日志輸出棠枉。

啟動星云鏈節(jié)點

默認情況下,使用配置文件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é)點開始尋找種子節(jié)點同步

等待一會兒,將會看到如下信息碍讯,表示當前節(jié)點已經(jīng)連上了seed節(jié)點完成了同步悬蔽。

當前節(jié)點已經(jīng)連上了seed節(jié)點完成同步

再等待幾分鐘,你會看到如下信息捉兴,表示當前礦工節(jié)點挖出了第一個區(qū)塊蝎困。

當前礦工節(jié)點挖出了第一個區(qū)塊

每當?shù)V工挖個區(qū)塊時,星云鏈節(jié)點會將礦工挖到的區(qū)塊添加到區(qū)塊鏈中倍啥。

星云鏈節(jié)點添加區(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

下一篇

星云鏈Nebulas——2.發(fā)送交易

PS:剛?cè)肟拥男“妆蹲伲芏嗖欢倒€請各位大佬多賜教,謝謝建车!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扩借,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子缤至,更是在濱河造成了極大的恐慌潮罪,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件领斥,死亡現(xiàn)場離奇詭異嫉到,居然都是意外死亡,警方通過查閱死者的電腦和手機月洛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門何恶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚼黔,你說我怎么就攤上這事细层。” “怎么了唬涧?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵疫赎,是天一觀的道長。 經(jīng)常有香客問我碎节,道長捧搞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任狮荔,我火速辦了婚禮胎撇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘轴合。我一直安慰自己创坞,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布受葛。 她就那樣靜靜地躺著题涨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪总滩。 梳的紋絲不亂的頭發(fā)上纲堵,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音闰渔,去河邊找鬼席函。 笑死,一個胖子當著我的面吹牛冈涧,可吹牛的內(nèi)容都是我干的茂附。 我是一名探鬼主播正蛙,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼营曼!你這毒婦竟也來了乒验?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蒂阱,失蹤者是張志新(化名)和其女友劉穎锻全,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體录煤,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鳄厌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了妈踊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片了嚎。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖响委,靈堂內(nèi)的尸體忽然破棺而出新思,到底是詐尸還是另有隱情,我是刑警寧澤赘风,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站纵刘,受9級特大地震影響邀窃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜假哎,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一瞬捕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舵抹,春花似錦肪虎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至香嗓,卻和暖如春迅腔,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背靠娱。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工沧烈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人像云。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓锌雀,卻偏偏與公主長得像蚂夕,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子腋逆,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容