互聯網金融源碼
⑴ 源碼資本|曹毅:以「碼會」籠住「江湖人」,新基金靠三種武器立足
-Begin-
2014年4月曹毅找到王興、張一鳴,告訴他們自己打算成立一隻基金。一個月後,名為「源碼資本」的新基金公司完成了1億美元的募集。即使是在「全民PE」火熱的2009年,這樣的募資速度也堪稱驚人。
不到一年,源碼資本二期基金也快速募集完成。1.5億美元、2億人民幣的基金規模只用了兩個月。除了之前的LP,7家A股上市公司的CEO全新加入曹毅構建的「碼會」。在曹毅眼中,商業的「棋局」正變成一種資源合力和智力游戲。對接起LP和創業者的,是這張「碼會」身份認證。
以「碼會」籠住「江湖人」
在北京風沙肆虐的傍晚,略帶倦色的曹毅快速吃完1個小時前訂好的快餐開始接受記者的采訪。自從成立源碼資本後,這種狀態已經成為一種常態。「一周飛五個地方,一年休息不到五天,」他的同事這樣形容。
對於互聯網的「痴迷」或許可以解釋目前身為80後的曹毅的這種狀態。這種「痴迷」正成為一種「紐帶」開始連接起曹毅和他周圍的那個圈子。王興、張一鳴、姚勁波、李想、李一男......正是因為這種紐帶開始聚集到源碼的周圍。「一期基金我們只用一個月就募完了,這些LP每個人就是見了個面,甚至有的只是打了個電話」曹毅回憶到。
在這個圈子裡,身份是一種需要江湖認可的東西。「在他所在那個領域裡面有明顯的成就,可以說在江湖上面都是有名號的,都有自己獨特的一套方法論。而且這些人基本都在一線,對行業的這種紐帶還是非常緊密的。」曹毅這樣描述著源碼的LP們。
在投資圈錘煉多年的曹毅正在觸碰到創業投資的真諦:將成功的創業者聚集在圈子裡,用資本以及人脈來撬動新的創業機會。這一點在矽谷早已得到驗證:比如創業教父Paul Grahamy以及科技偶像Kevin Rose等都曾在知名互聯網公司任職,深諳互聯網精髓,轉型投資也都獲得了不錯的收益。
對於創業公司而言,這樣的LP背景的確具有誘惑力。曹毅認為,美國創投圈50年的發展已經證明創業的成功所需要具備的要素越來越多,也可以說每個創業者得到的武器越來越多了。但是正因為提供武器的人越來越多,所以創業的紅海實際上更加殘酷。創業者需要獲取更多的資源和幫助。源碼的LP正是這樣一種武器。
他的胃口並不僅限於此。源碼的二期基金同樣只用了2個月時間完成募集。1.5億美金和2億人民幣的規模印證了曹毅對於資本市場的判斷。除了原有的一些美股港股、機構投資人外,源碼還引入了A股知名的TMT公司。藍色游標、神州泰岳等成為了碼會LP群體里的新的「入會者」。
風口中的「捕風者」
曾在紅杉任職副總裁的曹毅,自然也深諳沈南鵬的「賽道」投資法。曹毅認為,互聯網變得越來越大,隨著移動互聯網時代的到來,互聯網的賽道機會正在像白堊紀的物種大爆發一樣出現「井噴」。在這其中誕生出許多子賽道機會。
首先是傳統行業的互聯網化。曹毅以源碼投資的一畝田為例,農業是互聯網滲透水平最低的行業。盡管早期也有一些農業報價的網站,但非常初級。然而到了2014年,隨著智能手機在農民中的普及和網路購物的盛行,農業大規模的互聯網化開始成為可能。一畝田所做的正是利用互聯網來消除原本的農業信息不對稱問題。復雜的流通環節被互聯網所取代,買賣雙方則可以獲得更好的產品和利潤。
此前,一畝田花了兩個多月時間幫助河南新苗銷售完了滯銷大蔥。這被曹毅視為一次經典的互聯網改造傳統農業案例。互聯網改造傳統農業,改造的方式是透過信息化的方式,使得信息傳播更加有效,中間環節更少,資源配置得到優化。
其次是金融的互聯網化。趣分期是源碼投資的互聯網金融行業中一個代表性企業。看似簡單的學生貸款其實是一個巨大的市場。曹毅認為,金融的需求是始終存在的,傳統金融並不能解決很多需求,其中最大一塊就是學生市場:學生具有巨大的消費需求,但收入受限。趣分期的出現其實是解決了一個供需矛盾,金融就是時間和空間的轉化。學生的提前消費同時也可能提升其資源利用率。
第三是O2O。曹毅以源碼投資的PP租車為例:北京有400萬的車,每天空閑的可能有四分之一,另外一端有300多萬的人,有駕照沒有車。其實是一個巨大的供求不匹配,PP租車所做的平台,使得被閑置的這些車這些資源得到了更好的利用。
曹毅認為,從這三個賽道上可以看到了非常多的行業可以通過互聯網去改變,資源也可以更加有效地得到配置。「因為這些都是社會的底層設施,是剛需。因此而產生出來的巨大價值,我相信會很持續。
新基金的「打法」
在以互聯網基因為紐帶建立的「碼會」中,源碼的擔子並不輕。梳理企業戰略和融資戰略是曹毅每天最重要的兩項工作。「作為VC,最重要的事情是幫助創業公司做正確的事情,只有將正確的事不斷疊加,創業公司和VC才能實現雙贏。」
這並不簡單。在投資趣分期時,曹毅就曾經歷了困擾。在趣分期發展壯大後,面對的誘惑也多起來。除了大學生外,趣分期還曾開辟了注入家庭用戶、白領等用戶的貸款業務,多條業務線使得趣分期的業務總量很大,但問題也隨之而來。
有一天曹毅找到趣分期CEO羅敏,告訴他必須要坐下來好好聊聊。在源碼會議室里,曹毅在黑板上詳細闡述了他對於目前趣分期發展的看法。他在黑板上畫了一個矩陣,左邊是不同的資產類型,比如信用貸、抵押貸。縱軸是用戶、大學生、白領、家庭。曹毅告訴羅敏,每個細分市場都需要大量的人力與物力投入,而且每個市場的金融消費屬性也不相同。對於趣分期來說,最重要的目標是首先在某一領域達到王者地位。
作為投資人,曹毅坦言,如果公司有幾塊業務,每塊業務都是第3名,那麼這個公司根本就不值錢。因為每個跑道都是贏家通吃。因此,對於創業公司而言,最重要的就是聚焦。必須在某個跑道上成為王者,必須把所有的資源投入到最重要的業務上。
曹毅告訴羅敏,大學生市場並非已經飽和,很多業務可以細化,這樣是做加法而並非延伸到更多業務去分散資源做減法。「這是創業公司容易犯的錯誤,當你有資源的時候你會跑到第一名,這時候你會面對很多誘惑,你需要控制住自己,有時候甚至要去砍掉業務。作為VC,應該幫助創業者做這樣的梳理和判斷。」
除了戰略決策,融資同樣重要。在融資圈裡,流行著B輪和C輪死的說法。意思是當創業公司無法在成長階段拿到B輪或者C輪融資時,很可能會半路夭折。在曹毅看來,創業競爭的慘烈,使得融資周期大幅縮短。大概2-3個季度創業公司就必須拿到下一輪融資。但融資的殘酷性顯而易見。2014年據不完全估算,有2000-3000家已融資企業無法拿到下一輪融資,在C輪階段,50%-60%的企業將會被淘汰。因此源碼重要的工作之一就是幫助投資企業拿到下一輪融資,持續「輸血」。
曹毅認為,時間窗是一個客觀和實際的問題,如果不能在與競爭對手的角逐中持續「輸血」,那麼錯過時間周期可能就意味著滅亡。這也印證了曹毅之前所做的決斷。吸引更多具有互聯網基因的個人和企業成為源碼二期基金LP,這保證了源碼投資企業的融資可持續性。據曹毅介紹,目前所投企業中65%的後續融資通過源碼完成,這也讓其在早期投資中更加得心應手。
-end-
⑵ 國家關於互聯網金融有哪些法律規定
一、刑法
互聯網金融准入門檻低,僅僅憑借一台電腦,一套200元采購來的源代碼就可以搭建一個P2P網貸平台,因此不可避免的出現了一些騙子利用P2P網貸平台惡意騙款跑路事件,給投資者造成了巨大的損失。利用互聯網進行非法活動的,可能涉及如下犯罪:
1、《刑法》第一百七十六條【非法吸收公眾存款罪】
非法吸收公眾存款或者變相吸收公眾存款,擾亂金融秩序的,處三年以下有期徒刑或者拘役,並處或者單處二萬元以上二十萬元以下罰金;數額巨大或者有其他嚴重情節的,處三年以上十年以下有期徒刑,並處五萬元以上五十萬元以下罰金。單位犯前款罪的,對單位判處罰金,並對其直接負責的主管人員和其他直接責任人員,依照前款的規定處罰。
2、《刑法》第一百九十二條【集資詐騙罪】
以非法佔有為目的,使用詐騙方法非法集資,數額較大的,處五年以下有期徒刑或者拘役,並處二萬元以上二十萬元以下罰金;數額巨大或者有其他嚴重情節的,處五年以上十年以下有期徒刑,並處五萬元以上五十萬元以下罰金;數額特別巨大或者有其他特別嚴重情節的,處十年以上有期徒刑或者無期徒刑,並處五萬元以上五十萬元以下罰金或者沒收財產。
二、專門監管法規
1、第三方支付法規
2010年6月4日,中國人民銀行發布《非金融機構支付服務管理辦法》(〔2010〕第2號),該辦法第一條規定該辦法的制定目的是為促進支付服務市場健康發展,規范非金融機構支付服務行為,防範支付風險,保護當事人的合法權益。
該辦法第二條明確了本辦法所稱非金融機構支付服務,是指非金融機構在收付款人之間作為中介機構提供下列部分或全部貨幣資金轉移服務:(一)網路支付;(二)預付卡的發行與受理;(三)銀行卡收單;(四)中國人民銀行確定的其他支付服務。該辦法所稱網路支付,是指依託公共網路或專用網路在收付款人之間轉移貨幣資金的行為,包括貨幣匯兌、互聯網支付、行動電話支付、固定電話支付、數字電視支付等。本辦法所稱預付卡,是指以營利為目的發行的、在發行機構之外購買商品或服務的預付價值,包括採取磁條、晶元等技術以卡片、密碼等形式發行的預付卡。該辦法所稱銀行卡收單,是指通過銷售點(POS)終端等為銀行卡特約商戶代收貨幣資金的行為。《非金融機構支付服務管理辦法》是第三方支付的重要監管法規。
【編者按,此後,雖先後又出台了《支付機構預付卡業務管理辦法》、《支付機構客戶備付金存管辦法》、《銀行卡收單業務管理辦法》,以及徵求意見的《支付機構互聯網支付業務管理辦法》、《關於手機支付業務發展的指導意見》等具體支付業務管理規定,但相關規定均以2010年的管理辦法為基礎,第三方支付的制度架構未發生根本變化。】
2、P2P監管法規
2011年8月23日,銀監會發布《關於人人貸有關風險提示的通知》銀監辦發[2011]254號,該通知指出在當前銀行信貸偏緊情況下,人人貸(PeertoPeer,簡稱P2P)信貸服務中介公司呈現快速發展態勢。這類中介公司收集借款人、出借人信息,評估借款人的抵押物,如房產、汽車、設備等,然後進行配對,並收取中介服務費。有關媒體對這類中介公司的運作及影響作了大量報道,引起多方關注。對此,銀監會組織開展了專門調研,發現大量潛在風險並予以提示。由此可見,該通知只是對人人貸的一個風險提示文件。
在2013年11月25日舉行的九部委處置非法集資部際聯席會議上,央行對P2P網路借貸行業非法集資行為進行了清晰的界定,主要包括三類情況:資金池模式;不合格借款人導致的非法集資風險以及龐氏騙局。
3、眾籌融資法規
美國證券交易委員會(SEC)近期批准了對眾籌融資進行監管的草案,面向公眾的眾籌融資在2012年年初得到《促進創業企業融資法案》(Jumpstart
Our BusinessStartups Act,簡稱JOBS法案)的認可,即在互聯網上為各種項目、事業甚至公司籌集資金得到法律確認。這是美國政府對眾籌融資進行監管的重要措施。
2013年9月16日,中國證監會通報了淘寶網上部分公司涉嫌擅自發行股票的行為並予以叫停。叫停依據是《國務院辦公廳關於嚴厲打擊非法發行股票和非法經營證券業務有關問題的通知》(國辦發[2006]99號)規定,「嚴禁任何公司股東自行或委託他人以公開方式向社會公眾轉讓股票」。至此,被稱為中國式「眾籌」,即利用網路平台向社會公眾發行股票的行為被首次界定為「非法證券活動」。雖然眾籌模式有利於解決中小微企業融資難的頑疾,但考慮到現行法律框架,國內的眾籌網站不能簡單復制美國模式,必須走出一條適合中國國情的眾籌之路才更具現實意義。
依據《最高人民法院關於審理非法集資刑事案件具體應用法律若干問題的解釋》的規定,眾籌模式在形式上幾乎很容易壓著違法的紅線,即未經許可、通過網站公開推薦、承諾一定的回報、向不特定對象吸收資金,構成非法集資的行為。美國為眾籌立法,我們可借鑒美國的JOBS法案對眾籌模式進行規范,但還須一個循序漸進的過程。
【編者按:2014年3月31日,最高人民法院、最高人民檢察院和公安部聯合發布《關於辦理非法集資刑事案件適用法律若干問題的意見》亦須關注】
4、虛擬貨幣法規
2009年6月4日,文化部和商務部聯合發布了《關於加強網路游戲虛擬貨幣管理工作的通知》(文市發〔2009〕20號),該通知規定要嚴格市場准入,加強對網路游戲虛擬貨幣發行主體和網路游戲虛擬貨幣交易服務提供主體的管理。從事「網路游戲虛擬貨幣交易服務」業務須符合商務主管部門關於電子商務(平台)服務的有關規定。除利用法定貨幣購買之外,網路游戲運營企業不得採用其它任何方式向用戶提供網路游戲虛擬貨幣。2009年7月20日,文化部發布《「網路游戲虛擬貨幣發行企業」、 「網路游戲虛擬貨幣交易企業」申報指南》為開展經營性互聯網文化單位申請從事「網路游戲虛擬貨幣發行服務」業務的申報和審批工作提供可操作性指導規則。
2008年9月28日,國家稅務總局《關於個人通過網路買賣虛擬貨幣取得收入徵收個人所得稅問題的批復》(國稅函〔2008〕818號),明確了虛擬貨幣的稅務處理,即個人通過網路收購玩家的虛擬貨幣,加價後向他人出售取得的收入,屬於個人所得稅應稅所得,應按照「財產轉讓所得」項目計算繳納個人所得稅。
總之,一系列監管措施的出台使得虛擬貨幣的監管得到進一步明確,但是監管措施還僅僅局限於游戲里的虛擬貨幣。
【編者按:對於時下熱炒的比特幣,《中國人民銀行、工業和信息化部、中國銀行業監督管理委員會、中國證券監督管理委員會、中國保險監督管理委員會關於防範比特幣風險的通知》(銀發〔2013〕289號,明確:現階段,各金融機構和支付機構不得以比特幣為產品或服務定價,不得買賣或作為中央對手買賣比特幣,不得承保與比特幣相關的保險業務或將比特幣納入保險責任范圍,不得直接或間接為客戶提供其他與比特幣相關的服務,包括:為客戶提供比特幣登記、交易、清算、結算等服務;接受比特幣或以比特幣作為支付結算工具;開展比特幣與人民幣及外幣的兌換服務;開展比特幣的儲存、託管、抵押等業務;發行與比特幣相關的金融產品;將比特幣作為信託、基金等投資的投資標的等。】
5、互聯網銀行法規
2001年6月29日,中國人民銀行發布《網上銀行業務管理暫行辦法》,但是2007年被廢止。2006年1月26日,中國銀監會頒布《電子銀行業務管理辦法》(銀監會令2006年第5號),該辦法所稱電子銀行業務,是指商業銀行等銀行業金融機構利用面向社會公眾開放的通訊通道或開放型公眾網路,以及銀行為特定自助服務設施或客戶建立的專用網路,向客戶提供的銀行服務。電子銀行業務包括利用計算機和互聯網開展的銀行業務(以下簡稱網上銀行業務),利用電話等聲訊設備和電信網路開展的銀行業務(以下簡稱電話銀行業務),利用行動電話和無線網路開展的銀行業務(以下簡稱手機銀行業務),以及其他利用電子服務設備和網路,由客戶通過自助服務方式完成金融交易的銀行業務。《電子銀行業務管理辦法》是互聯網銀行的重要監管法規。
【編者按:銀監會、人民銀行:關於加強商業銀行與第三方支付機構合作業務管理的通知(銀監發〔2014〕10號)對商業銀行與第三方支付機構合作業務的提出了具體要求】
6、互聯網保險法規
2011年9月20日,中國保監會發布《中國保險監督管理委員會關於印發<</SPAN>保險代理、經紀公司互聯網保險業務監管辦法(試行)>的通知保監發〔2011〕53號)》,該辦法的制定目的是為了促進保險代理、經紀公司互聯網保險業務的規范健康有序發展,切實保護投保人、被保險人和受益人的合法權益。2012年5月,中國保險監督管理委員會發布《關於提示互聯網保險業務風險的公告》(保監公告[2012]7號),對互聯網保險業進行了向廣大投保人進行了風險提示。此外,2011年4月15日,保監會發布《互聯網保險業務監管規定(徵求意見稿)》,互聯網保險監管規定也將在不久的將來得到進一步完善。
【編者按:2014年初,保監會草擬了《關於規范人身保險公司經營互聯網保險有關問題的通知(徵求意見稿)》並公開徵求意見,亦值得關注】
(轉載於法客帝國,部分內容摘選自湖南青年律師聯合會博客)
⑶ 支付寶的源代碼是什麼
在搜索框輸入:2088,會找到一段以2088開頭的16位數字,這段數字即為支付寶源代碼。
支付寶(中國)網路技術有限公司成立於2004年,是國內的第三方支付平台,致力於為企業和個人提供「簡單、安全、快速、便捷」的支付解決方案。
支寬侍付寶公司從2004年建立開始,始終以「信任」作為產品和服務的核心。旗下有「支付寶」與「支付寶錢包」兩個獨立品牌。自2014年第二季度開始成為當前全球最大的移動支付廠商。
支付寶與國內外180多家銀行以及VISA、MasterCard國際組織等機構建立戰略合作關系,成為金融機構在電子支付領域最為信任的合作夥伴。
2020年2月,尼泊爾央行向支付寶頒發牌照。 7月,支付寶入選區塊鏈戰「疫」優秀方案名單 。10月,支付寶上線 「晚點付」功能。
2013年11月13日,支付寶手機支付用戶超1億,「支付寶錢包」用戶數達1億,支付寶錢包正式宣布成為獨立品牌。
2013年11月30日,12306網站支持支付寶購買火車票。
2013年12月31日,支付寶實名認證用戶超過3億。
2013年,支付寶手機支付完成超過27.8億筆、金額超過9000億元,成為全球最大的移動支付公司。
來老岩自艾瑞咨詢的數據顯示,自2013年第一季度以來,支付寶在移動互聯網支侍巧御付市場份額從67.6%逐步提升至78.4%,居第一。
⑷ 鏂圭淮p2p緗戣捶緋葷粺婧愮爜
浣滀負緗戣捶閲嶉晣鐨勬繁鍦籌紝緇1鏈堝叏鍥界巼鍏堟殏鍋滀簰鑱旂綉閲戣瀺鏂頒紒涓氭敞鍐屽悗錛3鏈堝張鐜囧厛鍙鍋滈栦粯璐峰拰浼楃硅喘鎴褲傛渶榪戝叧浜庢繁鍦沖叕瀹夐儴闂ㄧ綉璐峰鉤鍙扮殑鏂伴椈鍗犳嵁浜嗗悇澶ц儲緇忓獟浣撶殑澶存潯錛屽湀鍐呭湀澶栦竴鐗囧彨濂藉0銆
鍏朵腑錛屼粠涓氳呰や負錛岃繖鏄鏀垮簻瀵圭綉璐峰鉤鍙扮洃綆¤秼涓ョ殑琛ㄧ幇錛屽逛簬淇冭繘緗戣捶琛屼笟淇℃伅鏇村姞鍏寮閫忔槑錛屽敖蹇榪涘叆鏈夊簭鍙戝睍鐘舵佸叿鏈夐噸瑕佹剰涔夈傛垜浠鏈熷緟騫舵㈣繋瀹冿紱鎶曡祫鑰呰や負錛屽皢P2P綰沖叆鐩戠★紝鍙婃椂鏌ュ勬湁闂棰樼殑騫沖彴錛屽皢鍦ㄥ緢澶х▼搴︿笂閬垮厤鎶曡祫鑰呭洜騫沖彴榪濊勬搷浣滄垨璺戣礬鑰岄伃鍙楀法澶х殑璐浜ф崯澶憋紝鍥犳ゅ己鐑堟敮鎸併
鏂瑰穽P2P緗戣捶緋葷粺璁や負錛岄櫎浜嗕笂榪拌傜偣錛屾繁鍦沖競鍏瀹夐儴闂ㄨ繕浠庡叾緗戣捶騫沖彴閲婃斁鍑哄叾浠栦俊鍙鳳細娣卞湷浣滀負緇忔祹鐗瑰尯錛岃兘澶熺巼鍏堣勮寖浜掕仈緗戦噾鋙嶏紝縐鏋佹帰緔㈠拰鎺ㄨ繘閲戣瀺鍒跺害鍒涙柊錛屽皢瀵瑰叾浠栧湴鏂瑰艦鎴愯壇濂界殑紺鴻寖鏁堝簲銆傛垜浠鐩鎬俊鍏朵粬鐪佸競寰堝揩涔熶細妯′豢瀛︿範錛岀劧鍚庨檰緇瀹炴柦緗戣捶鐨勭洃綆℃斂絳栵紝鍒跺畾鑷宸辯殑鐩戠$粏鍒欍傝繖縐嶈仈鍔ㄥ皢鏇村揩鏇村ソ鍦版帹鍔ㄤ簰鑱旂綉閲戣瀺鐨勮勮寖鍙戝睍銆
鎹鎮夛紝鍦ㄦ繁鍦沖ぇ浼楀彂緇欑忕敯P2P緗戣捶騫沖彴鐨勩婁簰鑱旂綉鍊熻捶騫沖彴鍏鍙稿熀紜淇℃伅鐧昏拌〃銆嬩腑錛岃佹眰鐧昏扮殑淇℃伅涓嶄粎鍖呮嫭騫沖彴鐨勪笟鍔′俊鎮銆佽偂涓滀俊鎮銆佷富钀ュご瀵鎬俊鎮絳夊熀鏈淇℃伅錛岃繕鍖呮嫭鐢ㄦ埛鏁伴噺銆佹敹嬈鵑噾棰濄佹爣鐨勭被鍨嬬瓑涓氬姟淇℃伅錛屼互鍙婃敮浠樿處鍙楓佹湇鍔″櫒渚涘簲鍟嗗悕縐扮瓑鎵樼¤繍钀ヤ俊鎮錛屾湁鍔╀簬鍏瀹夐儴闂ㄥぇ鑷翠簡瑙e鉤鍙拌嚜钀ヨ祫閲戞槸鍚﹂殧紱伙紝鏄鍚﹁劇珛浜嗚祫閲戞睜銆傝繖鏍蜂竴鏃﹁祫閲戣漿鍏ュ鉤鍙幫紝灝卞彲浠ユ彁鍓嶅彂鐜幫紝浠庤屼負鍙婃椂澶勭疆璧㈠緱鏃墮棿銆
鎵浠ヨ繖嬈℃繁鍦沖叕瀹夐儴闂ㄤ富鍔ㄤ粙鍏ワ紝鏌ユ槑P2P緗戣捶騫沖彴鏄鍚︽秹瀚屽瓨鍦ㄨ祫閲戞睜銆備篃鍐嶆¤瘉鏄庝簡鏂瑰穽P2P緗戣捶緋葷粺涔嬪墠鏇懼彂鏂囧垎鏋愶紝緗戣捶騫沖彴鏈夊繀瑕佸疄琛岄摱琛屽瓨綆★紝鑰屼笖瓚婃棭瓚婂ソ銆傚彧鏈夎繖鏍鳳紝鎵嶈兘寰堝ソ鐨勯槻姝㈠鉤鍙扮佽嚜鎸鐢ㄥ㈡埛璧勯噾錛屼粠鑰岄伩鍏嶄笉浠樻俱佸嵎嬈捐窇璺絳夋伓鎬т簨浠剁殑鍙戠敓銆
鏂筆2P緗戣捶緋葷粺錛屽浗鍐呴嗗厛鐨勮蔣浠跺紑鍙戝晢錛屾嫢鏈夎繎鍏騫翠簰鑱旂綉浜у搧鐮斿彂緇忛獙銆傛柟浠モ滄妧鏈椹卞姩鍟嗕笟鍒涙柊鈥濅負瀹楁棬錛岀Н鏋佸垎鏋愯屼笟鍙戝睍瓚嬪娍錛屾牴鎹鍒嗘瀽緇撴灉璁捐″崌綰т駭鍝侊紝浠ヨ嚜韜鎶鏈瀹炲姏鎺ㄥ姩琛屼笟鍒涙柊鍙戝睍銆
鐩稿叧闂絳旓細鏂圭淮p2p鍊熻捶3.5錛屽畨瑁呭悗棣栭〉璁塊棶涓嶄簡錛
鐜澧冮棶棰樸傜湅涓涓婸HP閰嶇疆鍜岀幆澧冨惂銆傚疄鍦ㄤ笉琛岋紝浣犲氨寮勪釜鐜澧冨寘鍟ョ殑銆
鐩稿叧闂絳旓細5000瀹禤2P緗戣捶鏈烘瀯宸插叏閮ㄥ仠涓氾紒鍊熺殑閽辮繕鍚楋紵閮芥湁鍝浜涘鉤鍙幫紵
2022騫3鏈15鏃ワ紝閾朵繚鐩戜細鎸夌収瑕佹眰錛屽叕甯僷2p榪濊勭綉緇滃熻捶騫沖彴蹇呴』鍦ㄤ粖騫村叏閮ㄦ竻閫瀹屻
5000澶氬惰繚瑙勭綉緇滃熻捶騫沖彴鍏甯冨悕鍗曞備笅錛
⑸ 以太坊源碼分析--p2p節點發現
節點發現功能主要涉及 Server Table udp 這幾個數據結構,它們有獨自的事件響應循環,節點發現功能便是它們互相協作完成的。其中,每個以太坊客戶端啟動後都會在本地運行一個 Server ,並將網路拓撲中相鄰的節點視為 Node ,而 Table 是 Node 的容器, udp 則是負責維持底層的連接。下面重點描述它們中重要的欄位和事件循環處理的關鍵部分。
PrivateKey - 本節點的私鑰,用於與其他節點建立時的握手協商
Protocols - 支持的所有上層協議
StaticNodes - 預設的靜態 Peer ,節點啟動時會首先去向它們發起連接,建立鄰居關系
newTransport - 下層傳輸層實現,定義握手過程中的數據加密解密方式,默認的傳輸層實現是用 newRLPX() 創建的 rlpx ,這不是本文的重點
ntab - 典型實現是 Table ,所有 peer 以 Node 的形式存放在 Table
ourHandshake - 與其他節點建立連接時的握手信息,包含本地節點的版本號以及支持的上層協議
addpeer - 連接握手完成後,連接過程通過這個通道通知 Server
Server 的監聽循環,啟動底層監聽socket,當收到連接請求時,Accept後調用 setupConn() 開始連接建立過程
Server的主要事件處理和功能實現循環
Node 唯一表示網路上的一個節點
IP - IP地址
UDP/TCP - 連接使用的UDP/TCP埠號
ID - 以太坊網路中唯一標識一個節點,本質上是一個橢圓曲線公鑰(PublicKey),與 Server 的 PrivateKey 對應。一個節點的IP地址不一定是固定的,但ID是唯一的。
sha - 用於節點間的距離計算
Table 主要用來管理與本節點與其他節點的連接的建立更新刪除
bucket - 所有 peer 按與本節點的距離遠近放在不同的桶(bucket)中,詳見之後的 節點維護
refreshReq - 更新 Table 請求通道
Table 的主要事件循環,主要負責控制 refresh 和 revalidate 過程。
refresh.C - 定時(30s)啟動Peer刷新過程的定時器
refreshReq - 接收其他線程投遞到 Table 的 刷新Peer連接 的通知,當收到該通知時啟動更新,詳見之後的 更新鄰居關系
revalidate.C - 定時重新檢查以連接節點的有效性的定時器,詳見之後的 探活檢測
udp 負責節點間通信的底層消息控制,是 Table 運行的 Kademlia 協議的底層組件
conn - 底層監聽埠的連接
addpending - udp 用來接收 pending 的channel。使用場景為:當我們向其他節點發送數據包後(packet)後可能會期待收到它的回復,pending用來記錄一次這種還沒有到來的回復。舉個例子,當我們發送ping包時,總是期待對方回復pong包。這時就可以將構造一個pending結構,其中包含期待接收的pong包的信息以及對應的callback函數,將這個pengding投遞到udp的這個channel。 udp 在收到匹配的pong後,執行預設的callback。
gotreply - udp 用來接收其他節點回復的通道,配合上面的addpending,收到回復後,遍歷已有的pending鏈表,看是否有匹配的pending。
Table - 和 Server 中的ntab是同一個 Table
udp 的處理循環,負責控制消息的向上遞交和收發控制
udp 的底層接受數據包循環,負責接收其他節點的 packet
以太坊使用 Kademlia 分布式路由存儲協議來進行網路拓撲維護,了解該協議建議先閱讀 易懂分布式 。更權威的資料可以查看 wiki 。總的來說該協議:
源碼中由 Table 結構保存所有 bucket , bucket 結構如下
節點可以在 entries 和 replacements 互相轉化,一個 entries 節點如果 Validate 失敗,那麼它會被原本將一個原本在 replacements 數組的節點替換。
有效性檢測就是利用 ping 消息進行探活操作。 Table.loop() 啟動了一個定時器(0~10s),定期隨機選擇一個bucket,向其 entries 中末尾的節點發送 ping 消息,如果對方回應了 pong ,則探活成功。
Table.loop() 會定期(定時器超時)或不定期(收到refreshReq)地進行更新鄰居關系(發現新鄰居),兩者都調用 doRefresh() 方法,該方法對在網路上查找離自身和三個隨機節點最近的若干個節點。
Table 的 lookup() 方法用來實現節點查找目標節點,它的實現就是 Kademlia 協議,通過節點間的接力,一步一步接近目標。
當一個節點啟動後,它會首先向配置的靜態節點發起連接,發起連接的過程稱為 Dial ,源碼中通過創建 dialTask 跟蹤這個過程
dialTask表示一次向其他節點主動發起連接的任務
在 Server 啟動時,會調用 newDialState() 根據預配置的 StaticNodes 初始化一批 dialTask , 並在 Server.run() 方法中,啟動這些這些任務。
Dial 過程需要知道目標節點( dest )的IP地址,如果不知道的話,就要先使用 recolve() 解析出目標的IP地址,怎麼解析?就是先要用藉助 Kademlia 協議在網路中查找目標節點。
當得到目標節點的IP後,下一步便是建立連接,這是通過 dialTask.dial() 建立連接
連接建立的握手過程分為兩個階段,在在 SetupConn() 中實現
第一階段為 ECDH密鑰建立 :
第二階段為協議握手,互相交換支持的上層協議
如果兩次握手都通過,dialTask將向 Server 的 addpeer 通道發送 peer 的信息
⑹ scrm緋葷粺婧愮爜鏈夊摢浜涙瘮杈冨煎緱璐涔扮殑錛
ECCRM鍊煎緱璐涔般鐐瑰嚮浜嗚В浜у搧scrm緋葷粺婧愮爜閫夋嫨鐨勬爣鍑嗭細
1銆佹簮鐮佸畨鍏錛岃川閲忛珮
闅忕潃浜掕仈緗戠殑涓嶆柇嫻侀氾紝鏈夊緢澶歴crm緋葷粺婧愮爜鍦ㄧ綉涓婃祦閫氾紝騫惰涓嶅皯浜轟慨鏀瑰拰浣跨敤錛屾墍浠ュ艱嚧榪欎簺scrm緋葷粺婧愮爜鐨勮川閲忓拰瀹夊叏鎬ч兘闈炲父宸銆
浼佷笟瑕佹兂寰楀埌鏇村ソ鐨剆crm緋葷粺鎼寤烘晥鏋滐紝榪樻槸寤鴻鍘婚夋嫨姝h勩佸彲闈犵殑scrm緋葷粺婧愮爜錛岃繖鏍峰畨鍏ㄦу拰scrm緋葷粺瀹氬埗璐ㄩ噺閮芥洿鍔犳湁淇濋殰銆
2銆佹湇鍔″晢鏈嶅姟鎯呭喌
鏈嶅姟鍟嗚兘澶熸彁渚涗笓涓氭湇鍔★紝榪欐槸闈炲父閲嶈佺殑涓鐐逛紭鍔褲傚洜涓哄緢澶氫紒涓氳嚜宸卞苟涓嶆噦鎶鏈錛屽熀鏈涓婇兘鏄闈犳湇鍔″晢鎻愪緵鐨勬妧鏈鍜岃繍钀ユ敮鎸佹潵鎼寤簊crm緋葷粺鐨勩
鎵浠ヤ紒涓氬湪閫夋嫨scrm緋葷粺婧愮爜鐨勬椂鍊欙紝涓瀹氳侀夋嫨鍝嶅簲鍙婃椂錛屽苟鐩鍙浠ユ彁渚涗笓涓氱殑鎶鏈榪愯惀鏂規堢殑寮鍙戝晢錛岃繖浼氬ぇ澶ц妭鐪佷紒涓氱殑鏃墮棿鎴愭湰銆
鏈夐棶棰樻㈣繋鍜ㄨ銆侲C鏄涓嬈懼紑綆卞嵆鐢ㄧ殑鍏ㄥ満鏅疌RM緋葷粺錛屽埄鐢ㄧぞ浜ゅ寲銆佹櫤鑳藉寲鎶鏈甯浼佷笟鎵撻氳幏瀹-鎴愪氦-澶嶈喘鍏ㄦ祦紼嬶紝璁╁競鍦恆侀攢鍞銆佸㈡湇絳夐儴闂ㄦ棤緙濊繛鎺ワ紝瀹炵幇浠ュ㈡埛涓轟腑蹇冪殑涓浣撳寲鍗忓悓錛屽叏闈㈡彁鍗囬攢鍞涓氱嘩銆傜洰鍓嶏紝EC宸插湪鏁欒偛銆侀噾鋙嶃佷紒鏈嶃佺戞妧銆佺編涓氥侀浂鍞絳夎屼笟鏈嶅姟浜嗚秴榪3涓囧跺㈡埛錛屾瘡澶╂湁鐧句竾綰ч攢鍞姝e湪浣跨敤ECCRM錛屼負浼佷笟澧炲姞鍗冧竾鏉″晢鏈猴紝鏈夋暟鐧句竾絎斾氦鏄撻氳繃EC浜х敓銆