国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用Java開(kāi)發(fā)一個(gè)自己的區(qū)塊鏈產(chǎn)品、聯(lián)盟鏈

這篇具有很好參考價(jià)值的文章主要介紹了使用Java開(kāi)發(fā)一個(gè)自己的區(qū)塊鏈產(chǎn)品、聯(lián)盟鏈。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

起因

來(lái)源:蝦庫(kù)網(wǎng) xiaqo.com

公司要開(kāi)發(fā)區(qū)塊鏈,原本是想著使用以太坊開(kāi)發(fā)個(gè)合約或者是使用個(gè)第三方平臺(tái)來(lái)做,后來(lái)發(fā)現(xiàn)都不符合業(yè)務(wù)需求。原因很簡(jiǎn)單,以太坊、超級(jí)賬本等平臺(tái)都是做共享賬本的,有代幣和挖礦等模塊。而我們需要的就是數(shù)家公司組個(gè)聯(lián)盟,來(lái)共同見(jiàn)證、記錄一些不可篡改的交互信息,如A公司給B公司發(fā)了一個(gè)xxx請(qǐng)求,B公司響應(yīng)了什么什么。其實(shí)要的就是一個(gè)分布式數(shù)據(jù)庫(kù),而且性能要好,不能像比特幣那種10分鐘才生成一個(gè)區(qū)塊。我們要的更多的是數(shù)據(jù)庫(kù)的性能,和區(qū)塊鏈的一些特性。

經(jīng)過(guò)

項(xiàng)目于18年3月初開(kāi)始研發(fā),歷時(shí)一月發(fā)布了第一版。主要做了存儲(chǔ)模塊、加密模塊、網(wǎng)絡(luò)通信、PBFT共識(shí)算法、公鑰私鑰、區(qū)塊內(nèi)容解析落地入庫(kù)等。已經(jīng)初步具備了區(qū)塊鏈的基本特征,但在merkle tree、智能合約以及其他的一些細(xì)節(jié)上,尚不到位。

希望高手不吝賜教,集思廣益,提出見(jiàn)解或方案,來(lái)做一個(gè)區(qū)塊鏈平臺(tái)項(xiàng)目,適合更多的區(qū)塊鏈場(chǎng)景,而不僅僅是賬本和各種忽悠人的代幣。

理想中的區(qū)塊鏈平臺(tái):

項(xiàng)目說(shuō)明

主要有存儲(chǔ)模塊、網(wǎng)絡(luò)模塊、PBFT共識(shí)算法、加密模塊、區(qū)塊解析入庫(kù)等。

該項(xiàng)目屬于"鏈",非"幣"。不涉及虛擬幣和挖礦。

存儲(chǔ)模塊

Block內(nèi)存儲(chǔ)的是類(lèi)Sql語(yǔ)句。聯(lián)盟間預(yù)先設(shè)定好符合業(yè)務(wù)場(chǎng)景需要的數(shù)據(jù)庫(kù)表結(jié)構(gòu),然后設(shè)定好各個(gè)節(jié)點(diǎn)對(duì)表的操作權(quán)限(ADD,UPDATE,DELETE),將來(lái)各個(gè)節(jié)點(diǎn)就可以按照自己被允許的權(quán)限,進(jìn)行Sql語(yǔ)句的編寫(xiě),并打包至Block中,再全網(wǎng)廣播,等待全網(wǎng)校驗(yàn)簽名、權(quán)限等信息的合法性。如果Block合法,則進(jìn)入PBFT共識(shí)算法機(jī)制,各節(jié)點(diǎn)開(kāi)始按照PrePrepare、Prepare、Commit等狀態(tài)依次執(zhí)行,直到2f+1個(gè)commit后,開(kāi)始進(jìn)行本地生成新區(qū)塊。新區(qū)塊生成后,各節(jié)點(diǎn)進(jìn)行區(qū)塊內(nèi)容解析,并落地入庫(kù)的操作。

