Sylfaen Blockchain
Fe wnaeth y prosiect ddylunio, datblygu a chyflwyno rhwydwaith blockchain cwbl weithredol yn ymdrin â phrydlesu dwfn a model busnes Cerbyd-fel-gwasanaeth.
Gellir rhannu’r prosiect yn bennaf yn ddwy brif dasg sy’n cynhyrchu dau beth. Roedd y cyntaf yn ymwneud â dylunio, creu manyleb a chyflwyno’r rhwydwaith blockchain, a’r ail yn ymwneud ag ysgrifennu contractau clyfar gan ddefnyddio’r iaith raglennu Go i weithredu trafodion busnes.
Rhwydwaith Blockchain
Ar ôl ystyried gwahanol ddatrysiadau blockchain yn ofalus, rydym ni wedi pennu mai Hyperledger Fabric yw’r dewis mwyaf addas ar gyfer ein defnydd penodol ni. Mae’r penderfyniad hwn yn seiliedig ar sawl ffactor allweddol, yn bennaf ei natur breifat sydd angen caniatâd. Fel datrysiad ar gyfer y fenter, mae’n hanfodol bod ein platfform yn sicrhau diogelwch a phreifatrwydd cadarn, gan ganiatáu mynediad i gyfranogwyr gyda chaniatâd yn unig. Mae mynediad i’r cyhoedd wedi’i eithrio’n gyfan gwbl, ac mae angen rhwydwaith arnom sy’n gallu rhoi mynediad i sefydliadau wedi’u caniatáu ymlaen llaw ar gyfer trafodion cymwysiadau busnes.
Hyperledger Fabric
Mae Hyperledger Fabric yn llwyddo i fynd i’r afael â gofynion penodol ein busnes yn effeithiol. Mae ei ddyluniad yn darparu’n benodol ar gyfer gofynion y fenter, gan ei wneud yn ddewis amlwg ar gyfer ein prosiect, gan alinio’n berffaith gyda’n meini prawf diogelwch, preifatrwydd a chyfranogiad.
Dylunio a diffinio rhwydwaith Blockchain
Wrth ddylunio rhwydwaith blockchain Hyperledger Fabric, mae’n bwysig ystyried sawl paramedr a senario allweddol. Mae’r paramedrau hyn yn cynnwys lefel yr afreidrwydd gofynnol a graddau’r gwahaniaeth rhwng Awdurdodau Tystysgrif a nodau eraill sy’n cymryd rhan (fel cyfoedion ac archebwyr) o fewn sefydliad.

