Giӟi thiӋu bài toán
Trong thӡLÿҥi công nghӋ sӕ ngày nay, dӳ liӋXÿyQJYDLWUzKӃt sӭc quan trӑng Hàng ngàn ӭng dөng, dӏch vө, hӋ thӕQJWK{QJWLQÿӅXÿѭӧc xây dӵng và phát triӇn dӵa trờn viӋc tұp hӧp, khai thỏc, phõn tớch và chuyӇQÿәi dӳ liӋXô0һc dự vӟi nguӗn dӳ liӋXÿDGҥQJYjSKRQJSK~QKѭQj\QD\&yQKӳng nguӗn dӳ liӋu không dӉ dàng tiӃp cұn, tuy nhiên vӟi nӅn tҧng dӳ liӋu mӣ, giúp cho phép và khuyӃQNKtFKQJѭӡi dùng chia sҿ bҵng nhiӅu hình thӭFÿӏnh dҥQJNKiFQKDXGѭӟi nhiӅXÿLӇu kiӋQÿLӅu khoҧQNKiFQKDXĈk\OjQJXӗn dӳ liӋXÿDGҥng và phong phú, tuy nhiên có quá nhiӅu dӳ liӋu và chúng ta không biӃt chúng có cҫn thiӃWYjGѭWKӯa hay không Nhӡ vào viӋc áp dөng các nguyên tҳc cӫa dӳ liӋu mӣ liên kӃt Linked Open Data (LOD) chúng ta có thӇ trҧ lӡi cho câu hӓi này
Dӳ liӋu mӣ liên kӃt có thӇ trҧ lӡi cho nhӳng câu hӓi vӅ viӋFGѭWKӯDYjFNJQJQKѭJL~S QJѭӡi sӱ dөng có thӇ tìm kiӃm dӳ liӋu mӝt cách trӵFTXDQYjÿѫQJLҧQKѫQUҩt nhiӅu so vӟi viӋc phҧi mò trong mӝW³UӯQJ´Gӳ liӋu mһc dù có cùng giá trӏ QKѭQJQKӳng tӯ khóa là khác nhau Tuy nhiên vҩQÿӅ ÿһt ra vүn là liӋXWK{QJWLQÿѭӧFOѭXWUӳ trong hӋ thӕng LOD có thұt sӵ ÿҫ\ÿӫ thông tin và nhӳng thông tin này có thӵc sӵ tӟi tӯ nhӳQJQJѭӡi cung cҩp nhӳng dӳ liӋXQj\Gѭӟi dҥQJ³Pӣ´
Ta có thӇ rút ra 2 vҩQÿӅ cҫn giҧi quyӃt ӣ hӋ thӕQJOѭXWUӳ dӳ liӋu mӣ liên kӃt Linked Open Data: x Nӝi dung thông tin x Minh bҥch thông tin
Phҫn lӟn các nӅn tҧng LOD hiӋQQD\ÿӅu ghi nhұQWK{QJWLQÿѭӧFÿѭDYjRWӯ QJѭӡi GQJWX\QKLrQÿӕi vӟi nhӳQJQJѭӡi dùng không phҧi là nhӳQJQJѭӡi có chuyên môn thì nhӳQJWK{QJWLQQj\NK{QJÿҫ\ÿӫ và làm cho nhӳQJQJѭӡLÿѭӧc sӱ dөng thông tin cӫa LOD không thӇ nhұn biӃWÿҫ\ÿӫ vӅ nhӳQJWK{QJWLQÿѭӧc cung cҩSĈӕi vӟi dӳ liӋu mӣQѫLFKLDVҿ dӳ liӋu vӟi nhiӅu dӳ liӋXÿӏnh dҥng và cҩu trúc khác nhau,
4 viӋc tәng quan hóa thông tin ӣ mӭFÿӝ ngӳ QJKƭDVӁ giúp cho viӋc phân tích và quyӃt ÿӏnh sӱ dөng dӳ liӋu cӫDQJѭӡi dùng nhanh chóng và có hiӋu quҧ FDRKѫQ
7K{QJ WLQ OѭX WUӳ trong các hӋ thӕQJ /2' ÿѭӧc mô tҧ Gѭӟi dҥng Resource Description Framework (RDF) RDF là mӝt mô hình chuҭQÿӇ WUDRÿәi dӳ liӋu trên ZHE5')FyFiFWtQKQăQJWKXұn lӧi cho viӋc hӧp nhҩt dӳ liӋu ngay cҧ NKLFiFOѭӧc ÿӗ FѫEҧQNKiFQKDXYjFKtQK5')FNJQJKӛ trӧ sӵ phát triӇn cӫDFiFOѭӧFÿӗ theo thӡi gian mà không yêu cҫu tҩt cҧ các dӳ liӋXOLrQTXDQWKD\ÿәi
Tӯ 5')QJѭӡi dùng có thӇ dӉ GjQJÿӑc và tìm kiӃm thông tin trong LOD thông qua truy vҩn ÿѫQJLҧn và dӉ sӱ dөQJÿӕi vӟi nhӳQJQJѭӡi không có nӅn tҧng vӅ NƭWKXұt Vұy nên RDF giӕQJQKѭOjFѫVӣ dӳ liӋu trong các hӋ thӕng khác ViӋc giӳ RDF minh bҥFKYjÿҧm bҧo thông tin chính xác là mӝt vҩQÿӅ quan trong LiӋXÿLӅu gì sӁ xҧy ra nӃu mӝWQJѭӡi njRÿyNK{QJFyTX\ӅQYjRYjWKD\ÿәi thông tin cӫa RDF, dүn tӟi viӋFQJѭӡi sӱ dөng bӏ dүn tӟi nhӳng thông tin sai lӋch và sӱ dөng thông tin sai lӋch cho các mөFÿtFKQJKLrQFӭu hoһc kinh doanh.
Giҧi quyӃt vҩQÿӅ
ĈӇ giҧi quyӃt vҩQÿӅ trên, mӝt hӋ thӕng dùng ÿӇ trích xuҩt thông tin cӫa các tұp tin dӳ liӋXÿѭӧFOѭXWUӳ thông tin trong RDF Trong luұQYăQQj\FKӍ tұp trung vào viӋc trích suҩt thông tin cӫa dӳ liӋXPjNK{QJÿӅ cұp tӟi nӝi dung cӫa dӳ liӋu Các thụng tin cӫa dӳ liӋXQKѭNtFKWKѭӟFÿӏnh dҥng tұp tin dӳ liӋXô9jW\Wӯng kiӇu dӳ liӋu khác nhau thì sӁ FyWKrPQKѭQJWK{QJWLQÿѭӧc trích xuҩWQKѭÿӕi vӟi tұp tin dӵ liӋXÿӏnh dҥng xlsx, csv thì chúng ta có thӇ lҩ\ÿѭӧc thông tin cӫa sӕ dòng, sӕ cӝt FNJQJQKѭWLrXÿӅ cӫa cỏc cӝWô.KLÿyQJѭӡLGQJÿmFy mӝt cỏi nhỡn tәng thӇ cho dӳ liӋXÿDQJÿѭӧc hiӇn thӏ trên RDF, giúp cho thông tin RDF trҧ vӅ FyêQJKƭDKѫQ ÿӕi vӟLQJѭӡLGQJFQJQKѭWҥRÿѭӧc sӵ WLQWѭӣQJKѫQFKRQJѭӡi dùng nhұn biӃt ÿѭӧFWK{QJWLQWUѭӟc khi sӱ dөng ViӋFOѭXWUӳ thông tin trích xuҩt tӯ tұp tin dӳ liӋu FNJQJOjPӝWFiFKÿӇ OѭXWUӳ lҥLQKѭQJWK{QJWLQGӳ liӋu tұSWLQWURQJWUѭӡng hӧp dӳ liӋXWKD\ÿәi và tұSWLQÿmFyVӵ WKD\ÿәi hoһFÿiQKWUiRNK{QJFzQJLӕng vӟi thông WLQÿѭӧFOѭXWURQJ5')7X\QKLrQYҩQÿӅ SKiWVLQKNKLQJѭӡi dùng phҧLWLQWѭӣng
5 vào thông tin cӫa RDF cung cҩp Vұy làm sao giҧi quyӃt vҩQÿӅ vӅ lòng tin, không phө thuӝc vào bên thӭ EDQjRQKѭQJYүQÿҧm bҧo an toàn và chính xác cӫDOѭӧFÿӗ RDF? Giҧi pháp mà luұQYăQÿѭDUDOjVӱ dөng công nghӋ blockchain
VӅ FѫEҧn, dӳ liӋXÿѭӧFOѭXWUӳ vào blockchain không thӇ WKD\ÿәLYjÿmÿѭӧc chӭng minh bҵng các thuұt toán khoa hӑF1JRjLUDÿӕi vӟi bҩt kì sӵ WKD\ÿәi nào, blockchain ÿӅu có ghi nhұn lҥi cө thӇ YjWK{QJWLQÿyFyWKӇ sӱ dөQJQKѭPӝt công cө ÿӇ truy vӃt thông tin khi có sӵ WKD\ÿәLÿѭӧc coi là hӧp pháp Vì vұ\NKLOѭӧFÿӗ 5')ÿѭӧFOѭX trӳ vào blockchain ta có thӇ WLQWѭӣQJÿѭӧc vào sӵ WKD\ÿәi cӫa dӳ liӋXFNJQJQKѭWUX\ vӃt lҥi sӵ WKD\ÿәi, tӯ ÿyORҥi bӓ ÿѭӧc vҩQÿӅ vӅ OzQJWLQYjWLQWѭӣng hoàn toàn vào tính minh bҥch
Trùng lһp thông tin: trùng lһp thông tin xҧy ra khi RDF mô tҧ KDLÿӕLWѭӧng có cùng thông tin vӟLQKDXQKѭQJNK{QJFyVӵ liên kӃt giӳDQKѭQJWK{QJWLQQj\ÿӇ tránh viӋc mô tҧ hai lҫn
Trong khuôn khә cӫa luұQYăQPӝWSKѭѫQJSKiSKҥn chӃ viӋc trùng lһp thông tin sӁ ÿѭӧc thӵc hiӋn dӵa trên các kӃt nӕi mҥnh và yӃu cӫDFiFÿӕLWѭӧng và các node thông tin trong RDF Bӣi vì dӳ liӋXÿѭӧFOѭXWUӳ trong blockchain càng ít thì viӋFOѭXWUӳ và tái sӱ dөng sӁ FiFQKDQKYjÿҥt hiӋu xuҩWFDRWKrPYjRÿyFNJQJWLӃt kiӋm chi phí ÿәi vӟi viӋc sӱ dөng các mҥng blockchain công khai (public networks)
7URQJFKѭѫQJQj\WDVӁ tұp trung vào mӝt sӕ kiӇu tұSWLQWKѭӡQJÿѭӧc sӱ dөng ÿӇ mô tҧ WK{QJWLQWUrQLQWHUQHWĈӗng thӡi giӟi thiӋXVѫQpWYӅ các nӅn tҧng dӳ liӋu mӣ phә biӃn hiӋn nay, tұp trung vào nӅn tҧng CKAN [1] ± ÿӕLWѭӧng chính cӫa luұn YăQQj\1JRjLUDFKѭѫQJQj\FzQJLӟi thiӋu mӝt sӕ thông tin vӅ cҩu trúc cӫa nӅn tҧng blockchain nói chung và nӅn tҧng Ethereum nói riêng Các ӭng dөng cӫa blockchain trong ngӳ cҧnh dӳ liӋu liên kӃt mӣ và các công trình nghiên cӭu có liên quan tӟi giҧi pháp luұQYăQÿѭDUD
TұSWLQOѭXWUӳ dӳ liӋu trên nӅn tҧng open data
Mӝt tұSWLQÿѭӧc chia sҿ trên các nӅn tҧng open data phҧLÿiSӭng nhӳng yêu cҫu QKѭOj x K{QJÿӝc quyӅn x Không mã hóa x Không nén x Khҧ QăQJWѭѫQJWiFJLӳa các nӅn tҧng và ӭng dөQJÿDGҥng x Xuҩt bҧQÿҫ\ÿӫ và có sҹn bҧn quyӅn x Có thӇ tái sӱ dөng mà không có bҩt kǤ hҥn chӃ vӅ sӣ hӳu trí tuӋ nào x Ĉѭӧc phát triӇn và duy trì bӣi mӝt tә chӭc tiêu chuҭn mӣ vӟi quy trình rõ UjQJÿӇ phát triӇn mӝt cách tiêu chuҭn ĈӇ ÿiSӭng nhӳng yêu cҫXQKѭQj\Pӝt sӕ ÿӏnh dҥng dӳ liӋXNKiOêWѭӣQJÿѭӧFÿӅ xuҩWQKѭVDX x Hӝp chӭa (container) : TAR, GZIP, ZIP x &ѫVӣ dӳ liӋu (Databases): XML, CSV x K{QJJLDQÿӏa lý (Geospatial): SHP, DBF, GeoTIFF, NetCDF x Hình ҧnh : MOV, MPEG, AVI, MXF x Âm thanh: WAVE, AIFF, MP3, MXF x Tұp tin ký tӵ: XML, PDF/A, HTML, ASCII, UTF-8
Tҩt cҧ các tұSWLQÿӏnh dҥQJWUrQÿk\ÿӅu có thӇ dӉ GjQJÿѭӧFÿӑc trên bҩt kǤ hӋ ÿLӅu hành nào mà không cҫn tӟi mӝt công cө ÿһc thù nào cӫa bên thӭ 3.
Dӳ liӋu mӣ - Open Data
Giӟi thiӋu
Dӳ liӋu mӣ ÿѭӧFÿӏQKQJKƭDlà dӳ liӋu có thӇ ÿѭӧc bҩt kǤ ai tӵ do sӱ dөng, sӱ dөng lҥi và phân phӕi lҥi, chӍ yêu cҫu ghi nhұn nguӗn và chia sҿ WѭѫQJWӵĈһFÿLӇm quan trong cӫa dӳ liӋu mӣ là tính chia sҿ (trao quyӅn khai thác, sӱ dөng, sӱ dөng lҥi, phân phӕi dӳ liӋu), tính sҹn sàng truy cұp, khai thác sӱ dөng dӳ liӋu
Mӝt sӕ yӃu tӕ quan trong mà dӳ liӋu mӣ có thӇ mang lҥi : x TҥRFѫVӣ cho nghiên cӭu và phát triӇn các công nghӋ QKѭSKkQWtFKGӳ liӋu lӟn, ӭng dөng trí tuӋ nhân tҥo, tích hӧp sӕ x TiӃt kiӋm công sӭc thu thұp và chi phí mua dӳ liӋu cӫa các doanh nghiӋp và cá nhân KhuyӃn khích các doanh nghiӋp và cá nhân tҥo ra các ӭng dөng có giá trӏ phөc vө QJѭӡi sӱ dөng dӵa trên bӝ dӳ liӋu x KiӇm tra khҧ QăQJVҹn sàng sӕ hóa dӳ liӋu cӫa chính phӫ, tә chӭc và tҥo sӵ minh bҥch vӅ quҧn lý thông tin, có thӇ phát hiӋQUDFiFÿһc tính, vҩQÿӅ mӟi tӯ bӝ dӳ liӋu mà chӫ sӣ hӳu dӳ liӋXFKѭDphát hiӋn ra x Có thӇ chia sҿ viӋFNKDLWKiFWKѭѫQJPҥi, thӏ WUѭӡng khi kӃt hӧp bӝ dӳ liӋu vӟi mӝt ӭng dөng khác Ĉӕi vӟLFiFFѫTXDQQKjQѭӟc, dӳ liӋu mӣ giúp Chính phӫ cҧi thiӋQÿѭӧc tính minh bҥch và công khai, tҥRUDP{LWUѭӡQJWURQJÿyFyVӵ tham gia cӫa công dân vӟi chính phӫ, giúp cҧi tiӃn quy trình quҧn lý, tә chӭc dӳ liӋXWURQJFѫTXDQOjPJLҧm chi phí YjWăQJKLӋu quҧ hoҥWÿӝQJWURQJFiFFѫTXDQĈӕi vӟLQJѭӡi dân và doanh nghiӋp, dӳ liӋu mӣ JL~SQJѭӡLGkQFyÿѭӧc các thông tin cҫn thiӃWÿӇ có thӇ VRViQKYjÿӕi chiӃu, tҥRÿLӅu kiӋn thuұn lӧi cho thӵc hiӋn quyӅn dân chӫ và tham gia quҧn lý
Các nӅn tҧng dӳ liӋu mӣ phә biӃn
2.2.1 CKAN ± Comprehensive Knowledge Archive Network
CKAN [1@ÿѭӧc phát triӇn bӣi tә chӭc phi lӧi nhuұn OKFN(Open Knowledge Foundation) CKAN là mӝt nӅn tҧng mã nguӗn mӣ ÿӇ tҥo các trang web dӳ liӋu mӣ WѭѫQJWӵ QKѭKӋ thӕng quҧn lý nӝi dung WordPress - QKѭQJÿӕi vӟi dӳ liӋu, thay vì FiFWUDQJYjFiFEjLÿăQJEORJ0өc tiêu chính cӫa CKAN là quҧn lý và chia sҿ dӳ liӋu cho tҩt cҧ mӑLQJѭӡLGѭӟi nhiӅu hình thӭc khác nhau và hiӋQÿDQJÿѭӧc sӱ dөng rӝng rãi bӣi các quӕc gia, tә chӭc nghiên cӭu trên toàn thӃ giӟi
7URQJ&.$1ÿѫQYӏ chia sҿ dӳ liӋXÿѭӧc gӑi là bӝ dӳ liӋu (dataset) Ví dө bӝ dӳ liӋu có thӇ là thӕng kê cho tӍ lӋ thҩt nghiӋp cӫa mӝWÿӏDSKѭѫQJFKӍ WLrXFKRFiFFѫ quan hành chính cӫa chính phӫ hoһc là sӕ liӋu tӯ các trҥm thӡi tiӃt khác nhau Khi QJѭӡi dùng tìm kiӃm, kӃt quҧ mà hӑ thҩy là các bӝ dӳ liӋu riêng lҿ
Mӝt bӝ dӳ liӋu sӁ gӗm 2 thành phҫn chính: x Siêu dͷ li u ± metadata: bao gӗm tên, mô tҧ, giҩy phép, loҥi tӋp, thҿ, thӡi gian tҧi lờn, tỏc giҧô x Phҫn n͡i dung: nӝi dung dӳ liӋXGѭӟi dҥng CSV hoһc Excel, XML, tài liӋu PDF, tӋp hình ҧnh, dӳ liӋu liên kӃt
HӋ thӕng CKAN bao gӗm giao diӋn web và API có thӇ sӱ dөQJÿӇ tìm kiӃm thêm, xóa và sӱa trên bӝ dӳ liӋu, quҧn lý ӫy quyӅQYjSKkQWtFKQJѭӡi dùng Ngoài ra, có thӇ [HPWUѭӟc dӳ liӋXGѭӟi hình thӭc biӇXÿӗÿӗ thӏ và bҧQJĈӕi vӟi dӳ liӋu không JLDQÿӏa lý (nӃu dӳ liӋu bao gӗPWK{QJWLQYƭÿӝ YjNLQKÿӝ), hӛ trӧ chӃ ÿӝ xem bҧn
9 ÿӗ có sҹn CKAN sӱ dөQJP{KuQK9'09HUVLRQHG'RPDLQ0RGHOÿӇ OѭXJLӳ toàn bӝ lӏch sӱ hoҥWÿӝng cӫDQJѭӡLGQJ&iFWtQKQăQJFKLDVҿ và giao tiӃp trên dӳ liӋu bao gӗm khҧ QăQJWtFKKӧS*RRJOH7ZLWWHUYj)DFHERRN566&yKѫQSKҫn mӣ rӝng có sҹn cho CKAN có thӇ ÿѭӧc thêm vào mӝWFiFKÿӝc lұp
Mô hình chia sҿ dӳ liӋu cӫD&.$1WѭѫQJÿӕLÿѫQJLҧn, chӍ hӛ trӧ FiFWtQKQăQJFѫ bҧQQKѭWҥo mӟi, chia sҿ, tỡm kiӃPôWѭѫQJWӵ QKѭKӋ thӕQJOѭu trӳ file trӵc tuyӃn HiӋn nay, CKAN là nӅn tҧng dӳ liӋu mӣ ÿѭӧc triӇn khai trên rҩt nhiӅu quӕc gia x The Open Government Platform - OGPD ӣ Ĉӭc x https://www.data.gov - cәng thông tin cӫa chính phӫ Mӻ x https://www.europeandataportal.eu - cәng thông tin chung cӫa khӕi liên minh châu Âu x https://data.gov.au - Cәng thông tin cӫa chính phӫ Úc x http://open.canada.ca - Cәng thông tin cӫa chính phӫ Canada
Socrata [2] là công ty dүQÿҫu thӏ WUѭӡng trong viӋc cung cҩp giҧLSKiSWKѭѫQJ mҥi cho các tә chӭc chính phӫ trong vҩQÿӅ triӇn khai dӳ liӋu mӣ NӅn tҧng cӫa sorata có tên gӑi là Socrata Open Data Portal, là cәng thông tin dӳ liӋu mӣ hӛ trӧ triӇn khai, tìm kiӃm, so sánh và hiӇn thӏ các tұp dӳ liӋu khác nhau KiӃn trúc Sorata là kiӃn trúc microservice trên nӅn tҧQJÿiPPk\WӕLѭXKyDWӕFÿӑ truy cұp và có khҧ QăQJPӣ rӝQJQKDQKFKyQJYjWKD\ÿәi linh hoҥt Mӝt sӕ chính phӫ ÿDQJVӱ dөQJVRUDWDQKѭ là x New York (https://opendata.cityofnewyork.us) x Chicago (https://data.cityofchicago.org) x Dallas (https://www.dallasopendata.com/)
Hình 2 Ki͇n trúc n͉n t̫ng Socrata
OGDI-Datalab (https://github.com/openlab/OGDI-DataLab) là mӝt nӅn tҧng open source viӃt bҵng C#/.NET và phát triӇn tích hӧp trên nӅn tҧQJÿiPPk\Fӫa 0LFURVRIW$]XUHYjÿѭӧc dùng cho các mөFÿtFKVDX x Cung cҩp cho công dân các quyӅn truy cұp vào dӳ liӋu cӫa chính phӫ, bao gӗm tìm kiӃm, trӵc quan hóa, phân tích và tҧi xuӕng thông tin ӣ nhiӅXÿӏnh dҥng tұp tin x Cho phép các nhà phát triӇn ӭng dөng truy cұp dӳ liӋXWK{QJTXDÿӏnh dҥng API x Tӵ ÿӝng cұp nhұt dӳ liӋu trong hӋ thӕng cӫa chính phӫ tӯ máy tính cӫa nhân viên chính phӫ x Ĉҧm bҧRÿӝ tin cұy và có khҧ QăQJPӣ rӝng dӵa trên nӅn tҧQJÿiPPk\
Có 3 thanh phҫn chính trong OGDI-Datalab bao gӗm: dӏch vө dӳ liӋu (data service), trình tҧi dӳ liӋu (data loader) và trình duyӋt dӳ liӋu (data browser)
7ѭѫQJWӵ vӟi CKAN thì OGDI-'DWDODEFNJQJÿѭӧc sӱ dөng rӝng rãi bӣi nhiӅu tә chӭc chớnh phӫ QKѭ&ROXPELD(VWRQLD&DQDGD3KiSô
&iFF{QJWUuQKQyLWUrQÿmFKRWKҩy xu thӃ phát triӇn mҥnh mӁ cӫa nӅn tҧng dӳ liӋu mӣ Các nӅn tҧng hiӋn nay có thӇ chia làm 2 loҥi: sҧn phҭPWKѭѫQJPҥi cung cҩp Gѭӟi dҥng các dӏch vө trên nӅn tҧQJÿiPPk\YjFiFVҧn phҭm cөc bӝ Tuy nhiên ta có thӇ tóm tҳWFiFWtQKQăQJFѫEҧn chung cӫa các nӅn tҧQJQKѭVDX x Khҧ QăQJOѭXWUӳ dӳ liӋu x Khҧ QăQJWUX\Yҩn, tích hӧp các ӭng dөng trong hӋ sinh thái x Khҧ QăQJFKLDVҿ dӳ liӋu cho cӝQJÿӗng x Khҧ QăQJtrӵc quan hóa dӳ liӋu
Sӵ khác biӋt cӫa các nӅn tҧQJÿDSKҫn phө thuӝc vào công nghӋ cө thӇ ÿѭӧc sӱ dөng, mô hình tә chӭc, mөFÿtFKVӱ dөng, các loҥLÿӏnh dҥng và khҧ QăQJKӛ trӧ cӫa cӝng ÿӗng
Tuy nhiên, viӋc khai thác dӳ liӋu và tiӅPQăQJNKDLWKiFGӳ liӋu vүn còn có thӇ mӣ rӝQJKѫQQӳa HiӋn tҥLÿDVӕ các nӅn tҧng vүQFKѭDFyPӝt sӵ liên kӃt dӳ liӋu, các dӳ liӋu vүn khá rӡi rҥFĈӇ tҥo sӵ kӃt nӕi các dӳ liӋu liên quan lҥi vӟi nhau và tҥo nên mӝWP{LWUѭӡng dӳ liӋu mӣ có khҧ QăQJWiLVӱ dөng dӳ liӋu lҥi caRKѫQYjWѭѫQJWiF vӟLQJѭӡi sӱ dөng hӋ thӕng nhanh chóng và tӕWKѫQYLӋc áp dөng liên kӃt dӳ liӋu (linked data) vào nhӳng hӋ thӕng dӳ liӋu mӣ tҥo thành hӋ thӕng dӳ liӋu mӣ liên kӃt (linked open data) là mӝWÿLӅu cҫn thiӃt và thiӃt thӵc.
Dӳ liӋu liên kӃt (Linked Data)
Giӟi thiӋu
Dӳ liӋu liên kӃt là mӝWSKѭѫQJSKiSÿӇ xuҩt bҧn dӳ liӋu có cҩu trúc bҵQJSKѭѫQJ pháp sӱ dөng các tӯ ngӳ mà máy có thӇ hiӇXÿѭӧc Sӱ dөng dӳ liӋu liên kӃt, các câu lӋQKÿѭӧc mã hóa trong các bӝ EDYjÿѭӧc sӱ dөng trên các trang web khác nhau
Trong ví dө trên, ӣ website A có trình bày thông tin cӫa thӵc thӇ Jason, và Jason lҥi biӃt Marie ӣ website B và thông tin ngày xinh cӫa Marie ӣ tҥi website C Bҵng cách sӱ dөng dӳ liӋu liên kӃt, chúng ta có thӇ dӉ dàng liên hӃt và tìm kiӃm các dӳ liӋu liên quan MӛLWUDQJZHEOѭXWUӳ thông tin cӫa mӝt thӵc thӇ (Jason, Marie, Italy) và liên kӃWÿӃn thӵc thӇ khác mô tҧ ӣ nhӳng trang web khác hoһc nhiӅu trang web khác Trong tính toán dӳ liӋXÿѭӧc liên kӃt mô tҧ mӝWSKѭѫQJSKiS[Xҩt bҧn và liên kӃt dӳ liӋXÿӃn tӯ các nguӗn dӳ liӋXNK{QJÿӗng nhҩt có thӇ ÿѭӧc liên kӃt và chia sҿ
Dӳ liӋXÿѭӧc liên kӃt xây dӵng dӵa trên các công nghӋ Web tiêu chuҭQQKѭ+773 và URI, thay vì sӱ dөQJFK~QJÿӇ phөc vө FiFWUDQJZHEFKRQJѭӡLÿӑc, nó mӣ rӝng FK~QJÿӇ chia sҿ thông tin theo cách mà máy tính có thӇ ÿӑc tӵ ÿӝQJĈLӅu này cho phép dӳ liӋu tӯ các nguӗQNKiFQKDXÿѭӧc kӃt nӕi và truy vҩn Các truy vҩn vӅ dӳ liӋXÿѭӧc liên kӃWÿѭӧc thӵc hiӋn bҵng ngôn ngӳ truy vҩn ngӳ QJKƭDÿѭӧc gӑi là SPARQL cho phép truy xuҩt và thao tác dӳ liӋXÿѭӧFOѭXWUӳ ӣ ÿӏnh dҥng Khung mô tҧ tài nguyên (Resource Description Framework - RDF).
ĈһFÿLӇm
ĈһFÿLӇm cӫa dӳ liӋu liên kӃWQKѭVDX x 8QLIRUP5HVRXUFH,GHQWLILHU85,ÿѭӧc sӱ dөng cho mӑi truy vҩn trên dӳ liӋu liên kӃt x Sӱ dөQJ+77385,VÿӇ giúp cho bҩWNuQJѭӡLQjRFNJQJFyWKӇ truy vҩn tӟi nhӳng URI có sҹn
13 x Thông tin cung cҩp trong dӳ liӋu liên kӃWÿѭӧc mô tҧ bҵng các chuҭn ngӳ QJKƭD5')63$54/5')OjPӝt ngôn ngӳ mөFÿtFK chung cho viӋc thӇ hiӋn thông tin trên web, cҧ FRQQJѭӡLYjPi\ÿӅu có thӇ hiӇXÿѭӧc RDF x Tӯ 85,EDQÿҫu, thêm nhӳQJ85,NKiFYjRÿӇ QJѭӡi sӱ dөng có thӇ truy xuҩt tӟi thông tin khác tӯ dӳ liӋXEDQÿҫu
Khung mô tҧ tài nguyên ± Resource Description Framework (RDF)
RDF [3] là mӝt mô hình chuҭQÿӇ WUDRÿәi dӳ liӋXWUrQZHE5')FyFiFWtQKQăQJ hӛ trӧ hӧp nhҩt dӳ liӋu ngay cҧ NKLFiFOѭӧFÿӗ FѫEҧQNKiFQKDXYjQyÿһc biӋt hӛ trӧ sӵ phát triӇn cӫDFiFOѭӧc ÿӗ theo thӡi gian mà không yêu cҫu tҩt cҧ dӳ liӋXQJѭӡi GQJWKD\ÿәi
RDF mӣ rӝng cҩu trúc liên kӃt cӫD:HEÿӇ sӱ dөQJFiF85,ÿӇ ÿһt tên cho mӕi quan hӋ giӳa các sӵ vұWFNJQJQKѭKDLÿҫu cӫa liên kӃWÿLӅXQj\WKѭӡQJÿѭӧc gӑi là mӝt bӝ ba liên kӃt) Sӱ dөQJP{KuQKÿѫQJLҧn này, nó cho phép dӳ liӋu có cҩu trúc và bán cҩXWU~Fÿѭӧc trӝn lүn, tiӃp xúc và chia sҿ trên các ӭng dөng khác nhau
Mӝt bӝ ba liên kӃt bao gӗm: x Chӫ ngӳ (Subject) x Vӏ ngӳ (Predicate) x Tân ngӳ, bә ngӳ (Object)
Hình 4 C̭u trúc cͯa m͡t phát bi͋u RDF
Bҵng cách sӱ dөng các bӝ ba, RDF sӁ tҥRWKjQKÿѭӧc các mӋQKÿӅ (statement) có QJKƭDYjFyWKӇ hiӇXÿѭӧc Tұp hӧp cӫa mӝt tұp các mӋQKÿӅ sӁ thӇ hiӋQÿѭӧc mӝt vài mҧnh thông tin/kiӃn thӭc và hình thành nên mô hình RDF
7X\QKLrQ5')FNJQJÿѭӧc thiӃt kӃ ÿӇ cho máy có thӇ hiӇXÿѭӧc Vì thӃ viӋc mô tҧ mӝt mӋQKÿӅ phҧi dӵa trên mӝt bӝ chuҭn mà máy có thӇ hiӇXÿѭӧc Bҵng cách sӱ
14 dөng các bӝ tӯ ÿLӇn mô tҧ các khái niӋm tӯ theo chuҭn cӫa RDF Máy tính có thӇ hiӇu ÿѭӧFêQJKƭDFӫa các mӋQKÿӅ
Ví dө FOAF [http://xmlns.com/foaf/spec/] là mӝt bӝ tӯ ÿLӇn mô tҧ FiFÿһFWUѭQJFӫa ÿӕLWѭӧng vӅ FRQQJѭӡi và thông tin cӫa hӑ trên các trang web Vұy nên FOAF sӁ cung cҩp mӝt sӕ tӯ khóa mô tҧ thông tin vӅ QJѭӡLQKѭQDPHWrn), familyName (hӑ), age (tuәLô9jNKLÿyQӃu cҫn mụ tҧ RDF vӅ mӝWÿӕLWѭӧng thӵc thӇ OjQJѭӡi thỡ cú thӇ dùng tӯ ÿLӇQ)2$)ÿӇ cho máy biӃWêQJKƭDFӫa các câu mӋQKÿӅ ÿDQJÿѭӧFÿӏnh QJKƭDWURQJOѭӧFÿӗ RDF
5')WKѭӡQJÿѭӧc mô tҧ bӣi mӝt sӕ chuҭQQKѭVDu : x N3 x N-triples x TriG x Trix x Turtle x RDF/XML x RDFa x JSON-LD
Tài liӋX5')WKѭӡQJÿѭӧc viӃt bҵQJ;0/Yjÿѭӧc gӑi là RDF/XML [6] Bҵng cách sӱ dөng XML, thông tin cӫDOѭӧFÿӗ RDF có thӇ dӉ GjQJWUDRÿәi giӳa các loҥi máy tính khác nhau bҵng các loҥi hӋ ÿLӅu hành và ngôn ngӳ khác nhau
Trong RDF/XML mӛi phҫn là mӝt thӇ hiӋn cӫa mӝt ÿӕLWѭӧQJ&iFWK{QJWLQÿLNqP là các tính chҩt (Properties) cӫDÿӕLWѭӧQJÿy0ӝt tính chҩt có thӇ là mӝt thuӝc tính (Attributes) hoһc là mӝt tài nguyên (Resources).
NӅn tҧng Blockchain
Giӟi thiӋu
Tính tӟi thӡLÿLӇm hiӋn tҥi, Blockchain [4] là công nghӋ mӟLÿDQJJk\ÿѭӧc chú ý trong cӝQJÿӗng, là nӅn tҧQJÿѭӧFÿҧm bҧo vӅ mһt toán hӑc bao gӗm tұp hӧp các khái niӋm vӅ mã hóa, mҥng ngang hàng (peer to peer), an toàn dӳ liӋu và dӳ liӋu phân WiQô0өc tiờu cӫDEORFNFKDLQÿѭӧc thiӃt kӃ ÿӇ cung cҩp mӝt nӅn tҧng quҧn lý thụng tin an toàn, bҩt biӃn và minh bҥch cho hҫu hӃt các ӭng dөQJYjÿһc biӋt phù hӧp trong FiFP{LWUѭӡng thiӃu sӵ WLQWѭӣng giӳa các tác nhân Ӭng dөQJÿҫXWLrQYjÿѭӧc công nhұn rӛng rãi nhҩt cӫa blockchain là tiӅQÿLӋn tӱ bitcoin (Blockchain 1.0 ± ÿӗng BTC) VӅ FѫEҧn dӵa vào nӅn tҧng blockchain, bitcoin ÿѭӧFOѭXWUӳ trong mҥQJOѭӟLQHWZRUNÿѭӟi dҥng các giá trӏ sӕ Yjÿѭӧc gӑi là bitcoin
Và vì sӱ dөng nӅn tҧng blockchain nên bitcoin không cҫn có mӝt ngân hàng trung
16 ѭѫQJÿӇ xác nhұn nhӳng giá trӏ ELWFRLQQj\&NJQJQKѭYLӋFÿҧm bҧo giá trӏ cӫa bitcoin không bӏ WKD\ ÿәi bӣi sӵ tҩn công trái phép KӇ tӯ VDX ÿy ÿm Fy QKLӅu nӅn tҧng EORFNFKDLQUDÿӡi vӟi nhӳng cái tiӃn mӟLÿiSӭQJÿѭӧc nhiӅu nhu cҫu cӫDQJѭӡi sӱ dөQJKѫQFKӭ NK{QJÿѫQ giҧn chӍ là tiӅQÿLӋn tӱ&NJQJJLӕQJQKѭ%LWFRLQ(WKHUHXP
%ORFNFKDLQFNJQJOjPӝt mҥQJOѭӟi blockchain ӭng dөng cho tiӅQÿLӋn tӱ ÿӗng ETH), tuy nhiên Ethereum ÿmWKӵc hiӋn mӝt cách tiӃp cұn khác là có tích hӧp tính QăQJKӧSÿӗng thông minh (smart contract), tҥo thuұn lӧi cho các thӓa thuұn hӧp ÿӗng trӵc tuyӃn Nhӡ vào hӧSÿӗng thông minh, giӡ ÿk\QJѭӡi dùng có thӇ tҥo thêm ÿѭӧFFiFÿLӅu kiӋn xӱ lý cho các thӓa thuұn trên nӅn tҧng blockchain nói chung và Ethereum nói riêng.
Các ӭng dөng cӫa blockchain vào thӵc tiӉn hiӋn nay
Tӯ thiӋn: NhiӅu tә chӭc lӟn trên thӃ giӟLÿDQJJһp các thách thӭc trong viӋc quҧn lý các tài nguyên minh bҥch và có hiӋu quҧ Công nghӋ blockchain có thӇ giúp các tә chӭc này tӕLѭXKyDTXiWUuQKQKұn và quҧn lý dòng tiӅn Mӝt trong nhӳQJÿһFWUѭQJ chính cӫa các nӅn tҧQJEORFNFKDLQÿyOjYLӋc quҧn lý dòng tiӅQÿѭӧc sinh ra bӣi các giao dӏch trong quá trình sӱ dөng ViӋc này giúp cho viӋc dòng tiӅn trӣ nên minh bҥFKYjÿiQJWLQKѫQYuNK{QJFyVӵ quҧn lý cӫa bҩt kǤ bên thӭ 3 nào
Mӝt ví dө nәi bұt cӫa viӋc tích hӧp blockchain và tӯ thiӋn là quӻ tӯ thiӋn Blockchain
%&)ÿk\OjPӝt tә chӭc phi lӧi nhuұn và hoҥWÿӝng tӟi mөc tiêu phát triӇn bӅn vӳng nhҵm chӕng lҥL QJKqR ÿyL Yj EҩW EuQK ÿҷng bҵQJ FiFK WK~F ÿҭy viӋc triӇn khai blockchain vào hoҥWÿӝng tӯ thiӋn trên toàn thӃ giӟi
Chuӛi cung ӭng: Hҫu hӃt các mҥQJOѭӟi chuӛi cung ӭQJÿDQJJһp nhiӅu trӣ ngҥi
OLrQTXDQÿӃn tính minh bҥch và hiӋu quҧ HӋ thӕng quҧn lý hiӋn tҥi vүn phө thuӝc vào sӵ tín thác và sӵ tích hӧp giӳa công ty và các bên liên quan trong chuӛi cung ӭng là còn rҩt xa vӡi Công nghӋ blockchain có thӇ ÿѭӧc sӱ dөQJÿӇ theo dõi toàn bӝ quá trình tҥo và phân phӕi vұt liӋu trong mҥQJOѭӟi chuӛi cung ӭng MӝWFѫVӣ dӳ liӋu phân tán có thӇ phù hӧSÿӇ ghi lҥi an toàn mӑi dӳ liӋXOLrQTXDQÿҧm bҧo tính xác thӵc cӫa các sҧn phҭPFNJQJQKѭWtQKPLQKEҥch trong thanh toán và vұn chuyӇn
&KăPVyFVӭc khӓe: Tình trҥng nghӁn cә chai trong vұn hành, lӛi dӳ liӋu và quan liêu là các vҩQÿӅ nәi cӝPÿӕi vӟLOƭQKYӵFFKăPVyFVӭc khӓe %ORFNFKDLQÿѭӧc ӭng dөng vào mӝt sӕ WUѭӡng hӧSWURQJOƭQKYӵFFKăPVyFVӭc khӓe, bao gӗm công tác theo dõi thuӕc thông qua chuӛi cung ӭng và quҧn lý dӳ liӋu bӋnh nhân +ѫQQӳa, blockchain có thӇ mang lҥi lӧi ích bҧo mұWÿiQJNӇ cho dӳ liӋu cӫa các bӋnh viӋn vì các tә chӭFQj\WKѭӡng bӏ tin tһc tҩn công bӣi giá trӏ FDRYjWtQKÿiQJWLQFұy cao cӫa các dӳ liӋu này &iFF{QJW\ÿDQJNKiPSKiYLӋc sӱ dөQJEORFNFKDLQQKѭPӝt cách ÿӇ OѭXWUӳ hӗ VѫVӭc khӓe kӻ thuұt sӕ Các giҧi pháp này có thӇ giúp giҧm chi phí tәng thӇÿӗng thӡLWăQJFѭӡQJWtQKULrQJWѭYjFKtQK[iFFӫa dӳ liӋu
Bҧn quyӅn: Các nhҥFVƭQKjOjPJDPHYLGHRYjFiFQJKӋ VƭQyLFKXQJWKѭӡng xuyên phҧLÿҩXWUDQKÿӇ thu vӅ tiӅn bҧn quyӅn hӑ xӭQJÿiQJÿѭӧc nhұn do tình trҥng vi phҥm bҧn quyӅn kӻ thuұt sӕ, mӕi quan hӋ không công bҵng vӟi các bên thӭ ba hoһFÿѫQJLҧQOjGRNK{QJÿѭӧc trҧ tiӅn bҧn quyӅn Công nghӋ blockchain có thӇ ÿѭӧc sӱ dөQJÿӇ tҥo ra mӝt nӅn tҧng giúp nhӳng nghӋ VƭViQJWҥo này có mӝt hӗ Vѫ bҩt biӃn và minh bҥch ghi chép nhӳQJÿӕLWѭӧng ÿDQJWKXrPXDYjKRһc sӱ dөng nӝi dung sáng tҥo cӫa hӑ Mӝt nӅn tҧQJQKѭYұ\FNJQJFyWKӇ tҥRÿLӅu kiӋn cho viӋc thanh toán thông qua các hӧSÿӗng thông minh ± vӅ FѫEҧQÿk\OjFiFKӧSÿӗng kӻ thuұt sӕ tӵ thӵc thi
Quҧn trӏ: Công nghӋ Blockchain có tiӅm QăQJFҧi thiӋQÿiQJNӇ công tác quҧn trӏ WURQJFiFOƭQKYӵc khác nhau Bҵng cách quҧn lý các mҥQJOѭӟi và các hoҥWÿӝng vұQKjQKWKHRKѭӟng dân chӫ hóa, công bҵQJYjDQWRjQKѫQFiFKӋ thӕng dӵa trên blockchain có thӇ ÿѭӧc triӇQNKDLQKѭPӝt công cө ÿӇ loҥi bӓ tình trҥng gian lұn phiӃu bҫXYjWăQJQLӅm tin trong các cuӝc bҫu cӱ hoһc các quy trình lұp hiӃn khác Chúng FNJQJFyWKӇ ÿѭӧc sӱ dөQJQKѭPӝWYNJNKtPҥnh mӁ chӕQJWKDPQKNJQJWăQJFѭӡng tính toàn vҽn cӫa dӳ liӋu và khҧ QăQJWUX\[Xҩt nguӗn gӕc trong nhiӅu tình huӕng khác nhau, tӯ thu thuӃ FKRÿӃn phân phӕi các khoҧn hӛ trӧ tài chính
Giҧi pháp thanh toán và dApps.KLQyLÿӃn viӋc viӋc gӱi tiӅn trên toàn thӃ giӟi, công nghӋ EORFNFKDLQÿmFKӭng minh tính hiӋu quҧ cӫa mình Gӱi tiӅQÿLӋn tӱ cho bҥn bè, JLDÿuQKYjQKӳQJQJѭӡi khác trên khҳp thӃ giӟi có chi phí rҿ KѫQYjQKDQKKѫQVRYӟLFiFSKѭѫQJWKӭFWKDQKWRiQÿѭӧc cung cҩp bӣi các ngân hàng tұp
18 trung Ngoài ra,các trang web và các Apps tұp trung không cung cҩSFKRQJѭӡi dùng quyӅn kiӇm soát dӳ liӋu cӫa hӑ YjWKѭӡQJNK{QJWKѭӣQJFKRQJѭӡi dùng dӵa theo giá trӏ thӵc mà hӑ mang lҥi cho nӅn tҧng Các ӭng dөng phi tұp trung dӵa trên Blockchain (dApps) loҥi bӓ ÿӕLWѭӧQJWUXQJJLDQPDQJÿӃQFKRQJѭӡi dùng tiӅm QăQJWURQJYLӋFÿѭӧc giҧm phí, nhұQÿѭӧFѭXÿmi tӕWKѫQYjFyÿѭӧc hiӋu quҧ giao dӏFKFDRKѫQWURQJTXiWUuQKJӱi và nhұn tiӅn kӻ thuұt sӕ
Internet vҥn vұt (IOT): Blockchain và Internet Vҥn Vұt (IoT) là mӝt kӃt hӧp tӵ nhiên Blockchain là công nghӋ phi tұp trung và các mҥQJOѭӟL,R7WKѭӡQJÿѭӧc sӱ dөQJÿӇ thu thұp dӳ liӋu tӯ các nguӗn nҵm rҧi rác.Blockchain cho phép các tә chӭc giӳ mӝt sә cái bҩt biӃn và minh bҥch vӅ các thiӃt bӏ IoT, dӳ liӋu thu thұSYjFiFWѭѫQJ tác giӳa các thiӃt bӏ Trong sӕ FiFWtQKQăQJEҧo mұt và các ӭng dөng tiӅQÿLӋn tӱ, blockchain cung cҩp mӝt nӅn tҧQJ Oê Wѭӣng cho các giao dӏch giӳa máy vӟi máy (M2M).Vì blockchain là mӝt công nghӋ dӵa trên viӋc tҥRÿLӅu kiӋn cho các giao dӏch FKtQK[iFYjDQWRjQÿLӅXÿyFKӍ FyêQJKƭDNKLQyÿѭӧc tích hӧp vӟL,R7ÿӇ ÿҧm bҧo tính trách nhiӋm giҧi trình và tính chính xác và bҧo mұt dӳ liӋXĈyOjOêGRWҥi sao nhiӅXF{QJW\ÿmÿһt rҩt nhiӅu tài nguyên vào mҥQJ,R7ÿѭӧc hӛ trӧ bӣi blockchain.
Phân loҥi Blockchain
VӅ FѫEҧn ta có thӇ chia blockchain thành 2 loҥi: x Permissionless hay Public blockchain: tҩt cҧ FiFQRGHÿyQJYDLWUzQKѭ nhau, mӛLQRGHÿӅu có khҧ QăQJGX\WUuYjNLӇPWUDWtQKÿ~QJÿҳn cӫa các WUDQVDFWLRQ WUѭӟF NKL ÿѭD WK{QJ WLQ WUDQVDFWLRQ ÿy YjR EORFNFKDLQ Tuy nhiên, public network hoҥWÿӝQJWURQJP{LWUѭӡng công cӝng, dӉ bӏ tҩn công bӣi nhiӅXÿӕLWѭӧng, thành phҫn khác nhau bҵng cách chӍnh sӱa, thay ÿәi , làm sai lӋFKWK{QJWLQWUѭӟFNKLÿѭDWK{QJWLQYjREORFN9uYұy cҫn FyFѫFKӃ giҧm thiӇu rӫi ro, bҧo vӋ nӝLGXQJWK{QJWLQWURQJP{LWUѭӡng công cӝQJ !&ѫFKӃ ÿӗng thuұn => sӵ ÿӗng ý cӫDÿDVӕ node tham gia trong mҥQJĈӇ Fyÿѭӧc sӵ ÿӗng thuұQQj\ÿzLKӓi phҧi áp dөng nhiӅu thuұt toán phӭc tҥp vd: Proof of Work, proof of state => thӡi gian và
19 chi phí thӵc hiӋQWѭѫQJÿӕi lâu Ví dө ÿLӇn hình nhҩt cӫa public network là mҥng tiӅn ҧo Bitcoin hay Ethereum x Permissioned hay Private Blockchain1Jѭӧc lҥi vӟi Public network là
3ULYDWHQHWZRUNWURQJÿyÿӏnh danh cӫa mӛLQRGHÿӅXÿѭӧc xác thӵc Mӛi QRGH WKDP JLD ÿyQJ Pӝt vai trò khác nhau trong quá trình hoҥW ÿӝng network Quá trìnKÿӗng thuұn chӍ cҫn sӵ tham gia cӫa mӝt sӕ node nhҩt ÿӏnh chӭ không phҧi toàn bӝ network, vì vұy, thӡi gian diӉQUDQKDQKKѫQ không tӕn nhiӅX FKL SKt ÿӇ chҥy các thuұt toán quá phӭc tҥp Private blockchain phù hӧp vӟi hoҥWÿӝng cӫDFiFF{QJW\WURQJÿymô hình dӳ liӋu phӭc tҥp, có sӵ phân quyӅn giӳa các node liên quan, nӝi dung chӭa trong blockchain phө thuӝc nhiӅXÿӃn các logic chuyên ngành (ÿѭӧc sӱ lý tӵ ÿӝQJWK{QJTXDVPDUWFRQWUDFWFNJQJQKѭÿzLNKҧ QăQJWtFKKӧp hoҥt ÿӝng vӟi các hӋ thӕng khác nhau.
NӅn tҧng blockchain Ethereum
Ethereum [5] ÿѭӧc coi là mӝt trong nhӳng nӅn tҧQJÿLÿҫu trong viӋc phát triӇn công nghӋ blockchain tӯ 1.0 (tiêu biӇu là bitcoin) lên 2.0 Vӟi Ethereum chúng ta có thӇ sӱ dөng các hӧSÿӗQJWK{QJPLQKVPDUWFRQWUDFWQKѭPӝt hӧSÿӗng ÿLӋn tӱ cho phép xây dӵng các ӭng dөng trên nӅn tҧng blockchain mӝt cách nhanh chóng và tiӃt kiӋPFKLSKtKѫQ
Nói tóm lҥi Ethereum là mӝt nӅn tҧng phҫn mӅm phân tán dӵa trên blockchain công khai, mã nguӗn mӣ, cho phép các nhà phát triӇn xây dӵng và triӇn khai các ӭng dөng phi tұp trung
5.4.1 KiӃn trúc cӫa mҥQJOѭӟi Ethereum
Hình 6 Ki͇n trúc cͯa m͡t node Ethereum
MҥQJOѭӟi blockchain Ethereum là mӝt hӋ thӕng bao gӗm nhiӅu máy tính kӃt nӕi vӟi nhau MӛLPi\WtQKÿѭӧc gӑi là mӝt nút (node) trong mҥQJOѭӟi Trӯ nhӳng nút có YDLWUzÿһc biӋWPDVWHUQRGHôWKuFiFQ~WÿӅu giӕng nhau
Trên mӛi nút (node), tҩt cҧ các tK{QJWLQÿӅu giӕQJQKDXĈyOjÿLӅu tiên quyӃt khi mӝt node bҩt kì muӕn tham gia vào mҥQJOѭӟi blockchain cӫa Ethereum Khi dӳ liӋu và thông tin cӫa mӛi node giӕng nhau, nӃu có bҩt kǤ node nào có thông tin khác vӟi thông tin trên mҥng blockchain chӭng tӓ ÿyOjWK{QJWLQÿmEӏ WKD\ÿәi và không còn ÿѭӧF WLQWѭӣng nӳD KLÿynode ÿyNK{QJ FzQ Oj Pӝt thành viên cӫa mҥQJOѭӟi blockchain ViӋFÿҧm bҧo dӳ liӋu trên mҥQJOѭӟi phҧLÿLWKHRPӝt luӗng nhҩWÿӏnh là FiFKPjEORFNFKDLQQyLFKXQJYj(WKHUHXPQyLULrQJÿҧm bҧRÿѭӧc tính minh bҥch YjWăQJVӵ WLQWѭӣng cӫDQJѭӡi dùng ĈӇ trӣ thành mӝt node trong mҥQJOѭӟi blockchain thì trên máy tính cӫDQJѭӡi dùng phҧi có mӝt công cө cӫa Ethereum cung cҩp Công cө Qj\WKuFNJQJJLӕQJQKѭPӝt ӭng dөQJÿѭӧc chҥy trên máy tính, thì vүn có 2 phҫn chính: x &ѫVӣ dӳ liӋu: bҩt kì mӝt ӭng dөQJQjRFNJQJÿӅu phҧLFyFѫVӣ dӳ liӋu, khác biӋt là nhӳng ӭng dөQJEuQKWKѭӡng sӱ dөQJFѫVӣ dӳ liӋu và các hӋ quҧn trӏ FѫVӣ dӳ liӋXFKRSKpSOѭXWUӳ dӳ liӋu và các tұp tin dӳ liӋu ӣ các
21 kiӃn trúc Btree hay Map thì ӣ Ethereum dӳ liӋXÿѭӧFOѭXWUӳ vào các khӕi dӳ liӋu (Block) Và các khӕi dӳ liӋu này phҧi kӃt nӕi vӟLQKDXQKѭPӝt Linked List x Mã thӵc thi: viӋc mӝt mã thӵc thi cӫDFKѭѫQJWUuQKWKӵc hiӋQOjÿӇ sӱ dөng các thông tin cӫD QJѭӡL GQJ ÿӇ OѭX WUӳ WK{QJ WLQ YjR Fѫ Vӣ dӳ liӋu (WKHUHXP FNJQJ Yұy, bҵng mӝt thuұW WRiQ Fy ÿӝ bҧo mұt cao, mã cӫa Ethereum tҥRUDWK{QJWLQOѭXWUӳ trong các khӕi dӳ liӋXYjÿҧm bҧo cho dӳ liӋu trong chuӕi khӕi dӳ liӋXEORFNFKDLQOX{QOX{QOjÿ~QJYjNK{QJEӏ WKD\ÿәLĈӇ tҥRUDÿѭӧc nhӳng khӕi này thì Ethereum phҧi mҩt chi phí tính toán, chҥy máy nên viӋc tҥRUDÿѭӧc khӕi trong Ethereum sӁ ÿѭӧFWKѭӣng giá trӏ Pj(WKHUHXPÿӅ UDÿyOjÿӗng tiӅn Ether Dӵa vào giá trӏ thӏ WUѭӡng PjQJѭӡi sӣ hӳu Ether có thӇ chuyӇQÿәi thành các loҥi giá trӏ sӣ hӳu khác (vớ dө ÿәi ra tiӅQÿӇ trҧ chi phớ cho tiӅQÿLӋn, mҥQJô
5.4.2 Mӝt sӕ khái niӋPFѫEҧn trong Ethereum
Mӝt khӕi dӳ liӋXOjQѫLFKӭa tҩt cҧ các thông tin giao dӏch trong mӝt khoҧng thӡi gian nhҩWÿӏnh Khi mӛLEORFNÿѭӧc tҥo ra, tҩt cҧ nhӳng giao dӏch trong khoҧng thӡi gian tìm kiӃPEORFNÿyVӁ ÿѭӧFOѭXWUӳ vào block Nên có thӇ EORFNNK{QJFKѭDJLDR dӏch nào hoһc chӭa rҩt nhiӅu giao dӏch
HoҥWÿӝQJWuPUDEORFNÿѭӧc gӑLOjÿjRYjQKѭQJnode WKDPJLDÿjRÿѭӧc gӑi là thӧ ÿjRPLQHU&{QJYLӋFÿjRWKӵc chҩWOjWuPÿѭѫFNӃt quҧ cӫa mӝWSKѭѫQJWUuQKWRiQ hӑc, thӡi gian tìm kiӃPWKѭӡng nҵm trong 1 phҥm vi nhҩWÿӏQKÿӇ hҥn chӃ thӡi gian thӵc thi các giao dӏch ViӋFÿiQKÿәi thӡi gian thӵc hiӋn giao dӏch sӁ ÿҧm bҧo cho mҥQJOѭӟLEORFNFKDLQÿѭӧc bҧo mұt tӕWKѫQ
5.4.2.2 HӧSÿӗng thông minh (Smart Contract)
HӧSÿӗng là mӝt thӓa thuұn bҵQJYăQEҧn giӳa hai hoһc nhiӅu bên dӵ ÿӏnh sӁ ÿѭӧc thӵc thi bӣi pháp luұt NӃu chúng ta lҩy hӧSÿӗng bҵQJYăQEҧn này và dӏch nó thành mã và triӇn khai trên blockchain, chúng ta sӁ nhұQÿѭӧc hӧSÿӗng kӻ thuұt sӕ
1KѭQJFiLKD\Fӫa mã này trên blockchain là nó có thӇ thӵc thi thӓa thuұn giӳa các ErQYjÿyOjOêGRFK~QJÿѭӧc gӑi là "hӧSÿӗng thông minh"
Mӝt khi hӧSÿӗQJÿѭӧc triӇn khai vào blockchain, nó không thӇ bӏ dӯng hay sӱDÿәi HӧSÿӗng thông minh sӁ ÿѭӧc chҥy dӵDWUrQQKѭQJWKӓa thuұn tӯ WUѭӟFÿӕi vӟi các bên tham gia, dӵa vào dӳ liӋXÿҫu vào và thӓa thuұn, hӧSÿӗng thông minh sӁ ÿѭDra các kӃt quҧ và nhӳng kӃt quҧ Qj\ÿѭӧc chҩp nhұn bӣi các bên tham gia NӃu có bҩt kì sӵ WKD\ÿәi nào thì các bên bҳt buӝc phҧi ký kӃt mӝt hӧSÿӗng khác
Mӛi quӕc gia có mӝWÿӗng tiӅn riêng thӇ hiӋn khҧ QăQJWKDQKNKRҧn cӫa quӕc gia ÿy7Kuÿӕi vӟi mӛi mҥQJOѭӟLEORFNFKDLQFNJQJFyPӝWÿӗng tiӅQULrQJQKѭ%7& trong bitcoin Và trong mҥQJOѭӟL(WKHUHXPÿӗng tiӅQÿѭӧc sӱ dөQJÿѭӧc gӑi là Ether
1KѭÿmQyLӣ phҫQWUѭӟc, viӋc chҥy thuұWWRiQÿӇ tìm ra khӕi dӳ liӋXOѭXWUӳ thông tin các giao dӏch (transaction) mҩt thӡLJLDQÿӇ duy trì tình trҥng hoҥWÿӝng cӫa máy tính chҥy công cө cӫa Ethereum, vì thӃ KjQKÿӝng này tӕn chi phí vӅ ÿLӋn, mҥng, hao hөt thiӃu bӏ Pi\WtQKô9j(WKHUHXPFNJQJWUҧ mӝt phҫQWKѭӣQJWѭѫQJÿѭѫQJFKRKRҥt ÿӝng này, mӛi khi mӝt khӕi dӳ liӋXÿѭӧc tҥo ra, Ethereum sӁ trҧ FKRQJѭӡLWuPÿѭӧc khӕi dӳ liӋu này mӝt sӕ Oѭӧng Ether nhҩWÿӏQKQjRÿy
7Kѭӡng thì giá trӏ cӫDFiFÿӗng tiӅQÿLӋn tӱ ÿѭӧc tӍ lӋ thuұn vӟi nhӳng chi phí có thӇ tìm ra nó, tuy nhiên còn tùy thuӝc vào nhu cҫu cӫa thӏ WUѭӡng ÿӇ quyӃWÿӏnh giá trӏ cӫa mӝWÿӗng tiӅn cao hoһc thҩp NӃu mҥQJOѭӟi blockchain có khҧ QăQJVӱ dөng tӕt, ÿiSӭQJÿѭӧc nhiӅu nhu cҫu sӱ dөQJWURQJÿӡi sӕng thì hiӇn nhiên giá trӏ cӫDÿӗng tiӅQÿyVӁ FDRKѫQOjQKӳng mҥQJOѭӟLFKѭDÿѭӧc công nhұn nhiӅu trong cӝQJÿӗng Ether là mӝt trong nhӳQJÿӗng tiӅn có giá trӏ cao trong tҩt cҧ FiFÿӗng tiӅQÿLӋn tӱ hiӋn có trên thӏ WUѭӡng vì khҧ QăQJYjPҥQJOѭӟi Ethereum và sӵ WLQWѭӣng cӫDQJѭӡi sӱ dөng
5.4.2.4 9tZDOOHWYjÿӏa chӍ (address) Ĉӏnh danh trên mҥQJOѭӟLEORFNFKDLQ(WKHUHXPÿѭӧc thӇ hiӋQTXDYtYjÿӏa chӍ Ether sӁ ÿѭӧc sӣ hӳu bӣi mӝWYtQjRÿyWUrQPҥQJOѭӟL(WKHUHXP9jÿӏnh danh cӫa mӛi ví là mӝWÿӏa chӍ (address) Ĉӏa chӍ là mӝt chuӛi hexa (thұp lөc phân), bҳWÿҫu bҵng tiӅn tӕ ³[´YjWLӃp theo là
40 ký tӵ ӣ dҥng hexa Ví dө QKѭ 0xb794f5ea0ba39494ce839413fffba74279579268 Không phҧLDLFNJQJFyTX\Ӆn truy cұp vào ví, muӕn truy cұSYjRYtWKuQJѭӡi dùng phҧi có khóa bí mұt (private key) Trên thӵc tӃ ÿӏa chӍ và khóa bí mұt là public key và private key cӫa mӝt thuұt toán mã hóa bҩWÿӕi xӭng Cho nên bҩt kǤ ai có khóa bí mұt và biӃWÿӏa chӍ ÿӅu có thӇ truy cұp vào ví và có toàn quyӅn trên các ví này Ngoài UDÿӏa chӍ và khóa bí mұt cӫa mӝWYtNK{QJÿѭӧFOѭXWUӳ trên mҥng Ethereum ViӋc [iFÿӏQKÿӏa chӍ và khóa bí mұt cӫa mӝt ví bҩt kì phө thuӝc vào thuұt toán mã hóa
5.4.2.5 &ѫ chӃ ÿӗng thuұn trong mҥQJOѭӟi Ethereum Ĉӗng thuұn là cách mà các node trong mӝt mҥQJEORFNFKDLQÿӗng ý khi có mӝt khӕi dӳ liӋXEORFNÿѭӧc tìm thҩy và thêm vào Khi mӝt khӕi dӳ liӋXÿѭӧc tìm thҩy YjÿӅXÿѭӧc chҩp nhұn bӣi các node trong mҥQJOѭӟi thì dӳ liӋu block trên các node FNJQJÿѭӧc cұp nhұWÿӇ cho các node luôn có cùng giá trӏ dӳ liӋu
Các giҧLSKiS%ORFNFKDLQÿӕi vӟLOѭXWUӳ OѭӧFÿӗ RDF
SKOS Shuttle [7]
SKOS Shuttle triӇn khai tính nng nhұp (import) và xuҩWH[SRUW5')ÿӇ OѭXWUӳ ÿӗ thӏ RDF trong mӝt mҥng Ethereum riêng (private Ethereum) VӅ FѫEҧn thì mҥng này FNJQJÿѭӧc tҥo bӣi các node chҥy FKXQJFiFÿRҥn mã (source code) tuy nhiên vì chҥy ӣ mӝt mҥng Ethereum riêng nên chi phí và tӕFÿӝ không còn là vҩQÿӅ lӟn 6.26FNJQJKӛ trӧ viӋc truy xuҩt thông tin tӯ 5')VDXNKLOѭXWUӳ Bҵng cách sӱ dөng 63$54/6.26FKRSKpSQJѭӡi dùng có thӇ tìm kiӃm và truy xuҩt vào thông tin Mӝt sӕ chӭFQăQJPj6.266KXWWOHÿDQJKӛ trӧ tӟLQJѭӡi dùng : x Sӱ dөng Restful API cho Json/XML/YAML x Bҧo mұt SSL
26 x Quҧn lý truy cұp dӵa vào vai trò (role permission) ĈӇ ÿҧm bҧo viӋc bҧo mұt thông tin cӫD5')ÿѭӧc tҧLOrQQJѭӡi dùng có thӇ lӵa chӑn viӋc chia sҿ 5')ÿѭӧc tҧi lên bӣLQJѭӡi dùng ra cӝQJÿӗng hoһc chӍ ÿѭӧc sӱ dөng bӣLQJѭӡi dùng Mӛi biӇXÿӗ 5')ÿѭӧc tҧi lên sӁ ÿѭӧFPmKyDWUѭӟFNKLOѭXWUӳ vào blockchain và sӁ ÿѭӧc giҧi mã khi cҫQÿӑc lҥi thông tin HiӋn tҥi mҥng Ethereum riêng cӫD6.266KXWWOHÿDQJÿѭӧFOѭXWUӳ cөc bӝ ORFDOYjFKѭDÿѭӧc kӃt nӕi vӟi mҥng Ethereum chung
6.2 /ѭXWUӳ RDF trên Blockchain bҵng các thiӃt bӏ phân tán nhҽ [8] ĈӇ OѭXWUӳ dӳ liӋu RDF vӟi sӵ ÿҧm bҧo vӅ quyӅn sӣ hӳu dӳ liӋu và bӗLWKѭӡng cho dӳ liӋXÿѭӧc chia sҿ, nӝi dung cӫDEjLEiRÿӅ cұp tӟi viӋc xây dӵng mӝt hӋ thӕng kӃt nӕLFѫVӣ dӳ liӋu phân tán và blockchain BҵQJFiFKÿyWURQJKӋ thӕng mҥng phân tán, hӋ thӕQJFѫVӣ dӳ liӋu phân tán cho phép bҩt kì thành viên nào chia sҿ dӳ liӋu, tài nguyên cӫa hӑ trong khi duy trì quyӅn tӵ chӫ Yjÿӝc lұp khӓi các máy chӫ tұp trung (Centralised Servers) Sӱ dөng hӧSÿӗQJWK{QJPLQKVPDUWFRQWUDFWÿӇ giúp cho chӫ sӣ hӳu có thӇ kiӃm soát quyӅn truy cұp vào dӳ liӋu
Hình 7 T͝ng quan h th͙ng và quy trình
HӋ thӕng gӗm 2 thành phҫn chính: x Bӝ nhӟ OѭXWUӳ phân tán RDF (Distributed RDF Storage - DRS) : DRS có nhiӋm vө OѭXWUӳ dӳ liӋu RDF giӳa các thiӃt bӏ ÿѭӧc kӃt nӕi trong mҥng
27 x Bӝ quҧn trӏ hӧSÿӗng thông minh (Smart Contract Manager - SCM)ÿѭӧc sӱ dөQJÿӇ ÿҧm bҧo quyӅn sӣ hӳu dӳ liӋu, quyӅn truy cұp vào dӳ liӋu trong bӝ dӳ liӋu phân tán
Nguyên tҳFFѫEҧn cӫa hӋ thӕng là khi nhà cung cҩp muӕn giao dӏch dӳ liӋu cӫa hӑ, hӑ sӁ xuҩt bҧn các phân vùng dӳ liӋu liên quan tӟi hӧSÿӗng thông minh bҩt kì
HӧSÿӗng thông minh chӭa thông tin meta cӫa cӫa phân vùng dӳ liӋu muӕn xuҩt bҧn và hӧSÿӗng này sӁ ÿѭӧc cung cҩSFKRQJѭӡi nhұn ĈӇ có thӇ trҧ lӡi các truy vҩn SPARQL HӋ thӕng sӱ dөng mӝt bӝ OѭXWUӳ WѭѫQJWӵ
RDF4Led [9] Cho phép có thӇ thӵc hiӋn các truy vҩn SPARQL trên RDF Dӳ liӋu
5')ÿѭӧFOѭXWUӳ thành các bӝ ba SPO (Subject ± Predicate ± Object), POS và OSP
Mӛi bӕ cөc là mӝWGDQKViFKÿѭӧc sҳp xӃp và phân chia thành các khӕi dӳ liӋu Bӝ
EDÿҫu tiên cӫa mӛi khӕLYjÿӏa chӍ vұt lý cӫa khӕi dӳ liӋu tҥo thành mӝt chӍ mөc
LQGH[YjÿѭӧFOѭXWUӳ ÿӇ làm khóa tìm kiӃm Dӳ liӋu các khӕLOѭXWUӳ SKkQWiQÿӇ tҥo nên hӋ thӕng DRS Các hӋ thӕng phân tán cung cҩp phân phӕi dӳ liӋXÿӇ mӣ rӝng
YjQJăQFKһQFiFÿһFWUѭQJOLrQTXDQÿӃn các cҩu trúc dӳ liӋXSKkQWiQ7URQJNKLÿy
SCM quҧn lý truy cұSÿӏnh danh cӫa các khӕi dӳ liӋu.
Tәng kӃt
Tӯ các nghiên cӭu trên, ta có thӇ thҩy nhiӅu giҧL SKiS ÿѭӧF ÿѭD UD NӃt hӧp
%ORFNFKDLQYjOѭXWUӳ RDF Không nhӳQJOѭXWUӳ RDF vào blockchain mà còn giúp cho viӋc truy vҩn trên nӅn tҧng blockchain dӉ GjQJ7X\QKLrQÿDVӕ các giҧi pháp là mӝt nӅn tҧng riêng biӋWFKѭDFK~WUӑng vào viӋc hӛ trӧ các nӅn tҧng dӳ liӋu mӣ
7URQJNKLÿyFiFQӅn tҧng dӳ liӋu mӣ ÿDQJWKLӃu mӝWSKѭѫQJWKӭc giúp cho viӋFOѭX trӳ và quҧn lý viӋc chia sҿ thông tin, tұp tin mӣ mӝt cách tӕWKѫQQKѭWUX\Yҩn và quҧn lý truy cұp
ViӋc xây dӵng mӝt giҧi pháp quҧQOêOѭXWUӳ RDF vӟi Blockchain là mӝt viӋc cҫn thiӃt, có thӇ áp dөQJÿѭӧc hӋ thӕng quҧn lý cӫa các nӅn tҧng dӳ liӋu mӣ Yjÿһc tính, bҧo mұt cӫD%ORFNFKDLQÿӇ WăQJWtQKPLQKEҥch cho thông tin chia sҿ
7URQJFKѭѫQJQj\Wұp trung vào viӋc mô tҧ giҧi pháp cho viӋc bҧRÿҧm tính minh bҥch cӫDOѭӧFÿӗ RDF trong dӳ liӋu liên kӃt Tӯ ÿyWăQJVӵ WLQWѭӣng cӫa QJѭӡi dùng ÿӕi vӟi WK{QJWLQ7KrPYjRÿyÿӇ có thӇ giúp cho các nӅn tҧng dӳ liӋu mӣ có thӇ kӃt nӕLÿѭӧc vӟi nhau, giҧLSKiSÿѭDUDPӝt tәng quan chung cho viӋc kӃt nӕi các nӅn tҧng dӵa trên giao thӭF+773FѫEҧn
Hình 8 T͝ng quan v͉ gi̫LSKiSÿ͉ xṷt
VӅ FѫEҧn, giҧLSKiSÿѭDUDEDRJӗm mӝt tұp hӧp các mô-ÿXQPRGXOHFyQKLӋm vө kӃt nӕi vӟi các nӅn tҧng dӳ liӋu mӣ, blockchain(cө thӇ là Ethereum) và IPFS Các thông tin cҫn thiӃWÿӇ giҧi pháp có thӇ chҥ\ÿѭӧc sӁ ÿѭӧFOѭXWUӳ vào hӋ quҧn trӏ Fѫ sӣ dӳ liӋu MySQL Danh sách các mô-ÿXQQKѭVDX x Portal API: cәng giao tiӃp vӟi các nӅn tҧng dӳ liӋu mӣ x IPFS Connector: kӃt nӕi vӟi hӋ thӕng IPFS x Blockchain Connector: kӃt nӕi vӟi hӋ thӕng mҥng Ethereum
29 x RDF Store: xӱ lý các yêu cҫu vӅ tҥo và truy vҩn trên RDF x Proxy: chuyӇn giao yêu cҫu tӯ các nӅn tҧng vӟi nhau
Hình 9 T͝ng quan mô-ÿXQWURQJJL̫i pháp
.KLÿy hӋ thӕng có thӇ giҧi quyӃWÿѭӧc các vҩQÿӅ QKѭVDX x Có thӇ liên kӃt vӟi bҩt kì nӅn tҧng dӳ liӋu mӣ nào có hӛ trӧ các kӃt nӕi HTTP x Tӵ ÿӝng xây dӵng và quҧQOêOѭӧFÿӗ RDF bҵng thông tin cung cҩp bӣi các nӅn tҧng dӳ liӋu mӣ x Hӛ trӧ truy vҩQWUrQOѭӧFÿӗ RDF bҵng ngôn ngӳ truy vҩn SPARQL x /ѭXWUӳ và bҧo vӋ OѭӧFÿӗ RDF khӓi viӋFWKD\ÿәi trái phép, ngoài ra giҧi pháp có khҧ QăQJSKөc hӗi lҥLOѭӧFÿӗ RDF nӃu bӏ tҩQF{QJYjWKD\ÿәi thông tin ĈӇ cө thӇ KyDKѫQFKRPӝt nӅn tҧng dӳ liӋu mӣ, trong giҧi pháp này sӱ dөng
&.$1QKѭPӝWWUѭӡng hӧp sӱ dөng (use case)
Ĉӏnh danh cәng thông tin
ChӭFQăQJPӣ rӝng ± Plugin
Mӛi plugin trong CKAN sӁ ÿѭӧc phép can thiӋp vào quá trình vұn hành cӫa hӋ thӕng thông qua các giao diӋn (interface) ÿѭӧF&.$1ÿӏQKQJKƭD0ӝLÿӕLWѭӧng trong CKAN sӁ có mӝWYzQJÿӡi vӟi nhiӅXJLDLÿRҥn và ngӳ cҧnh khác nhau (tҥo mӟi, chӍnh sӱD[yDôYjQKLӅu ngӳ cҧnh khỏc nhau (ai chӍnh sӱDO~FQjRô'ӵa vào FiFYzQJÿӡi này ta có thӇ biӃWÿѭӧc sӵ WKD\ÿәi cӫa dӳ liӋXÿӇ có thӇ cұp nhұt thông tin vào RDF cho chính xác nhҩt.
ChӭFQăQJFKҥy nӅn ± Background jobs
.KLÿmFyWURQJWD\FiFWK{QJWLQFҫn thiӃt, cҫQFyFѫFKӃ ÿѭDWҩt cҧ thông tin này UDErQQJRjLÿӇ xӱ lý tiӃp, cө thӇ là cho hӋ thӕQJOѭXWUӳ blockchain biӃt có nhӳng sӵ WKD\ÿәi MөFÿtFKFӫa chúng ta quan tâm tӟi sӵ WKD\ÿәi cӫa tұp tin dӳ liӋXYjÿѭӡng dүn cӫa tұp tin dӳ liӋu, tuy nhiên mӛi sӵ WKD\ÿәi trong tұp tin dӳ liӋu lҥi xҧy ra xӱ lý liên tөc nên viӋc hӋ thӕQJOѭXWUӳ blockchain cұp nhұt lҥi sau, có thӇ tiӃt kiӃPÿѭӧc thӡi gian xӱ lý cӫa CKAN và không làm mҩt trҧi nghiӋm cӫDQJѭӡi dùng Vì 2 hành ÿӝng này xҧy ra song song nên viӋc cұp nhұWWK{QJWLQÿӕi vӟi Blockchain không ҧnh Kѭӣng tӟi hiӋu suҩt vұn hành cӫa hӋ thӕng chính Ngoài ra CKAN còn hӛ trӧ rҩt nhiӅu
32 trong quan lý các tác vө nӅQQKѭWKӡLÿLӇm bҳWÿҫu, kӃt thúc mӝt tác vө, thӡi gian cho phép tӕLÿDFӫa tác vө YjFiFFѫFKӃ xӱ lý lӛi và thӵc thi.
KӃt hӧp Plugin và Background jobs
Hình 12 K͇t hͫS3OXJLQYjEDFNJURXQGMREÿ͋ WKHRG}LWKD\ÿ͝i thông tin trong
GiҧLSKiS ÿӗng bӝ KyD WURQJ&.$1 ÿѭӧc thӵc hiӋn bҵng cách xây dӵng mӝt SOXJLQFKRSKpSWKHRG}LTXDQViWFiFWKD\ÿәi cӫDFiFÿӕLWѭӧng trong hӋ thӕng và tҥo ra các tác vө ÿѭDYjRKjQJÿӧi Mӛi tác vө sӁ gӑLFiF+773UHTXHVWÿӃn cәng thông tin cùng vӟLÿӏQKGDQKÿӇ ÿӗng bӝ hóa dӳ liӋu lên mҥQJOѭӟi blockchain
3 &ѫFKӃ trích xuҩt thông tin tәng quan tӯ tұp tin ĈӇ cung cҩSFKRQJѭӡi dùng mӝt cái nhìn tәng quát vӅ tұp tin dӳ liӋXÿѭӧc chia sҿ trong hӋ thӕng dӳ liӋu mӣ ÿѭӧc hiӇn thӏ trong RDF, viӋc trích xuҩt thông tin tӯ tұp tin dӳ liӋu là mӝt trong nhӳQJEѭӟc quan trӑng DӵDYjRÿһFÿLӇm cӫa tӯQJÿӏnh dҥng tұp tin mà ta có thӇ có thӇ trích xuҩt mӝt vài thông tin Các thông tin chung cho tҩt cҧ FiFÿӏnh dҥng : x Tên tұp tin x Ĉӏnh dҥng x Tác giҧ x 'XQJOѭӧng x Ngày cұp nhұt gҫn nhҩt
Mӝt sӕ thông tin có thӇ ÿѭӧc trích xuҩWQKѭVDX
Tұp tin ký tӵ: 7Kѭӡng các tұp tin ký tӵ có chӭDFiFÿRҥn ký tӵ YjWKѭӡng nhӳng ÿRҥQÿҫu sӁ là nӝi dung tәng quát cӫa tұp tin Trích xuҩt thông tin nhӳng dòng này ta có thӇ FKRQJѭӡi dùng biӃt mӝWYjLWK{QJWLQFѫEҧn cӫa tұSWLQÿDQJÿѭӧc hiӇn thӏ
Tұp tin hình ҧnh: Các tұp tin hình ҧQKWKѭӡng thӇ hiӋn mӝt nӝi dung cө thӇ, có các hình ҧnh vӅ QJѭӡi, vӅ vұt, cҧnh vұt hoһFÿӗ vұt bҩt kǤ ViӋc trích xuҩt ra nӝLGXQJFѫ bҧn cӫa các tұp tin hình ҧnh bҵng viӋc áp dөng thӏ giác máy tính và qua sӵ nhұn biӃt cӫa AI Thông tin trích xuҩt ra sӁ ӣ dҥng mô tҧ hình ҧnh (ví dө: hình ҧnh gӗPQJѭӡi và 1 vұWô1JRjLUDFzQcú nhӳng hỡnh ҧnh thӇ hiӋn nӝi dung ký tӵ, viӋc trớch xuҩt nhӳng ký tӵ Qj\ÿѫQJLDQKѫQYjÿmFyUҩt nhiӅXSKѭѫQJSKiS[ӱ lý
TұSWLQFѫVӣ dӳ liӋu: Các tұSWLQFѫVӣ dӳ liӋu chӭa thông tin thӇ hiӋn dӳ liӋu có ÿӏnh dҥng cө thӇ Ӣ nhӳng tұp tin này có thӇ trích xuҩWUDQKѭQJWK{QJWLQFө thӇ QKѭ sӕ bҧng, tên cӫa các bҧng, sӕ cӝt mӛi bҧng và tên cӫa các cӝt Nhӳng thông tin này thӇ hiӋQÿѭӧc phҫQQjRêQJKƭDGӳ liӋu cӫa tұSWLQÿDQJÿѭӧc chia sҿ
Tұp tin âm thanh: Sӱ dөng mӝWWKѭYLӋn vӅ textspeech (chuyӇQÿәi tӯ âm thanh ra ký tӵ), nӝi dung mӝt phҫn cӫDÿRҥn âm thành sӁ ÿѭӧc chuyӇn thành ký tӵ FKRQJѭӣi GQJÿӑc Nhӡ ÿyQJѭӡi dùng có thӇ hình dung ra nӝi dung cӫa tұp tin này và quyӃt ÿӏnh có cҩn sӱ dөng tӟi chúng hay không
4 &ѫFKӃ quҧQOêQJѭӡi dùng giӳa hӋ thӕng dӳ liӋu mӣ và blockchain
Mөc tiêu cӫa viӋFOѭXWUӳ RDF cӫa nӅn tҧng dӳ liӋu mӣ là cung cҩSFKRQJѭӡi dùng mӝt sӵ WLQWѭӣng nhҩWÿӕi vӟi nhӳng thông tin chia sҿ trên nӅn tҧng dӳ liӋu mӣ, nhҩt là nhӳng thông tin có sӵ liên quan tӟLQKDXQKѭWұp tin dӳ liӋu A có liên kӃt tӟi tұp tin dӳ liӋu B, vì vұ\ÿӕLWѭӧng sau cùng cӫa giҧLSKiSKѭӟng tӟi vүn là tӯng cá thӇ QJѭӡi dùng
Các hӋ thӕng dӳ liӋu mӣ QKѭ&.$1FyPӝWOѭӧng lӟQQJѭӡi dùng, mӛi tұp dӳ liӋu và các tұSWLQOLrQTXDQÿѭӧc tҥo ra bӣi mӝWQJѭӡi dùng cө thӇ Vì thӃ ta cҫn quan tâm tӟLQJѭӡi tҥRUDQy7ѭѫQJWӵ ÿyWK{QJWLQFNJQJSKҧLÿѭӧFÿӗng bӝ hóa trên mҥng
Oѭӟi blockchain Tӯ WK{QJWLQÿyWDFyWKӇ biӃWÿѭӧc là dӳ liӋXÿyWKXӝc quyӅn sӣ hӳu cӫDQJѭӡi dùng nào, thuӝc nӅn tҧng nào
Tuy nhiên, thông tin và dӳ liӋXQJѭӡLGQJWKѭӡng mang tính nhҥy cҧm và là dӳ liӋu riêng biӋWÿһc thù cӫa tӯng hӋ thӕQJ1JRjLUDWURQJTXiWUuQKWѭѫQJWiFYӟi các nӅn tҧng dӳ liӋu mӣQJѭӡLGQJFNJQJNK{QJQKұn thӭFÿѭӧFÿѭӧc mӝt sӕ siêu dӳ liӋu ÿѭӧFÿӗng bӝ hóa lên nӅn tҧng blockchain Vì vұ\WK{QJWLQQJѭӡLGQJÿѭӧFÿӗng bӝ hóa lên blockchain chӍ có thӇ thӵc hiӋQWK{QJTXDÿӏnh danh cӫa nӅn tҧng, và chӍ
Fy WK{QJ TXD ÿӏnh danh này mӟL ÿѭӧc quyӅn truy xuҩt kiӇm tra thông tin trên blockchain
Vӟi mӛLQJѭӡi dùng tӯ nӅn tҧng dӳ liӋu mӣ, hӋ thӕng sӁ cung cҩSFKRQJѭӡi dùng mӝt khóa bí mұt (private key), nhӡ vào khóa này, hӋ thӕng có thӇ ÿӏQKGDQKÿѭӧc QJѭӡLGQJOjDLYjGRÿyWҩt cҧ nhӳQJKjQKÿӝng trên hӋ thӕng sӁ ÿѭӧFOѭXWUӳ Gѭӟi khóa này &NJQJQKӡ vào khóa bí mұt nà\PjQJѭӡi dùng có thӇ truy cұp nhӳng thông WLQÿmÿѭӧFOѭXWUӳ WUrQEORFNFKDLQGѭӟi khóa bí mұt này Tuy nhiên viӋc giao tiӃp này phө thuӝc rҩt nhiӅu vào khóa bí mұt này, nên mӛLQJѭӡi dùng cҫn có trách nhiӋm bҧo vӋ WK{QJWLQÿӏnh danh cá nhân
5 &ѫFKӃ thu hӗi, cҩSSKiWWK{QJWLQÿӏQKGDQKQJѭӡi dùng
1KѭÿmÿӅ cұp ӣ phҫQWUѭӟc, viӋc quҧQOêWK{QJWLQÿӏQKGDQKQJѭӡi dùng phҧi có giҧi pháp mӝt sӕ tình huӕQJUzUƭWK{QJWLQ Khi bӏ UzUƭWK{QJWLQQJѭӡi dùng có nhu cҫu loҥi bӓ ÿӏnh danh và xin cҩp mӟL7X\QKLrQÿӏQKGDQKQj\ÿmÿѭӧc gán cho các hoҥWÿӝng xҧ\UDWUrQÿӏQKGDQKQrQÿӇ loҥi bӓ thì phҧLTXDJLDLÿRҥn xin cҩSÿӏnh danh khác thay thӃ Ӣ mӛLÿӏnh danh cӫDQJѭӡi dùng sӁ bao gӗm 2 phҫn : x Private key x Passphare
ViӋc cung cҩSSDVVSKDUHQKѭPӝWEѭӟc xác thӵc thӭ ÿӇ xác nhұQOjQJѭӡLGQJÿӇ loҥi bӓ và gán nhӳQJWK{QJWLQÿLFQJÿӏQKGDQKFNJVDQJÿӏnh danh mӟL9jÿӏnh GDQKFNJSULYDWHNH\VӁ NK{QJFzQÿѭӧc sӱ dөng trong hӋ thӕng
6 &ѫFKӃ quҧn lý tұp tin RDF
Mӛi khi có thông tin mӟLÿѭӧFOѭXWUӳ hoһc cұp nhұt lҥi nhӳQJWK{QJWLQFNJWUrQ nӅn tҧng dӳ liӋu mӣ, nhӳng thông tin này sӁ ÿѭӧc tiӅn xӱ lý thông qua mӝWWKѭYLӋn, chuyӇQÿәi nhӳng thông tin dӳ liӋu thành tұSWLQÿӏnh dҥQJ5')ÿӇ OѭXWUӳ Trong luұQYăQQj\Vӱ dөQJÿӏnh dҥQJ5');0/ÿӇ OѭXWUӳ nhӳng thông tin này
Thêm nӳa, tұp tin RDF/XML vӯDGQJÿӇ OѭXOҥi và khӣi tҥo và chia sҿ tӟi nhӳng nhӳng nӅn tҧng dӳ liӋu mӣ NKiFĈӇ có thӇ chia sҿ nhӳng tұp tin RDF giӳa các nӅn tҧng vӟi nhau, IPFS [11@ÿѭӧc sӱ dөng QKѭPӝt giҧi pháp chia sҿ tұp tin dӳ liӋu phân tán
Dӵa vào nӝi dung cӫa tұSWLQ5')ÿѭӧc chia sҿ, nӅn tҧng dӳ liӋu mӣ bҩt kì có thӇ xây dӵng lҥi OѭӧFÿӗ RDF Tùy thuӝFYjRFѫFKӃ chia sҿ thông tin cӫa mӛi nӅn tҧng dӳ liӋu mӣ PjOѭӧFÿӗ RDF sӁ khác nhau, tuy nhiên chúng có thӇ ÿѭӧc kӃt nӕi thông qua các phҫQOѭӧFÿӗ 5')ÿѭӧc chia sҿ mӝt cách dӉ dàng
Hình 13 Mô hình qu̫n lý t̵p tin
7 &ѫFKӃ trao ÿәi dӳ liӋu giӳa các nӅn tҧng
Truy vҩn trong RDF
Mӝt vҩQÿӅ quan trӑng trong viӋc xây dӵng các hӋ thӕQJ5')ÿyOjYLӋc truy vҩn (query) thông tin trên RDF nhҵm mөFÿtFKWuPNLӃPÿѭӧc nhӳng thông tin có ích theo nhӳQJÿLӅu kiӋQFKRWUѭӟc Trong RDF, SPARQL [@ÿѭӧc sӱ dөQJQKѭPӝt ngôn ngӳ truy vҩn dӳ liӋu Cú pháp cӫa SPARQL NKiÿѫQJLҧn và dӉ tiӃp cұn, nhҩt là nhӳQJQJѭӡLÿmWLӃp cұn qua ngôn ngӳ truy vҩn dӳ liӋu có cҩu trúc (Structured Query Language ± SQL) ĈӇ có thӇ truy vҩQÿѭӧc thông tin trên RDF, mӝWWKѭYLӋn hӛ trӧ 5')ÿѭӧc sӱ dөng RDFLib [12] là mӝWWKѭYLӋn viӃt bҵng Python hӛ trӧ làm viӋc vӟi RDF RDFLib chӭa các API hӳXtFKÿӇ làm viӋc vӟi RDF, bao gӗm: x Trình phân tích cú pháp & Bӝ nӕi tiӃp (Parsers & Serializers) : o Ĉӕi vӟi RDF/XML, N3, N-Triples, N-Quads, Turtle, RDFa và Microdata o Ĉӕi vӟi JSON-LD, thì hiӋn thӵc thông qua mӝt modun bên ngoài x HiӋn thӵc bӝ OѭXWUӳ o /ѭXWUӳ RDF bӝ nhӟ trong (in-memory) thông qua Berkeley DB [13] x Giao diӋQÿӗ thӏ o Cho mӝt biӇXÿӗ o KӃt hӧp nhiӅu biӇXÿӗ thông qua viӋFÿһt tên riêng biӋt o Mӝt tұp biӇXÿӗ x TriӇn khai SPARQL 1.1 o Hӛ trӧ truy vҩn (query) và cұp nhұt (update)
ThiӃt kӃ hӋ thӕng Blockchain và IPFS
HӋ thӕng Blockchain Ethereum network bao gӗm các node kӃt nӕi vӟi nhau 7URQJÿyPӝt node sӁ làm nhiӋm vө QKѭQRGHNKӣi tҥo (boot node) và các node khác sӁ kӃt nӕi vào node này tҥo thành mӝt mҥQJOѭӟi (network) Tҩt cҧ FiFQRGHQj\ÿӅu có cùng dӳ liӋXQKѭQKDXÿҧm bҧo cho viӋFÿӗng bӝ hoá dӳ liӋu trên các node Khi cҫn giao tiӃp tӟi mҥQJOѭӟi blockchain, chӍ cҫn kӃt nӕi tӟi mӝt node bҩt kì trong mҥQJOѭӟi và thӵc hiӋn các yêu cҫu
Các node Ethereum cung cҩp mӝt vài API (Application Programming Interface ± giao diӋn lұp trình ӭng dөng), cho phép giao tiӃp trӵc tiӃp vӟi các node thông qua giao thӭc HTTP
1KѭÿmQyLӣ trên, giҧi pháp sӱ dөng IPFS OjSKѭѫQJSKiSOѭXWUӳ các tұp tin RDF ÿѭӧc trích xuҩt khi thông tin dataset hoһc resource bên các nӅn tҧng dӳ liӋu mӣ ÿѭӧc thêm mӟi hoһc cұp nhұt KiӃn trúc cӫD,3)6FNJQJJLӕQJQKѭPҥQJOѭӟi Blockchain, gӗm nhiӅu node kӃt nӕi vӟi nhau tҥo thành mҥQJOѭӟi IPFS
ThiӃt kӃ FѫVӣ dӳ liӋu
7Uѭӟc khi ghi nhұn thông tin vào Blockchain, có nhӳng thông tin chi cҫQOѭXӣ mӭFFѫVӣ dӳ liӋXÿӇ giúp cho hӋ thӕng hoҥWÿӝng mӝt cách nhanh chóng và phҧn hӗi tӟi các nӅn tҧng dӳ liӋu mӣ QKDQKKѫQ 7UѭӟFNKLOѭXWUӳ dӳ liӋu cҫn thiӃt vào Blockchain thông qua hӧSÿӗng thông minh, dӳ liӋu có thӇ ÿѭӧFOѭXWUӳ và xӱ lý WUѭӟc ӣ FѫVӣ dӳ liӋu, kӃt quҧ xӱ lý sӁ ÿѭӧFOѭXYjR%ORFNFKDLQYjQӃu xӱ lý thành công, sӁ ÿѭӧc cұp nhұWYjRFѫVӣ dӳ liӋu
TiӃn trình cӫa các hoҥWÿӝQJWURQJFѫVӣ dӳ liӋu sӁ diӉQUDQKѭVDX
Hình 18 Ti͇n trình x͵ lý dͷ li u
Khi có mӝt yêu cҫu xӱ lý vӅ viӋc cұp nhұt thông tin cӫa mӝt bӝ dӳ liӋu, hӋ thӕng sӁ OѭXWUӳ thông tin cҫn thiӃWÿӇ xӱ OêYjRFѫVӣ dӳ liӋX.KLOѭXWUӳ YjRFѫVӣ dӳ liӋu thì sӁ có mӝt giá trӏ ÿӏnh danh dӳ liӋXÿyLQGH[&QJYӟi chuӛLÿӏnh danh này, Blockchain sӁ OѭXGӳ liӋu cӫa bӝ dӳ liӋXFNJQJQKѭFKXӛLÿӏnh danh bҵng hӧSÿӗng thông minh NӃu viӋFOѭXWUӳ thành công, trҥng thái cӫDKjQKÿӝng sӁ ÿѭӧc cұp nhұt lҥLFѫVӣ dӳ liӋu Tӯ ÿyQӃu mӝt yêu cҫu không cҫn thiӃt, hӋ thӕng sӁ lҩy truy vҩn tӯ FѫVӣ dӳ liӋu chӭ không nhҩt thiӃt phҧi qua Blockchain, tӯ ÿyJL~SKӋ thӕng chҥy tӕt KѫQYjQKDQKKѫQ
&ѫVӣ dӳ liӋu gӗm 11 bҧng (table) chính bao gӗm: x store: GDQKViFKFiFOѭӧFÿӗ 5')ÿѭӧFOѭXWUӳ trên hӋ thӕng Ngoài mӝt OѭӧFÿӗ chung cho tҩt cҧ các nӅn tҧng dӳ liӋu mӣ thì mӛi nӅn tҧng sӁ có mӝWOѭӧFÿӗ ULrQJÿӇ OѭXWUӳ QKѭQJEӝ dӳ liӋu ӣ dҥng bҧo mұt (private) x platform: bҧQJQj\OѭXWUӳ thông tin cӫa nӅn tҧng dӳ liӋu mӣ, thông tin kӃt nӕi và liên hӋ tӟi các nӅn tҧng này x platformWallet: mӛi nӅn tҧng dӳ liӋu mӣ sӁ ÿѭӧc cung cҩp mӝt ví (address) ÿӇ WKDRWiFWUrQ%ORFNFKDLQQJRjLUDWURQJWUѭӡng hӧp nӅn tҧng muӕn yêu cҫu cҩp ví mӟi thì nhӳQJYtFNJFNJQJVӁ không bӏ mҩWÿLPjYүQÿѭӧFOѭX trӳ lҥi mөFÿtFKFKRYLӋc kiӇm soát các hoҥWÿӝng x ipfsFile: mӛi tұSWLQ5')ÿѭӧFOѭXWUӳ vào IPFS sӁ ÿѭӧFOѭXWҥLÿk\
43 x user: mӛi nӅn tҧng dӳ liӋu mӣ có rҩt nhiӅXQJѭӡi dùng, mӛLQJѭӡi dùng trên nӅn tҧng dӳ liӋu mӣ sӁ ÿѭӧc lѭXWUӳ tҥi bҧng này x XVHU:DOOHWFNJQJJLӕQJQKѭSODWIRUP:DOOHWPӛLQJѭӡi dùng khi tham gia vào hӋ thӕQJFNJQJVӁ ÿѭӧc cung cҩp mӝWYtÿLӋn tӱ, mөFÿtFKFKRWKDRWiF trên Blockchain, ngoài ra nhӡ YjRÿӏa chӍ cӫa ví mà có thӇ xác nhұQÿѭӧc liӋXQJѭӡi dùng có thuӝc hӋ thӕng không có các quyӅn gì trên hӋ thӕng x blockchainTransaction: có rҩt nhiӅX KjQK ÿӝng cҫn phҧi xӱ lý trên Blockchain, tuy nhiên thӡi gian xӱ lý trên Blockchain tӕn khá nhiӅu thӡi gian (so vӟi các ӭng dөng không xӱ dөng Blockchain), cho nên cҫn phҧi OѭXWUӳ lҥLÿӏnh danh cӫDKjQKÿӝQJÿӇ có thӇ kiӇm tra lҥi sau này x rdfSchema: bҧQJQj\OѭXWUӳ danh sách các tӯ ÿLӇn mà hӋ thӕng có thӇ hӛ trӧ, có rҩt nhiӅu tӯ ÿLӇn khác nhau và cách xӱ OêNKiFQKDXĈӇ viӋc xӱ lý tӕWKѫQWKuFҫn phҧi chia ra tӯng tUѭӡng hӧSÿӇ xӱ lý Ngoài ra các nӅn tҧng NKiFQKDXFyFiFKÿһt tên giá trӏ khác nhau, nên nhӳng giá trӏ có cùng ý QJKƭDFyWKӇ khác nhau vӅ tên giӳa 2 nӅn tҧng, cho nên cҫn phҧi có mӝt SKѭѫQJWKӭc thӕng nhҩt x platformSchema: ĈӏQKQJKƭDFө thӇ tӯng tên cӫa giá trӏ trong mӛi nӅn tҧng WѭѫQJӭng vӟLêQJKƭDWURQJWӯ ÿLӇn
Ánh xҥ ngӳ QJKƭD
Mӛi nӅn tҧng dӳ liӋu mӣ FyFiFKOѭXWUӳ ÿһt tên cho các giá trӏ khác nhau Vұy nên cҫn phҧi chuyӇQÿәi các giá trӏ FKXQJêQJKƭDYӅ mӝWWrQFKXQJÿӇ ÿӗng bӝ hoá các giá trӏ giӕng nhau Giҧi pháp mà luұQYăQÿѭDUDOj[k\Gӵng mӝt bӝ tӯ ÿLӇn ý QJKƭDFӫa các giá trӏ và ánh xҥ vӟi các giá trӏ cӫa mӛi nӅn tҧng dӳ liӋu mӣ ViӋFÿӏnh QJKƭDFiFJLiWUӏ này rҩt quan trӑng, vì nӃXÿӏQKQJKƭDVDLêQJKƭDFӫa các giá trӏ trong nӅn tҧng dӳ liӋu mӣ thì sӁ dүn tӟLêQJKƭDFӫa các giá trӏ sӁ bӏ WKD\ÿәLNKLOѭXWUӳ trên hӋ thӕng
7URQJÿy x 6FKHPDÿk\OjP{Wҧ bҧQJUGI6FKHPDWURQJFѫVӣ dӳ liӋu HӋ thӕng sӁ mô tҧ sҹn mӝt danh sách các tӯ NKRiYjêQJKƭDFӫDNKRiÿyWK{QJTXDWӯ tӯ ÿLӇn x Platform Schema: mô tҧ cӫa bҧQJSODWIRUP6FKHPDWURQJFѫVӣ dӳ liӋu Mӛi platform khác nhau sӁ có tӯ khoá khác nhau vӟi mӛi giá trӏ NӃu trong WUѭӡng hӧp tӯ khoá trong nӅn tҧng dӳ liӋu mӣ có cùng tên vӟi hӋ thӕng thì không cҫn phҧi khai báo, còn nӃu tên giá trӏ trên các nӅn tҧng dӳ liӋu mӣ khác so vӟi khai báo trên hӋ thӕQJQKѭQJFQJFKXQJJLiWUӏ thì phҧi khai báo ánh xҥ ÿӇ hӋ thông có thӇ nhұn dҥQJÿѭӧc khi xӱ Oêÿӕi vӟi các bӝ dӳ liӋu
Các luӗng hoҥWÿӝng chính
ĈăQJ Nêÿӏnh danh nӅn tҧng dӳ liӋu mӣ
Hình 21 4XiWUuQKÿăQJNêÿ͓nh danh n͉n t̫ng dͷ li u mͧ
4XiWUuQKÿăQJNêÿӏnh danh nӅn tҧng ÿѭӧc thӵc hiӋQTXDEѭӟFQKѭVDX
[1] NӅn tҧng dӳ liӋu mӣ gӑi yêu cҫu tӟi Portal API vӟi mөFÿtFKÿăQJNê ÿӏnh danh mӟi cho nӅn tҧng dӳ liӋu mӣ
[2] 3RUWDO$3,OѭXWK{QJWLQÿӏnh danh cӫa nӅn tҧng dӳ liӋu mӣ xuӕQJFѫVӣ dӳ liӋu, cho biӃt trҥng thái cӫa yêu cҫXOj³ÿDQJFKӡ xӱ Oê´
[3] Portal API gӱi yêu cҫXÿăQJNêÿӏnh danh cho Blockchain Connector, tӯ ÿk\ÿӏnh danh cӫa nӅn tҧng mӣ ÿѭӧFOѭXWUӳ vào Blockchain thông qua hӧSÿӗng thông minh
[4] Sau khi xӱ OêOѭXWUӳ WK{QJWLQÿӏnh dang cӫa nӅn tҧng dӳ liӋu mӣ thành công, cұp nhұt lҥi trҥng thái cӫDÿӏQKGDQKOj³[ӱ OêWKjQKF{QJ´YjJLӡ ÿk\QӅn tҧng dӳ liӋu mӣ này có thӇ kӃt nӕLÿѭӧc vӟi hӋ thӕng NӃu trong WUѭӡng hӧp thҩt bҥi hoһc mӝt lý do bҩt kǤ, trҥng thái cӫDÿӏnh danh trong FѫVӣ dӳ liӋXFNJQJVӁ ÿLNqP
Thêm mӟi, cұp nhұt các bӝ dӳ liӋu
Hình 22 Quá trình x͵ lý các b͡ dͷ li u ĈӇ có thӇ làm viӋc vӟi các bӝ dӳ liӋu trong nӅn tҧng dӳ liӋu mӣ, các nӅn tҧng dӳ liӋu mӣ ÿѭӧc yêu cҫu sӱ dөQJNKRiÿӏnh danh mà hӋ thӕng trҧ vӅ khi các nӅn tҧng ÿăQJNêÿӏnh danh trên hӋ thӕQJ.KLÿyYӟi mӛi yêu cҫu tӯ nӅn tҧng dӳ liӋu mӣ, trên headers cӫa yêu cҫu có thêm khoá truy cұp TiӃn trình giao tiӃp giӳa nӅn tҧng dӳ liӋu mӣ và hӋ thӕQJÿӇ xӱ lý các bӝ dӳ liӋu xҧ\UDQKѭVDX
[1] NӅn tҧng dӳ liӋu mӣ gӱi thông tin cӫa các bӝ dӳ liӋu qua cho Portal API Trong yêu cҫu này cҫn phҧi mô tҧ rõ vӅ thông tin cӫa bӝ dӳ liӋu bao gӗm: ÿѭӡng dүn tӟi bӝ dӳ liӋu, tác giҧ, mô tҧ, ngày giӡ thêm mӟi/cұp nhұt, ÿӏnh dҥng các tұp tin dӳ liӋXFNJQJQKѭNtFKWKѭӟc cӫa các tұSWLQÿѭӧc chia sҿ
[2] Portal API nhұQÿѭӧc thông tin và gӱi yêu cҫu vӅ viӋc xӱ lý khi thêm mӟi/cұp nhұt bӝ dӳ liӋu
[3] RDFStore nhұn yêu cҫu và tҥo ra các tұp tin RDF dӵDYjRWK{QJWLQÿѭӧc gӱi tӯ 3RUWDO$3,7KrPYjRÿy5')6WRUHVӁ thêm thông tin cӫa bӝ dӳ liӋXQj\YjROѭӧFÿӗ RDF vӟi mөFÿtFKFKRWUX\Yҩn sau này Sau khi có
47 ÿѭӧF ÿѭӡng dүn cӫa tұp tin RDF, gӱL ÿѭӡng dүn cӫa tұp tin tӟi IPFSConnector
[4] IPFSConnector sau khi nhұQÿѭӧFÿѭӡng dүn cӫa tұSWLQ5')OѭXWұp tin này vào mҥng IPFS Sau ÿy[RiWұSWLQ5')ÿL*ӱi thông tin truy xuҩt cӫa tұp tin trong IPFS cho Blockchain Connector
[5] Blockchain Connector tәng hӧSWK{QJWLQÿѭӧc gӱi tӯ Portal API và IPFS
&RQQHFWRUVDXÿyOѭXQKӳng thông tin này vào hӧSÿӗng thông minh
Truy vҩQOѭӧFÿӗ RDF
/ѭӧFÿӗ 5')ÿѭӧFOѭXWUӳ trên RDF Store có thӇ ÿѭӧc truy vҩn bҵng sӱ dөng ngôn ngӳ SPAQRL Bҵng viӋc sӱ dөng SPAQRL sӁ giúp cho viӋc truy vҩn hiӋu quҧ KѫQWX\QKLrQ\rXFҫXQJѭӡi dùng phҧi có hiӇu biӃt vӅ cú pháp cӫa SPAQRL
Hình 23 Truy v̭n trên RDF Store
VӅ FѫEҧn khi có yêu cҫu truy vҩQWUrQOѭӧFÿӗ RDF, Portal API sӁ nhұn nhӳng yêu cҫu truy vҩn này và chuyӇn qua cho RDFStore xӱ Oê.KLÿy5')6WRUHVӁ xӱ lý câu truy vҩn và trҧ lҥi kӃt quҧ FKR3RUWDO$3,ÿӇ trҧ vӅ FKRQJѭӡi yêu cҫu truy vҩn
Giҧi pháp hoàn chӍnh
Sau khi tích hӧp các giҧi pháp lҥi vӟi nhau Ta có mӝt giҧi pháp hoàn chӍQKQKѭ sau :
48 x Sau khi tұp dӳ liӋXGDWDVHWÿѭӧc tҥo mӟi hoһc cұp nhât, thông tin cӫa tұp dӳ liӋu sӁ ÿѭӧc tiӅn xӱ lý, trích xuҩt thông tin tӯ nguӗn dӳ liӋXÿѭDOrQ 6DXÿyFKX\ӇQÿәLWKjQKÿӏnh dҥng RDF và trích xuҩt ra tұp tin RDF x Bӝ quҧn lý tұp tin (IPFS Manager) sӁ xӱ OêOѭXWUӳ tұp tin RDF vào mҥng Oѭӟi IPFS x Bӝ quҧQOê%ORFNFKDLQOѭXWK{QJWLQYjR%ORFNFKDLQYjQKұn trҧ kӃt quҧ vӅ cho hӋ thӕng x Khi nӅn tҧng dӳ liӋu mӣ khác nhұQÿѭӧc sӵ kiӋQFyOѭӧFÿӗ RDF khác mӟi ÿѭӧc chia sҿ, thông qua bӝ quҧn lý tұp tin và Blockchain sӁ lҩ\ÿѭӧc tұp tin vӅ và kiӇm tra giá trӏ EăPFӫa tұp tin có trùng vӟLWK{QJWLQOѭXWUӳ trên Blockchain không
Hình 24 Gi̫i pháp hoàn ch͑nh x Khi có mӝt truy vҩn tӟi, nhӡ vào bӝ RDF Process mà có thӇ nhanh chóng trҧ vӅ kӃt quҧ thông qua Portal API
ĈiQKJLi
GiҧLSKiSÿӅ xuҩt có khҧ QăQJ x Tích hӧp vӟi các nӅn tҧng dӳ liӋu mӣ, không giӟi hҥn bӣi nӅn tҧng x Trích xuҩWÿѭӧc thông tin cӫa các tұp dӳ liӋu, dataset Tӯ ÿyWҥRFKRQJѭӡi sӱ dөng mӝt cái nhìn tәQJTXDQKѫQYӅ dӳ liӋu x &ѫFKӃ quҧQOêÿӏnh danh bҵng khóa bí mұWÿҧm bҧRWK{QJWLQOѭXWUӳ trên EORFNFKDLQ1JRjLUDFѫFKӃ hӫy và cҩp phát mӟLÿҧm bҧo tính an toàn cho hӋ thӕng x Dӳ liӋX5')ÿѭӧFOѭXWUӳ Yjÿҧm bҧo khҧ QăQJFKӕng làm giҧWKD\ÿәi, tҥo sӵ WLQWѭӣQJFKRQJѭӡi dùng x Ĉҧm bҧRÿѭӧc sӵ xác thӵFNKLFyWKD\ÿәi tӯ dӳ liӋu liên kӃt x Sӱ dөng công nghӋ (WKHUHXPÿmÿѭӧc chӭng minh vӅ khҧ QăQJEҧo mұt FNJQJQKѭFKӕng các sӵ tҩn công tӯ ErQQJRjLĈҧm bҧo KѫQFKRGӳ liӋu ÿѭӧFOѭXWUӳ
&+ѬѪ1* 4: HIӊN THӴC GIҦI PHÁP
Vӟi giҧLSKiSÿѭӧFÿӅ xuҩt, quá trình thӵc nghiӋm cҫn phҧi hoàn thành các công viӋFVDXÿk\ x ThiӃt lұp vұn hành nӅn tҧng CKAN x Xây dӵng plugin trong CKAN theo dõi sӵ WKD\ÿәi cӫDFiFÿӕLWѭӧng x Xây dӵQJ$3,FKRSKpSÿăQJNêNKӣi tҥRÿӏnh danh thông tin x Xây dӵng cәQJWK{QJWLQFKR SKpSÿӗng bӝ hoá dӳ liӋu tӯ CKAN vào EORFNFKDLQWK{QJTXDÿӏnh danh cәng thông tin x ThiӃt lұp, vұn hành mҥQJOѭӟi blockchain x Xây dӵng các hӧSÿӗng thông minh cho quá trình xӱ lý, truy vҩn dӳ liӋu trong blockchain x Xây dӵng API cho phép truy vҩn dӳ liӋu tӯ blockchain x ThiӃt lұp, vұn hành mҥQJOѭӟi IPFS x Xây dӵng API cho phép truy vҩn dӳ liӋu tӯ IPFS x Xây dӵng API cho phép gӱi yêu cҫu nhұn thông tin RDF và Resource tӯ mӝt nӅn tҧng bҩt kì
Chi tiӃt cӫa quá trình thӵc hiӋn sӁ ÿѭӧc mô tҧ QKѭVDX
Môi WUѭӡng hiӋn thӵc và công cө
HӋ ÿLӅu hành: MAC OS Catalina, version 10.15.6
Processor: 2.4 GHz Quad-Core Intel Core i5
Các thành phҫn: x CKAN: o CKAN Open source 2.8.5 o &ѫsӣ dӳ liӋu PostgreSQL 2.5 o Redis Server version 5.0.1 o Apache Solr 1.4.1 o Python 2.7 virtual enviroment
51 x API Portal : o NodeJS/Express o Javascript o Mariadb 10.5.5 x Blockchain: o Ethereum Client-Go o Web3js (công cө truy vҩn thông tin dӵa vào HTTP Request) o Solidity 0.6.9 (công FөYLӃWVPDUWFRQWUDFW) x RDF Query o Python 3.8 o RDFLib 5.0 o LevelDB
ThiӃt lұp vұn hành nӅn tҧng CKAN
&.$1FXQJFҩSFiFFKӭFQăQJ x *LDRGLӋQZHEQJѭӡLGQJ o ĈăQJký, tҥo mӟi, cұp nhұt thông tin o Tҥo dataset, cұp nhұt thông tin dataset o Tҥo các file resource trong dataset o Phân quyӅn GӵDYjR2UJDQL]DWLRQV*URXS x /ѭXWUӳILOHXSORDGOrQFiFÿӏDFKӍVHUYHUÿmÿѭӧFFҩXKuQKWUѭӟF x &iFVӵNLӋQYjKjQKÿӝQJOLrQTXDQWӟLVӵWKD\ÿәLFӫDGDWDVHWUHVRXUFH x Các A3,JLDRWLӃS x &iFSOXJLQPһFÿӏQKKӛWUӧOjPYLӋFYӟLGDWDVHWYjUHVRXUFH x &XQJFҩSSOXJLQ,QWHUIDFHJL~SFKRYLӋFYLӃWWKrPFiFSOXJLQGӉGjQJ
Hình 25 C̭u trúc v̵n hành CKAN x &.$1 RSHQ VRXUFHÿѭӧFYLӃWWUrQ 3\WKRQWUrQ P{L WUѭӡQJҧR Apache Server x &ѫVӣGӳOLӋXWURQJ&.$1Oj3RVWJUH64/ x 4XiWUuQKWuPNLӃPÿiQKFKӍPөFFӫD&.$1GӵDYjR6ROU x 0i\FKӫ)LOH6WRUHOjPQKLӋPYөOѭXWUӳFiFWұSWLQÿѭӧFXSORDGEӟLQJѭӡL dùng x &iFWiFYөQJҫPÿѭӧFTXҧQOêYjWKӵFWKLEӣLPi\FKӫ5HGLV
Hình 26 Giao di QÿăQJNêQJ˱ͥi dùng mͣi
Hình 27 Giao di QQJ˱ͥLGQJÿăQJQK̵p thành công
Xây dӵQJ$3,ÿӏnh danh cәng thông tin
Khi mӝt nӅn tҧng muӕn bҳWÿҫXÿӗng bӝ hoá dӳ liӋu OrQEORFNFKDLQÿzLKӓi phҧi ÿăQJNêÿӏnh danh nӅn tҧQJ.qPWKHRÿySKҧi cung cҩp thông tin khoá bҧo mұWÿӇ hӋ thӕng có thӇ truy cұSQJѭӧc lҥi nӅn tҧng dӳ liӋu mӣ trong WUѭӡng hӧp cҫn thiӃt x ĈѭӡQJ dүn : http://url/api/portal/platform x 3KѭѫQJ thӭc : POST x 1ӝL dung: o Name: tên nӅn tҧng o (PDLOHPDLOÿҥi diӋn o Domain : url cӫa nӅn tҧng o Authorization: thông tin bҧo mұt cho phép truy cұSQJѭӧc lҥi nӅn tҧng x KӃt quҧ trҧ vӅ: o Id: id cӫa nӅn tҧng trong hӋ thӕng o Public Key : ÿӏa chӍ cӫDQJѭӡi dùng trên blockchain o Private Key: mã truy cұp cӫa nӅn tҧng vào hӋ thӕng
55 o 3DVVSKDUHWѭѫQJÿѭѫQJPmEҧo mұt 2 lӟp, hӋ thӕng sӁ NK{QJOѭXWUӳ thông tin này mà sӁ ÿѭӧc kiӇm tra tӵ ÿӝng dӵa vào thuұt toán mã hoá
Ĉӗng bӝ hoá
Giҧi pháp hiӋn tҥLÿDQJÿѭӧc xây dӵng các mô-ÿXQWiFKELӋt nhau, ích lӧi cӫa viӋc này là khҧ QăQJPӣ rӝng cӫa hӋ thӕng và xӱ lý các tác vө mӝt cách song song, làm cho hӋ thӕng chҥy QKDQKKѫQYjPҩWtWWjLQJX\rQKѫQ7X\QKLrQÿӇ có thӇ ÿҧm bҧo ÿѭӧc viӋc các mô-ÿXQFyWKӇ WѭѫQJWiF ÿѭӧc vӟi nhau và không làm mҩt thông tin cӫa nhau GiҧL SKiS ÿѭD UD Oj Vӱ dөng mӝt dӏch vө gӱi tin nhҳn (message queue VHUYLFHÿӇ nhұn và chuyӇn các yêu cҫu tӟi mô-ÿXQFҫn xӱ lý mӝt cách tӵ ÿӝng NATS [14] ÿѭӧc lӵa chӑn là công cө xӱ lý trong giҧi pháp này
Hình 29 S͵ dͭng NATS cho vi FO˱XFKX\͋n các yêu c̯u
NATS sӁ ÿӭng giӳa các mô-ÿXQYjOѭXFKX\Ӈn các yêu cҫu tӟi mô-ÿXQFө thӇĈӇ biӃWÿѭӧc mô-ÿXQQjRQKұQFiFKjQKÿӝng nào, tin nhҳn (message) trên NATS sӁ ÿѭӧc mô tҧ QKѭVDX
56 x DFWLRQKjQKÿӝng mà tin nhҳQÿDQJKѭӟng tӟi x data: dӳ liӋXÿLFQJKjQKÿӗng
Ví dө nӃXÿDQJFҫQOѭXWұSWLQ5')ÿѭӧc khӣi tҥo tӯ RDF Store vào IPFS RDF Store sӁ gӱi mӝt tin nhҳn tӟi NATS vӟi nӝi dung ^DFWLRQà,3)6ảGDWD^LSIVàôả}} tӯ ÿy,3)6&RQQHFWRUFKӍ nhұn nhӳng tin nhҳn có action là IPFS và xӱ lý chúng ViӋc sӱ dөng NATS có nhӳQJÿLӇm mҥnh và yӃXQKѭVDX x ĈLӇm mҥnh: o Luôn sҹQVjQJÿӝ trӉ thҩp o ThiӃt kӃ nhҽ o Tiêu thө CPU thҩSNK{QJÿһt nһng hӋ thӕng o Khҧ QăQJQKұn và gӱi tin nhҳn nhanh chóng o Khҧ QăQJPӣ rӝng cao o TrӑQJOѭӧng nhé, chӍ có 3MB nӃu sӱ dөng Docker x ĈLӇm yӃu: o Mô-ÿXQNK{QJQKұQÿѭӧc tin nhҳn nӃu không trӵc tuyӃn (offline) o Không hӛ trӧ xӃp hàng (queueing), tin nhҳn sӁ không sҳp xӃp theo hàng ÿӧi tin nhҳQFyWUѭӟc tӟLWUѭӟc mà tuǤ thuӝFYjRÿӝ sҹn sàng cӫa NATS khi tin nhҳQÿѭӧc gӱi o Không có giao dӏch (transaction), các tin nhҳQNK{QJÿѭӧFOѭXWUӳ lҥi QKѭPӝt giao dӏch mà sӁ biӃn mҩt sau khi mô-ÿXQQKұQÿѭӧc
Tҩt cҧ ÿLӇm mҥQKYjÿLӇm yӃu trên cӫa NATS phù hӧp vӟi giҧLSKiSÿDQJÿѭӧc hiӋn thӵc, ghi nhұn tin nhҳn lұp tӭc, sӱ lý và chuyӇQTXDFiFEѭӟc kӃ tiӃp, dӉ dàng mӣ rӝng phù hӧp vӟi kiӃn trúc mô-ÿXQÿDQJÿѭӧc xây dӵng.
Xác thӵc trong hӋ thӕng
Trong nӝi bӝ cӫa hӋ thӕng giҧLSKiSÿѭDUDFyKDLNLӇu kӃt nӕi chính giӳa các mô- ÿXQYӟi nhau: x KӃt nӕi thông qua NATS x KӃt nӕi trӵc tiӃp
57 ĈӇ có thӇ kӃt nӕLÿѭӧc vӟi NATS thì mô-ÿXQFyWKӇ kӃt nӕi thông qua mӝt cҩu hình kӃt nӕi tӟi NATS Server, và chӍ nhӳng mô-ÿXQQjRFyFҫu hình này mӟi có thӇ kӃt nӕi tӟLÿѭӧc MһWNKiFÿӇ có thӇ kӃt nӕi trӵc tiӃp các mô-ÿXQWKuP{-ÿXQFҫQÿѭӧc nhұn dҥng và cho phép kӃt nӕi Sӱ dөng JSON Web TRNHQ-:7ÿӇ sinh ra chuӛi Pmÿӏnh danh cho mӛi mô-ÿXQWӯ ÿy[iFWKӵc quyӅn truy xuҩt vào mô-ÿXQ
Hình 30 C̭u trúc cͯa JSON Web Token
VӅ FѫEҧn JWT là mӝt chuӛi mã hoá chӭa thông tin Các thông tin trong chuӛi JWT ÿѭӧFÿӏnh dҥng bҵng JSON Chuӛi JWT gӗm 3 phҫn chính: x Header: chӭa kiӇu dӳ liӋu và thuұt toán sӱ dөQJÿӇ mã hoá chuӛi JWT x Payload: chӭa thông tin mjQJѭӡi dùng muӕn ghi nhұQGQJÿӇ xác thӵc ÿӏnh danh x 6LJQDWXUHÿk\OjSKҫQGQJÿӇ chӭa chӳ kí cӫa chuӛi, bҵng cách mã hoá phҫn header và payload và cùng vӟi mӝt chuӛi secret
Cuӕi cùng kӃt hӧp các thành phҫn trên ta sӁ Fyÿѭӧc chuӛi JWT hoàn chính Bҵng cách cung cҩp cho mӛi mô-ÿXQPӝt chuӛL-:7ÿӇ có thӇ gӱi yêu cҫu tӟi mô-ÿXQ
58 khác Ӣ mӛi mô-ÿXQFNJQJÿѭӧc cung cҩp thuұt toán xác thӵc coi yêu cҫXFyÿѭӧc thông qua không dӵa trên JWT mà yêu cҫXÿDQJQҳm giӳ
API FKRSKpSQJѭӡi dùng kích hoҥWWK{QJWLQÿӏnh danh
ĈӇ kích hoҥWÿӏnh danh cӫDQJѭӡi dùng HӋ thӕng cҫQQJѭӡi dùng cung cҩp email và API key cӫDQJѭӡi dùng trong hӋ thӕng CKAN x Ĉѭӡng dүn : http://url/api/portal/platform/platformId/user x 3KѭѫQJ thӭc: POST x Nӝi dung: o Email: email cӫDQJѭӡi dùng o Authorization : api key cӫDQJѭӡi dùng x KӃt quҧ trҧ vӅ: o ID: id cӫDQJѭӡi dùng hӋ thӕng o Public key: key cӫDQJѭӡi dùng trên blockchain o Private key : mã bҧo vӋ QJѭӡi dùng trên blockchain o Passphase: mã xác nhұn bҧo mұt 2 lӟp
API cho phép nӅn tҧng khác lҩy tұp tin dӳ liӋu
ĈӇ có thӇ lҩy thông tin cӫa tұp tin dӳ liӋu bҩt kǤ, nӅn tҧng khác phҧi cho hӋ thӕng biӃWÿѭӧc muӕn lҩy tұp tin dӳ liӋu nào và phҧi gӱi private key và public key lên cho hӋ thӕQJQKѭPӝWÿӏnh danh x Ĉѭӡng dүn : http://url/api/portal/rdf/rdf_id/resource/path x PhѭѫQJ thӭc: GET x Header: o Public key: key cӫDQJѭӡi dùng trên blockchain o Private key : mã bҧo vӋ QJѭӡi dùng trên blockchain x KӃt quҧ trҧ vӅ: o Nӝi dung tұp tin dӳ liӋu
API cho phép truy vҩn RDF
Sӱ dөQJ63$45/ÿӇ truy vҩn thông tin tӯ OѭӧFÿӗ RDF Cө thӇ:
59 x Ĉѭӡng dүn : http://url/api/portal/rdf/query x 3KѭѫQJ thӭc: POST x Header: o Public key: key cӫDQJѭӡi dùng trên blockchain o Private key : mã bҧo vӋ QJѭӡi dùng trên blockchain x Body: o query: câu truy vҩn SPAQRL ӣ ÿҥng chuӛi kí tӵ x KӃt quҧ trҧ vӅ: o Danh sách kӃt quҧ trҧ vӅ dӵa vào truy vҩn
Xây dӵng mҥng Oѭӟi Blockchain
ĈӇ xây dӵng mҥQJOѭӟi Blockchain, sӱ dөng Geth [15@QKѭPӝt mã nguӗn cӫa mӝt node trong Ethereum Geth là tên viӃt tҳt cӫa Go Ethereum, là mӝt trong ba triӇn NKDLEDQÿҫu (cùng vӟi C ++ và Python) cӫa giao thӭF(WKHUHXP1yÿѭӧc viӃt bҵng
Go, mã nguӗn mӣ KRjQWRjQYjÿѭӧc cҩp phép theo GNU LGPL v3
ViӋc khӣi tҥo mӝt node mӟi vӟL*HWKNKiÿѫQJLҧQÿҫu tiên ta cҫn mӝt tұp tin mô tҧ thông tin cӫa Block khӣi tҥRJHQHVLVEORFNĈӕi vӟi bҩt kì Blockchain nào, cҫn phҧi có mӝt block khӣi tҥo, làm nhiӋm vө khӣi tҥRUDEORFNQJX\rQVѫFӫa blockchain QHWZRUNYjOjPÿLӇm mӕc cho block thӭ 2 trӣ ÿL x Ĉҫu tiên khӣi tҥo mӝt bootnode : bootnode -nodekey bootnode.key -addr :8006 x Khӣi tҥo mӝt miner node bҵng tұp tin khӣi tҥo
Hình 31 Thông tin Block khͧi t̩o trong Ethereum x TiӃp theo, gán thông tin cӫa tұp tin khӣi tҥo vào cho mҥQJOѭӟi bҵng câu lӋnh ÿѫQJLҧn geth mine rpc rpcport "8085" datadir path_to_folder/genesis.json x Tҥo mӝWSHHUQRGHQRGHQj\ÿѭӧc sӱ dөQJÿӇ kӃt nӕi vӟi các ӭng dөng bên ngoài
Giӡ ta có mӝt mҥQJEORFNFKDLQULrQJWѭSKөc vө cho viӋFOѭXWUӳ RDF trên hӋ thӕng.
ChuyӇn ÿәi RDF và truy vҩn
ViӋc chuyӇQÿәi tӯ tұp dӳ liӋu sang RDF dӵa vào thông tin tұp dӳ liӋu Nӝi dung cӫa tұp dӳ liӋu bao gӗm : x Tên tұp tin x Ĉӏnh dҥng tұp tin x Ĉѭӡng dүn tұp tin x Mô tҧ dӳ liӋu tұp tin x tFKWKѭӟc tұp tin x Nguӗn dӳ liӋu x Giá trӏ VDXNKLEăPKDVK
Sau khi chuyӇQÿәi qua RDF sӁ WKXÿѭӧFWK{QJWLQQKѭ
Hình 32 Dͷ li u chuy͋Qÿ͝i RDF ĈӇ truy vҩn dӳ liӋu dӵDYjR5')ÿѭӧc tҥRQrQ&yFiFKPjQJѭӡi dùng có thӇ sӱ dөng: x Sӱ dөng truy vҩn API: GiӕQJQKѭFiFKӋ thӕng khác, giҧi pháp cung cҩp 1 cәng API giúp cho nӅn tҧng dӳ liӋu mӣ hoһFQJѭӡi dùng có thӇ truy vҩn trӵc tiӃSÿӇ lҩy thông tin qua mӝt sӕ khóa tìm kiӃm (keyword): checksum, name, description x Sӱ dөng câu truy vҩn vӟi SPARQL Câu truy vҩQÿѭӧc gӱi bҵng mӝt API vӟi SKѭѫQJWKӭc (method) POST HӋ thӕng sӁ nhұn câu truy vҩn, thӵc hiӋn truy vҩn trên RDFLib và trҧ vӅ kӃt quҧ WѭѫQJӭng lҥi cho nӅn tҧng dӳ liӋu hoһc QJѭӡi dùng trӵc tiӃp
6DXNKLFyÿѭӧc tұp tin RDF MӝWKjPEăPKDVKGӵDYjRVKDÿѭӧc thӵc hiӋn YjVDXÿyNӃt quҧ trҧ vӅ Gѭӟi dҥng hex(16)
HӧSÿӗng thông minh
RDF
HӋ thӕng cho phép không giӟi hҥn bҩt kì nӅn tҧng dӳ liӋu mӣ nào kӃt nӕi vào ChӍ cҫn nӅn tҧQJÿyÿҧm bҧRÿѭӧc viӋc tuân thӫ viӋc cung cҩp các thông tin cho hӋ thӕng khi sӱ dөQJ1JRjLUDÿӇ sӱ dөng thì các nӅn tҧng dӳ liӋu mӣ FNJQJSKҧLÿӏnh danh WK{QJWLQÿӇ ÿѭӧc cҩp quyӅn truy xuҩt HӧSÿӗQJWK{QJPLQKQj\GQJÿӇ OѭXWUӳ các ÿӏnh danh cӫa các nӅn tҧng
Hình 34 C̭u trúc hͫSÿ͛ng thông minh RDF
7URQJÿy x identity: chuӛLÿӏnh danh cӫa hӋ thӕng, có cùng giá trӏ vӟi chuӛLÿӏnh danh hӋ WK{QJOѭXWURQJFѫVӣ dӳ liӋu
63 x publicKey: vӟi mӛi nӅn tҧng bҩt kǤ, sӁ ÿѭӧc cung cҩp mӝt ví (wallet) bao gӗPSXEOLF.H\ÿӏa chӍ cӫa wallet - address) và privateKey(khóa bҧo mұt cӫa wallet) BҵQJFiFKOѭX trӳ lҥi publicKey cӫa nӅn tҧng, khi có mӝt yêu cҫu tӯ bên ngoài vào hӧSÿӗng thông minh Có thӇ dӵDYjRWK{QJWLQÿӏnh danh trên yêu cҫu mà biӃt nӅn tҧQJQjRÿDQJWKӵc hiӋQKjQKÿӝng Ngoài UDSXEOLF.H\FNJQJÿѭӧc sӱ dөQJQKѭPӝWFѫFKӃ xác thӵc ChӍ có nhӳng ÿӏQKGDQKQjRÿѭӧFÿiQKGҩu thuӝc vӅ mӝt nӅn tҧng thì mӟi có thӇ thӵc hiӋQFiFWKDRWiFNKiFQKѭOѭXWUӳ thụng tin tұSWLQ,3)6ô
Các SKѭѫQJWKӭc ÿѭӧc cung cҩp trong hӧSÿӗng này bao gӗm: x insertPlatform(string identity, address publicKey): thao tác này chӍ ÿѭӧc GjQKFKRQJѭӡi quҧn trӏ hӋ thӕQJGQJÿӇ khai báo mӝt nӅn tҧng mӟi vào hӋ thӕng x updatePlatform(string identity, address SXEOLF.H\WKDRWiFQj\GQJÿӇ cұp nhұt lҥi publicKey cӫDSODWIRUPWURQJWUѭӡng hӧSWKD\ÿәLÿӏnh danh
User
Vӟi mӛLQJѭӡi dùng trên các nӅn tҧng dӳ liӋu mӣ1Jѭӡi dùng sӁ ÿѭӧFÿăQJNê ÿӏnh danh trong hӋ thӕQJ Yj ÿѭӧc cung cҩp mӝW Yt ÿLӋn tӱ (wallet) bao gӗm publicKey và privateKey Cө thӇ
Hình 35 C̭u trúc hͫSÿ͛ng thông minh User
7URQJÿy x SODWIRUPÿӏnh dang cӫa platform mà user này thuӝc vӅ
64 x status: trҥng thái cӫD XVHU ÿDQJ KRҥW ÿӝng, tҥP QJѭQJ KRҥW ÿӝng, bӏ cҩPô x publicKey: ÿӏa chӍ cӫa ví (wallet address) mà hӋ thӕng cung cҩp cho user x LGHQWLW\ÿӏnh danh cӫDXVHUÿѭӧFOѭXWUӳ trên hӋ thӕng
Các SKѭѫQJWKӭc hӛ trӧ trên hӧSÿӗng: x addUser(string platform, address publicKey, uint status, string identity): khi mӝt tài khoҧn mӟLÿѭӧFÿăQJNêYjRKӋ thӕng Thông tin cӫa tài khoҧn sӁ ÿѭӧFOѭXWUӳ vào hӧSÿӗng x XSGDWH8VHUVWULQJLGHQWLW\DGGUHVVSXEOLF.H\WURQJWUѭӡng hӧp thông tin vӅ publicKey bӏ lӝ WKuQJѭӡi dùng có thӇ cұp nhұt lҥLWK{QJTXDSKѭѫQJ thӭc này x updateStatus(string identity, uint status): cұp nhұt lҥi trҥng thái cӫa tài khoҧQQJѭӡi dùng.
IPFSFile
Ĉk\OjKӧSÿӗng GQJÿӇ OѭXWUӳ WK{QJWLQVDXÿLFiFWұSWLQ5')ÿѭӧFOѭXWUӳ vào hӋ thӕng IPFS Nhӡ vào các thông tin này mà ta có thӇ xây dӵng lҥLOѭӧFÿӗ RDF nӃu cҫn thiӃt Cө thӇ
Hình 36 C̭u trúc hͫSÿ͛ng thông minh IPFSFile
65 x platform: mӛi tұp tin RDF sӁ thuӝc vӅ mӝt nӅn tҧng dӳ liӋu mӣ ÿăQJNê vào hӋ thӕng x user: tұp tin sӁ là dӳ liӋXÿѭӧc ghi nhұn bӣi mӝWQJѭӡi dùng (user) thuӝc mӝt nӅn tҧng dӳ liӋu mӣ x ipfsHash: chuӛLKDVKÿѭӧc trҧ ra bӣi IPFS x ipfs: mӝt chuӛi kí tӵ ngүXQKLrQGQJÿӇ ÿӏQKGDQKÿӕLWѭӧng x LV3ULYDWHWURQJWUѭӡng hӧp dӳ liӋXÿѭDOrQÿѭӧc yêu cҫu phҧi giӳ tính riêng WѭSULYDWH7KuGӳ liӋu tұp tin RDF sӁ NK{QJÿѭӧc truy xuҩt bӣLFiFÿӕi Wѭӧng không liên quan x index: vӏ trí cӫDÿӕLWѭӧng trong entriesList
7KrPYjRÿy[k\GӵQJWKrPFiFSKѭѫQJWKӭFÿӇ có thӇ quҧn lý và xӱ lý thông tin vӅ tұSWLQ5')ÿѭӧFOѭXWUӳ Cө thӇ: x insertIPFS(string ipfs, string digest, string user, bool isPrivate, string platform): thêm mӟi thông tin mӝt tұp tin RDF mӟLÿѭӧc tҥRUDYjOѭXWUӳ vào IPFS x fetchIPFS(string ipfs): lҩy thông tin cӫa mӝt tұSWLQ5')OѭXWUӳ trên IPFS bҵng chuӛLÿӏnh danh x XSGDWH,3)6VWULQJLSIVVWULQJKDVKWURQJWUѭѫQJKӧp tұSWLQ5')WKD\ÿәi Yjÿѭӧc cұp nhұt lҥLYjR,3)6WKuNKLÿyJLiWUӏ KDVKÿmEӏ WKD\ÿәi Hàm Qj\GQJÿӇ cұp nhұt chuӛi hash cӫa tұp tin RDF sӱ dөng chuӛLÿӏnh danh x removeIPFS(string ipfs): xóa mӝt ÿӏnh danh IPFS x JHW$OO,3)6WURQJWUѭӡng hӧp cҫn xây dӵng lҥLOѭӧFÿӗ RDF thì hӋ thӕng cҫn biӃWÿѭӧc tҩt cҧ các tұSWLQ5')ÿDQJÿѭӧFOѭXWUӳ trong IPFS Hàm trҧ vӅ tҩt cҧ FiFÿӏnh danh ipfs, tӯ ÿyFyWKӇ lҩ\ÿѭӧc thông tin truy xuҩt các tұp tin RDF
Mӛi tұSWLQ5')ÿѭӧFOѭXWUӳ vào Blockchain sӁ dӵDYjRPmEăPKDVKPmEăP Qj\FNJQJOjFKӍ mөFÿӇ có thӇ lҩy thông tin tұp tin tӯ IPFS Mӛi thông tin tұp tin thuӝc vӅ mӝt user nhҩWÿӏnh và chӍ có user này mӟi có thӇ cұp nhұWYjWKD\ÿәi Ngoài ra
66 quyӅn tha\ÿәi cӫa nӅn tҧng dӳ liӋu mӣ QKѭTX\Ӆn admin, có thӇ cұp nhұt tҩt cҧ thông tin tұp tin thuӝc nӅn tҧng
Sau khi hӋ thӕQJÿѭӧc hiӋn thӵc, ta có thӇ thҩy viӋc giҧLSKiSÿѭӧFÿѭDUDFyÿm giҧi quyӃWÿѭӧc vҩQÿӅ ÿһt ra vӅ viêc bҧo vӋ tính minh bҥch cӫa ngӳ QJKƭDGӳ liӋu liên kӃW7KrPYjRÿyJLҧi pháp luұQYăQÿѭDUDFyNKҧ QăQJKRҥWÿӝQJÿӝc lұp vӟi các nӅn tҧng dӳ liӋu mӣ, vì vұy không giӟi hҥn các nӅn tҧng dӳ liӋu mӣ Mӝt sӕ kӃt quҧ cӫa luұQYăQWK{QJTXDNLӇPWUDQKѭVDX
Khҧ QăQJNӃt nӕi tӟi các nӅn tҧng mӣ khác nhau
Bҩt kì nӅn tҧQJQjRFNJQJFyWKӇ hiӋn thӵc viӋc kӃt nӕi vӟi giҧi pháp thông qua các yêu cҫu (request) HTTP Dӵa trên các API mà hӋ thӕng cung cҩp NӅn tҧng dӳ liӋu mӣ sӁ ÿăQJNêÿӏQKGDQKÿăQJNêÿӏQKGDQKQJѭӡi dùng và cuӕi cùng là gӱi yêu cҫu cұp nhұt thông tin vӅ RDF khi có thông tin vӅ datasource hoһFGDWDILOHWKD\ÿәi
7X\QKLrQÿӇ có thӇ tích hӧp giҧi pháp vӟi các giҧi pháp khác ngoài CKAN (CKAN ÿmÿѭӧc chӭng minh là có thӇ kӃt nӕi vào giҧi pháp thông qua hiӋn thӵc) thì cҫn có thӡi gian và sӵ hiӇu biӃt vӟi nӅn tҧng dӳ liӋu mӣ CKAN là mӝW WUѭӡng hӧp sӱ dөQJXVHFDVHNKiOjÿѫQJLDQYuNKҧ QăQJPӣ rӝng cӫD&.$1NKiOjÿѫQJLҧn và dӉ tích hӧp các giҧi pháp công nghӋ vào nӅn tҧng này, tuy nhiên các nӅn tҧng dӳ liӋu mӣ NKiFFKѭDÿѭӧc chӭng mình vӅ sӵ phù hӧp.
Khҧ QăQJWiLKLӋn lҥLOѭӧFÿӗ RDF
ĈӇ kiӇm tra viӋc tái hiӋn lҥLOѭӧFÿӗ RDF khi nghi ngӡ có sӵ WKD\ÿәi Trong luұn YăQÿm[k\GӵQJOѭӧFÿӗ RDF tӯ 100 bӝ dӳ liӋu tӯ CKAN ngүu nhiên Dӳ liӋXÿѭӧc ÿѭDYjREӝ kiӇm thӱ bao gӗm: x 30 bӝ dӳ liӋu vӅ công nghӋ x 50 bӝ dӳ liӋu vӅ giáo dөc x 20 bӝ dӳ liӋu vӅ P{LWUѭӡng
Các bӝ dӳ liӋXÿѭӧc lҩy tӯ ³&әng dӳ liӋu QuӕF*LD´https://open.data.gov.vn/ Các bӝ dӳ liӋXÿѭӧFÿiQKQKmQWDJWKHROƭQKYӵc mà bӝ dӳ liӋXÿDQJÿӅ cұp tӟi
Sau khi nhұp liӋu các bӝ dӳ liӋu này vào CKAN Tӯ CKAN, kӃt nӕi tӟi giҧi pháp và OѭӧFÿӗ RDF sӁ ÿѭӧc tҥo ra, gӑLOjOѭӧFÿӗ 1 Giҧ sӱ OѭӧFÿӗ 1 bӏ tҩn công và thay
68 ÿәi thông tin cӫa mӝt bӝ ba bҩWNuWUrQOѭӧFÿӗ 5')NKLÿyTX\WUuQKWiLKLӋn lҥLOѭӧc RDF sӁ ÿѭӧc kích hoҥt HӋ thӕng sӁ tҥo ra mӝWOѭӧFÿӗ mӟi, gӑLOjOѭӧFÿӗ 2
ViӋc kiӇPWUDWtQKÿ~QJÿҳn cӫDOѭӧFÿӗ 2 so vӟLOѭӧFÿӗ 1 sӁ dӵa vào các truy vҩn SPARQL Dӵa vào các truy vҩn vӅ WLrXÿӅ(title) và các nhãn(tag) vӅ OƭQKYӵc mà các bӝ dӳ liӋXÿDQJÿѭӧFÿiQKGҩu thì kӃt quҧ trҧ vӅ cӫDOѭӧFÿӗ giӕng nhau hoàn toàn
Vì cҧ KDLOѭӧFÿӗ ÿӅXÿѭӧc tҥo ra bӣi các tұp tin RDF khi mà mӛi bӝ dӳ liӋXÿѭӧc thêm mӟi vào hoһc cұp nhұWWUrQ&.$1'RÿyNӃt quҧ cӫDKDLOѭӧFÿӗ này có cùng kӃt quҧ trҧ vӅ ÿmFKӭQJPLQKÿѭӧc viӋc có thӇ giҧi quyӃt tính minh bҥch cӫa ngӳ nJKƭDGӳ liӋu liên kӃWOѭӧFÿӗ RDF) thông qua viӋFOѭXWUӳ các tұp tin RDF riêng biӋt YjOѭXWUӳ trên nӅn tҧng blockchain là khҧ thi
Tәng kӃt nӝi dung
LuұQYăQÿӅ xuҩt giҧi pháp giҧi quyӃt viӋc xây dӵng mӝt nӅn tҧng dӳ liӋu liên kӃt cho các nӅn tҧng dӳ liӋu mӣ ViӋc áp dөng Blockchain vào giҧLSKiSÿҧm bҧRÿѭӧc tính minh bҥFKYjÿ~QJÿҳn cӫa hӋ thӕng Ngoài ra sӱ dөng viӋFOѭXWUӳ các thông tin tұp tin RDF ӣ trên nӅn tҧng chia sҿ tұp tin phân tán giúp cho viӋc chia sҿ FiFOѭӧc ÿӗ RDF cho các nӅn tҧng dӳ liӋu mӣ khác nhau dӉ GjQJKѫQ
Bҵng cách sӱ dөng viӋc kӃt nӕLÿѫQJLҧn thông qua các yêu cҫu HTTP, hӋ thӕng không giӟi hҥn bҩt kǤ nӅn tҧng nào sӱ dөng giҧi pháp Ngoài ra, bҵng cách tҥo ra mӝt OѭӧFÿӗ RDF chung cho tҩt cҧ các nӅn tҧng Giӡ ÿk\FѫVӣ dӳ liӋu mӣ FjQJÿѭӧc làm SKRQJSK~Yjÿҫ\ÿӫ KѫQ7KrPYjRÿyQJѭӡLGQJFNJQJFyWKӇ dӉ dàng tìm kiӃm ÿѭӧc bӝ dӳ liӋXÿDQJFҫn tìm dӵa vào truy vҩn SPARQL
Tәng kӃWNƭWKXұt
HӋ thӕng giҧLSKiSÿѭDUDOjPӝt tұp hӧp các mô-ÿXQFyFKӭFQăQJNKiFQKDX Mӛi mô-ÿXQFKӍ ÿҧm nhұn mӝt vai trò bҩt kì ViӋc sӱ dөng mӛi mô-ÿXQQKѭPӝt chӭFQăQJJL~SFKRWLӃn trình trong hӋ thӕng không bӏ khoá (block) bӣi nhau
7KrPYjRÿyNKL[k\Gӵng kiӃn trúc cӫa hӋ thӕng, giҧi pháp nhҳm tӟi tính mӣ rӝQJWURQJWѭѫQJODL9LӋc cұp nhұt hoһc phát triӇn thêm mô-ÿXQPӟi không gây ҧnh Kѭӣng tӟi các mô-ÿXQÿDQJWӗn tҥi ViӋc mӣ rӝng và nâng cҩSFNJQJGӉ GjQJKѫQWURQJ WUѭӡng hӧp hӋ thӕng có quá nhiӅu truy vҩn và cҫQÿѭӧc nâng cҩSÿӇ mҥQKKѫQYj[ӱ Oêÿѭӧc nhiӅu yêu cҫXKѫQ ĈӇ ÿҧm bҧo cho viӋc bҧo mұt trong hӋ thӕng, các mô-ÿXQFyWKӇ kӃt nӕi vӟi nhau TXDSKѭѫQJWKӭc là: thông qua NATS hoһc kӃt nӕi trӵc tiӃp Muӕn tham gia vào NATS yêu cҫu mô-ÿXQSKҧi có cҩXKuQKÿӇ gia nhұp, và cҩXKuQKQj\ÿѭӧc mã hoá trên máy chӫ Các mô-ÿXQNӃt nӕi trӵc tiӃp vӟi nhau bҵng yêu cҫu HTTP và sӱ dөng -:7OjÿӏQKGDQKÿӇ xác thӵc yêu cҫu
Giҧi pháp nêu trên vүn còn mӝt sӕ vҩQÿӅ cҫn cҧi thiӋn, cұp nhұWÿӇ nâQJFDRÿѭӧc hiӋu xuҩt cӫa giҧi pháp:
70 x &ѫFKӃ phân quyӅQFKRFiFXVHUÿӇ mӛi user thuӝc phân vùng khác nhau chӍ có thӇ hoҥWÿӝng trên các phҫQYQJÿy x Sӱ dөng RDFLib hiӋu xuҩWFKѭDFDR, cҫn cҧi thiӋn bҵng sӱ dөng mӝt giҧi pháp khác tӕWKѫQYӅ hiӋu xuҩt x Tӵ ÿӝng cұp nhұt RDF vào các nӅn tҧng nӃu phù hӧSWLrXFKtÿѭDUD x Cung cҩp chi tiӃWKѫQYӅ tәng quát thông tin cӫa tұp tin dӳ liӋu trên các bӝ dӳ liӋu (dataset)
DANH MӨC TÀI LIӊU THAM KHҦO
[1] ³&.$1GRFXPHQWDWLRQ´>7Uӵc tuyӃn] https://ckan.org/
[2] ³62&5$7$RSHQGDWD´>7Uӵc tuyӃn] https://dev.socrata.com
[3] ³5')RYHUYLHZ´>7Uӵc tuyӃn] https://www.w3.org/RDF/
[4] ³%lockchain RYHUYLHZ´>7Uӵc tuyӃn] https://en.wikipedia.org/wiki/Blockchain
[5] ³(WKHUHXPGRFXPHQWDWLRQ´>7Uӵc tuyӃn] https://ethereum.org/en/
[6] ³5');0/6\QWD[´>7Uӵc tuyӃn] https://www.w3.org/TR/rdf-syntax- grammar/
[7] ³6.266KXWWOH´ [Trӵc tuyӃn] https://skosshuttle.ch/
[8] A Le-Tuan and D Hingu, Incorporating Blockchain into RDF Store at the Lightweight Edge Devices, 2019
[9] Le-Tuan, A., Hayes, C., Wylot, M., Le-Phuoc, D.: Rdf4led: an rdf engine for lightweight edge devices In: IOT 2018 (2018)
[10] SPARQL Query Language for RDF, [Trӵc tuyӃn] https://www.w3.org/TR/rdf-sparql-query/
[11] IPFS Documentation, [Trӵc tuyӃn] https://ipfs.io/
[12] RDFLib Documentation, [Trӵc tuyӃn] https://rdflib.readthedocs.io/en/stable/index.html
[13] Oracle Berkeley DB, [Trӵc tuyӃn] https://www.oracle.com/database/technologies/related/berkeleydb.htmlNaka moto, S.: Bitcoin: A Peer-to-Peer Electronic Cash System (2008)
[14] NATS, [Trӵc tuyӃn] https://nats.io/
[15] Geth Documentation, [Trӵc tuyӃn] https://geth.ethereum.org/
[16] A Next-Generation Smart Contract and Decentralized Application Platform (White paper)
[17] Gorenflo, C., Lee, S., Golab, L., Keshav, S.: Fastfabric: scaling hyperledger fabric to 20,000 transactions per second
[18] Haller, A., et al.: The modular SSN ontology: a joint W3C and OGC standard specifying the semantics of sensors, observations, sampling, and actuation Semant Web 10(1), 9±32 (2019)
[19] Li, M., et al.: CrowdBC: a blockchain-based decentralized framework for crowdsourcing IEEE Trans Parallel Distrib Syst 1±15 (2018)
[20] Buterin, V.: Toward a 12-second Block Time Ethereum Blog (2014)
[21] ³6ROLGLW\GRFXPHQWDWLRQ´ [Trӵc tuyӃn] https://solidity.readthedocs.io/en/v0.6.9/
[22] ³6SHHFKWRWH[WE\JRRJOH$3,´>7Uӵc tuyӃn] https://github.com/googleapis/nodejs-speech
[23] ³,PDJHWRWH[WOLEUDU\´>7Uӵc tuyӃn] https://github.com/asepmaulanaismail/image-to-text-nodejs-microservice [24] 6RPSROLQVN\