• Sonuç bulunamadı

Blok zinciri teknolojisi ile veri korunumu sağlanmış oylama uygulaması

N/A
N/A
Protected

Academic year: 2021

Share "Blok zinciri teknolojisi ile veri korunumu sağlanmış oylama uygulaması"

Copied!
5
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Blok Zinciri Teknolojisi ile Veri Korunumu

6D÷ODQPÕú2\ODPD8\JXODPDVÕ

A Voting Application Which Provides Data Security via Blockchain

Technology

Ya÷Õ]*DQL %LOJLVD\DU0KHQGLVOL÷L øKVDQ'R÷UDPDFÕ%LONHQWÜniversitesi Ankara, Türkiye yagizgani@hotmail.com

Mustafa Mert AúNDUR÷OX %LOJLVD\DU0KHQGLVOL÷L øKVDQ'R÷UDPDFÕ%LONHQWhQLYHUVLWHVL

Ankara, Türkiye mertaskaroglu@hotmail.com Öz— 'LMLWDO R\ODPD YH VHoLP X\JXODPDODUÕQGD DNOD JHOHQ HQ

|QHPOL HQGLúH YHULQLQ GH÷LúWLULOPHVL veya verinin silinmesidir. %X HQGLúHOHU GúQOG÷QGH %ORN =LQFLUL WHNQRORMLVL JYHQ sorununu ortadan kDOGÕUPD Ye verinin korunumunun DUWÕUÕOPDVÕNRQXODUÕQGDNHQGLLVSDWODPÕúWHNQRORMLOHULQEDúÕQGD gelmektedir. DROD\ÕVÕ LOH %ORN =LQFLri teknolojisi NXOODQÕODUDN hazÕUODQDFDN bir oylama YH\D VHoLP X\JXODPDVÕ HQGLúHOHULQ minimizHHGLOPHVLNRQXVXQGD\DUGÕPFÕRODFDNWÕU%XoDOÕúPDGD veri GH÷LúWLrilmesinin önüne geçmeyi hedefleyen Blok Zinciri WDEDQOÕELUR\ODPDX\JXODPDVÕJHOLúWLULOPLúWLU.

Anahtar Sözcükler— %ORN=LQFLUL$NÕOOÕ SözOHúPHOHU2QD\ODPa 3UHQVLSOHUL.D\ÕW'HIWHUL2\ODPD6LVWHPL

Abstract— The main concerns which are coming to mind in the

digital voting and election applications are data manipulation or deletion. When these concerns are considered, Blokchain is a foremost technology which proved itself on disposal of distrust and providing security of the data. Therefore, a voting or election system which is implemented with using Blockchain technology enable us to minimize the concerns which are stated above. In this study, a blockchain based voting application which aims to prohibit data manipulation is developed.

Keywords— Blockchain, Smart Contracts, Endorsement Policies, Ledger, Voting System

I. Gø5øù

6RQ \Õllarda LQVDQ JF\OH YH\D PDQXHO RODUDN oDOÕúDQ VLVWHPOHULQGLMLWDOOHúWLULOHUHNYHULPOLOL÷LQLQDUWÕUÕOPDVÕ\D\JÕQ RODUDN NXOODQÕODQ LúOHPOHULQ EDúÕQGD JHOPHNWHGLU >@ Bununla beraber R\ODPDYHVHoLPLúOHPOHULLoLQJYHQOLYH dijital bir platfoUPROXúWXUPDk, sonucun çabuk elde edilmesi, KDUFDQDQ ND\QDN PLNWDUÕQÕQ D]DOWÕOPDVÕ YH SD\GDúODUÕQ R\ODPD VRQXFXQD RODQ JYHQLQLQ DUWÕUÕOPDVÕ NRQXVXQGD \DUGÕPFÕ RODELOHFHN SRWDQVL\HOH VDKLSWLU 2\Oama ve seçim VLVWHPOHULQLQ GLMLWDOOHúWLULOPHVL LQVDQ KDWDVÕQÕQ PLQLPL]H HGLOHELOPHVL EDNÕPÕQGDQ GD JHUHNOLGLU 2\ODPD VD\ÕP sürecine ne kadar çok insan dahil olursa oylama VRQXoODUÕQGD NDVÕWOÕ YH\D NDVÕWVÕ] ROPDN ]HUH KDWD ROXúDELOPH ULVNL GH ELU R NDGDU DUWPDNWDGÕU $ncak, dijital R\ODPD LúOHPOHULQGH GH DNOD JHOHbilecek birkaç önemli HQGLúH V|] NRQXVXGXU %XQODUGDQ HQ |QHPOLOHUL YHULQLQ GH÷LúWLrilmesi YHULQLQ VLOLQPHVL YH NDWÕOÕPFÕODUÕQÕQ KDQJL R\XNXOODQGÕ÷ÕQÕQWHVSLWHGLOHELOPHVLVRUXQXGXU%XVRUXQODr J|] |QQGH EXOXQGXUXOGX÷XQGD %ORN =LQFLUL WHNQRORMLVL uygun bir çözüm olabilme potansiyeline sahiptir. Bu WHNQRORML  \ÕOÕQGD 6DWRVKL 1DNDPato isminde bir JHOLúWLULFLWDUDIÕQGDQLFDWHGLOPLúWLU1DNDPDWREXWHNQRORML\L NÕVD ELU VUH VRQUD LFDW HWWL÷L %LWFRLQ¶LQ DOW\DSÕ teknolojilerinden birisi olarak kullanPÕúWÕU %ORN =Lnciri