場(chǎng)景就比較廣泛了,可以設(shè)定不同的表結(jié)構(gòu),或者多個(gè)表,進(jìn)而能完成各自類(lèi)型信息的存儲(chǔ)。譬如商品溯源,從生產(chǎn)商、運(yùn)輸、經(jīng)銷(xiāo)商、消費(fèi)者等,每個(gè)環(huán)節(jié)都可以對(duì)某個(gè)商品進(jìn)行ADD信息的操作。

存儲(chǔ)采用的是key-value數(shù)據(jù)庫(kù)rocksDB,了解比特幣的知道,比特幣用的是levelDB,都是類(lèi)似的東西。可以通過(guò)修改yml中db.levelDB為true,db.RocksDB為false來(lái)動(dòng)態(tài)切換使用哪個(gè)數(shù)據(jù)庫(kù)。

結(jié)構(gòu)類(lèi)似于sql的語(yǔ)句,如ADD(增刪改) tableName(表名)ID(主鍵) JSON(該記錄的json)。這里設(shè)置了回滾的邏輯,也就是當(dāng)你做了一個(gè)ADD操作時(shí),會(huì)同時(shí)存儲(chǔ)一條Delete語(yǔ)句,以用于將來(lái)可能的回滾操作。

網(wǎng)絡(luò)模塊

網(wǎng)絡(luò)層,采用的是各節(jié)點(diǎn)互相長(zhǎng)連接、斷線重連,然后維持心跳包。網(wǎng)絡(luò)框架使用的是t-io,也是oschina的知名開(kāi)源項(xiàng)目。t-io采用了AIO的方式,在大量長(zhǎng)連接情況下性能優(yōu)異,資源占用也很少,并且具備group功能,特別適合于做多個(gè)聯(lián)盟鏈的SaaS平臺(tái)。并且包含了心跳包、斷線重連、retry等優(yōu)秀功能。

在項(xiàng)目中,每個(gè)節(jié)點(diǎn)即是server,又是client,作為server則被其他的N-1個(gè)節(jié)點(diǎn)連接,作為client則去連接其他N-1個(gè)節(jié)點(diǎn)的server。同一個(gè)聯(lián)盟,設(shè)定一個(gè)Group,每次發(fā)消息,直接調(diào)用sendGroup方法即可。

但仍需要注意的是,由于項(xiàng)目采用了pbft共識(shí)算法,在達(dá)到共識(shí)的過(guò)程中,會(huì)產(chǎn)生N的3次方數(shù)量的網(wǎng)絡(luò)通信,當(dāng)節(jié)點(diǎn)數(shù)量較多,如已達(dá)到100時(shí),每次共識(shí)將會(huì)給網(wǎng)絡(luò)帶來(lái)沉重的負(fù)擔(dān)。這是算法本身的限制。

共識(shí)模塊PBFT

分布式共識(shí)算法是分布式系統(tǒng)的核心,常見(jiàn)的有Paxos、pbft、bft、raft、pow等。區(qū)塊鏈中常見(jiàn)的是POW、POS、DPOS、pbft等。

比特幣采用了POW工作量證明,需要耗費(fèi)大量的資源進(jìn)行hash運(yùn)算(挖礦),由礦工來(lái)完成生成Block的權(quán)利。其他多是采用選舉投票的方式來(lái)決定誰(shuí)來(lái)生成Block。共同的特點(diǎn)就是只能特定的節(jié)點(diǎn)來(lái)生成區(qū)塊,然后廣播給其他人。

區(qū)塊鏈分如下三類(lèi):

私有鏈:這是指在企業(yè)內(nèi)部部署的區(qū)塊鏈應(yīng)用,所有節(jié)點(diǎn)都是可以信任的,不存在惡意節(jié)點(diǎn);

聯(lián)盟鏈:半封閉生態(tài)的交易網(wǎng)絡(luò),存在不對(duì)等信任的節(jié)點(diǎn),可能存在惡意節(jié)點(diǎn);

