Eclipse中運(yùn)行開源區(qū)塊鏈Scorex

Scorex簡介

Scorex是用akka實(shí)現(xiàn)的開源區(qū)塊鏈基礎(chǔ)組件,采用模塊化設(shè)計(jì)(共識模塊抽象為接口彤敛,并可通過配置替換)束昵。
Scorex核心代碼只有約4000行吼野,相對于其他區(qū)塊鏈項(xiàng)目绍载,它的“純潔”更容易為區(qū)塊鏈開發(fā)者掌握和運(yùn)用诡宗。

本文目的

介紹如何下載Scorex相關(guān)代碼,并在eclipse中以Debug方式運(yùn)行击儡,Debug方式運(yùn)行可以讓開發(fā)者更好地跟蹤和學(xué)習(xí)Scorex的內(nèi)部運(yùn)行機(jī)制塔沃。

相關(guān)子項(xiàng)目

Scorex的文檔有點(diǎn)亂,某些文檔移動(dòng)了位置但相應(yīng)的鏈接沒有更新導(dǎo)致鏈接失效阳谍,我根據(jù)首頁中的鏈接按圖索驥蛀柴,對運(yùn)行Scorex的相關(guān)項(xiàng)目總結(jié)如下:

  • scrypto
    底層的加密函數(shù)庫

  • Scorex
    基礎(chǔ)框架,包含了3個(gè)子模塊:

    • Scorex-basic ——賬戶和錢包矫夯、塊結(jié)構(gòu)定義鸽疾、P2P傳輸、共識接口定義训貌。
    • Scorex-Consensus——共識的Nxt and Quora實(shí)現(xiàn)
    • Scorex-Transaction——交易的接口定義和實(shí)現(xiàn)
  • Permacoin-consensus
    共識的Permacoin實(shí)現(xiàn)——Permacoin是微軟和馬里蘭大學(xué)2014年提出的用于分布式可信任分片大文件存儲(chǔ)的共識協(xié)議制肮。

  • Lagonaki
    示例應(yīng)用——通過配置文件,將上述子項(xiàng)目作為庫調(diào)用的應(yīng)用示范递沪。

開發(fā)環(huán)境

操作系統(tǒng):macOS 10.12.1
JDK:j2se1.8.0_91
Scala: 2.12.1
sbt: 0.13.11
Scala-IDE: 4.5.0

基本步驟

分兩步進(jìn)行:

  1. 下載Lagonaki代碼豺鼻,轉(zhuǎn)為eclipse項(xiàng)目。
  2. 用源代碼項(xiàng)目替換Lagonaki中的對應(yīng)的庫区拳,并在IDE中以debug方式運(yùn)行拘领。
下載和運(yùn)行Lagonaki

將Lagonaki代碼git clone到本地之后,打開 project/build.properties , 確認(rèn)你本地的sbt版本與其版本一致:

sbt.version=0.13.11

生成lagonaki的eclipse項(xiàng)目

為了從sbt項(xiàng)目生成eclipse項(xiàng)目樱调,新建一個(gè) project/assembly.sbt 约素,其內(nèi)容如下:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "5.0.1")

現(xiàn)在可以到Lagonaki的根目錄下,運(yùn)行sbt笆凌,但是運(yùn)行之前請注意圣猎,sbt會(huì)下載一堆maven依賴庫,默認(rèn)的maven路徑下載速度可能非常慢(慢到你失去耐心:)乞而,可以用國內(nèi)的maven庫鏡像代替之送悔,mac下的方法如下:
打開文件 ~/.sbt/repositories,增加國內(nèi)maven鏡像爪模,并注釋主maven庫:

[repositories]
  local
  aliyun: http://maven.aliyun.com/nexus/content/groups/public/
#  maven-central
 ...

到Lagonaki的根目錄下欠啤,首先運(yùn)行sbt,等待sbt結(jié)束后運(yùn)行eclipse
至此eclipse項(xiàng)目生成屋灌。

bash-3.2$ sbt
[info] Loading project definition from /Users/c4w/git/Lagonaki/project
[info] Set current project to lagonaki (in build file:/Users/c4w/git/Lagonaki/)
> eclipse
[info] About to create Eclipse project files for your project(s).
[info] Resolving org.scala-lang#scala-reflect;2.11.8 ...
[info] Successfully created Eclipse project files for project(s):
[info] lagonaki
>
導(dǎo)入lagonaki項(xiàng)目
Paste_Image.png
Paste_Image.png
運(yùn)行l(wèi)agonaki
Paste_Image.png