Bitcoin’GH oQF ELU RWRULWH ROPDGDQ JYHQOL ELU úHNLOGH ara trDQVIHULQLQ\DSÕOPDVÕQÕVD÷OD\DQWHNQRORMLRODUDNRUWD\D oÕNPÕúWÕU. O günden sonra Blok Zinciri teknolojisinin poSODULWHVL JLW JLGH DUWPÕú YH GL÷HU NXOODQÕP DODQODUÕ DUDúWÕUÕlmD\D EDúODQPÕúWÕU >@ %X WHNQRORMLQLQ NXOODQÕPÕ finansal ve finansal oOPD\DQ DODQODU ]HULQH LNL\H D\ÕUPDN X\JXQ RODFDNWÕU >@ $PD WP NXOODQÕP DODQODUÕQÕQ RUWDN yönünün, bir güven VRUXQXQX RUWDGDQ NDOGÕUPD\D oDOÕúPDN ROGX÷X DúLNDUGÕU %X QRktada Blok Zinciri teknolojisinin \DSÕVÕ YH GLMLWDO R\ODPD VLVWHPLQGHNL HQGLúHOHUL QDVÕO o|]HELOHFH÷LGL÷HUE|OPOHUGHDoÕNODQPÕúWÕU

II. BLOK Zø1&ø5øGENEL AöYAPISI