公有鏈:開(kāi)放生態(tài)的交易網(wǎng)絡(luò),為聯(lián)盟鏈和私有鏈等提供全球交易網(wǎng)絡(luò)。

由于私有鏈?zhǔn)欠忾]生態(tài)的存儲(chǔ)系統(tǒng),因此采用Paxos類(lèi)共識(shí)算法(過(guò)半同意)可以達(dá)到最優(yōu)的性能;聯(lián)盟鏈有半公開(kāi)半開(kāi)放特性,因此拜占庭容錯(cuò)是適合選擇之一,例如IBM超級(jí)賬本項(xiàng)目;對(duì)于公有鏈來(lái)說(shuō),這種共識(shí)算法的要求已經(jīng)超出了普通分布式系統(tǒng)構(gòu)建的范疇,再加上交易的特性,因此需要引入更多的安全考慮。所以比特幣的POW是個(gè)非常好的選擇。

我們這里可選的是raft和pbft,分別做私鏈和聯(lián)盟鏈,項(xiàng)目中我使用了修改過(guò)的pbft共識(shí)算法。

先來(lái)簡(jiǎn)單了解pbft:

(1)從全網(wǎng)節(jié)點(diǎn)選舉出一個(gè)主節(jié)點(diǎn)(Leader),新區(qū)塊由主節(jié)點(diǎn)負(fù)責(zé)生成。

(2)每個(gè)節(jié)點(diǎn)把客戶端發(fā)來(lái)的交易向全網(wǎng)廣播,主節(jié)點(diǎn)將從網(wǎng)絡(luò)收集到需放在新區(qū)塊內(nèi)的多個(gè)交易排序后存入列表,并將該列表向全網(wǎng)廣播。

(3)每個(gè)節(jié)點(diǎn)接收到交易列表后,根據(jù)排序模擬執(zhí)行這些交易。所有交易執(zhí)行完后,基于交易結(jié)果計(jì)算新區(qū)塊的哈希摘要,并向全網(wǎng)廣播。

(4)如果一個(gè)節(jié)點(diǎn)收到的2f(f為可容忍的拜占庭節(jié)點(diǎn)數(shù))個(gè)其它節(jié)點(diǎn)發(fā)來(lái)的摘要都和自己相等,就向全網(wǎng)廣播一條commit消息。

(5)如果一個(gè)節(jié)點(diǎn)收到2f+1條(包括自己)commit消息,即可提交新區(qū)塊到本地的區(qū)塊鏈和狀態(tài)數(shù)據(jù)庫(kù)。

(6)客戶端收到f + 1個(gè)成功(即便有f個(gè)失敗、再f個(gè)惡意返回的錯(cuò)誤信息,f + 1個(gè)正確的也是多數(shù)派)的返回,即可認(rèn)為該次寫(xiě)入請(qǐng)求是成功的。

可以看到,傳統(tǒng)的pbft是需要先選舉出leader的,然后由leader來(lái)搜集交易,并打包,然后廣播出去。然后各個(gè)節(jié)點(diǎn)開(kāi)始對(duì)新Block進(jìn)行校驗(yàn)、投票、累積commit數(shù)量,最后落地。

而我這里對(duì)pbft做了修改,這是一個(gè)聯(lián)盟,各個(gè)節(jié)點(diǎn)是平等的,而且性能要高。所以我不想讓每個(gè)節(jié)點(diǎn)都生成一個(gè)指令后,發(fā)給其他節(jié)點(diǎn),再大家選舉出一個(gè)節(jié)點(diǎn)來(lái)搜集網(wǎng)絡(luò)上的指令組合再生成Block,太復(fù)雜了,而且又存在了leader節(jié)點(diǎn)的故障隱患。

