王鑫 李彪 李遠(yuǎn)哲
摘要:為了現(xiàn)有的社團(tuán)活動(dòng)能夠公開化并且有記憶性,給活動(dòng)參與者以回憶。平臺(tái)將分散各處的社會(huì)團(tuán)體活動(dòng)連接起來,構(gòu)建基于區(qū)塊鏈技術(shù)的信譽(yù)網(wǎng),并將上述想法開發(fā)成為一個(gè)微信小程序。首先將想法中的各項(xiàng)功能都利用功能設(shè)計(jì)架構(gòu)圖的形式進(jìn)行分析,之后利用區(qū)塊鏈技術(shù)相關(guān)思想構(gòu)建平臺(tái)的底層架構(gòu) ,并分析了后臺(tái)的技術(shù)應(yīng)用和技術(shù)難點(diǎn),最終完成了本文所要完成的”榴蓮微程序”微信小程序。
1.引言
為了構(gòu)建一套可以應(yīng)用的社團(tuán)活動(dòng)小程序,本文進(jìn)行了架構(gòu)的系統(tǒng)設(shè)計(jì)工作,經(jīng)過產(chǎn)品的功能設(shè)計(jì)分析之后,對產(chǎn)品的技術(shù)設(shè)計(jì)進(jìn)行了分析,首先存儲(chǔ)結(jié)構(gòu)是利用仿區(qū)塊鏈結(jié)構(gòu)的分布式內(nèi)存管理結(jié)構(gòu)進(jìn)行構(gòu)建,將不同的平臺(tái)活動(dòng)通過一條鏈進(jìn)行鏈接,并進(jìn)行分布式存儲(chǔ)。后構(gòu)建平臺(tái)后臺(tái),之后連接微信小程序的前端頁面,最終得到了“榴蓮微服務(wù)”微信小程序,并成功推廣學(xué)校內(nèi)社團(tuán)使用。
2.設(shè)計(jì)中的區(qū)塊鏈設(shè)計(jì)
從宏觀看本系統(tǒng)利用了區(qū)塊鏈的設(shè)計(jì)思想,通過哈希鏈來連接所有的存儲(chǔ)節(jié)點(diǎn),并體現(xiàn)了去中心化的思想,人人可以看到各個(gè)存儲(chǔ)節(jié)點(diǎn)上的內(nèi)容。
從區(qū)塊鏈本身的技術(shù)方面看。區(qū)塊鏈本身有六層結(jié)構(gòu),自底向上為數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)層、激勵(lì)層、合約層和應(yīng)用層,其中數(shù)據(jù)層為最底層的結(jié)構(gòu),包括數(shù)據(jù)區(qū)塊、鏈?zhǔn)浇Y(jié)構(gòu)和時(shí)間戳,本項(xiàng)目利用了鏈?zhǔn)浇Y(jié)構(gòu)將內(nèi)存中所有的數(shù)據(jù)連接通過鏈?zhǔn)浇Y(jié)構(gòu)存儲(chǔ)。區(qū)塊鏈的網(wǎng)絡(luò)層中間包含點(diǎn)對點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu),本項(xiàng)目通過將所有的信息公開化展示完成這部分的思想應(yīng)用。區(qū)塊鏈更上層的共識(shí)層,就是體現(xiàn)的去中心化的思想,這里也是借鑒了思想,每個(gè)參與活動(dòng)者都可以對非中心化的信息進(jìn)行過濾和識(shí)別真?zhèn)蔚刃袨?。區(qū)塊鏈更上一層的激勵(lì)層設(shè)計(jì)就是本項(xiàng)目中的徽章系統(tǒng)的來源,參加每個(gè)活動(dòng)也就是每個(gè)節(jié)點(diǎn)的活動(dòng)都可以獲得徽章的獎(jiǎng)勵(lì),這種分配形式非常類似比特幣的形式進(jìn)行分配。之上的合約層和應(yīng)用層技術(shù)上沒有借鑒但是本項(xiàng)目的研發(fā)就是一項(xiàng)區(qū)塊鏈的應(yīng)用實(shí)例。
3.小程序功能設(shè)計(jì)
基于系統(tǒng)的功能需求,活動(dòng)賦能系統(tǒng)主要分為首頁、活動(dòng)圈、排行以及我的四大模塊,首頁下分為創(chuàng)辦活動(dòng)、加入活動(dòng)、正發(fā)起的活動(dòng)、正參與的活動(dòng)、榮譽(yù)徽章、信譽(yù)積分、組織入駐等,排行下分為活動(dòng)排名及成員排名,我的下基本分為注冊登錄、我發(fā)起的活動(dòng)、正參與的活動(dòng)、活動(dòng)歷史。功能架構(gòu)如下圖所示。
4.平臺(tái)開發(fā)過程
解決了底層存儲(chǔ)之后進(jìn)行后端業(yè)務(wù)邏輯的開發(fā),從開發(fā)角度上,項(xiàng)目采用小程序的B/S架構(gòu),后端采用python+Django的框架,使用xadmin作為后臺(tái)管理系統(tǒng),將整個(gè)程序部署在以上提到的分布式的云服務(wù)器端,云服務(wù)器采用Ubuntu16.04操作系統(tǒng),在開發(fā)過程中項(xiàng)目成員遇到了很多問題,通過不斷地改進(jìn)獲得更加優(yōu)化的平臺(tái),比如在云服務(wù)器linux部署的過程中,mysql的配置與系統(tǒng)沖突,利用uwsgi與nginx的交互配置與測試,uwsgi與django框架的交互以及端口的設(shè)置;分布式系統(tǒng)的使用中調(diào)用的pyspark庫的使用出現(xiàn)問題,shuffle的結(jié)果不是我們想要的結(jié)果等等。經(jīng)過不斷迭代之后以上問題都成功攻克,并完成了相應(yīng)的功能。
在解決技術(shù)問題的同時(shí)項(xiàng)目還在不斷地解決業(yè)務(wù)上面的問題。首先是用戶的推薦活動(dòng)的順序是利用了什么模型,最終通過學(xué)習(xí)推薦算法并大量閱讀文獻(xiàn),首先利用多路召回的技術(shù),利用協(xié)同過濾、矩陣分解、用戶冷啟動(dòng)和項(xiàng)目冷啟動(dòng)、Youtube DNN和傳統(tǒng)的雙塔模型得到了粗排的結(jié)果,之后利用用戶的信息和活動(dòng)的信息進(jìn)行特征提取,并最終拼接成一整個(gè)特征表單,最終利用深度學(xué)習(xí)模型如DIN和Wide&Deep訓(xùn)練得到每個(gè)用戶的推薦列表,得到最終的推薦結(jié)果。在成員獲得信譽(yù)值的過程中利用了PageRank算法進(jìn)行信譽(yù)值的分配,充分學(xué)習(xí)利用了圖概率模型進(jìn)行了整體的設(shè)計(jì)工作。
完成初步的開發(fā)之后需要繼續(xù)注意以下幾個(gè)問題,一方面要注意云服務(wù)器端口的開放程度,另一方面在小程序備案的過程中,需要將域名獲得ssl證書,如何控制版本的上傳與管理,最終通過購買證書獲得了上線的許可,經(jīng)過不斷地測試,利用git的方式進(jìn)行每個(gè)版本的迭代和更新,最終有了這樣的初代產(chǎn)品。
5.文章創(chuàng)新點(diǎn)
本項(xiàng)目利用將底層的文件存儲(chǔ)技術(shù)中的hash鏈中超大計(jì)算力破解hash函數(shù)變成簡單的hash函數(shù)的仿區(qū)塊鏈技術(shù)搭建的體系“鏈”接起校園里社會(huì)上組織的各種活動(dòng),并且用一套通過威信值得到的徽章評價(jià)機(jī)制促進(jìn)了活動(dòng)成員的積極性,提高了活動(dòng)中的團(tuán)結(jié),使社會(huì)更加和諧。子系統(tǒng)的有效結(jié)合達(dá)到對大學(xué)生社團(tuán)管理賦能目的,增加社團(tuán)活動(dòng)激勵(lì)的趣味性,加強(qiáng)團(tuán)隊(duì)凝聚力,提高社團(tuán)組織的能見度,增強(qiáng)社團(tuán)成果和宣傳了個(gè)人。在提高個(gè)人參與感趣味性的同時(shí)無形地激勵(lì)了成員的熱情。其中創(chuàng)新的主要方面有:
1)打通橫向化的活動(dòng)阻力,融合官方、非官方活動(dòng),公益等多種活動(dòng)類型,建立統(tǒng)一的評價(jià)標(biāo)準(zhǔn)。
2)信譽(yù)值是信譽(yù)的等價(jià)物。每一次的活動(dòng)成果轉(zhuǎn)換為數(shù)值,可以在下一次活動(dòng)中得以流轉(zhuǎn)并累積,深度挖掘了同學(xué)們的活動(dòng)熱情,也使得活動(dòng)機(jī)制變得靈活。
3)從活動(dòng)軌跡來看,“瀏覽記錄”模塊記錄了用戶的整個(gè)活動(dòng)生涯、汗水和淚水,在時(shí)間的長軸上得以完整保存,對個(gè)人來說有著非凡的意義;“我的勛章”模塊促進(jìn)用戶回顧反思,更好前行;而“我的信譽(yù)”則以專欄的形式展示了用戶的活動(dòng)情況。
6.總結(jié)
利用區(qū)塊鏈的技術(shù)思想完成了微信小程序的開發(fā),之后經(jīng)過兩年的時(shí)間進(jìn)行整個(gè)平臺(tái)的開發(fā),并成功上線供同學(xué)老師們進(jìn)行使用,收到了許多反饋,并不斷進(jìn)行改進(jìn)。本項(xiàng)目從立項(xiàng)之初就充滿了創(chuàng)新型,區(qū)塊鏈技術(shù)彼時(shí)還不夠成熟,此時(shí)已經(jīng)有了很多公司在利用這種技術(shù)進(jìn)行相關(guān)軟件的開發(fā)。本項(xiàng)目也利用區(qū)塊鏈技術(shù)完成了平臺(tái)開發(fā),并成功上線。
津工業(yè)大學(xué) 300387