%ORN =LQFLUL WXWXODQ LúOHP WUDQVDFWLRQ  ND\ÕWODUÕQ GH÷LúWLULOHPHGL÷LGD÷ÕWÕOPÕúELUVLVWHPRlarak taQÕPOanabilir. %XND\ÕWODUVLVWHPGHNLKHUHú SHHU GHEXOXQPDNODEHUDber ND\ÕW GHIWHULQH OHGJHU  HNOHQHFHN RODQ LúOHPOHU PXWDEDNDW DOJRULWPDODUÕQa (consensus DOJRULWKPV  ED÷OÕ RODrak JHUoHNOHúWLULOHELOPHNWHGLU >@ 'ROD\ÕVÕ\OD PXWDEDNDW algoritmaODUÕ GÕúÕQGa JHUoHNOHúWLULOPLú KHU LúOHP ND\ÕWODUGD WXWXOPDVÕQD UD÷PHQ JHoHUVL] VD\ÕODFDNWÕU %XQXQ GÕúÕQGD %ORN=LQFLULD÷ \DSÕVÕ, merkezsiz (decentralized) bir sistem \DSÕVÕQD VDKLSWLU %u nedenle blok zinciri tek bir hata QRNWDVÕQD ED÷OÕ RODUDN o|NPH] Yeya iúOevsiz duruma GúPH] >@ %XQXQ |WHVLQGH PHUNH]VL] D÷ \DSÕVÕ yetkilendLULOPH QRNWDVÕQÕQ GD÷ÕOPDVÕQD VHEHS ROXU %ORN =LQFLULD÷\DSÕVÕQGD\HWNLOHQGLULOPLúWHNELUQRNWDEXOXQPD] DolD\ÕVÕ\ODVLVWHPELUKHGHIYHVDOGÕUÕQRNWDVÕEDUÕQGÕUPD] Bu sayede belirli biUHúLQHOHJHoLULOPHVLVLVWHPGHJYHQOLN ]DIL\HWLROXúWXUPDPDNWDGÕU%ORN=LQFLUL$÷Õ \DSÕVÕùHNLO de g|VWHULOPLúWLU

(2)

III. BLOK =ø1&ø5ø7(.12/2-ø6ø1ø17(0(/ %ø/(ù(1/(5ø9( 2</$0$6øSTEMø1(.$7.,/$5,

A. $NÕOOÕ6|]OHúPeler (Smart Contracts)

$NÕOOÕ V|]OHúPHOHU %ORN =LQFLUL $÷ÕQGD ELU LúOHPLQ QDVÕO JHUoHNOHúHFH÷LQLQ EHOLUWLOGL÷L NRG SDUoDODUÕQD YHULOHQ DGGÕU $NÕOOÕ6|]OHúPHOHULúOHPOHULQLoLQde gömülü olarak bulunur YH ELU LúOHP WUDQVDFWLRQ  JHUoHNOHúWL÷LQGH RWRmatik olarak akWLYH ROXUODU >@ $NÕOOÕ 6|]OHúPHOHUL SD\GDúODU DUDVÕQGD LúOHP JHUoHNOHúWLULOPHGHQ |QFH NDUDUODúWÕUÕOPÕú SURVHGUOHU JLELGúQPHNLVDEHWOLELUNDUDURODFDNWÕU%XQDED÷OÕRODUDN $NÕOOÕ 6|]OHúPHOHU GLMLWDO R\ODPD X\JXODPDVÕQÕQ JYHQLOLUOL÷ini aUWÕUPD konusunda önemli bir rol R\QDPDNWDGÕU dQN KHUKDQJL ELU VHçim veya oylama HWNLQOL÷LQGH JHUoHNOHúWLULOPHVL JHUHNHFHN ED]Õ SURVHGUOHULQ RODFD÷Õ NHVLQGLU %X SURVHGUOHU JHQHOGH R\ODPD LúOHPL JHUoHNOHúPHGHQ|QFH\D]ÕOÕRODUDNJ|UHYOLOHUHELOGLUilir ve bu prosHGUOHULQ X\JXODQPDVÕ J|UHYOLOHULQ NRQWUROQH EÕUDNÕOPÕúROXQXU'DKD|QFHGHEHOLUWLOGL÷LJLELLQVDQIDNW|U LúLQ LoLQH JLUGL÷L ]DPDQ NDVÕWOÕ YH\D NDVÕWVÕ] ROPDN ]HUH hDWD ULVNL DUWPDNWDGÕU 2 \]GHQ JHUHNOL SURVHGUOHULQ X\JXODQDFD÷ÕQÕJDUanti eden güvenLOLUELUVLVWHP\DUDWÕOPDVÕ EX KDWD RODVÕOÕ÷ÕQÕQ |QQH JHoPHNWH VRQ GHUHFH \DUDUOÕ RODFDNWÕU $NÕOOÕ S|]OHúPHOHU VD\HVLQGH SURVHGUOHU oDOÕúWÕUÕODELOLU ELU NRG SDUoDVÕ KDOLQH G|QúWUOPú RODFDN YH KHU LúOHP JHUoHNOHúWLULOGL÷LQGH oDOÕúDUDN prosedürlerin u\JXODQPDVÕQÕQJDUDQWLVLYHULOPLúRODFDNWÕU

B. KD\ÕW'HIWHUL /HGJHU

.D\ÕW'HIWHUOHUL%ORN=LQFLULD÷ÕQGDJHUoHNOHúPLúRODQKHU LúOHPLQ ND\GÕQÕ GH÷LúWLULOHPH] YH silinemez bir biçimde WXWDQ LúOHP GHSRODPD \DSÕVÕGÕU .D\ÕW Defteri kendi içinde iNL oHúit yapÕ EDUÕQGÕUÕU %LU WDQHVL 'XUXP .D\GÕ :RUOG State) GL÷HUL LVH øúOHP 7DULKoHVL 7UDQVDFWLRQ +LVWRU\  RODUDN DGODQGÕUÕOÕU >@ 'XUXP .D\GÕ ELU REMHQLQ JQFHO GH÷HUOHULQL WXWDUNHQ øúOHP 7DULKoHVL R REMH LOH JHUoHNOHúWLULOPLúWPLúOHPOeri depolar. ÖrnH÷LQ Blok Zinciri WDEDQOÕ ELU DUDED VDWÕú SODWIRUPX GúQHOLP (÷HU ELU DUDEDQÕQ ER\D UHQJL NÕUPÕ]ÕGDQ PDYL\H GH÷LúWLULOGL\VH 'XUXP .D\GÕQGD REMHQLQ UHQJL PDYL RODUDN ND\ÕW DOWÕQD DOÕQÕU )DNDW øúOHP 7DULKoHVLQH EDNÕOGÕ÷ÕQGD DUDEDQÕQ renginin öncedeQ NÕUPÕ]Õ olGX÷XQD YH DUDEDQÕQ UHQJL NÕUPÕ]Õ\NHQ KDQJL LúOHPOHULQ \DSÕOGÕ÷ÕQD XODúÕP úDQVÕ RODFDNWÕU %X \DSÕ R\ODPD VLVWHPLQGH GH E\N |OoGH önem arz etmektedir. Örnek olDUDNH÷HUVLVWHP]HULQGHµ$¶ VHoHQH÷LQH YHULOPLú ELU R\ µ%¶ VHoHQH÷LQH GH÷LúWLrLOPLú yani müdahale HGLOPLúVH EX R\XQ |QFHGHQ µ$¶ VHoHQH÷LQH YHULOGL÷LQLQ WDNLEL øúOHP 7DULKoHVL VD\HVLQGH NROD\ ELU úHNLOGH \DSÕODELOHFHNWLU %X \]GHQ .D\ÕW 'HIWHUL VLVWem müdahalesinin WHVSLWLQGH|QHPOLELUGHVWHNVD÷ODPDNWDGÕU C. Onaylama Prensipleri (Endorsement Policies)

Onaylama PUHQVLSOHUL ELU LúOHPLQ WUDQVDFWLRQ  JHoHUOL VD\ÕODELOPHVL LoLQ D÷ LoLQGH HúOHUGHQ WDOHS HGLOHQ yetkilendirmelere verilen isimdir. [3][4] Onaylama prensipleri zincir kodunda (chain code) önceden belirtilir ve zincir kodu aktive ediOGL÷LQGH JHUoHNOHúHQ LúOHPLQ JHoHUOLOL÷LQLNRQWUROHGHUOHUgUQHNRODUDNELU]LQFLUNRGXQXQ \D]ÕPÕELWWLNWHQVRQUD]LQFLUNRGXQXRQD\OD\DFDNSUHQVLSOHU atanabilir. Mesela ANÕOOÕ S|]OHúPHOHULQ KDQJL HúLQ |]HO DQDKWDUÕ LOH SULYDWe key) imzalanmasÕ gerekWL÷L bir onaylama pUHQVLELGLU %|\OHOLNOH ELU LúOHPLQ