我對(duì)pbft的修改是,不需要選擇leader,任何節(jié)點(diǎn)都可以構(gòu)建Block,然后全網(wǎng)廣播。其他節(jié)點(diǎn)收到該Block請(qǐng)求時(shí)即進(jìn)入Pre-Prepare狀態(tài),校驗(yàn)格式、hash、簽名、和table的權(quán)限,校驗(yàn)通過(guò)后,進(jìn)入Prepare狀態(tài),并全網(wǎng)廣播狀態(tài)。待自己累積的各節(jié)點(diǎn)Prepare的數(shù)量大于2f+1時(shí),進(jìn)入commit狀態(tài),并全網(wǎng)廣播該狀態(tài)。待自己累積的各節(jié)點(diǎn)Commit的數(shù)量大于2f+1時(shí),認(rèn)為已達(dá)成共識(shí),將Block加入?yún)^(qū)塊鏈中,然后執(zhí)行Block中sql語(yǔ)句。

很明顯,和有l(wèi)eader時(shí)相比,缺少了順序的概念。有l(wèi)eader時(shí)能保證Block的順序,當(dāng)有并發(fā)生成Block的需求時(shí),leader能按照順序進(jìn)行廣播。譬如大家都已經(jīng)到number=5的區(qū)塊了,然后需要再生成2個(gè),有l(wèi)eader時(shí),則會(huì)按照6、7的順序來(lái)生成。而沒(méi)有l(wèi)eader時(shí),則可能發(fā)生多節(jié)點(diǎn)同時(shí)生成6的情況。為了避免分叉,我做了一些處理,具體的可以在代碼里看實(shí)現(xiàn)邏輯。

區(qū)塊信息查詢

各節(jié)點(diǎn)通過(guò)執(zhí)行相同的sql來(lái)實(shí)現(xiàn)一個(gè)同步的sqlite數(shù)據(jù)庫(kù)(或mysql等其他關(guān)系型數(shù)據(jù)庫(kù)),將來(lái)對(duì)數(shù)據(jù)的查詢都是直接查詢sqlite,性能高于傳統(tǒng)的區(qū)塊鏈項(xiàng)目。

由于各個(gè)節(jié)點(diǎn)都能生成Block,在高并發(fā)下會(huì)出現(xiàn)區(qū)塊不一致的情況。如果因?yàn)槟承┰驅(qū)е骆湻植媪?,也提供了回滾機(jī)制,sql可以回滾。原理也很簡(jiǎn)單,你ADD一個(gè)數(shù)據(jù)時(shí),我會(huì)在區(qū)塊里同時(shí)記錄兩個(gè)指令,一個(gè)是ADD,一個(gè)是回滾用的DELETE。同理,UPDATE時(shí)也會(huì)保存原來(lái)的舊數(shù)據(jù)。區(qū)塊里的sql落地,譬如順序執(zhí)行1-10個(gè)指令,回滾時(shí)就是從10-1執(zhí)行回滾指令。

每個(gè)節(jié)點(diǎn)都會(huì)記錄自己已經(jīng)同步了的區(qū)塊的值,以便隨時(shí)進(jìn)行sql落地入庫(kù)。

對(duì)區(qū)塊鏈信息的查詢,那就簡(jiǎn)單了,直接做數(shù)據(jù)庫(kù)查詢即可。相比于比特幣需要檢索整個(gè)區(qū)塊鏈的索引樹(shù),速度和方便性就大不同了。

簡(jiǎn)單使用說(shuō)明

使用方法:先下載 md_blockchain_manager項(xiàng)目,然后導(dǎo)入工程里的sql數(shù)據(jù)庫(kù)文件,修改application.yml數(shù)據(jù)庫(kù)配置,最后啟動(dòng)manager項(xiàng)目。

然后修改md_blockchain中application.yml里的name、appid和manager項(xiàng)目數(shù)據(jù)庫(kù)里的某個(gè)值對(duì)應(yīng),作為一個(gè)節(jié)點(diǎn)。如果有多個(gè)節(jié)點(diǎn),則某個(gè)節(jié)點(diǎn)都和數(shù)據(jù)庫(kù)里對(duì)應(yīng),填寫(xiě)各節(jié)點(diǎn)的ip。managerUrl就是manager項(xiàng)目的url,讓該項(xiàng)目能訪問(wèn)到manager項(xiàng)目。

