下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目 CAP原 ACID原 Paxos與 加
數(shù)字數(shù)字PKI體系Merkle樹同態(tài)加密其它問題思想誕生的搖籃
FabricPython客戶端
超能BaaS使用HyperledgerCello搭建 HyperledgerFabric
ProtoBuf技術指為在金融、、物聯(lián)網(wǎng)、經濟貿易結算、資產管理等眾多領域都擁有廣泛的應用前景。區(qū)塊鏈技術自身尚處于快速發(fā)展的初級階段,現(xiàn)有系統(tǒng)在設計中利用了分布式系統(tǒng)、學、博弈論、網(wǎng)絡協(xié)議等諸多學科的知識,為學習原理和實踐應用都帶來了不小的目前該領域尚缺乏一本較為系統(tǒng)的技術資料。本書希望可以探索概念的來龍去脈,剝繭抽絲,剖析關鍵技術原理,同時講解實踐應用。在開發(fā)相關開源項目,以及編寫平臺的過程中,筆者積累了一些實踐經驗,也通過本書一并出來,希望能推動技術的早日成熟和應用場景的出現(xiàn)。者也可以從中了解到的應用現(xiàn)狀。pdf版本圖1.1.1-原理、設計與應《原理、設計與應用》已經正式,詳細介紹了和分布式賬本領域相關技京東亞馬遜當當1.1.2歡迎大家加入技術討論群: (已滿QQ群 (已滿QQ群 QQ群 TBD;修正《原理、設計與應用》正式完善學技術;補充即服務;添加簡介 上,歡迎參與 首先,在 $$git$cd$$gitconfig $$#dosomechangeonthe$gitcommit-am"Fixissue#1:changehelo$git 上提交pullrequest即可$$gitremoteadd$gitfetch$gitcheckout$gitrebase$gitpush-forigin概 幣、電子貨幣、數(shù)字貨幣等。貨幣自身的價值依托也從實物價值、方信用價值,到今天出現(xiàn)的對信息系統(tǒng)(包括算法、數(shù)學、學、軟件等)的信任價值。注:中國最早的關于貨幣的確切記載“夏后以玄幣”出現(xiàn)在恒寬《鹽鐵論·或許有人認為相對形式更方便。相對于這樣的集中式支付體系來說,貨幣提供了更好的性。另外,一旦碰到系統(tǒng)故障、斷網(wǎng)、沒有刷卡機器等情況,就不無論是貨幣,還是模式,都需要額外的系統(tǒng)(例如銀行)來完成生產、分發(fā)、管理等操作,帶來很大的額外成本和使用風險。諸如、詐騙、盜刷、轉賬等安全事件屢疑將帶來巨大的,極大提高經濟活動的運作效率。 100鈔票的生產成本是0.1左右。100面額的生產成本說法不存在一個安全可靠的第記賬機構來充當這個中心管控的角色。例如,貿易兩國可能缺乏足夠的外匯儲備;網(wǎng)絡上的雙方進行直接;交易的兩個機構彼此互不信任,找不到雙方都認可的第擔保;匯率的變化;可能無法連接到第的系統(tǒng);第的系統(tǒng)可能會出現(xiàn)故障……Cash、HashCash、B-money等。1983年,DavidChaum最早提出ecash1989Digicash公司。ecash系統(tǒng)是首個化的數(shù)字加密貨幣(anonymouscryptographicelectronicmoney,orelectroniccashsystem)DavidChaum發(fā)明的盲簽名技術,曾被應用于銀行小額支付中。ecash依賴1997年,AdamBack發(fā)明了Hashcash,來解決郵件系統(tǒng)中DoS問題。Hashcash首次提出用工作量證明(ProofofWork,PoW)機制來獲取額度,該機制后來被后續(xù)數(shù)字貨幣技1998年,WeiDaiB-moneyPoW引入數(shù)字貨幣生成過程中。B-money同時是首中,該如何衡量價值,如何貨幣。統(tǒng)合作,成為;一種是以比特幣這樣的完全丟棄已有體系的分布式技術。(metzdowd郵件列表)2009年公開了最初的實現(xiàn)代碼,第一個比特幣是2009年1月3日18:15:05生成。但真正流行起來還是在2010年后的事情。其是 小時運行接近8年時間,支持過單筆2014年開始,比特幣背后的(Blockchain)技術受到大家關注,并正式了分布式記賬本(DistributedLedger)技術的革新浪潮。人們開始,記賬本相關的技術,對于資產(包括有形資產和無形資產)的管理(包括所和流通)十分關鍵;而去中心化的分布式記賬本技術,對于當前開放化的商業(yè)網(wǎng)絡意義重大。,正是實現(xiàn)去中心化記賬本系統(tǒng)的一種極具潛力的可行技術。目前,技術已經脫離開比特幣,在包括金融、貿易、、物聯(lián)網(wǎng)、共享經濟等諸多別是承載比特幣交易系統(tǒng)的“比特幣”。什么是Ablockchain—originally,blockchain—isadistributeddatabasethatmaintainsacontinuously-growinglistofdatarecordshardenedagainsttamperingandrevision.Itconsistsofdatastructureblocks—whichholdexclusivelydataininitialblockchainimplementations,andbothdataandprogramsinsomeofthemorerecentimplementations—witheachblockholdingbatchesofindividualtransactionsandtheresultsofanyblockchainexecutables.Eachblockcontainsatimestampandinformationlinkingittoapreviousblock.最早技術雛形出現(xiàn)在比特幣項目中。作為比特幣背后的分布式記賬平臺,在無集中式的。正,相關交易被撤銷。公認的最早關于的描述性文獻是中本聰所撰寫的比特幣:一種點對點的電子現(xiàn)金系中,被描述為用于記錄比特幣交易的賬目歷史?!づ廖鲓W利,1494年在《Summadearithmeticageometrica,proportionietproportionalità》經支持簡單的計算)功能外更靈活的合約功能,執(zhí)行更為復雜的操作。這樣擴展之后無無圖-示字“”的來源。新的數(shù)據(jù)要加入,必須放到一個新的區(qū)塊中。而這個塊(以及塊里的交易)是否合法,可以通過一些快速檢驗出來。節(jié)點都可以提議一個新的區(qū)塊,然而具體以幣為例如何使了?客戶起一項后,會到網(wǎng)絡并)eh(ProofofWork(PoW)hash結果滿足一定條件并無已知的啟發(fā)式算法,只能進行嘗試。嘗試的次數(shù)越多,算出來的概率越hash10分鐘平均算出來一個合法區(qū)塊。算出來的節(jié)點將得到區(qū)塊中所有交易的和協(xié)議固定的費(目前是12.5比特幣,很自然會有人問,能否進行操作來破壞整個系統(tǒng)或者獲取利益。比如不承認后,即便有一半的節(jié)點想被確認的結果,其概率將為 鏈則介于兩者之間,由若干組織一起合作一條,該的使用必須是目前來看,公開鏈將會的吸引社區(qū)和的眼球,但的應該在鏈和私目前,對的認識還存在不少誤區(qū)首先,不是數(shù)據(jù)庫。雖然也可以用來數(shù)據(jù),但它要解決的問題是多方的互信問題。單純從數(shù)據(jù)角度,它的效率可能不高,筆者也不推薦把大量的原始數(shù)據(jù)放到區(qū)其次,不是要現(xiàn)有技術。作為基于多項已有技術而出現(xiàn)的新事物,跟現(xiàn)有底已有的商業(yè)模式。很長一段時間里,的適用場景仍需摸索,跟已有系統(tǒng)必然是鏈技術還能帶來更通用的計算能力。HyperledgerEthereum就試圖做類似的事情,基于區(qū) 概 從技術特點上,一般被認為具有:分布式容錯性:網(wǎng)絡極其魯棒,容錯1/3左右節(jié)點的異常狀態(tài)。其商業(yè)應用場景也跟促生其出現(xiàn)的環(huán)境關?;诩夹g,任何基于數(shù)字交易的活筆者認為,所有跟信息、價值(包括貨幣、、專利、、數(shù)字商品、實際物品等)、信用等相關的交換過程,都將可能從技術中得到啟發(fā)或直接受益。但這個過程絕不是圖-影響的交換過已經對技術進行投入或應用的金融機構(不分先后)目前有高盛投資銀行(GoldmanSachs)富國銀行(WellsFargo)學正是要提供解決這些問題的有效。傳統(tǒng)方案包括hash算法,加算法,數(shù)字證數(shù)的產生、安全強度、加處理的性能等。量子計算等新技術的出現(xiàn),讓RSA算法等已經注:SONYPS3私鑰被事件再次證明,即便足夠安全的算法,如果沒有被恰當?shù)氖褂茫忍貛趴紤]公開景下的保證。了“工量”(Pff)策略來規(guī)數(shù)人壞數(shù)據(jù)通過概型保證大家看就是合最長鏈此外,還權益為的P、S和r等。些算法上都于經濟的博弈,破壞與者損濟利益而保證分人的。同時認必須過比例和收斂速度。PoW等系列算法理論上允許少于一半的不合作節(jié)點,PBFT等算法理論上允許不超過的不合作節(jié)點。目前,公開的比特幣只能支持平均每秒約7筆的吞吐量,一般認為對于大額交易來上,很大程度上取決于單個節(jié)點的處理能力。高性能、安全、穩(wěn)定性、硬件輔助加能力,都將是節(jié)點性能的要素。外一方面將大量高頻的交易放到鏈外來,只用記錄最終交易信息,如閃電網(wǎng)絡等。類似的,側鏈(sidechain)、鏈(shadowchain)等的思路在當前階段也有一定的借鑒意義。類似設計可以很容易的將交易性能提升1-2個數(shù)量級。此外,如果采用鏈的方式,過了85,000tps;某交易所號稱的處理均(峰)值在80,000tps左右。對于網(wǎng)絡系統(tǒng)來說,這個問題并非那么簡單。網(wǎng)絡中每個參與的節(jié)點都要保持一份完整的,并且進行智能合約的處理。因合作完成完整的處理),這個思路已經在超級賬本中啟用;同時盡量減少層的處理工首先是。對系統(tǒng)如何進行?系統(tǒng)是否屬于?銀行系統(tǒng)是要承擔的。但是目前還沒有任何法律保護以及基于它的實現(xiàn)。其次是軟件實現(xiàn)的潛在是無法避免的。考慮到使用了幾十年的openssl還帶著那么低級的(heartbleeding),而且是源代碼就在大家眼皮。這背后曾經發(fā)生過啥,讓人遐想連篇。對于金融系統(tǒng)來說,無論客戶端還是平臺側,即便是很小的都可能造成難以估另外,公有所有交易記錄都是公開可見的。搞大數(shù)據(jù)的人聽了是不是開始激動起來獻證明,比特幣的交易記錄最終是能追蹤到用戶的。還有就是作為一套完全的分布式系統(tǒng),公有的缺乏有效的調整機制,一旦運行起來,來,那就無法加入進去。這讓比特幣本身的價值也蒙上了一層陰影。和運行前需要有機制進行探測,以規(guī)避代碼的破壞。2016年6月17日,發(fā)生DAO系統(tǒng)被利用事件,直接導致價值6000萬的數(shù)字貨幣被利用者獲取。盡管對于這件事情的還在進行中,但事實再次證明,目前基于數(shù)據(jù)庫和系 讀的性能,被廣泛應用到了信息中。但目前來看,面向的數(shù)據(jù)庫技術仍然可集1969-ARPANet(AdvancedResearchProjectsAgencyNetwork):現(xiàn)代互聯(lián)網(wǎng)的前身,被高級研究計劃署(AdvancedResearchProjectAgency)提出,其使用NCP協(xié)議,缺陷之一是無法做到和個別計算機網(wǎng)絡交流;型,解決了NCP的缺陷;-1989-WWW:早期互聯(lián)網(wǎng)的應用主要包括net、ftp、等,蒂姆·伯納斯-李(Tim1999salesforcesalesforce開始以云的理2006awsec2:AWSEC2奠定了云計算的業(yè)界標桿,直到今天,競爭者們仍然在試圖追趕AWS的腳步;2013cognitiveIBMWatson為代表的認知計算開始進入商業(yè)領域,計算開始變得一個是技術領域也存在著周期律。這個周期目前看是7-8年左右?;蛟S正如人有“七年之所取代。如果從比特幣網(wǎng)絡上線(20091月)算起,到今年正是在坎上。因此,現(xiàn)在正是目前,在數(shù)字貨幣領域(以比特幣為代表)的應用已經相對成熟,而在智能合約方尚處于初步實踐階段。技術的應用已經在許多領域都帶來了生產力提升,筆者相信,技鏈技術還能帶來更通用的計算能力。HyperledgerEthereum就試圖做類似的事情,基于區(qū)應用場資源共享:airbnb為代表的公司將歡迎這類應用,極大降低管理成本。這個領域創(chuàng)業(yè)門雖然有DAO這樣的試水,謹慎認為該領域的需求還未成熟。金融服務涉及的領域包括貨幣、、保險、捐贈等。銀行分為和普通銀行主要就是管理各種和利率。央行的存在,為整個社會的金融體系提供了最終的信用定性,必須通過諸多確立自身的信用地位。成本,還需要大量的成本。即便如此,這些系統(tǒng)仍然存在諸多缺陷,例如很多交易都不能在短時間內完成,每年發(fā)生大量的利用銀行相關金融進行的。歐洲央行評估在交易后結算的應中國投入研2016年1月20日,專門組織了“數(shù)字貨幣研討會”,邀請了花旗、德勤等公司的專家就數(shù)字貨幣的總體框架、演進、國家加密貨幣等話題進行了研討。字貨幣相關技術來打擊金融活動。央行正在開發(fā)基于技術的數(shù)字版元(名稱為CAD幣),以允許用戶可以CAD幣是更大的一個探索型科技項目Jasper的一部分。據(jù)悉,除了央行外,蒙特利爾銀行、商業(yè)銀行、銀行、豐業(yè)銀行、多倫多道明銀行等來源:-Canadaexperimentswithdigitaldollaronblockchain,2016-06-16RSCoin目標是提供一個由控制的數(shù)字貨幣,采用了雙層鏈架構、改進版的2PC提中國郵儲銀行將技術應用到業(yè)務系2016年10月,中國郵儲銀行宣布攜手IBM推出基于技術的資產托管系統(tǒng),為中國銀行業(yè)首次將技術應成功用于業(yè)務系統(tǒng)。 付網(wǎng)絡,允許用戶快速進行跨幣種的快速匯款。Ripple:實現(xiàn)的多幣種咨詢公司OliverWyman給SWIFT(同業(yè)銀行金融電訊)提供的預計全元(390億為托管鏈的市場主體成本),而交易后流程數(shù)據(jù)及分析花費200~250億美2015年10月,納斯達克(Nasdaq)交易所推出平臺NasdaqLinq,實現(xiàn)主Symbiont幫助金融企業(yè)創(chuàng)建于的智能債券,當條件符合時,立即執(zhí)行。tradeisthesettlement)的理念,主要目標是建立交易實時結算的全新系統(tǒng)。戶信息,但從角度看,這些數(shù)據(jù)仍然存在若干問題。過多數(shù)據(jù)給第,因此企業(yè)獲取到數(shù)據(jù)中有效成分其實很少;而存在著天然無法篡改、不可抵賴的特性。同時,將可能提供前所未有規(guī)模行另外,跟傳統(tǒng)依靠人工的審核不同,技術完全依靠數(shù)學成果,基于的信用機制包括IDG、騰訊、安永、普華永道等都紛紛投資或進入基于的管理領域,特別是也包括數(shù)字物,以及可以標記實體物品的數(shù)字標記。比如,目前要交易房屋,如果互相不認識的話,往往需要依托中介機構來確保交易的進行,通過紙質的材料證明房屋所。但實際上,很多時候中介機構也無法確保交易的約定情況,技術將確保合同能得到準確執(zhí)行。統(tǒng)等。它將待確權數(shù)據(jù)的存放到基于的分布式賬本中,可以提供資產所的追在教育領域,MIT研究員朱莉安娜·納扎雷(JulianaNazaré)和學術創(chuàng)新部主管菲利普·施密特(PhilippSidt)了文章,介紹基于的學歷認證系統(tǒng)?;谠撓到y(tǒng),用人單Monegraph:通過保障的透明交易。 通過metadata協(xié)議,將內容創(chuàng)造者與作品唯一對應。一份來著高盛的報告中宣稱:規(guī)模為30-90億。ConsenSys和微電網(wǎng)開發(fā)商LO3共建光伏發(fā)電交易網(wǎng)絡,實現(xiàn)點對點的能源交易。種模式存在著周期長、缺乏、成本高等缺點。及如何避免寶貴的數(shù)據(jù)在的情況下出去。DAO(DecentralizedAutonomousOrganization)為代表的眾籌管理,DAO曾創(chuàng)下歷史最高的融資記錄,超過1.6億美金。 于:PM2.5監(jiān)測點數(shù)據(jù)獲取,服務器租賃 數(shù)據(jù)調用,DNS服務器等 考如何供應鏈金融和給供應鏈帶來透明。現(xiàn)有的互聯(lián)網(wǎng)能正常運行,離不開很多近乎免費的網(wǎng)絡服務,例如服務(DNS)。任何人都可以免費查詢到,沒有DNS,現(xiàn)在的各種基本就無法了。因此,對于網(wǎng)絡技術恰好具備這些特點,基于打造的DNS系統(tǒng),將不再會出現(xiàn)各種錯誤的查詢 醫(yī)療數(shù)據(jù)的安全管理,已與醫(yī)療行業(yè)多家公司簽訂了合作協(xié)議。Storj:基于 分布式系 舉個例子,某影視公司旗下有西單和中關村的兩個院,都出售某票,票一共就一萬張。那么,顧客到達某個院買票的時候,售票員該怎么決策是否該賣這張票,才能避免超售呢?當院個數(shù)的時候呢?為了簡化理解,仍然以兩個院一起賣票的例子??赡苡腥缦碌慕鉀Q思路:每次要賣一張票前打給另外一家院,確認下當前票數(shù)并沒超售成立一個第的存票機構,票都放到他那里,每次賣票找他詢問;是總能得到保障的,例如取款機有時候會是“服務中斷”狀態(tài),有時候是“無法連通”的。意情形,就往往有一些驚人的結果。例如現(xiàn)在就剩一張票了,中關村和西單的院也分別剛確認過這張票的存在,然后兩個院同時來了一個顧客要買票,從各自“觀察”看來,自己的顧客都是第一個到的……怎么能達成結果的共識呢?記住我們的唯一秘訣:在于需要做過分布式系統(tǒng)的讀者應該能,絕對理想的強一致性(StrongConsistency)代價很順序一(Sequnl):et9年典woMakearrtyExecusMulsProgram》中l(wèi)一致,并(l),后執(zhí)行A在B線性一致性(LinearizabilityConsistency):MauriceP.HerlihyJeannetteM.Wing在1990年經典《Linearizability:ACorrectnessConditionforConcurrentObjects》的Web系統(tǒng)來說已經足夠了。這一類弱化的一致性,被籠統(tǒng)稱為弱一致性(Weak對于要能拜占庭錯誤的情況,一般包括PBFT系列、PoW系列算法等。從概率角度,F(xiàn)LPFLP
FLP得了Dijkstra(就是發(fā)明最短路徑算法的那位)獎。三個人在不間,進行投票(投票結果是0或者1)。三個人彼此可以通過進行溝通,但經常會有人時不時地睡著。比如某個時候,A0,B投票1,C收到了兩人的投回答這一問題的是另一個很出名的原理:CAP原理。CAP例如靜態(tài)頁面內容、實時性較弱的查詢類數(shù)據(jù)庫等,CouchDB、Cassandra等為此設弱化分區(qū)ACIDACID PaxosPaxos問題是指分布式的系統(tǒng)中存在故障(fault),但不存在(corrupt)節(jié)點場景(即Lamport用Paxon島的故事模型來進行描述而命名。1990年由LeslieLamportPaxos共識算法,在工程角度實現(xiàn)了一種最大化保障分布式系統(tǒng)一致性(存在極小的概率無法實現(xiàn)一致)的機制。Paxos被廣泛應用在Chubby、ZooKeeper這樣的系統(tǒng)中,LeslieLamport因此獲得了2013年度。的結果。他們之間通過服務人員來傳遞紙條,但可能離開或進入大廳,服務人員可能偷proposer在此過程中出現(xiàn)故障,可以通過超proposer都恰好故障,系統(tǒng)則Paxos能保證在超過的正常節(jié)點存在時,系統(tǒng)能達成共識當提案者和接收者都推廣到多個的情形,會出現(xiàn)一些。怎么對他們進行區(qū)分呢?這個時候采用只接受第一個提案而后續(xù)提案的方法也不適用。中序號較大(往往意味著是接受新,因為舊提案者故障概率更大)的提案。Raft算法是Paxos多者被選為leader;達成問題。拜占庭算法討論的是情況下的保障。 GeneralsProblem)問題,是LeslieLamport1982年提出用來解釋一致性問題的一個虛構模型。拜占庭是古代東羅馬的首都,由于地域寬廣,守衛(wèi)邊于將軍中可能存在叛徒(系統(tǒng)點出錯),這些叛徒將努力向不同的將軍發(fā)送不同的消ByzFaultTolerant(BFT)算法。例如,時
更一般的,當提案人不是叛變者,提案人提出提案信息,則對于合作者來看,系統(tǒng)中會有份確定的信息,和份不確定的信息(可能為或,假設叛變者會盡量干擾一致的達成),,即情況下才能達成一致。當提案人是叛變者,會盡量發(fā)送相反的提案給個合作者,從收到的合作者看來,系 個信息,以及 個信息;從收到的合作者看來,系統(tǒng)中會存在 信息,以及 個信息;LeslieLamport
多 的叛變者時有沒有可能有解決方案呢?設想個叛變者和個忠誠者,叛變者故使壞,可以給出錯誤的結果,也可以不響應。某個時候個叛變者都不響應,則個忠誠者取多數(shù)既能得到正確結果。當個叛變者都給出一個的提案,并且個忠誠者中有個離線時,剩下的個忠誠者此時無法分別是否混入了叛變者,仍然要確保取多數(shù)能得到正確結果,因此,,即,所以系統(tǒng)整體規(guī)模要大于。 FaultTolerant最早由Castro和Liskov在1999年PracticalByzFaultTolerant(PBFT)是第一個得到廣泛應用的BFT算法。只要系統(tǒng)中有 比特幣的網(wǎng)設計時了創(chuàng)新的o(Prff)算法思一個是一(,即便試圖壞,也出很大濟代價出超過一半的算力)51.653130.3 30IT從業(yè)人員大都有類似的經驗,運行某軟系統(tǒng)的機器,基本上是過幾天就要重啟下的;而運行Linux系統(tǒng)的服務器,則可能幾年時間都不出問題。另外,普通的家用計算機,跟服學技法與、加密算法、數(shù)字簽名和、PKI體系、Merkle樹、同態(tài)加密等,以及如何使用 HashHash(哈?;蛏⒘校┧惴ㄊ穷I域非?;A也非常重要的技術。它能任意長度的二進制值(明文)映射為較短的固定長度的二進制值(Hash值),并且不同的明文很難映射為相同的Hash值。 oblockchainworld,thisisyeasy@”的MD5hash值。$$echooblockchainworld,thisis,這就說明文件內容極大概率上就是“ oblockchainworld,thisisyeasy@”??梢?,Hash的思想十分類似于基于內容的編址或命名。正向快速:給定明文和hash算法,在有限時間和有限資源內能計算出hash值。逆向:給定(若干)hash值,在有限時間內很難(基本不可能)逆推出明文。MD4(RFC1320)MITRonaldLRivest1990年設計的,MDMessageMD5(RFC1321)Rivest于1991MD4512位分組,其SHA(SecureHashAlgorithm)Hash函數(shù)族,由NIST(NationalInstituteofStandardsandTechnology)1993年發(fā)布第一個算法。目前知名的SHA-11995年面原理,并且模仿了該算法。SHA-1已被證明不具備“強抗碰撞性”。稱為SHA-2),跟SHA-1算法原理類似。SHA-3相關算法也已被提出。的增加CPU來獲得hash性能的提升。顧名思義,數(shù)字是對數(shù)字內容進行Hash運算,獲取唯一的值來指代原始數(shù)字內容。數(shù)字是解決確保內容沒被篡改過的問題(利用Hash函數(shù)的抗碰撞性特點)。數(shù)字值,用戶下來原始文件可以自行進行計算,并同提供的值進行比對,以確鑰加密,common-keycryptography)和非對稱加密(asymmetriccryptography,又稱公鑰加DES(DataEncryptionStandard):經典的分組加密算法,1977年由信息處位+8位校驗?,F(xiàn)在已經很容易被。(由比利時學家JoanDaemon和VincentRijmen發(fā)明)作為AES,標準為FIPS-197。AES也是分組算法,分組長度為、、位三種。AES的優(yōu)勢在于處理速代表算法包括:RSA、ElGamal、橢圓曲線(EllipticCurveCrytosystems,ECC)系列算RSA:經典的公鑰算法,1978RonRivest、AdiShamir、LeonardAdleman共同提出,三人于2002年獲得。算法利用了對大數(shù)進行質因子分解的特性,但目前還沒有數(shù)學證明兩者難度等價,或許存在未知算法在不進行大數(shù)分解的前提下。Diffie-man密鑰交換:基于離散對數(shù)無法快速求解,可以在不安全的通道上,雙方協(xié)VictorMiller分別獨立提出。ECC系列算法一般被認為具備較高的安全性,但加來說要短的多),然后雙方再通過對稱加密對傳遞的大量數(shù)據(jù)進行加處理。典型的場景是現(xiàn)在大家常用的HTTPS機制。HTTPS實際上是利用了TransportLayerSecurity/SecureSocketLayer(TLS/SSL)來實現(xiàn)可靠的傳輸。TLSSSL的升級版本,目前廣泛應用的為TLS1.0,對應到SSL3.1版本。服務端返回信息,包括隨機數(shù)R2、選定加密算法類型、協(xié)議版本,以及服務器。注瀏覽器檢查帶有該公鑰的。該需要由第CA來簽發(fā),瀏覽器和操作系統(tǒng)會預置CA的根。如果被篡改(中間人),很容易通過CA的如果沒問題,則用中公鑰加密隨機數(shù)R3,發(fā)送給服務器。此時,只有客戶端和一個典型的場景是,AB一個文件(一份信息),BA發(fā)出的原始版本?A先對文件進行,然后用自己的私鑰進行加密,將文件和加密串都發(fā)給A發(fā)過來的,并且文件內容沒有被修為對某個消息,利用提前共享的對稱密鑰和Hash算法進行加理,得到HMAC值。該HMAC值提供方可以證明自己擁有共享的對稱密鑰,并且消息自身可以利用HMAC確保HMAC(K,H,Message為要處理的消息內容。如果不知道KH,則無法根據(jù)Message得到準確的HMAC值。理后把HMAC值發(fā)給A,A收到了自己再重新算一遍,只要相同說明對方確實是B。典型的實現(xiàn)包括RSA盲簽名)。nm個
發(fā)的公開密鑰、CAITUISO聯(lián)合制定的X.509規(guī)范。其中,最重要的包括簽發(fā)的公開密鑰、CA數(shù)字簽名兩個信息。因此,只要通過這個就能證明某個公鑰是合法的,因為帶有CA的數(shù)字簽名。CA類似的,CA的數(shù)字簽名合法不合法也是通過CA的來證明的。主流操作系統(tǒng)和瀏覽器里PKIPKIPKI并不代表某個特定的學技術和流程,PKI是建立在公私鑰基礎上實現(xiàn)安全可靠傳遞消息和確認的一個通用框架。實現(xiàn)了PKI的平臺可以安全可靠地管理網(wǎng)絡中用戶的密鑰和RSAPKCS(PublicKeyCryptographyStandards)標準和X.509規(guī)范等。核過了就發(fā)給CA; 銷則向CA發(fā)出申請。加 加密密鑰對然后由CA來對公鑰進行簽發(fā)。后者情況下,當用戶私鑰丟失后,CA無法完成恢復。MerkleMerkleMerkle最下面的葉節(jié)點包含數(shù)據(jù)或其哈希值,每個中間節(jié)點是它的節(jié)點內容的哈希此,沿著Root-->N4-->N1,可以快速定位到發(fā)生改變的D1;零知識證明:例如如何證明某個數(shù)據(jù)(D0……D3)D0,很簡單,構造ED同態(tài)加密(HomomorphicEncryption)是一種特殊的加密方法,允許對密文進行處理得到仍ED
算
法同態(tài),則意味著是代數(shù)同態(tài), RonRivest、LeonardAdlemanMichaelLDertouzos數(shù)的一個key的方案。零知識證明(zeroknowledge比特幣項 從可以從查詢到比特幣的匯率(以為單位)變化歷史20081031日,中本聰發(fā)布比特幣唯一的白皮書:《Bitcoin:APeer-to-PeerElectronicCashSystem/比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》。20091350個比特幣,并記錄下當天的頭版標題:“TheTimes03/Jan/2009Chancelloronbrinkofsecondbailoutforbanks”。2010521LaszloHanyecz1BTC20107172012年9月27日,比特幣基金創(chuàng)立,此時比特幣價格為12.462013年3月,1/3的專業(yè)礦工已經采用ASIC礦機進行挖礦2013年4月10日,BTC創(chuàng)下歷史最高價,2662014年2月,全球最大比特幣交易平臺Mt.Gox因85萬個比特幣而并關閉,造成大量投資者的損失,比特幣價格一度。2015年6月,紐約成為第一個正式進行數(shù)字貨幣的州2015年10月,歐盟裁定比特幣交易免征2016年1月,銀行在京召開了數(shù)字貨幣研討會,會后發(fā)布公告宣稱或推出數(shù)字貨201679比特幣目前生成了約42萬個區(qū)塊,完整需要約75GB的空間。主流的交易所包這些山寨幣,要么建立在獨立的上,要么復用已有的(例如比特幣)
A轉B轉T0X轉進行RIPEMD160)及編碼運算后生成的160位(20字節(jié))的字符串。和4字節(jié)校驗字節(jié),以提高可讀性和準確性。hash交易的金額:,跟輸入的差額為交易的服務費;可以從查的交易信息。例如一次較新的交易發(fā)生時被觸發(fā)。通過機制而非寫死交易過程,比特幣網(wǎng)絡實現(xiàn)了一定的可擴展性。比特幣語言是一種非圖靈完備的語言,類似Forth語言。輸出一般由付款方對交易設置鎖定,用來對能動用這筆交易輸出(例如,要花費交易的幣)的擁。地址上(證明擁有該公鑰),前導字節(jié)一般為0x00;本)的哈希,一般用于需要多人簽名的場景,前導字節(jié)一般為0x05;以P2PKH為例,輸出的格式scriptPubKey:scriptPubKey:OP_DUPOP_HASH160<pubKeyHash>OP_EQUALVERIFY其中,OP_DUP是棧頂元素;OP_HASH160是計算hash值;OP_EQUALVERIFY判斷棧頂兩元素是否相等;OP_CHECKSIG判斷簽名是否合法。這條指令實際上保證了只有pubKey的擁有者才能合法這個輸出。scriptSig:scriptSig:<sig><<sig><pubKey>OP_DUPOP_HASH160<pubKeyHash>OP_EQUALVERIFY引入機制帶來了靈活性,但也引入了的安全風險。比特幣支持的指令集十分簡版本號:4字節(jié);包含的所有驗證過的交易的Merkle樹根的哈希值,32字節(jié);時間戳:4難度指標:4交易個數(shù)計數(shù)器:1~9字節(jié);以通過經濟博弈來讓合作者得到利益,讓非合作者損失和風險。注:如果推廣到N個人呢?成本。當網(wǎng)絡中存在眾多參與者時,試圖拿到新區(qū)塊決定權要付出的算力成本是巨大注:比特幣最小單位是“聰”,即,總“聰”數(shù)為 浮點計數(shù)的限制導致單個數(shù)值過 挖礦的具體過程為:參與者根據(jù)上一個區(qū)塊的hash值,10分鐘內的驗證過的交易內容,再避免震蕩,每次調整的最大幅度為4倍。行多少次hash計算為單位,記為h/s。特幣的收益已經眼看要cover不住電費了。特別那些想著用云計算虛擬機來挖礦的想法,意ASIC礦機(2013Hash計算)、再到現(xiàn)在眾多礦機聯(lián)合組成礦池。短短數(shù),比特幣礦機的技術走完了過去幾十年的集成電路技術進化歷中大陸(超過一半的算力)和歐美,大家比拼的是一定計算性能情況下低電壓和低功耗的電路設計。全網(wǎng)的算力已超過每秒次Hash計算。1/3的計算力,比特前PoW(ProofofWork)的協(xié)議規(guī)定的。計算力。那怎么選大節(jié)點?又容易導致“富則越富”問題。這其實就是完全vs人制度制度,通過算法在某段時間內只讓部分節(jié)點參加計算,并且要一部分“”給所有在 money設計中提出。工作量證明,ProofofWork,通過計算來猜測一個數(shù)值(nonce)hash問題(來源于hashcash)。保證在一段時間內,系統(tǒng)中只能出現(xiàn)少數(shù)合法提案。nonce,則說明在概率上是付出了對應的算力。誰的算力多,誰最 參與PoW計算比賽的人,將付出不小的經濟成本(硬件、電力、等)。當沒有成為首個PoW權益證明,ProofofStake,2013Peercoin系統(tǒng)中被實現(xiàn),類似現(xiàn)實生活中的股東機制,擁有越多的人越容易獲取記賬權。PoS
年2月在《TheBitcoinLightningNetwork:ScalableOff-ChainInstantPayments》中提的概念主要有兩個:RSMC(RecoverableSequenceMaturityContract)RecoverableSequenceMaturityContract,中文可以翻譯為“可撤銷的順序成熟度合同”。這我們先假定交易雙方之間存在一個“微支付通道”(池)。雙方都預存一部分到“微支本。當需要提現(xiàn)時,將最終交易結果寫到網(wǎng)絡中,被最終確認。可以看到,只有在提現(xiàn)時候才需要通過。在一定時間內,如果另外一方提出證明表明這個方案其實之前被作廢了(非的交易結果),則罰沒給質疑成功方。這就確保了沒人會拿一個舊的交易結果來提現(xiàn)。 以拿到這個指定的。一定時間內能告訴我一個暗語,我就給你。乙于是跑去跟丙簽訂一個合同,如果你告訴我那個暗語,我就給你。丙于是告訴乙暗語,拿到乙的錢,乙又從甲拿到錢。最終RSMC保障了兩個人之間的直接交易可以在鏈下完成,HTLC保障了任意兩個人之間的轉賬也來自比特幣社區(qū),2013年12月提出,2014年4月成立項目。--Ethereum以太坊項其官網(wǎng)首頁為。臺(PlatformforSmartContract),平臺上的應用按程序設定運行,不存在停機、、欺詐、第人為干預的可能。以太坊平臺由Golang、C++、Python等多種編程語言實現(xiàn)。應用(即所謂的DAPP)。 20173Q為執(zhí)行智能合約而設計的簡化的虛擬機EVM。curlcurl-tar-C/usr/local-xzfgo1.5.1.linux-mkdir-p~/go;echo"exportGOPATH=$HOME/go">>echo"exportPATH=$PATH:$HOME/go/bin:/usr/local/go/bin">>sourcesudosudoapt-getinstallsudoadd-apt-repository-yppa:ethereum/ethereumsudoadd-apt-repository-yppa:ethereum/ethereum-devsudoapt-getupdatesudoapt-getinstallsudosudoadd-apt-repositoryppa:ethereum/ethereum-qtsudoadd-apt-repositoryppa:ethereum/ethereumsudoapt-getupdatesudoapt-getinstallcpp-gethgethaccountSolidity提供錢包客戶端Ethereum(J):Java語言實現(xiàn);ethereumH:Haskell語言實現(xiàn);go-ethereum:go語言實現(xiàn);Parity:Rust語言實現(xiàn);pyethapp:python語言實現(xiàn); EVM:以太坊虛擬機,輕量級虛擬機環(huán)境,是以太坊中智能合約的運行環(huán)境。Account:賬戶,分兩類:合約賬戶執(zhí)行的合約代碼;外部賬戶為以太幣擁有者賬戶,對應到 一個賬戶到另一個賬戶的消息,包括以太幣或者合約執(zhí)行參數(shù)。Gas:,每執(zhí)行一鏈碼示例一:o oWorld!”的時候,合約也會回復“ oWorld!”。目的單的智能合約程序,掌握基本流程。:selfdestructethereum智能合約自帶的自毀程序,kill對此方法進行了封裝,只有,su- ,然后輸入:catsmartContract_example01.sol|tr'\n'''su-varvargreeterSource='contractmortal{addressowner;functionmortal(){owner=msg.sender;}functionkill(){if(msg.sender==owner)selfdestruct(owner);}}contractgreeterismortal{stringgreeting;functiongreeter(string_greeting)public{greeting=_greeting;}functiongreet()constantreturns(string){returngreeting;} piled varvar_greeting= ovarvargreeterContract= varvargreeter=greeterContract.new(_greeting,{from:web3.eth.accounts[0],data:greeterCompiled.greeter.code,gas:300000},function(e,contract){{if(!contract.address)console.log("Contracttransactionsend:TransactionHash:"+contract.transactionHash+"waitingtobemined...");}elseconsole.log("Contractmined!Address:"+contract.address);}}的代碼data,和用于創(chuàng)建新合約的費用gas.gas是一個估計值,只要比所需要的gas多就可以,合約創(chuàng)建完成后剩下的gas會退還給合約創(chuàng)建者.上了.此時只要等待礦工把我們的合約打包保存到以太坊上,部署就完成了.I071422:00:19.694219ethash.go:291]GeneratingDAG:I071422:00:22.987934ethash.go:291]GeneratingDAG:I071422:00:26.543035ethash.go:291]GeneratingDAG:I071422:00:29.912655ethash.go:291]GeneratingDAG:I071422:00:29.915580ethash.go:276]DonegeneratingDAGforepoch2,ittook5m34.983 ovarvargreeter=THEGREETERYOURDIGITALPALWHO'SFUNTOBEUneasyliestheheadthatwearsa吸引了包括IBM、In、摩根等在內的眾多科技和金融巨頭的參與。 人來說,技術難以理解,而且缺乏統(tǒng)一的規(guī)范。201512月,開源世界的旗艦——Linux基金會牽頭,聯(lián)合30家初始企業(yè)成員(包括Cisco等),共同了Hyperledger項目的成立。該項目試圖打造一個透明、公開、去中心化的分布式賬本項目,作為技術的開源規(guī)范和標準,讓的應用能更容易的建立在技術之上。項目信息在,目前已經有超過120家全球知名企業(yè)和機構(大部分均為各自行業(yè)的者)宣布加入萬達金融(2016.09.08)、(2016.10.24)等。如果說以比特幣為代表的貨幣技術為1.0,以以太坊為代表的合同技術為2.0,那么實現(xiàn)了完備的權限控制和安全保障的Hyperledger項目代表著3.0時代的到IBM貢獻了數(shù)萬行已有的OpenBlockchain代碼,DigitalAsset則貢獻了企業(yè)和開發(fā)者相關資源,R3貢獻了新的金融交易架構,In Hyperledger社區(qū)由技術(TechnicalSteeringCommittee,TSC)指導,首任由來自IBM開源技術部CTO的ChrisFerris擔任,管理組則由來自DigitalAssetHoldings的CEOBlytheMasters擔任。另外,自2016年5月起,Apache創(chuàng)始人BrianBehlendorf擔任超級賬本項目的首位執(zhí)行董事。201612負責本土社區(qū)組織和技術引導工作。也提供了十分詳細的組織結構信息。該項目的出現(xiàn),實際上宣布技術已經不再是僅面向“社會實驗”性質的應用場景,它已經正式被主流機構和企業(yè)市場認可;同時,Hyperledger首次提出的完備權限管理、創(chuàng)新的一致性算法和可拔插、可擴展的框架,對于相關技術和產業(yè)的發(fā)展都將產生深遠的Fabric:包括Fabric、FabricCA、FabricSDK(Node.Js、PythonJava等語言)和fabric-api、fabric-sdk-node、fabric-sdk-py等,目標是的基礎平臺,pbftconsensus機制,支持權限管理,最早由IBMDAH發(fā)起;發(fā)起和貢獻的平臺,支持全新的基于硬件的共識機制ProofofElapsedCello:提供"BlockchainasaServiceCello,管理員可以輕松獲取和管理多條;應用開發(fā)者可以無需關心如何搭建和。TechnicalSteeringCommittee(技術):負責技術相關的工作,下設多個工作LinuxFoundation(Linux):協(xié)助Hyperledger社區(qū)在Linux的支持下發(fā)Linux和Hyperledger社區(qū)項目在大中華區(qū)的應用和落地情況,并希望能為中來自社區(qū)的眾多的支持。Clonewithcommit-msgClonewithcommit-msg
$$mkdir$cd$gitclonessh://LF_ID@:29418/fabric&&scp-p-P29418 mit-msggitrev-parse--git- od+x`gitrev-parse--git-
&&(cdfabric&&curl-kLo`git$$make$$make$$makemake make$$make$$make$$makeunit-$go$gotest-v-$make$make某個任務感,可以添加自己為assignee,如對FAB-XXX任務。$$gitcheckout-bFAB-$git$gitcommit-a-SimpleSimplewordstodescribemainchangeThisfixes#FAB-XXX.Amoredetaileddescriptioncanbehere,withseveralparagraphsandsentences...$$git幾位reviewer。之后就是等待開發(fā)者團隊的review結果,如果得到通過,則會被項目的maintainer們merge到主分支。否則還需要針對大家建議進一步的修正。$$gitcommit-a--Hyperledger是Linux支持的分布式賬本平臺,這是開源界試圖構建一套標準化分布式Fabric1.0Compose模板文件$$git channel1peer節(jié)點、1orderer節(jié)點、1CA節(jié)點、1個cli節(jié)點節(jié)點、1orderer節(jié)點、1CA節(jié)點、1cli 自動化測試,用來初始化channel和基于kafkaordering docker及 $$bashmake make
$$bash從倉庫獲#pullfabricimagesecho"DownloadingfabricimagesfromDockerHub...withtag=${IMG_TAG}...needa#TODO:wemayneedsomecheckingonpullingresult?dockerpullhyperledger/fabric-peer:$ARCH-$IMG_TAGdockerpullhyperledger/fabric-orderer:$ARCH-$IMG_TAGdockerpullhyperledger/fabric-ca:$ARCH-$IMG_TAGdockerpullhyperledger/fabric-tools:$ARCH-$IMG_TAGdockerpullhyperledger/fabric-ccenv:$ARCH-$PROJECT_VERSIONdockerpullhyperledger/fabric-baseimage:$ARCH-$BASEIMAGE_RELEASEdockerpullhyperledger/fabric-baseos:$ARCH-$BASEIMAGE_RELEASE#Onlyusefulfor#dockerpullyeasy/hyperledger-echo"===Re-taggingimagesto*latest*dockertaghyperledger/fabric-peer:$ARCH-$IMG_TAGhyperledger/fabric-peerdockertaghyperledger/fabric-orderer:$ARCH-$IMG_TAGhyperledger/fabric-ordererdockertaghyperledger/fabric-ca:$ARCH-$IMG_TAGhyperledger/fabric-cadockertaghyperledger/fabric-tools:$ARCH-$IMG_TAGhyperledger/fabric-從第倉庫獲$$$$$$dockerpullyeasy/hyperledger-fabric-base:$IMG_VERSION\&&dockerpullyeasy/hyperledger-fabric-peer:$IMG_VERSION\&&dockerpullyeasy/hyperledger-fabric-orderer:$IMG_VERSION\&&dockerpullyeasy/hyperledger-fabric-ca:$IMG_VERSION\&&dockerpullhyperledger/fabric-couchdb:$ARCH-$IMG_VERSION\&&dockerpullhyperledger/fabric-kafka:$ARCH-$IMG_VERSION\&&dockerpullhyperledger/fabric-zookeeper:$ARCH-$IMG_VERSION$dockertagyeasy/hyperledger-fabric-peer:$IMG_VERSIONhyperledger/fabric-peer&&dockertagyeasy/hyperledger-fabric-orderer:$IMG_VERSIONhyperledger/fabric-orderer\&&dockertagyeasy/hyperledger-fabric-ca:$IMG_VERSIONhyperledger/fabric-ca&&dockertagyeasy/hyperledger-fabric-peer:$IMG_VERSIONhyperledger/fabric-tools\&&dockertagyeasy/hyperledger-fabric-base:$IMG_VERSIONhyperledger/fabric-ccenv:$ARCH-$PROJECT_VERSION&&dockertagyeasy/hyperledger-fabric-base:$IMG_VERSIONhyperledger/fabric-baseos:$ARCH-$BASEIMAGE_RELEASE\&&dockertagyeasy/hyperledger-fabric-base:$IMG_VERSIONhyperledger/fabric-baseimage:$ARCH-$BASEIMAGE_RELEASE\&&dockertaghyperledger/fabric-couchdb:$ARCH-$IMG_VERSIONhyperledger/fabric-couchdb\&&dockertaghyperledger/fabric-zookeeper:$ARCH-$IMG_VERSIONhyperledger/fabric-zookeeper\&&dockertaghyperledger/fabric-kafka:$ARCH-$IMG_VERSIONhyperledger/fabric-fabric1.0$$bash pose- pose-2orgs-4peers.yaml$$dockerps-aCONTAINERID"bash-c'while 19seconds Up18 "peernodestart-- 22seconds Up197050/tcp,:7051->7051/tcp,7052/tcp,7054- "fabric-ca-serversta" 22secondsa Up19seconds 22secondsa Up19seconds o "peernodestart-- 22seconds Up207050/tcp,7052/tcp,7054-7059/tcp,:9051- "peernodestart-- 22seconds Up20,:10053-7050/tcp,7052/tcp,7054-7059/tcp,:10051-"peernodestart-- 22secondsUp207050/tcp,7052/tcp,7054-7059/tcp,:8051- 通過如下命令進入容器cli并執(zhí)試$$dockerexec-itfabric-cli$bashUTCUTC[main]main->INFO00c=====================ChaincodeInstantiationonPEER2onchannel'businesschannel'issuccessful=====================AllGOOD,initialization _ ||||||\|||_|\|||||||\|||_|||_|\_|/ $$bashQueryQueryResult:UTC[main]main->INFO008=====================QueryonPEER3onchannel'businesschannel'isAllGOOD,End-2-Endexecution _ ||||||\|||_|\|||||||\|||_|||_|\_|/FabricFabricFabricv0.6如果是初次接觸HyperledgerFabric項目,推薦采用如下的步驟,基于 pose的 Docker$$curl-fsSL /|以Ubuntu14.04為例,安裝成功后,修改Docker服務配置( DOCKER_OPTSDOCKER_OPTS="$DOCKER_OPTS-Htcp://:2375-Hunix:///var/run/docker.sock--api-c$$sudoservicedocker。$$sudosystemctldaemon-$sudosystemctlrestart $$sudoaptitudeinstallpython- $$sudopip $$dockerpullyeasy/hyperledger-fabric:0.6-dp&&dockerpullyeasy/hyperledger-fabric-peer:0.6-dp\&&dockerpullyeasy/hyperledger-fabric-base:0.6-dp\&&dockerpullyeasy/blockchain-explorer:latest\&&dockertagyeasy/hyperledger-fabric-peer:0.6-dphyperledger/fabric-peer&&dockertagyeasy/hyperledger-fabric-base:0.6-dphyperledger/fabric-baseimage\&&dockertagyeasy/hyperledger-fabric:0.6-dphyperledger/fabric-membersrvc$$dockerpullhyperledger/fabric-peer:x86_64-0.6.1-preview&&dockerpullhyperledger/fabric-membersrvc:x86_64-0.6.1-preview\&&dockerpullyeasy/blockchain-explorer:latest\&&dockertaghyperledger/fabric-peer:x86_64-0.6.1-previewhyperledger/fabric-peer\&&dockertaghyperledger/fabric-peer:x86_64-0.6.1-previewhyperledger/fabric-age&&dockertaghyperledger/fabric-membersrvc:x86_64-0.6.1-previewhyperledger/fabric-$$dockerrun--name=vp0--restart=unless-stopped-it-p7050:7050-p7051:7051-v/var/run/docker.sock:/var/run/docker.sock-eCORE_PEER_ID=vp0-eCORE_PEER_ADDRESSAUTODETECT=true-eCORE_NOOPS_BLOCK_WAIT=10hyperledger/fabric-peer:latestpeernode首先,Compose模板文件$$git 4PBFTpeer4PBFTpeer1CACA4PBFTpeer1Blockchain-explorer以通過Web界面集群狀態(tài)4PBFTpeer1CA1 pose-f4-peers.ymlBlockchain-explorerCA功能。 pose-f4-peers.yml器云平臺的支持,如Swarm等。物理節(jié)點作為一個peer節(jié)點。4vp0~vp3$$dockerrun--name=vp0--net="host"--restart=unless-stopped-it--rm-v/var/run/docker.sock:/var/run/docker.sock-eCORE_PEER_ID=vp0-eCORE_PBFT_GENERAL_N=4-eCORE_LOGGING_LEVEL=debug-eCORE_PEER_ADDRESSAUTODETECT=true-eCORE_PEER_NETWORKID=dev-eCORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft-eCORE_PBFT_GENERAL_MODE=batch-eCORE_PBFT_GENERAL_TIMEOUT_REQUEST=10shyperledger/fabric-peer:latestpeernodevp1~$$$$dockerrun--name=${NAME}--net="host"--restart=unless-stopped-it--rm-v/var/run/docker.sock:/var/run/docker.sock-eCORE_PEER_ID=${NAME}-eCORE_PBFT_GENERAL_N=4-eCORE_LOGGING_LEVEL=debug-eCORE_PEER_ADDRESSAUTODETECT=true-eCORE_PEER_NETWORKID=dev-eCORE_PEER_VALIDATOR_CONSENSUS_PLUGIN=pbft-eCORE_PBFT_GENERAL_MODE=batch-eCORE_PBFT_GENERAL_TIMEOUT_REQUEST=10s-eCORE_PEER_DISCOVERY_ROOTNODE=${ROOT_NODE}:7051hyperledger/fabric-peer:latestpeernode7051:peergRPC服務端口,0.6之前版本中為 $$dockerexec-itpbft_vp0_1$$peerchaincodedeploy-de_example02-c'{"Function":"init","Args":["a","100","b",03:08:44.740[chaincodeCmd]chaincodeDeploy->INFO001Deployresult:type:GOLANGcha 2"name:"ee5b24a1f17c356dd5f6ergs:"100"args:"b"args:"200"cd0f78539">ctorMsg:<args:"init"args:"a"Deploychaincode:ee5b24a1f17c356dd5f6e 03:08:44.740[main]main->INFO002chaincodeididCC_ID$$CONTAINER
e86c26bad76fdev-vp1-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fbc5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f78539"/opt/gopath/bin/ee5b"2minutesagoUp2minutesdev-vp1-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f78539597ebaf929a0dev-vp2-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fbc5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f78539"/opt/gopath/bin/ee5b"2minutesagoUp2minutesdev-vp2-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f785398748a3b47312dev-vp3-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fbc5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f78539"/opt/gopath/bin/ee5b"2minutesagoUp2minutesdev-vp3-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f78539cf6e762f6a2edev-vp0-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fbc5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f78539"/opt/gopath/bin/ee5b"2minutesagoUp2minutesdev-vp0-ee5b24a1f17c356dd5f6ee39ddba12e5d2e203ed93401d7d05eb0dd194fb9070549c5dc31eb63f4e654dbd5a1d86cbb30c48e3abcd0f78539$peerchaincodequery-n$peerchaincodequery-n${CC_ID}-c'{"Function":"query","Args":["a"]}'03:22:31.420[chaincodeCmd]chaincodeInvokeOrQuery->INFO001Successfullyqueriedtransaction:chaincodeSpec:<type:GOLANGchaincodeID:<name:"ee5b24a1f17c356dd5f6e 2590cd0f78539">ctorMsg:<args:"query"args:"a">>QueryResult:03:22:31.420[main]main->INFO002ab10$$peerchaincodeinvoke-n${CC_ID}-c'{"Function":"invoke","Args":["a","b",03:22:57.345[chaincodeCmd]chaincodeInvokeOrQuery->INFO001Successfullyinvokedtransaction:chaincodeSpec:<type:GOLANGchaincodeID:<name:"ee5b24a1f17c356dd5f6e 2590cd0f78539">ctorMsg:<args:"invoke"args:"a"args:"b"args:"10">>(fc298ffb-c76303:22:57.345[main]main->INFO002```sh$peerchaincodequery-n${CC_ID}-c'{"Function":"query","Args":["a"]}'03:23:33.045[chaincodeCmd]chaincodeInvokeOrQuery->INFO001Successfullyqueriedtransaction:chaincodeSpec:ctorMsg:>QueryResult:9003:23:33.045[main]main->INFO002Exiting.....···首先相關鏡像$$dockerpull$dockertagyeasy/hyperledger:latesthyperledger/fabric-$dockerpullyeasy/hyperledger-$dockerpullyeasy/hyperledger-$$git$$pose-f4-peers-with-membersrvc.yml$dockerexec-it$dockerexec-itpbft_vp0_1bash#peernetworkloginjim06:57:13.603[networkCmd]networkLogin->INFO001CLIclient06:57:13.603[networkCmd]networkLogin->INFO002LocaldatastoreforclientloginToken:/var/hyperledger/pro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 混合動力電動汽車結構原理與檢修 第2版 課件 學習情境3:混合動力電動汽車動力蓄電池認知與檢查
- 廣發(fā)銀行薪酬管理制度規(guī)范(3篇)
- 電器出游活動方案策劃(3篇)
- 獸藥經營法規(guī)培訓
- 自備車安全管理制度(3篇)
- 獸藥電銷培訓課件
- 獸藥殘留檢測技術緒論
- 集團公司管理制度封面(3篇)
- 獸腳類恐龍科普
- 養(yǎng)老院檔案信息管理制度
- 護理學第三章 第四節(jié) 人體力學在護理工作的應用
- 人性秘籍-絕密人性系列
- GB 1886.18-2015食品安全國家標準食品添加劑糖精鈉
- 世界地理第八章非洲
- 反滲透EDI超濾設計計算
- 油管保護蓋板涵專項施工方案
- 高考英語一輪復習廣東聽說考試故事復述模擬訓練(三)課件
- 點心部各崗位職責
- 中考歷史第一輪復習教案
- 中國郵政《國際及臺港澳郵件處理規(guī)則》
- 植物病害發(fā)生發(fā)展
評論
0/150
提交評論