JHUoHNOHúWLULOPHVL LoLQ KDQJL HúOHULQ SHHU  DQODúPDVÕ JHUHNWL÷L EHOLUWLOPLú ROXQXU 2QD\ODPD 3UHQVLSOHUL GR÷UX LúOHPLQ JHUoHNOHúLS JHUoHNOHúPHPHVL LOH LOJLOHQPH]OHU RQODUÕQ WHPHO DPDFÕ JHUoHNOHúHQ LúOemin geçerli VD\ÕOÕp VD\ÕODPD\DFD÷ÕQÕQ NRQWURO HGLOPHVLGLU 2QD\ODPD 3UHQVLSOHUL VLVWHPGH WDNOLW LúOHPOHULQ YH\D WDNOLW DNÕOOÕ V|]OHúPHOHULQEDUÕQGÕUÕOPDVÕQÕQ|QQHJHoHUoQNJHoHUVL] LúOHPOHU VLVWHPGH WXWXOVD ELOH RQD\ODQPDGÕ÷Õ belirtilir. Bu sayede hem geçersL] LúOHP ND\ÕWODUÕQÕQ WDNLS HGLOPHVLQLQ RODQD÷Õ VD÷ODQÕU KHP GH VDKWH LúOHP JLULúLPOHULQLQ |QQH JHoLOPLú ROXQXU ùHNLO ¶GH EX VUHFLQ QDVÕO gHUoHNOHúWL÷L göVWHULOPLúWLU.

.

ùHNLO. øúOHP.D\GHGLOPHDöngüsü

IV. Sø67(0YAPISI

Sistem, 3 ana parçadan ROXúmaktaGÕU $QGURLG X\JXODPDVÕ 5(676XQXFXVXYH%ORN=LQFLUL $÷Õ$QGURLG X\JXODPDVÕ NXOODQÕFÕGDQ JHOHQ JLUGLOHUL 5(67 6XQXFXVXQD DNWDUPDNWDGÕU 5(67 6XQXFXVX LVH NXOODQÕFÕGDQ JHOHQ girdilere göre Blok Zinciri A÷ÕQGD JHUHNOL LúOHmlerin olXúPDVÕ LoLQ Nomutlar göndeULU 'ROD\ÕVÕ\OD JHOHQ YHUL 5(67 6XQXFX DUDFÕOÕ÷Õ\OD %ORN =LQFLUL $÷ÕQD DNWDUÕOPDNWDGÕU <XNDUÕGD EDKVHGLOHQ WHNQRORMLOHULQ |]HOOLNOHULYHGDKDGHWD\OÕDoÕNODPDODUÕLOHUOH\HQE|OPOHUGH LOJLOL EDúOÕNODU DOWÕQGD DQODWÕOPDNWDGÕU. Sistem yaSÕVÕ ùHNil 3’te g|VWHULOPLúWLU

ùHNLO6LVWHP<DSÕVÕ*|VWHULPi

A. BORN=LQFLUL$÷Kurulumu

Projede, Blok Zinciri A÷Õ NXUPDN LoLQ +\SHUOHGJHU )DEULF 6HUYLVL NXOODQÕOPÕúWÕU %X VHUYLV ,%0 WDUDIÕQGDQ SL\DVD\D VUOPú ROXQXS %lok Zinciri tabanlÕ Lú X\JXODPDODUÕ gelLúWLUPHN LVWH\HQ \D]ÕOÕPFÕODUÕQ LúLQL NROD\ODúWÕUPDN DPDFÕ\OD NXOODQÕOPDNWDGÕU +\SHUOHGJHU )DEULF VHUYLVLQLQ 0DF26 YH 8EXQWX SODWIRUP GHVWHNOHUL EXOXQPDNWDGÕU >@ Fabric Servis’ini kullanmak için belirli teknolojilerin hali KD]ÕUGD\klü ROPDVÕJHUekmektedir. Bu teknolojiler Docker YH 1RGH-V VHUYLVOHULGLU >@ øOHUOH\HQ E|OPOHUGH EX WHNQRORMLOHULQQHROGXNODUÕYHQHLoLQNXOODQÕOGÕNODUÕKDNNÕQGD GDKDGHWD\OÕDoÕNODPDODU\HUDOPDNWDGÕU

(3)

x Docker: Docker prograPÕ NXUXODQ %ORN =LQFLUL D÷ÕQÕn çoklu platformlarda ortak biU úHNLOGH oDOÕúDELOPHVL LoLQ JHUHNOLGLU )DEULF¶i kurmadan |QFH WHUPLQDO \DUGÕPÕ LOH NXUXOXP JHUoHNOHúWLULOPLúWLU >@ %ORN Zincirinin kurulumu YH NRG \D]ÕPÕ VUHFLQGH WP oDOÕúPD ELU Docker Konteyner LoLQGH WXWXOPXúWXU. Bu sayede ortaya oÕNDcak olan Blok Zinciri A÷Õ WP SODWIRUPODUGD VRUXQVX]ELUúHNLOGHoDOÕúDELOPHNWHGLU>@

x NodeJs Servisi: NodeJs servisi Blok Zinciri LoHULVLQGHNL \DSÕQÕQ GH÷LúWLULOPHVL YH \DSÕQÕQ ihtiyaca göre düzeQOHQPHVLQLVD÷ODPDNWDGÕU)DEULF kuruluPX \DSÕOPDGDQ önce NodeJs servisi yüklü EXOXQPDN ]RUXQGDGÕU 7HUPLQDO NXOODQÕODUDN EX NXUXOXPJHUoHNOHúWLULOPLúWLU>@