在md_blockchian項(xiàng)目啟動(dòng)時(shí),在ClientStarter類(lèi)中可見(jiàn),啟動(dòng)時(shí)會(huì)從manager項(xiàng)目拉取所有節(jié)點(diǎn)的數(shù)據(jù),并進(jìn)行連接。如果自己的ip和appId等不在manager數(shù)據(jù)庫(kù)中,則無(wú)法啟動(dòng)。

可以通過(guò)訪問(wèn)localhost:8080/block?content=1來(lái)生成一個(gè)區(qū)塊。正常使用時(shí)至少要啟動(dòng)4個(gè)節(jié)點(diǎn)才行,否則無(wú)法達(dá)成共識(shí),PBFT要求2f+1個(gè)節(jié)點(diǎn)同意才能生成Block。為了方便測(cè)試,可以直接修改pbftSize的返回值為0,這樣就能自己一個(gè)節(jié)點(diǎn)玩起來(lái)了。如果有多個(gè)節(jié)點(diǎn),在生成Block后就會(huì)發(fā)現(xiàn)別的節(jié)點(diǎn)也會(huì)自動(dòng)同步自己新生成的Block。目前代碼里默認(rèn)設(shè)置了一張表message,里面也只有一個(gè)字段content,相當(dāng)于一個(gè)簡(jiǎn)單的區(qū)塊鏈記事本。當(dāng)有4個(gè)節(jié)點(diǎn)時(shí),可以通過(guò)并發(fā)訪問(wèn)其中的幾個(gè)來(lái)同時(shí)生成Block進(jìn)行測(cè)試,看是否會(huì)分叉。還可以關(guān)停其中的一個(gè),看其他的三個(gè)是否能達(dá)成共識(shí)(拜占庭最多容許f個(gè)節(jié)點(diǎn)故障,4個(gè)節(jié)點(diǎn)允許1個(gè)故障),恢復(fù)故障的那個(gè),看是否能夠同步其他正常節(jié)點(diǎn)的Block??梢赃M(jìn)行各種測(cè)試,歡迎提bug。

可以通過(guò)localhost:8080/block/sqlite來(lái)查看sqlite里存的數(shù)據(jù),就是根據(jù)Block里的sql語(yǔ)句執(zhí)行后的結(jié)果。

我把項(xiàng)目部署到docker里了,共啟動(dòng)4個(gè)節(jié)點(diǎn),如圖:

此外還有高并發(fā)情況下,各節(jié)點(diǎn)同時(shí)生成Block,系統(tǒng)處理共識(shí)、保證區(qū)塊鏈不分叉的一些測(cè)試。

這個(gè)生成區(qū)塊的接口是寫(xiě)好用來(lái)測(cè)試的,正常走的流程是調(diào)用instuction接口,先生產(chǎn)符合自己需求的指令,然后組合多個(gè)指令,調(diào)用BlockController里的生成區(qū)塊接口。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796185.html