至此完成第一步驟洁段,在IDE下運(yùn)行示范應(yīng)用。如果不指定運(yùn)行參數(shù)共郭,默認(rèn)加載配置文件:settings.json祠丝,節(jié)點(diǎn)會(huì)從Seed Peers接入TestNet疾呻。

用源代碼代替庫文件運(yùn)行Lagonaki

但我們需要跟蹤Scorex的內(nèi)部處理細(xì)節(jié)時(shí),需要以Debug方式運(yùn)行源代碼写半。
首先岸蜗,用上述將sbt項(xiàng)目導(dǎo)入到IDE的方法,將Scorex項(xiàng)目也導(dǎo)入到IDE叠蝇。
這里有個(gè)坑璃岳,由于Scorex項(xiàng)目包含了子項(xiàng)目,需要用eclipse skip-parents=false命令代替eclipse命令蟆肆,否則只有scorex-basic子項(xiàng)目代碼導(dǎo)入矾睦。
scorex導(dǎo)入IDE之后,手工增加src路徑:

Paste_Image.png

lagonaki項(xiàng)目的Libraries中找到scorex-basicsxxx.jar炎功,并Remove之枚冗。

Paste_Image.png

然后在Projects的依賴中增加scorex項(xiàng)目:

Paste_Image.png

成果驗(yàn)證

下面我們來驗(yàn)證上述工作達(dá)到了預(yù)期目標(biāo):即debug方式跟蹤Scorex內(nèi)部模塊的運(yùn)行,我們將利用Scorex集成的swagger-akka-http來觸發(fā)用例蛇损。
Lagonaki應(yīng)用的settings.json配置文件制定了rpc端口

 "rpcPort": 9085,

運(yùn)行Lagonaki應(yīng)用赁温,瀏覽器訪問此端口可以看到Swagger UI展示的api文檔:

Paste_Image.png

根據(jù)url可以定位到對應(yīng)的代碼在:AddressApiRoute.scala line185
在line189設(shè)置斷點(diǎn)

Paste_Image.png

以debug方式運(yùn)行應(yīng)用,然后前臺(tái)點(diǎn)擊Try it out!淤齐,后臺(tái)停留在斷點(diǎn)位置股囊,目標(biāo)達(dá)成!

Paste_Image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末更啄,一起剝皮案震驚了整個(gè)濱河市稚疹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌祭务,老刑警劉巖内狗,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異义锥,居然都是意外死亡柳沙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進(jìn)店門拌倍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赂鲤,“玉大人,你說我怎么就攤上這事柱恤∈酰” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵梗顺,是天一觀的道長妙真。 經(jīng)常有香客問我,道長荚守,這世上最難降的妖魔是什么珍德? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮矗漾,結(jié)果婚禮上锈候,老公的妹妹穿的比我還像新娘。我一直安慰自己敞贡,他們只是感情好泵琳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著誊役,像睡著了一般获列。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛔垢,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天击孩,我揣著相機(jī)與錄音,去河邊找鬼鹏漆。 笑死巩梢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的括蝠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼饭聚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了秒梳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤端幼,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后婆跑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體此熬,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡滑进,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扶关。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡节槐,死狀恐怖拐纱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情秸架,我是刑警寧澤,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布东抹,位于F島的核電站,受9級特大地震影響沃测,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蒂破,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寞蚌。 院中可真熱鬧田巴,春花似錦、人聲如沸挟秤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽艘刚。三九已至管宵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間攀甚,已是汗流浹背箩朴。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秋度,地道東北人炸庞。 一個(gè)月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像荚斯,于是被迫代替她去往敵國和親埠居。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評論 2 348

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,737評論 25 707
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理事期,服務(wù)發(fā)現(xiàn)滥壕,斷路器,智...
    卡卡羅2017閱讀 134,628評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,773評論 6 342
  • 想要寫點(diǎn)東西兽泣,那就慢慢寫吧绎橘。 接觸極簡要從接觸斷舍離開始算起,約莫著有段時(shí)間了唠倦。 這種新奇的生活方式給自己帶來了很...
    淡忘的江南閱讀 448評論 0 1
  • 第一次一個(gè)人生活在一座五月末了還蓋著棉被睡覺的城市称鳞,我以為在這座城市涮较,會(huì)使我的品性變得溫和一些,然而是我想多了胡岔。 ...
    54碎瑤閱讀 396評論 0 1