x Fabric Kurulumu: Gerekli tüm öncül programlar EDúDUÕLOH\NOHQGLNWHQ sonra, terminal kXOODQÕODUDN gerekli komutun girilmesi ile Composer CLI araçlarÕEDúDUÕOÕELU úHNLOGHNXUXOPXúWXUBu komut DúD÷ÕGDEHOLUWLOPLúWLU>@

npm install -g composer-cli

&RPSRVHU &/, DUDoODUÕ %ORN =LQFLUL JHOLúWLULFLOHUL LoLQ WP |QHPOL LúOHPOHULQ \DSÕOPDVÕQÕ VD÷OD\DFDN DUDoODUGÕU )DEULF NXUXOXPX GD \DSÕODUDN VLVWHP NXUXOXPX EDúDUÕ LOH WDPDPODQPÕúWÕU %LU sonraki E|OPGH VLVWHP WDVDUÕPÕ YH NRG \D]ÕPÕ DúDPDVÕ yer almaktaGÕU>@

B. Blok =LQFLUL$÷Õ<D]ÕP6UHFL

Hyperledger Fabric’LQ \DUDWÕFÕVÕ RODQ ,%0 firPDVÕ 9LVXDO Studio Code editörünü önermektedir. [6] Bunun sebebi ise, +\SHUOHGJHU)DEULFNXOODQÕODUDN=LQFLU.RGX0RGHOOHPHYH (ULúLP .RQWURO \D]PD RUWDPÕQÕQ 9Lsual Studio Code’da ELUHNOHQWLRODUDNEXOXQPDVÕGÕU

Ɣ IBM Modelleme Dili: Bu dil kulODQÕODrak, Blok ]LQFLULQGH\HUDODFDNYDUOÕNODU HQWLW\ YHNRQVHSWOHU ROXúWXUXOPDNWDGÕU >@ gUQH÷LQ, EX oDOÕúPDGD ³.DWÕOÕPFÕ´ YDUOÕ÷Õ ROXúWXUXOPXú YH EX YDUOÕ÷ÕQ içiQGH \HU DODFDN QLWHOLNOHU HNOHQPLúWLU (kDWÕOÕPFÕ LVPL NLPOL÷L DGUHV YV . Örnek modelleme kodu DúD÷ÕGD EHOLUWLOPLúWLU

participant Participant identified by participantId {

o String participantId o SignupValues signupValue o Info info optional

o Integer type

o String Descr optional }

Ɣ (ULúLP .RQWURO 'LOL %X NÕVÕPGD ELU HúLQ YH\D paydaúÕQ, Blok Zinciri A÷ÕQGD QH\H HULúLP L]QLQLQ olup neye RODPD\DFD÷Õ \D]ÕOPDNWDGÕU >@ gUQH÷LQ QRUPDO ELU NXOODQÕFÕQÕQ Yönetici NXOODQÕFÕ WLSLQLQ \DSWÕ÷Õ LúOHPOHUH HULúLPLQLQ ROPDPDVÕ YH ilgili LúOHPOHUL WUDQVDFWLRQ  J|UPHPHVL NXUDOÕ EXUada belirtilmektedir.

Ɣ Zincir KodlarÕ <D]ÕPÕ =LQFLU .RGODUÕ $NÕOOÕ 6|]OHúPHOHULQ \DSÕVÕQÕQ ROXúWXUXOGX÷X NRG SDUoDODUÕQD YHULOHQ LVLPGLU >@ %X NRdlar, -DYD6FULSW GLOL NXOODQÕODUDN \D]ÕOPÕúWÕU gUQHN =LQFLUNRGXDúD÷ÕGDEHOLUWLOPLúWLU function increaseCoin(coinData){ var participantRegistry = {} return getParticipantRegistry('org.pollst ar.participant.Voter').then(functi on(registry){ participantRegistry = registry; return participantRegistry.get(coinData.p articipantId); }).then(function(participant){ participant.coin = participant.coin + coinData.addition; return participantRegistry.update(partici pant); }).then(function(){ // Successful update var event = getFactory().newEvent('org.pollsta r.participant', 'coinIncreased'); event.participantId = coinData.participantId; emit(event); }).catch(function(error){ throw new Error(error); });

}

C. Blok =LQFLUL$÷Õ<|QHWLPL

$÷ \|QHWLPL LúOHPL ELUGHQ ID]OD DúDPDGDQ ROXúPDNWDGÕU Sistemin G]JQoDOÕúDELOPHVLLoLQEXDúDPDODUHNVLNVL]YH GR÷UXELUúHNLOGHJHUoHNOHúWLULOPLúWLU

x )DEULFdDOÕúWÕUÕOPDVÕ<D]ÕODQWPNRGODUÕQEDúDUÕOÕ ELU úHNLOGH oDOÕúPDVÕ YH VLVWHPH \NOHQPesi için öncelikle Fabric Sisteminin çalÕúÕ\RU YD]L\HWWH EXOXQPDVÕ JHUHkmektedir. Bunun için gerekli NRPXWODUDúD÷ÕGDEHOLUWLOPLúWLU>@

# Start Server

cd ~/fabric-dev-servers export FABRIC_VERSION=hlfv12 ./startFabric.sh