到了這里,關(guān)于使用Java開(kāi)發(fā)一個(gè)自己的區(qū)塊鏈產(chǎn)品、聯(lián)盟鏈的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • DAPP開(kāi)發(fā)成本為何差別如此之大?六年區(qū)塊鏈產(chǎn)品經(jīng)理告訴你

    經(jīng)過(guò)這幾年移動(dòng)互聯(lián)網(wǎng)以及智能手機(jī)的普及,相信幾乎所有人都知道了什么是APP。那么什么是 DAPP 呢 ? ?為什么要開(kāi)發(fā)DAPP而不是APP? 以及 如何開(kāi)發(fā)一個(gè)DAPP? DAPP開(kāi)發(fā)成本為何差別如此之大? 本文 將為大家解答一下。

    2024年02月04日
    瀏覽(24)
  • 11. Fabric2.2 區(qū)塊鏈農(nóng)產(chǎn)品溯源系統(tǒng) - 智能合約開(kāi)發(fā)-1

    智能合約與業(yè)務(wù)邏輯關(guān)聯(lián)度高,承載大量業(yè)務(wù)邏輯,本小節(jié)教大家搭建智能合約開(kāi)發(fā)環(huán)境GoLand,并編寫(xiě)合約打包腳本。 作者在windows電腦安裝ubuntu18.04版本虛擬機(jī)(vmware),Linux環(huán)境也有Goland版本,可用性絲毫不差,所有的區(qū)塊鏈開(kāi)發(fā)在Linux環(huán)境進(jìn)行。 官方可以下載,要么評(píng)估

    2023年04月20日
    瀏覽(18)
  • dYdX 在 Cosmos 上部署自己的區(qū)塊鏈、v4 將擁有一個(gè)完全去中心化的

    dYdX 在 Cosmos 上部署自己的區(qū)塊鏈、v4 將擁有一個(gè)完全去中心化的

    已建立的 DeFi 項(xiàng)目通常不會(huì)轉(zhuǎn)而構(gòu)建獨(dú)立的區(qū)塊鏈。 但這正是專(zhuān)注于衍生品的去中心化交易所 dYdX 已經(jīng)發(fā)布了開(kāi)發(fā)自己的區(qū)塊鏈的計(jì)劃。 dYdX 鏈將使用 Cosmos SDK 和 Tendermint Proof-of-Stake 共識(shí)協(xié)議構(gòu)建。這些技術(shù)是 Cosmos 生態(tài)系統(tǒng)的一部分,COSmos,生態(tài)系統(tǒng)是特定應(yīng)用區(qū)塊鏈的互

    2023年04月09日
    瀏覽(24)
  • 區(qū)塊鏈——公有鏈,私有鏈,聯(lián)盟鏈

    區(qū)塊鏈——公有鏈,私有鏈,聯(lián)盟鏈

    ????????全網(wǎng)公開(kāi),無(wú)用戶授權(quán)機(jī)制的區(qū)塊鏈,稱(chēng)為公有鏈。 與傳統(tǒng)分布式系統(tǒng)的C/S , B/S或三層架構(gòu)不同,比特幣系統(tǒng)基于P2P網(wǎng)絡(luò),所有節(jié)點(diǎn)對(duì)等,且都運(yùn)行同樣的節(jié)點(diǎn)程序。 ????????節(jié)點(diǎn)程序總體上分為兩部分:一部分是 前臺(tái)程序 ,包括錢(qián)包或圖形化界面;另一部

    2024年04月27日
    瀏覽(21)
  • 實(shí)戰(zhàn)教程:如何使用觸手AI來(lái)設(shè)計(jì)自己的產(chǎn)品圖

    實(shí)戰(zhàn)教程:如何使用觸手AI來(lái)設(shè)計(jì)自己的產(chǎn)品圖

    在這個(gè)充滿創(chuàng)新和科技的時(shí)代,人工智能(AI)已經(jīng)成為我們生活中不可或缺的一部分。它不僅改變了我們的生活方式,也正在改變我們的創(chuàng)作方式。今天,我將向你介紹如何使用AI進(jìn)行產(chǎn)品設(shè)計(jì)。 首先,讓我們來(lái)理解一下什么是AI繪畫(huà)。簡(jiǎn)單來(lái)說(shuō),AI繪畫(huà)是一種使用人工智能

    2024年01月17日
    瀏覽(24)
  • 區(qū)塊鏈的未來(lái):公鏈VS聯(lián)盟鏈

    區(qū)塊鏈的未來(lái):公鏈VS聯(lián)盟鏈

    早科技 音頻: 00:00 09:47 區(qū)塊鏈在歷經(jīng)這幾年的發(fā)展后,到現(xiàn)在已經(jīng)有了不少成果產(chǎn)出、不少技術(shù)積累,也在一些行業(yè)有成熟的落地項(xiàng)目。而在區(qū)塊鏈的起步過(guò)程中,同樣將區(qū)塊鏈作為國(guó)家戰(zhàn)略的中國(guó)和美國(guó),對(duì)于區(qū)塊鏈的發(fā)展和應(yīng)用的側(cè)重卻并不相同。 當(dāng)然,想要在一篇文

    2024年02月03日
    瀏覽(23)
  • 【自己開(kāi)發(fā)小程序】自己怎么開(kāi)發(fā)一個(gè)小程序呢?

    【自己開(kāi)發(fā)小程序】自己怎么開(kāi)發(fā)一個(gè)小程序呢?

    如何自己開(kāi)發(fā)小程序?這是很多創(chuàng)業(yè)者甚至普通人的困惑。小程序不知道什么時(shí)候慢慢壟斷了我們的生活。成為我們不可或缺的一部分。很多時(shí)候,當(dāng)我們點(diǎn)奶茶掃自行車(chē)掃充電寶的時(shí)候,我們會(huì)第一時(shí)間想到小程序,甚至當(dāng)我們坐地鐵掛號(hào)看電影的時(shí)候,我們會(huì)第一時(shí)間被

    2024年02月11日
    瀏覽(36)
  • 【java爬蟲(chóng)】使用selenium獲取某寶聯(lián)盟淘口令

    【java爬蟲(chóng)】使用selenium獲取某寶聯(lián)盟淘口令

    上一篇文章我們已經(jīng)介紹過(guò)使用selenium獲取優(yōu)惠券基本信息的方法 (15條消息) 【java爬蟲(chóng)】使用selenium爬取優(yōu)惠券_haohulala的博客-CSDN博客 本文將在上一篇文章的基礎(chǔ)上更進(jìn)一步,獲取每個(gè)優(yōu)惠券的淘口令,畢竟我們只有復(fù)制淘口令才能在APP里面獲取優(yōu)惠券嘛 獲取淘口令的方法也

    2024年02月15日
    瀏覽(18)
  • 區(qū)塊鏈商用案例:網(wǎng)間結(jié)算聯(lián)盟鏈建設(shè)實(shí)戰(zhàn)

    區(qū)塊鏈商用案例:網(wǎng)間結(jié)算聯(lián)盟鏈建設(shè)實(shí)戰(zhàn)

    導(dǎo)讀: “近日,中國(guó)移動(dòng)與中國(guó)聯(lián)通在構(gòu)建跨運(yùn)營(yíng)商區(qū)塊鏈公共基礎(chǔ)設(shè)施建設(shè)上取得重大突破,雙方共同建設(shè)的“結(jié)算鏈”正式投入商用,于7月8日成功利用結(jié)算鏈實(shí)現(xiàn)廣東、遼寧、寧夏、河南、河北5省運(yùn)營(yíng)商網(wǎng)間業(yè)務(wù)結(jié)算出賬。結(jié)算鏈?zhǔn)状芜\(yùn)行結(jié)果顯示,業(yè)務(wù)耗時(shí)平均減少

    2024年02月13日
    瀏覽(24)
  • 區(qū)塊鏈搭建聯(lián)盟鏈及控制臺(tái)安裝

    區(qū)塊鏈搭建聯(lián)盟鏈及控制臺(tái)安裝

    執(zhí)行成功后,我們將看到當(dāng)前目錄下生成了一個(gè) nodes 目錄。nodes 目錄下存在兩個(gè)目錄,分別是 127.0.0.1 和 cert ,我們進(jìn)入 127.0.0.1 目錄 ,執(zhí)行執(zhí)行 bash start_all.sh , 看到輸出 “start successfully” 表示節(jié)點(diǎn)啟動(dòng)成功。至此,一切順利的話,我們的鏈就創(chuàng)建并啟動(dòng)成功了 檢查是否

    2024年02月02日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包