Sianeli a llywodraethu
O fewn Hyperledger Fabric, mae preifatrwydd a hygyrchedd data yn cael eu gweithredu ar ffurf sianeli. Er mwyn sicrhau rheolaeth fwy manwl, mae casgliadau data preifat yn helpu i gyflawni hynny. O fewn ein rhwydwaith ni, mae gennym ddwy sianel. Mae pob un o’r tri sefydliad yn cymryd rhan yn y sianel ‘journeydata’. Dim ond Riversimple a sefydliad 1 sy’n cymryd rhan yn yr ail sianel. Heblaw am y ddwy sianel hyn, mae gennym hefyd ddwy sianel brofi o’r enw ‘tch12’ a ‘tch13’ lle mae Riversimple a sefydliad 1 yn cymryd rhan a lle bod pob un o’r tri sefydliad yn cymryd rhan, yn y drefn honno.
Mae cyfranogwyr i’r sianeli’n cael eu pennu’n seiliedig ar ystyriaethau’n ymwneud â chyfleustra a llywodraethu. Gall cyfranogwr sianel ddeall y data sy’n cael ei storio ar y sianel heblaw bod y data yn breifat ac nad yw sefydliad yn rhan o’r casgliad data preifat.
Defnyddio’r rhwydwaith
oedd defnydd o’r rhwydwaith wedi’i awtomeiddio i raddau helaeth gan ddefnyddio ffeiliau Ansible playbooks. Mae’r rhwydwaith yn cynnwys saith gweinydd sy’n rhedeg ar rwydwaith Prifysgol Abertawe.
Ansible Playbook
Datblygwyd ffeiliau playbooks Ansible i helpu i ddefnyddio’r nodau rhwydwaith mewn modd rhwyddach, idempotent, heb wallau dynol, ac y gellir ei ailadrodd. Mae’r ffeiliau hefyd yn gweithredu fel dogfennaeth o’r hyn sy’n cael ei wneud gyda pha fewnbynnau a pha ffeiliau tystysgrif sy’n cael eu defnyddio. Mae natur idempotent Ansible yn helpu i leihau’r amser a’r adnoddau y mae’r ffeiliau yn eu defnyddio. Mae’n bosibl rhedeg y ffeiliau dro ar ôl tro heb orfod cymryd yr un cam dro ar ôl tro.
Rhaglen chaincode
Mae Hyperledger Fabric (HLF) yn cynnig opsiynau o ran rhaglen chaincode. Mae’r rhesymeg busnes yn cael ei weithredu fel contractau clyfar ar ffurf chaincode o fewn HFL. Gellir ysgrifennu contractau clyfar gan ddefnyddio naill ai go, java, neu javascript. Fe wnaethom ni ddewis iaith raglennu Go gan ei fod yn cael ei deipio a’i gasglu ynghyd mewn modd statig, ac yn gyflymach gyda chefnogaeth cymuned o ddatblygwyr ar gyfer rhaglen chaincode HLF. Mae’r rhaglen chaincode, strwythurau data, diffiniadau a gweithrediad swyddogaethau’n cael eu diffinio i gyd-fynd â’r data a anfonir gan yr ap cleientiaid.
Diffinio strwythurau data a swyddogaethau
Fe wnaethom ni ddylunio a datblygu rhestr o resymeg trafodion busnes ar ffurf swyddogaethau chaincode. Cyn gweithredu unrhyw swyddogaethau, roedd rhaid i ni greu strwythurau data a oedd yn cynrychioli unedau data i’w storio ar y system blockchain. Mae’r strwythurau data hyn yn storio manylion a ddefnyddir wrth adfer a defnyddio data yn y broses o gynhyrchu biliau a thaliadau.
Diagramau llif trafodion busnes
Yn ystod y cam dylunio, rydym ni wedi datblygu sawl diagram o drafodion i gael gwell dealltwriaeth a gweledigaeth o’r hyn a fydd yn cael ei weithredu.
Gwaith yn y dyfodol
- Bydd cynefino cyflenwyr â’r system blockchain yn cyflawni sawl diben, gan gynnwys gweithredu gofynion sy’n benodol i ddefnydd y cyflenwr a gwella’r system bresennol.
- Trwy integreiddio’r cyflenwyr ar y system blockchain, gallwn fynd i’r afael â’u gofynion unigryw a chasglu mewnwelediad gwerthfawr o’u safbwynt nhw, a gellir defnyddio hwnnw i adnabod meysydd i’w gwella o fewn ein system bresennol.
- Bydd gweithredu bil deunyddiau o'r dechrau i'r diwedd yn gwella ymarferoldeb cyffredinol y system.
Gwersi a ddysgwyd
Mae systemau Blockchain yn eithaf cymhleth, yn enwedig pan fo angen mwy o ryddid arnom ar gyfer eu diffinio a’u defnyddio. O’r fframweithiau Blockchain sydd ar gael, HLF yw un o’r fframweithiau ffynhonnell agored mwyaf aeddfed, gan ei fod yn fodiwlaidd ac yn hyblyg. Mae’r nodweddion hyn hefyd yn cynyddu cymhlethdod yn sylweddol, yn enwedig yn y cyfnod cychwynnol. Un o’r prif ddeilliannau yw bod y ffeiliau Ansible yn mynd i’r afael â’r mater ac yn lleihau’r cymhlethdod i raddau helaeth. Pan fydd y system wedi datblygu ymhellach, bydd y ffeiliau hyn yn helpu i leihau’r amser a’r ymdrech sydd eu hangen i ddod â’r nodau rhwydwaith blockchain i fyny.