x %1$$UúLYL<DUDWÕOPDVÕYH Yüklenmesi: Fabric’in DUND SODQGD oDOÕúÕU YD]L\HWWH EXOXQGX÷XQGDQ HPLQ olduktan sonra \D]ÕOPÕú RODQ WP ]LQFLU NRGODUÕ PRGHO NRGODUÕ HULúLP NRQWURO NRGODUÕ RQD\ODPD prensipleri ve benzeri tüm blok ]LQFLUL D÷Õ ELOHúHQOHULQLQ DUúLYOHQGL÷L bir dosya oluúWXUXOPDVÕ JHUHNPHNWHGLU %X GRV\D øú $÷Õ $UúLYL %XVLQHVV Network Archive) dosyasÕ ROXS \NOHQHFHN RODQ

(4)

Blok Zinciri A÷ÕQÕQ WHPHO SUHQVLSOHULQL LoHUPHNWHGLU %1$GRV\DVÕ \DUDWPDNYH \Nlemek LoLQJHUHNOLNRPXWODUDúD÷ÕGDEHOLUWLOPLúWLU

# Create bna file

composer archive create

--sourceType dir --sourceName ../ -a archive.bna

# Deploy BNA file

composer network install -a ./archive.bna -c PeerAdmin@hlfv1 x $GPLQ .DUWÕ <DUDWPD Blok Zinciri $÷ÕQGD 2 tip

NDUW PHYFXWWXU %XQODU $÷ <|QHWLFL .DUWÕ YH (ú YönHWLFL .DUWÕGÕU $÷ <|QHWLFL .DUWÕ %ORN =LQFLUL $÷ÕROXúWXUXUNHQVLVWHPWDUDIÕQGDQRWomatik olarak \DUDWÕOPDNWDGÕUøú$÷Õ<|QHWLFLVL%ORN=LQFLUL$÷Õ yüklendikten sonUD VLVWHP \DSÕVÕQÕQ D\DUODQPDVÕ YH JQFHOOHQPHVLQGHQVRUXPOXRODQNLúLGLU>@(ú YönetLFL .DUWÕ LVH VLVWHPH JLUHFHN WP HúOHU LoLQ GLQDPLN RODUDN \DUDWÕOPDNWDGÕU %ORN =LQciri \DSÕVDO RODUDN PHUNH]L ROPD\DQ ELU VLVWHP ROGX÷XQGDQ GROD\Õ D÷D \HQL JLULú \DSDQ WP HúOHU LoLQNDUW\DUDWÕOPDNWDGÕU%XLúOHPLoLQJHUHNOLRODQ terminal kRPXWXDúD÷ÕGDYHULOPLúWLU>@

./createPeerAdminCard.sh

x $÷ÕQ dDOÕúWÕUÕOPDVÕ 7P LúOHPOHU ELWWLkten sonra %ORN =LQFLUL $÷ÕQÕQ oDOÕúWÕUÕOPDVÕ JHUHNPHNWHGLU %X LúOHP LoLQ JHUHNOL WHUPLQDO NRPXWX DúD÷ÕGD EHOLUWLOPLúWLU>@

composer network start -n networkName -c PeerAdmin@hlfv1 -V 0.0.1 -A admin -S adminpw

6LVWHP EDúDUÕOÕ ELU úHNLOGH EDúODWÕOGÕNWDQ sonra, \DUDWÕODQ (ú .DUWÕ¶QÕQ VLVWHPH HNOHQPHVL gerekmektedir. BunXQ LoLQ JHUHNOL NRPXW DúD÷ÕGD YHULOPLúWLU

# Use the card generated

composer card import -f admin@pollstarblockchainnetwork.ca rd

%X LúOHPOHU VRQXFXQGD VLVWHP EDúDUÕOÕ ELU úHNLOGH test edilebiOLU KDOGHGLU <DUDWÕODQ $NÕOOÕ 6|]OHúPHOHUin (smart contrDFW KHSVLDUWÕNVLVWHPGH KD]ÕU YH NXOODQÕODELOLU KDOH JHOPLúWLU (÷HU ]LQFLU NRGXQGDKHUKDQJLELUKDWDROXúPXúLVHVLVWHPKDWD YHULU YH NXOODQÕFÕ\Õ X\DUÕU %XQD J|UH NRG düzenlenip \XNDUÕGDNLDúDmalar tekrar uygulanarak önceden ROXúWXUXODQ %ORN =LQFLUL $÷ÕQÕn içine tekrar yüklenebilir.

x Sistemin Simülasyonu: Sistemin simülasyonu DPDFÕ\ODNXOODQÕODQ“Composer Playground” isimli ELU VHUYLV EXOXQPDNWDGÕU %X VHUYLV %ORN =LQFLUL JHOLúWLULFLVLQH \DUDWWÕ÷Õ $NÕOOÕ 6|]OHúPHOHUin NXOODQÕPÕ YH simülasyonu NRQXVXQGD NROD\OÕN VD÷ODU >@ gUQH÷LQ NXOODQÕFÕQÕQ ³Anket Oyla” adÕQGD ELU DNÕOOÕ V|]OHúPH \DUDWWÕ÷ÕQÕ IDU] edelim. KuOODQÕFÕ EX V|]OHúPH\L JHUHNOL SDUDPHWUHOHUL JLUHUHN WHVW HGHELOLU YH EDúDUÕOÕ ELU úHkiOGH oDOÕúÕS oDOÕúPDGÕ÷ÕQÕ J|UHELOLU %X VD\HGH VLVWHPLQ LúOH\Lú NRQWURO VD÷ODQPDNWDGÕU &RPSRVHU 3OD\JURXQG servisi, NXOODQÕFÕ\D \XNDUÕGD EDKVHGLOHQ LúOHPOHULQ NROD\OÕNOD JHUoHNOHúWLULOHELOPHVL LoLQ DUD yüz VD÷ODPDNWDGÕU>@

