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