D. Loopback Servisi

Loopback serYLVL DoÕN ND\QDNOÕ ELU 1RGH-6 VHUYLVLGLU >@ 6LVWHPGHKDOLKD]ÕUGD\NORODQ1RGH-V5(676XQXFXLoLQ NXOODQÕFÕDUD yüzü yaratabilmek üzere LoopBack DGÕQGDELU VHUYLV VD÷ODPDNWDGÕU >@ 'ROD\ÕVÕ LOH /RRSEDFN NXOODQÕODUDN5(676XQXFXLoLQDUD \]ROXúWurXOPXúWXU%X VD\HGH5(676XQXFXNXOODQÕPÕKÕ]OÕYHNROD\KDOHJHOPLúWLU 9LVXDO6WXGLR&RGHDUDFÕQÕQNRQVROXNXOODQÕODUDk Loopback 3URMH WLSL ROXúWXUXODbilir ve gerekli tüm dosyalar Proje .ODV|U LoLQGH D\UÕ ELU NODV|UGH \DUDWÕODELOLU /RRSEDFN ROXúWXUPDk LoLQJHUHNOLWHUPLQDONRPXWXDúD÷ÕGDYHULOPLúWLU yo hyperledger-composer

%X NODV|UH HULúLP VD÷ODQGÕNWDQ VRQUD 5(67 Sunucusu’nu EDúODWPDN LoLQ EDúODWPD NRPXWX JLULOPLúWLU .RQVRO oÕNWÕVÕ olarak, REST Sunucusunun URL’VL\HUDOPDNWDGÕU>@%X OLQNH WÕklanarak REST Sunucusu ara \]QH EDúDUÕOÕ ELU úHNLOGHHULúLPVD÷ODQPÕúWÕU

E. REST Sunucusu

REST Sunucusu \DUGÕPÕ\OD %ORN =LQFLUL $÷Õ YH $QGURLG X\JXODPDVÕ DUDVÕQGD YHUL DOÕúYHULúL VD÷ODQPÕúWÕU Uygulama NÕVPÕQGD LVH ³9ROOH\´ DGÕQGD $÷ .WSKDQHVL NXOODQÕODrak REST Sunucu ile uygulama LOHWLúLPL VD÷ODQPÕúWÕU %X LOHWLúLP-621YHULIRUPDWÕLOHJHUoHNOHúWLULOPLúWLU$QGUoid NÕVPÕQGDQ JHOHQ JLUGLOHU -621 IRUPDWÕQD G|QúWUOHUHN REST SunucusuQD DNWDUÕOPÕúWÕU 5(67 LoLQGH GH JHOHQ YHULOHUNXOODQÕODUDN%ORN=LQFiriQGHNLJHUHNOLLúOHPOHUDNWLYH HGLOPLúYHLúOHPND\ÕWODUÕROXúWXUXOPXúWXU

F. .XOODQÕFÕ$UD Yüzü

.XOODQÕFÕ ara yüzünden gelen girdiler REST Sunucusuna DNWDUÕOÕU. Bu girdiler %ORN=LQFLUL$÷ÕQGDED]ÕGH÷LúLNOLNOHULQ ROPDVÕQD VHEHS RODFD÷Õ JLEL VDGHFH Durum KaydÕQGDNL (World State) bilgilerin |÷UHQLOPHVL LoLQ GH NXOODQÕODELOLU gUQH÷LQNXOODQÕFÕQÕQR\ODPDLúOHPLQLJHUoHNOHúWLUPHVL veya ELU R\ODPD VRUXVX \DUDWÕOPDVÕ, Blok Zincirinde Durum .D\GÕQÕQ GH÷LúiNOL÷LQL JHUHNWLULU Bu girdiler arka planda -621 IRUPDWÕQD G|QúWUOU YH 5EST Sunucusuna “POST” PHVDMÕ RODUDN J|QGHULOLU Oylama ara yüzü ekran görüntüsü ùHNLO’te, soru yaratma ara yüzü ekran görüntüsü GHùHNLO’WHJ|VWHULOPLúWLU

(5)

ùHNLO5. Soru Yaratma Ara Yüzü

Bunun ötesinde NXOODQÕFÕGDn gelen girdiler D\QÕ ]DPDQGD Blok Zinciri $÷ÕQGD olan verilerin gösterilmesiyle ilgili olarak GD NXOODQÕODELOLU KulODQÕFÕGDQ JHOHQ JLUGLOHU DUND planda yine -621 IRUPDWÕQD d|QúWrülerek REST sunucusuna “GET” LVWH÷LúHNOLQGH\ROODQÕU%XVD\HGe Blok =LQFLUL$÷ÕQGDQLVWHQHQ'XUXP.D\GÕELOJLVLX\JXODPDDUD \]QH DNWDUÕODELOLU %X Lúlemin geroHNOHúWL÷L ara yüzlerden biri olan sonuç ara yüzü ekran görüntüsü ùHNLO 6’da J|VWHULOPLúWLU

ùHNLO6. Sonuç Ara Yüzü

V. SONUÇ

%X oDOÕúPDGD %ORN Zinciri tabaQOÕ ELU GLMLWDO R\Oama SODWIRUPXJHOLúWLULOPLúWLU%XoDOÕúPDQÕQWHmel motivasyonu, dLMLWDO ELU R\ODPD VLVWHPLQLQ DNOD JHWLUHFH÷L HQGLúHOHULQ Ye VRUXQODUÕQ PLQLPL]H HGLOPHVLGLU <DSÕODQ EX oDOÕúPD VD\HVLQGH LQVDQODUÕQ GDKD JYHQLOLU YH WDNLS Hdilebilir bir oylama sistemine sDKLS ROPDODUÕ YH R\ODPD VRQXoODUÕ DoÕNODQGÕNWDQ VRQUD ROXúDELOHFHN HQGLúHOHULQ YH NDUJDúDQÕQ |QQH JHoLOPHVL KHGHIOHQPLúWLU Blok Zinciri teknolojisinin JYHQ VRUXQODUÕQÕ o|]PHGH QH NDGDU HWNLOL ELU WHNQRORML

RODELOHFH÷LQL Jöstermek ve fLQDQV DODQÕ GÕúÕQGDki uygulamalara yenisi eklemek de ikincil hedeflHUDUDVÕQGDGÕU

KAYNAKÇA

[1] Gaur, N., Desrosiers, L., Ramakrishna, V., Novotný, P., Baset, S. and O'Dowd, A. (2018). Hands-on blockchain with Hyperledger. [2] Sciencesphere.org. (2017). [online] Available at:

http://www.sciencesphere.org/ijispm/archive/ijispm -0501.pdf#page=67 [Accessed 27 May 2019]. [3] Crosby, M., Pattanayak, P., Verma, S. and

Kalyanaraman, V. (2016). BlockChain Technology: Beyond

Bitcoin. [online] Scet.berkeley.edu. Available at: http://scet.berkeley.edu/wp-content/uploads/ AIR-2016-Blockchain.pdf

[Accessed 27 May 2019].

[4] Hyperledger-fabric.readthedocs.io. (2019). Smart

Contracts and Chaincode — hyperledger-fabricdocs master documentation. [online] Available at: https://hyperledger-

fabric.readthedocs.io/en/release-1.4/smartcontract/smartcontract.html [Accessed 1 Jun. 2019].

[5] "Installing pre-requisites | Hyperledger Composer",

Ibm-blockchain.github.io, 2019. [Online]. Available: https://ibm-

blockchain.github.io/develop/installing/installing-prereqs.html#macos. [Accessed: 02- Jun- 2019] [6] "Installing the development environment |

Hyperledger Composer", Ibm-blockchain.github.io, 2019. [Online]. Available: https://ibm-blockchain.github.io/develop/installing/developme nt-tools.html. [Accessed: 02- Jun- 2019]

[7] "Deploying Business Networks | Hyperledger

Composer", Hyperledger.github.io, 2019. [Online]. Available: https://hyperledger.github.io/composer/v0.19/business-network/ bnd-deploy.html. [Accessed: 03- Jun- @

[8] "Using Playground | Hyperledger Composer",

Hyperledger.github.io, 2019.[Online]. Available: https:// hyperledger.github.io/composer/v0.19/playg round/playground-index. [Accessed: 03- Jun- @

[9] "LoopBack - Node.js framework", Loopback.io, 2019. [Online]. Available: https://loopback.io/. [Accessed: 03- Jun- 2019].

[10] "Generating a REST API | Hyperledger Composer", Hyperledger.github.io, 2019. [Online]. Available: https://hyperledger.github.io/composer/v0.19/integrating/getting-started-rest-api. [Accessed: 03- Jun- @

[11] "Publishing events from the REST server | Hyperledger Composer", Hyperledger.github.io,

2019. [Online]. Available: https://hyperledger.github.io/composer/v0.19/integrating/ publishing-events. [Accessed: 03- Jun- 2019]

Referanslar

Benzer Belgeler

kullanılan fiiller olan; резать, пилить, рубить, колоть, ломать, рвать, кусать, грызть от- ön ekini aldıkları zaman, bir nesnenin tamamından

Mussoli- ni'nin faşizminden uzaklaşmak için ülkesini terk edip Fransa'ya geçmiş, Paris'te kitaplannı basan ünlü Grasse yayınevi, Mussoli- ni'yi yerin dibine

Türk tarımının, ekonomideki yeri ve önemi istatistiki bilgiler ışığında değerlendirilmiş, tarımsal işgücü ve istihdam içindeki payı ortaya konulmuş ve tarım

Bu sayının orijinal araştırması ise “Sigarayı Bırakma Girişimlerinde Başarıyı Etkileyen Faktörler-Hekim Adayları Örneği”. Esra Mavişe Ünüvar bizimle

On the one hand, a smart contract is established between the seller and the buyer using ethereum block chain network, and all the financial transactions are carried out using

Kütle çekim potansiyel enerjisi: Belli bir yükseklikten serbest bırakılan bir cisme etki eden kütle çekim kuvveti cisim üzerinde iş yapar ve cismin kinetik enerjisi

Genellikle hastalýk obsesyonlarý ya da hipokondriazis biçiminde ortaya çýkan bu korkunun görüldüðü ruhsal bozukluklar sýk- lýkla yaygýn anksiyete bozukluðu, fobik bozukluk;

Tedarik zinciri yönetim faaliyetlerine olan potansiyel etkileri hakkında hala yeterli bilginin olmadığı blok zinciri teknolojisinin daha iyi anlaşıla- bilmesi adına, sektörün