Tha eachdraidh iomlan a 'chinne-daonna na phròiseas leantainneach de bhith a' faighinn cuidhteas slabhraidhean agus a 'cruthachadh feadhainn Úra, eadhon nas là idire. (Úghdar gun urra)
A 'dèanamh anailis air grunn phròiseactan blockchain (Bitshares, Hyperledger, Exonum, Ethereum, Bitcoin, msaa), tha mi a' tuigsinn, bho shealladh teignigeach, gu bheil iad uile air an togail air na h-aon phrionnsabalan. Tha blockchains coltach ri taighean, aig a bheil bunait, ballachan, mullach, uinneagan, dorsan a tha ceangailte ri chèile ann an dòighean sònraichte, a dh'aindeoin na diofar dhealbhaidhean, sgeadachadh agus adhbharan. Agus ma thuigeas tu na prionnsapalan bunaiteach ann an dealbhadh togalach agus gu bheil fios agad air feartan nan stuthan a thathar a 'cleachdadh, faodaidh tu adhbhar an taighe sònraichte a dhearbhadh. An-drĂ sta, tha suidheachadh air èirigh le blockchain a tha a h-uile duine air cluinntinn mu dheidhinn, ach chan eil mòran dhaoine a âtuigsinn ailtireachd agus prionnsapalan obrachaidh. Mar sin, tha mĂŹ-thuigse ann carson agus ciamar a tha e ciallach teicneòlasan blockchain a chleachdadh.
San artaigil seo nĂŹ sinn mion-sgrĂšdadh air na feartan agus na prionnsapalan a tha cumanta do gach blockchain. An ath rud, leig dhuinn sĂšil a thoirt air na duilgheadasan a dh âfhaodar fhuasgladh le bhith aâ cleachdadh an blockchain agus gus an stuth a dhaingneachadh, togaidh sinn blockchain beag ach fĂŹor air an lĂ rach brĂŹgheil againn!
Mar sin, cuimhnicheamaid dè na duilgheadasan a dh âfhuasgladh blockchain an toiseach.
Tha mi cinnteach gum bi mòran ag rà dh mu stòr-dà ta sgaoilte, dÏ-mheadhanaichte, poblach agus nach gabh atharrachadh. Ach carson a bha seo uile riatanach?
Is fheĂ rr leam tòiseachadh air teicneòlas sam bith a sgrĂšdadh le bhith aâ leughadh nan inbhean, leis gu bheil a h-uile artaigil agus leabhar air aâ chuspair a tha fo sgrĂšdadh stèidhichte orra. Ach chan eil inbhean blockchain ann an-drĂ sta; cha do chruthaich ISO ach airson an leasachadh. An-drĂ sta, tha a sgrĂŹobhainn pĂ ipear geal fhèin aig gach pròiseact blockchain poblach, a tha gu ĂŹre mhòr na shònrachadh teignigeach. Is e aâ chiad phròiseact blockchain a tha aithnichte gu poblach an lĂŹonra Bitcoin. Rach gu lĂ rach-lĂŹn oifigeil an lĂŹonraidh agus far an do thòisich e uile.
DĂšbhlan Blockchain
Mar sin, is e an obair a dh âfhuasgladh blockchain ann an lĂŹonra tĂšsaire Bitcoin gluasad earbsach de shealbh maoin didseatach (so-mhaoin) a dhèanamh ann an Ă rainneachd neo-earbsach Ă s aonais eadar-mheadhanairean. Mar eisimpleir, anns an lĂŹonra Bitcoin, is e so-mhaoin didseatach buinn didseatach bitcoin. Agus thig a h-uile fuasgladh theicnigeach de Bitcoin agus blockchains eile sĂŹos gu bhith a âfuasgladh na duilgheadas seo.
Duilgheadasan a dhâ fhuasglas blockchain
Osbarr tha buidheann ionmhais sònraichte ag rĂ dh gu bheil iad air lĂŹonra a thogail air feadh an t-saoghail le cuideachadh bhon urrainn dhut airgead a ghluasad gu neach sam bith. An creid thu i? Mas e Visa no MasterCard aâ bhuidheann seo, is coltaiche gun creid thu e, ach ma tha, gu ĂŹre mhath aâ bruidhinn, AnonymousWorldMoney, is dòcha nach dèan thu sin. Carson? Ach leis gu bheil fios againn gu math mar a tha siostaman sgaoilte air an dèanamh le companaidhean prĂŹobhaideach, airson na h-adhbharan, agus dè as urrainn dha seo leantainn. Bheir sinn sĂšil nas mionaidiche air na duilgheadasan a tha aig leithid de shiostaman agus mar as urrainnear am fuasgladh le bhith aâ cleachdadh teicneòlasan blockchain.
Canaidh sinn gu bheil frithealaichean le stòran-dĂ ta anns aâ chumha AnonymousWorldMoney, agus tha e math ma tha grunn dhiubh ann an diofar ionadan dĂ ta. Nuair a ghluaiseas an neach-cuiridh airgead, thèid gnothach a chlĂ radh, a thèid ath-aithris gu gach seirbheisiche, agus ruigidh an t-airgead an neach a gheibh e.

Ann an saoghal air leth math, tha an sgeama seo ag obair gu math, ach nar linne tha na duilgheadasan a leanas ag èirigh:
- An duilgheadas a thaobh a bhith a 'comharrachadh chom-pĂ irtichean air an aon lĂ imh agus an fheum air gnothaichean gun urra air an taobh eile. An fheadhainn sin. feumaidh tu airgead a ghluasad gu neach-faighinn sònraichte agus ann an dòigh nach bi fios aig duine mun ghnothach seo ach a-mhĂ in na com-pĂ irtichean sa ghnothach. Tha Ă ireamhan cunntais agus cairtean banca aig bancaichean ceangailte ri neach fa leth no buidheann laghail, agus tha dĂŹomhaireachd banca aâ dĂŹon fiosrachadh malairt. Agus cò a tha aâ gealltainn nach bi an cĂšmhnant AnonymousWorldMoney aâ cleachdadh dĂ ta pearsanta agus fiosrachadh malairt airson a adhbharan fhèin?
- Ciamar a nĂŹ thu cinnteach gu bheil an neach a fhuair e dĂŹreach an t-suim a chaidh a ghluasad thuige? An ĂŹre mhath aâ bruidhinn, ghluais an neach-cuiridh $100, agus fhuair an neach a fhuair e $10. Bidh an neach-cuiridh aâ tighinn chun oifis AnonymousWorldMoney leis aâ chuidhteas aige, agus tha an clĂ rc aâ sealltainn an dreach aige, far a bheil e sgrĂŹobhte nach do ghluais an neach a chuir a-steach ach $ 10.
- An duilgheadas a thaobh Ă rainneachd neo-earbsach, mar eisimpleir, sgam ris an canar caitheamh dĂšbailte. Faodaidh com-pĂ irtiche neo-fhiosrachail an cothromachadh aige a chaitheamh grunn thursan gus an tèid am pĂ igheadh ââââath-aithris dha na frithealaichean uile. , gu dearbh, cha deach duine a chuir dheth, agus thèid aonta a choileanadh aig aâ cheann thall, ach chan fhaigh cuideigin airgead airson seirbheisean no bathar a chaidh a thoirt seachad. Mar sin, mura h-eil earbsa iomlan anns a 'bhuidheann pĂ ighidh no com-pĂ irtichean ann an gnothaichean, feumar lĂŹonra a thogail stèidhichte chan ann air earbsa, ach air criptography.
- Tha Ă ireamh chrĂŹochnaichte de luchd-frithealaidh aig World AnonymousWorldMoney a dhâ fhaodadh nach bi rim faighinn gun fhiosta no air sgĂ th droch rĂšn.
- Gabhaidh AnonymousWorldMoney a choimisean susbainteach fhèin.
- Comas smachd. Rè obrachadh Bitcoin, thionndaidh e a-mach gu bheil daoine ag iarraidh chan ann a-mhà in a bhith a 'gluasad bhuinn gu chèile, ach cuideachd gus sÚil a thoirt air diofar shuidheachaidhean airson a' ghnothaich, suidheachaidhean obrach a 'phrògraim, gnÏomhan a dhèanamh gu fèin-obrachail a rèir nan cumhachan, msaa.
Mar a bhios blockchain aâ fuasgladh nan duilgheadasan sin
- Bithear aâ comharrachadh chom-pĂ irtichean aâ cleachdadh paidhir iuchraichean: prĂŹobhaideach agus poblach, agus tha an algairim ainm-sgrĂŹobhte didseatach aâ comharrachadh an neach a chuir agus an neach a gheibh e, aâ fĂ gail an dearbh-aithne gun urra.
- Tha gnothaichean air an cruinneachadh ann am blocaichean, tha hash aâ bhloc air a thomhas agus air a sgrĂŹobhadh a-steach don ath bhloc. Tha an t-sreath seo de bhith aâ clĂ radh hashes ann am blocaichean aâ toirt an t-ainm don teicneòlas blockchain, agus tha e cuideachd ga dhèanamh do-dhèanta blocaichean no gnothaichean fa leth atharrachadh / a sguabadh Ă s bho bhlocaichean. Mar sin, ma tha malairt air a ghabhail a-steach don blockchain, faodaidh tu a bhith cinnteach gum fuirich an dĂ ta aige gun atharrachadh.
- Bithear aâ cur casg air foill caitheamh dĂšbailte le bhith aâ ruighinn co-aontachd lĂŹonra air dè an dĂ ta a bu chòir a mheas dligheach agus air am bu chòir a chuir air falbh. Anns an lĂŹonra Bitcoin, tha co-aontachd air a choileanadh le dearbhadh obrach (PoW).
- Tha earbsachd an lĂŹonra air a choileanadh leis gu bheil an blockchain poblach, far am faod gach com-pĂ irtiche an nĂłd aca fhèin a ruith, leth-bhreac iomlan den blockchain fhaighinn agus, a bharrachd air sin, tòiseachadh gu neo-eisimeileach a âsgrĂšdadh ghnothaichean airson ceartachd. Bu chòir a thoirt fa-near gu bheil blockchains an latha an-diugh ga dhèanamh comasach a bhith aâ togail chan e a-mhĂ in blockchain poblach (fosgailte) ach cuideachd prĂŹobhaideach (dĂšinte), a bharrachd air cleachdadh sgeamaichean aonaichte.
- Chan fhaigh an blockchain cuidhteas coimiseanan gu tur, oir ... feumaidh tu na daoine a tha aâ toirt taic don lĂŹonra a phĂ igheadh, ach anns an blockchain tha an fheum air coimisean air a dhearbhadh cho cinnteach is nach eil teagamh sam bith mun fheum a thâ ann.
- Tha comas aig blockchain Ăšr-nodha loidsig gnĂŹomhachais a chuir an gnĂŹomh, ris an canar CĂšmhnantan Smart anns na blockchain. Tha loidsig cĂšmhnantan snasail air a chuir an gnĂŹomh ann an grunn chĂ nanan Ă rd-ĂŹre.
An ath rud, beachdaichidh sinn ann am barrachd mionaideachd air na fuasglaidhean sin.
Blockchain ailtireachd
Co-phĂ irtean Blockchain
Faodaidh gach com-pĂ irtiche an nĂłd aca fhèin a chuir air bhog le leth-bhreac slĂ n den blockchain (nòd slĂ n). Canar nodan slĂ n as urrainn gnothaichean a chlĂ radh air an blockchain nodan co-aonta (fianais) no mèinnearan (miner). Canar nodan slĂ n nach dèan ach sgrĂšdadh air ceartachd ghnothaichean nodan sgrĂšdaidh (sgrĂšdadh). Luchd-dèiligidh aotrom (luchd-dèiligidh aotrom) na bi a âstòradh leth-bhreacan slĂ n den blockchain, ach ag eadar-obrachadh leis an lĂŹonra aâ cleachdadh nodan slĂ n.
Bidh aâ mhòr-chuid de luchd-cleachdaidh aâ cleachdadh teachdaichean aotrom no wallets lĂŹn gus gnothaichean a dhèanamh. Tha na neadan uile ceangailte ri chèile. Leis an t-seata eileamaidean seo, bidh ailtireachd an lĂŹonraidh aâ fĂ s nas seasmhaiche:

Cearcall beatha malairt
Bheir sinn sĂšil air cearcall-beatha aâ ghnothaich agus ga bhriseadh sĂŹos mean air mhean:

Blockchain teicneòlasan
Leig leinn fuireach nas mionaidiche air fuasglaidhean teignigeach agus na ceanglaichean aca ri chèile.
Aithneachadh
Feumaidh gach gnothach blockchain a bhith air a shoidhnigeadh gu didseatach. Mar sin, gus gnothach a chrĂŹochnachadh, feumaidh prĂŹomh phaidhir a bhith aig gach com-pĂ irtiche: prĂŹobhaideach / poblach. Uaireannan canar wallet ri paidhir iuchraichean, oir tha na h-iuchraichean co-cheangailte gu sònraichte ri seòladh didseatach sònraichte agus cothromachadh aâ chom-pĂ irtiche. Ann an da-rĂŹribh, chan eil ann an iuchraichean agus seòlaidhean ach sreath de Ă ireamhan ann an diofar shiostaman Ă ireamh. Eisimpleirean de iuchraichean agus seòlaidhean wallet:
Private key: 0a78194a8a893b8baac7c09b6a4a4b4b161b2f80a126cbb79bde231a4567420f
Public key: 0579b478952214d7cddac32ac9dc522c821a4489bc10aac3a81b9d1cd7a92e57ba
Address: 0x3814JnJpGnt5tB2GD1qfKP709W3KbRdfb27VGus ainm-sgrĂŹobhte didseatach a chruthachadh ann an blockchain, thathas aâ cleachdadh algairim stèidhichte air lĂšban elliptic: Algorithm Signature Digital Curve Elliptic (ECDSA). Gus an obraich e, mar as trice thèid an iuchair phrĂŹobhaideach (Ă ireamh 256-bit) a thoirt air thuaiream. Tha an Ă ireamh de phrĂŹomh roghainnean 2 gu cumhachd 256, agus mar sin faodaidh sinn bruidhinn mu cho neo-chomasach 'sa tha e a bhith a' maidseadh luachan iuchraichean prĂŹobhaideach.
An ath rud, gheibhear an iuchair phoblach bhon fhear phrĂŹobhaideach le bhith ag iomadachadh a luach le co-chomharran puing a tha suidhichte air an lĂšb elliptic, aâ leantainn gu co-chomharran puing Ăšr air an aon lĂšb. Bidh an gnĂŹomh seo aâ dèanamh cinnteach gum faigh thu prĂŹomh phaidhir a tha freagarrach airson gnothaichean a shoidhnigeadh gu didseatach. Mu dheireadh, tha an seòladh wallet a âtighinn gu sònraichte bhon iuchair phoblach.
Tha tòrr artaigilean ann le mion-fhiosrachadh mun chrioptachadh a chleachdar ann an blockchain, mar eisimpleir:
Feumaidh an iuchair phrĂŹobhaideach a bhith gu tur dĂŹomhair agus air a chumail tèarainte. Tha an iuchair phoblach aithnichte don h-uile duine. Ma thèid an iuchair phrĂŹobhaideach a chall, chan urrainnear ruigsinneachd air aâ mhaoin (bonn) a thoirt air ais agus thèid an t-airgead a chall gu brĂ th. Mar sin, tha an obair airson iuchraichean prĂŹobhaideach a stòradh gu tèarainte air leth buntainneach, oir Chan e banca a tha seo far am faod thu an-còmhnaidh a thighinn leis aâ chead-siubhail agad agus do chunntas a thoirt air ais. Tha gnĂŹomhachas slĂ n ann airson a bhith aâ dèanamh wallets crypto fuar ris an canar, coltach ri draibhearan flash:

no faodaidh tu dòighean nas earbsaiche a chleachdadh, mar eisimpleir, aâ stampadh luach na h-iuchrach phrĂŹobhaideach air tokens:

GnĂŹomhan
Gheibhear tuilleadh fiosrachaidh mun structar malairt san artaigil . Tha e cudromach gun tuig sinn gu bheil co-dhiĂš an dĂ ta a leanas aig gach gnothach:
From: 0x48C89c341C5960Ca2Bf3732D6D8a0F4f89Cc4368 - ŃиŃŃОвОК адŃĐľŃ ĐžŃĐżŃавиŃоНŃ
To: 0x367adb7894334678b90аfe7882a5b06f7fbc783a - ŃиŃŃОвОК адŃĐľŃ ĐżĐžĐťŃŃаŃоНŃ
Value: 0.0001 - ŃŃППа ŃŃанСакŃии
Transaction Hash: 0x617ede331e8a99f46a363b32b239542bb4006e4fa9a2727a6636ffe3eb095cef - Ń
ŃŃ ŃŃанСакŃииAn uairsin, tha an gnothach air a shoidhnigeadh le iuchair phrĂŹobhaideach agus air a chuir a-mach (faic mion-fhiosrachadh mu obrachadh a âphròtacail ) gu gach nod anns an blockchain a nĂŹ sgrĂšdadh air gnothaichean airson dligheachd. Tha an algairim dearbhaidh malairt neo-bheag agus aâ toirt a-steach .
Blocaichean malairt
Ăs deidh sgrĂšdadh a dhèanamh air èifeachd ghnothaichean, bidh nodan aâ cruthachadh bhlocaichean bhuapa. A bharrachd air gnothaichean, tha hash aâ bhloca roimhe agus Ă ireamh (Nonce counter) air an sgrĂŹobhadh a-steach don bhloc, agus tha hash aâ bhloca gnĂ thach air a thomhas aâ cleachdadh an algairim SHA-256. Feumaidh suidheachadh iom-fhillteachd a bhith aig an hash. Mar eisimpleir, anns an lĂŹonra Bitcoin, bidh duilgheadas an hash air atharrachadh gu fèin-ghluasadach gach 2 sheachdain a rèir cumhachd an lĂŹonra gus am bi bloc air a chruthachadh timcheall air aon uair gach 10 mionaidean. Tha an iom-fhillteachd air a dhearbhadh leis an t-suidheachadh a leanas: feumaidh an hash a chaidh a lorg a bhith nas lugha na Ă ireamh ro-shuidhichte. Mura tèid an suidheachadh seo a choileanadh, thèid 1 a chur ris an Nonce, agus thèid an obair Ă ireamhachadh hash a-rithist. Gus hash a thaghadh, thèid an raon Nonce a chleachdadh, oir Is e seo an aon dĂ ta sa bhloc a ghabhas atharrachadh; feumaidh an còrr fuireach gun atharrachadh. Feumaidh Ă ireamh sònraichte de phrĂŹomh neamhan a bhith aig hash dligheach, leithid aon de na fĂŹor hashes:
000000000000000000000bf03212e7dd1176f52f816fa395fc9b93c44bc11f91Tha a bhith aâ lorg hash gu soirbheachail na dhearbhadh air an obair a chaidh a dhèanamh (Proof-of-Obair, PoW) airson lĂŹonraidhean Bitcoin no Ethereum. Canar mèinneadh ris aâ phròiseas airson hashes a lorg, coltach ri mèinneadh òir. Tha an t-ainm gu math ceart aâ mĂŹneachadh brĂŹgh aâ phròiseis, oir tha sgrĂšdadh sĂŹmplidh ann air roghainnean, agus ma lorgas cuideigin hash iomchaidh, is e deagh fhortan a tha seo. Tha e coltach ri bhith aâ lorg cnap fĂŹor òir ann an tonna de chreig sgudail. Is e an duais bloc a-nis 12.5 BTC agus ma dh'iomadaicheas tu e leis an ĂŹre Bitcoin gnĂ thach de $ 3900, gheibh thu barrachd air cileagram de òr fĂŹor. Tha rudeigin ann airson sabaid!
Ăs deidh hash a lorg gu soirbheachail, tha am bloca agus an hash a chaidh a lorg fhèin air an sgrĂŹobhadh chun blockchain mar an ath bhloca. Gheibhear tuilleadh fiosrachaidh mu structar nam blocaichean san artaigil , agus gu h-ĂŹosal tha diagram nas sĂŹmplidhe:

Bidh an blockchain aâ tòiseachadh le bloc aig nach eil hash aâ bhloc roimhe fhathast. Chan eil ach aon bhloca mar sin anns an blockchain agus tha ainm aige fhèin bloc Genesis. Tha an aon structar aig na blocaichean a tha air fhĂ gail agus chan eil iad eadar-dhealaichte ach anns an Ă ireamh de ghnothaichean. Faodar fĂŹor ghnothaichean agus blocaichean a tha gan cruthachadh an-drĂ sta ann am Bitcoin no Ethereum fhaicinn ann an .
Tha meud bhlocaichean ann am Bitcoin cuingealaichte gu 1MB agus le glè bheag de dh'fhiosrachadh ann an malairt timcheall air 200 bytes, faodaidh an Ă ireamh as motha de ghnothaichean ann am bloc a bhith timcheall air 6000. Ăs an seo, co-dhiĂš, a âleantainn coileanadh Bitcoin, a bhios a h-uile duine aâ gĂ ireachdainn: tha bloc air a chruthachadh timcheall air aon uair gach 10 mionaid * 60 diogan = 600 diogan, a bheir seachad coileanadh foirmeil timcheall air 10 TPS. Ged a tha e gu dearbh, chan e cinneasachd a tha seo, ach algairim obrach a chaidh a chuir an gnĂŹomh a dhâaona ghnothach. Ann an Ethereum, airson farpais, rinn iad dĂŹreach an Ăšine ginealach bloc 15 diogan. agus chaidh cinneasachd suas gu foirmeil. Mar sin, ann an blockchains a bhios aâ cleachdadh PoW mar cho-aontachd, chan eil e ciallach coimeas a dhèanamh eadar coileanadh idir, oir tha e gu dĂŹreach an urra ri iom-fhillteachd an Ă ireamhachadh tasgadan, a dh'fhaodar a shònrachadh do luach sam bith.
Forcaichean
Dè thachras ma, mar eisimpleir, lorg grunn nodan hashes a choinnicheas ri suidheachaidhean iom-fhillteachd, ach a tha eadar-dhealaichte ann an luach (ann am faclan eile, thĂ inig iad gu co-aonaidhean eadar-dhealaichte) agus sgrĂŹobh iad blocaichean chun blockchain? ChĂŹ sinn mar a bhios blockchain aâ dĂŹon an aghaidh an t-suidheachaidh seo. Anns a 'chĂšis seo, tha forc ris an canar a' tachairt, agus tha dĂ dhreach den t-seine aig an blockchain:

Dè thachras a-nis? An uairsin, bidh pà irt den lÏonra a 'tòiseachadh ag obair air bloc N + 2 bho aon slabhraidh, agus pà irt bho shreath eile:

Thèid aon de na blocaichean sin a lorg nas trà ithe agus thèid a chuir chun blockchain, agus an uairsin, a rèir nan riaghailtean, feumaidh an blockchain gluasad gu slabhraidh nas fhaide agus cuir dheth a h-uile gnothach bhon bhloc eile:

Aig an aon Ă m, faodaidh suidheachadh èirigh nuair nach robh malairt com-pĂ irtiche ach ann an aon de na blocaichean forc, a chaidh a chuir dheth. Mar sin, gus a bhith cinnteach gu bheil an gnothach a tha thu ag iarraidh air a chlĂ radh anns an blockchain, tha moladh coitcheann ann - mus cuir thu earbsa sa ghnothach, bu chòir dhut feitheamh gus an tèid na beagan bhlocaichean a chuir ris an blockchain. Tha molaidhean airson cia mheud bloc a dhâ fheumas feitheamh airson diofar blockchain ag atharrachadh. Mar eisimpleir, airson lĂŹonra Bitcoin tha an ĂŹre as lugha de 2 bhloc, is e 6 an ĂŹre as Ă irde.
Bidh an aon dealbh le forcaichean bloca ri fhaicinn tron ââââionnsaigh ris an canar 51% - seo nuair a bhios buidheann de mhèinnearan aâ feuchainn ri slabhraidh bloc eile fhĂ s, aâ feuchainn ris an t-seine a chuir dheth leis na gnothaichean meallta aca. Ged a tha e an-drĂ sta, an Ă ite foill, tha e nas prothaidiche do chumhachd a chosg air mèinneadh onarach.
Co-aontachd
Gus bloc a chlĂ radh air an blockchain, feumaidh an lĂŹonra co-aontachd a ruighinn. Cuimhnichidh sinn an obair a thaobh a bhith aâ faighinn co-aontachd ann an lĂŹonraidhean conaltraidh coimpiutair. Tha an duilgheadas air a dhealbhadh mar ghnĂŹomh nan seanalairean Byzantine BFT (). Le bhith aâ fĂ gail a-mach an tuairisgeul breagha air duilgheadasan an airm Byzantine, faodar an duilgheadas a dhealbhadh mar a leanas: ciamar as urrainn nodan lĂŹonra a thighinn gu toradh cumanta ma dhâ fhaodadh cuid de nodan lĂŹonra an gluasad a dhâaona ghnothach. Tha algorithms gnĂ thaichte airson fuasgladh fhaighinn air duilgheadas BFT aâ sealltainn gum faod an lĂŹonra obrachadh gu ceart ma tha nas lugha na 1/3 de luchd-foill ann. Carson nach deach co-aontachd BFT a chuir an sĂ s ann an lĂŹonra Bitcoin? Carson a bha e riatanach PoW a chleachdadh? Tha grunn adhbharan ann:
- Bidh BFT ag obair gu math le seata beag de nodan stèidhichte, ach ann an blockchain poblach tha an à ireamh de nodan neo-fhaicsinneach agus, a bharrachd air sin, faodar nodan a thionndadh air agus dheth air thuaiream.
- Feumar daoine a bhrosnachadh gus nodan blockchain a chuir air bhog. Gus seo a dhèanamh, feumaidh daoine a bhith air an duaiseachadh. Ann am BFT gu foirmeil chan eil dad ann airson duais fhaighinn, ach tha an duais airson PoW soilleir don h-uile duine aig ĂŹre ghoireasach: airson an dealan a bhios am pròiseasar ag ithe fhad âs a lorgar am bloc hash.
A bharrachd air PoW, tha grunn cho-aonaidhean eile ann a thathas aâ cleachdadh ann an blockchains an latha an-diugh, mar eisimpleir:
- PoS (Proof-of-Stake) - air an blockchain
- DPoS (Proof-of-Stake Tiomnaichte) - air an blockchain
- Mion-atharrachaidhean air BFT: SBFT (BFT Shimplichte) agus PBFT (BFT practaigeach), mar eisimpleir ann an blockchain
Gabhamaid beagan còmhnaidh air co-aontachd PoS, oir ... Is e PoS agus na seòrsaichean aige a tha nas fharsainge ann an blockchains prĂŹobhaideach. Carson gu prĂŹobhaideach? Air an aon lĂ imh, tha feartan PoS nas fheĂ rr an coimeas ri PoW, oir Gus co-aontachd a choileanadh, tha feum air nas lugha de ghoireasan coimpiutaireachd, a tha aâ ciallachadh gu bheil astar sgrĂŹobhadh dĂ ta gu blockchain ag Ă rdachadh. Ach air an lĂ imh eile, tha barrachd chothroman aig PoS airson foill, agus mar sin gus seo a neodachadh, feumaidh fios a bhith aig a h-uile com-pĂ irtiche anns an blockchain.
Tha co-aontachd PoS stèidhichte air taghadh nĂłd as urrainn bloc a sgrĂŹobhadh le gnothaichean chun blockchain a rèir na tha de mhaoin sa chunntas, no an Ă ite sin, chan ann sa chunntas, ach anns aâ cho-thaobhadh, i.e. Mar as motha de airgead a thâ agad mar cho-thaobhadh, is ann as coltaiche a roghnaicheas an lĂŹonra do nĂłd airson bloc a sgrĂŹobhadh. Cha tèid an tasgadh a thilleadh ma tha am bloca neo-dhligheach. Bheir seo dĂŹon an aghaidh foill. Tha na leanas eadar-dhealachaidhean de PoS:
- Tha an co-aontachd Tiomnaichte PoS (DPoS) aâ roinn chom-pĂ irtichean gu âluchd-bhòtaidhâ agus âluchd-dearbhaidhâ. Bidh luchd-gleidhidh bhuinn (com-pĂ irtichean bhòtaidh) aâ tiomnadh an cumhachd gus gnothaichean air an blockchain a dhearbhadh agus a chlĂ radh do chom-pĂ irtichean eile. Mar sin, bidh luchd-dearbhaidh aâ dèanamh a h-uile obair coimpiutaireachd agus aâ faighinn duais air a shon, agus tha lĂ thaireachd chom-pĂ irtichean bhòtaidh aâ gealltainn onair luchd-dearbhaidh, oir faodaidh iad atharrachadh aig Ă m sam bith.
- Tha co-aontachd LPoS (Leased Proof-of-Stake) aâ leigeil leat do chuid airgid a thoirt air mĂ l gu nodan eile gus am bi cothrom nas fheĂ rr aca blocaichean a dhearbhadh. Sin. Gheibh thu coimisean airson gnothaichean gun a bhith a 'gabhail pĂ irt ann an dearbhadh malairt agus mèinneadh bloc.
Tha grunn cho-aonaidhean eile ann nach eil air an cleachdadh gu farsaing fhathast, nÏ mi liosta dhiubh an seo airson fiosrachadh, agus gheibhear sealladh farsaing air na h-algorithms co-aontachd fhèin, mar eisimpleir, san artaigil: .
- PoET (Ăšine dearbhaidh air a dhol seachad)
- PoC (Dearbhadh-comais)
- PoB (dearbhadh air losgadh)
- PoWeight (dearbhadh air cuideam)
- PoA (Dearbhadh-gnĂŹomha) - PoW + PoS
- PoI (Dearbhadh-air-chudromach)
Earbsachd agus cleachdadh modailean de blockchains
Blockchain poblach
Seasmhachd Phoblach no ainm eile Blockchain gun chead Tha seo air a choileanadh le bhith aâ leigeil le neach sam bith fiosrachadh a cheangal agus fhaicinn no eadhon an nĂłd aca fhèin a cheangal, agus tha earbsa air a thogail air co-aontachd PoW.
Blockchain prĂŹobhaideach
prÏobhaideach no Blockchain ceadaichte prÏobhaideach. Anns na blocaichean sin, chan eil cothrom aig ach buidheann sònraichte de chom-pà irtichean (buidhnean no daoine) air fiosrachadh. Tha na blocaichean sin air an togail le buidhnean leis an amas buannachd no èifeachdas iomlan a mheudachadh. Tha an earbsachd air a dhèanamh cinnteach le amasan coitcheann nan com-pà irtichean agus algorithms co-aontachd PoS agus BFT.
Co-bhanntachd Blockchain
Tha Co-bhanntachd no Blockchain ceadaichte poblach. Is iad sin blockchains as urrainn do dhuine sam bith ceangal a dhèanamh riutha airson fhaicinn, ach faodaidh com-pĂ irtiche fiosrachadh a chuir ris no an nĂłd aige a cheangal dĂŹreach le cead bho chom-pĂ irtichean eile. Tha na blocaichean sin air an togail le buidhnean gus earbsa Ă rdachadh bho luchd-ceannach no luchd-ceannach thoraidhean no aâ chomann-shòisealta gu h-iomlan. An seo, tha earbsachd cuideachd air a choileanadh le lĂ thaireachd earbsa eadar com-pĂ irtichean agus na h-aon algorithms co-aontachd PoS agus BFT.
CĂšmhnantan snasail
Tha Blockchains a chaidh a chuir an gnĂŹomh Ă s deidh Bitcoin, gu ĂŹre no gu ĂŹre, air an comas cĂšmhnantan snasail a chuir an gnĂŹomh. Gu bunaiteach, tha cĂšmhnant snasail na ghnothach anns a bheil còd prògram air a chuir gu bĂ s. Tha cĂšmhnantan snasail air lĂŹonra Ethereum air an cur gu bĂ s anns an EVM (Ethereum Virtual Machine). Gus tòiseachadh air cĂšmhnant snasail a chuir an gnĂŹomh, feumaidh e a bhith air a chuir air bhog gu soilleir le malairt eile, air neo feumar na ro-chĂšmhnantan airson a chuir an gnĂŹomh a choileanadh. Bidh toraidhean coileanadh a âchĂšmhnant smart cuideachd air an clĂ radh anns an blockchain. Tha e comasach dĂ ta fhaighinn bho thaobh a-muigh an blockchain, ach gu math cuibhrichte.
Dè an loidsig gnĂŹomhachais as urrainnear a chuir an gnĂŹomh le bhith a âcleachdadh cĂšmhnant snasail? Gu dearbh, chan eil mòran, mar eisimpleir, a 'sgrĂšdadh nan suidheachaidhean a' cleachdadh dĂ ta bhon blockchain, ag atharrachadh luchd-seilbh maoin didseatach a rèir nan cumhachan sin, a 'clĂ radh dĂ ta ann an stòradh maireannach taobh a-staigh an blockchain. Tha an loidsig a chur an gnĂŹomh ann an sònraichte Ă rd-ĂŹre Solidity cĂ nan.
Is e eisimpleir clasaigeach de ghnĂŹomhachd a tha air a bhuileachadh le bhith aâ cleachdadh chĂšmhnantan snasail a bhith aâ toirt a-mach comharran airson ICOn. Mar eisimpleir, chuir mi an gnĂŹomh cĂšmhnant snasail gus 500 AlexToken beag a chuir a-mach. Le bhith air a shuidheachadh
còd stòr aâ chĂšmhnant smart anns aâ chĂ nan Solidity
pragma solidity ^0.4.23;
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
**/
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
if (a == 0) {
return 0;
}
c = a * b;
assert(c / a == b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
**/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
// uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return a / b;
}
/**
* @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
**/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
**/
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert(c >= a);
return c;
}
}
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
**/
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender account.
**/
constructor() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
**/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
**/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* @title ERC20Basic interface
* @dev Basic ERC20 interface
**/
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
**/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Basic token
* @dev Basic version of StandardToken, with no allowances.
**/
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
uint256 totalSupply_;
/**
* @dev total number of tokens in existence
**/
function totalSupply() public view returns (uint256) {
return totalSupply_;
}
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
**/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
**/
function balanceOf(address _owner) public view returns (uint256) {
return balances[_owner];
}
}
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
**/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
**/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
**/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _addedValue The amount of tokens to increase the allowance by.
**/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _subtractedValue The amount of tokens to decrease the allowance by.
**/
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
/**
* @title Configurable
* @dev Configurable varriables of the contract
**/
contract Configurable {
uint256 public constant cap = 1000000000*10**18;
uint256 public constant basePrice = 100*10**18; // tokens per 1 ether
uint256 public tokensSold = 0;
uint256 public constant tokenReserve = 500000000*10**18;
uint256 public remainingTokens = 0;
}
/**
* @title CrowdsaleToken
* @dev Contract to preform crowd sale with token
**/
contract CrowdsaleToken is StandardToken, Configurable, Ownable {
/**
* @dev enum of current crowd sale state
**/
enum Stages {
none,
icoStart,
icoEnd
}
Stages currentStage;
/**
* @dev constructor of CrowdsaleToken
**/
constructor() public {
currentStage = Stages.none;
balances[owner] = balances[owner].add(tokenReserve);
totalSupply_ = totalSupply_.add(tokenReserve);
remainingTokens = cap;
emit Transfer(address(this), owner, tokenReserve);
}
/**
* @dev fallback function to send ether to for Crowd sale
**/
function () public payable {
require(currentStage == Stages.icoStart);
require(msg.value > 0);
require(remainingTokens > 0);
uint256 weiAmount = msg.value; // Calculate tokens to sell
uint256 tokens = weiAmount.mul(basePrice).div(1 ether);
uint256 returnWei = 0;
if(tokensSold.add(tokens) > cap){
uint256 newTokens = cap.sub(tokensSold);
uint256 newWei = newTokens.div(basePrice).mul(1 ether);
returnWei = weiAmount.sub(newWei);
weiAmount = newWei;
tokens = newTokens;
}
tokensSold = tokensSold.add(tokens); // Increment raised amount
remainingTokens = cap.sub(tokensSold);
if(returnWei > 0){
msg.sender.transfer(returnWei);
emit Transfer(address(this), msg.sender, returnWei);
}
balances[msg.sender] = balances[msg.sender].add(tokens);
emit Transfer(address(this), msg.sender, tokens);
totalSupply_ = totalSupply_.add(tokens);
owner.transfer(weiAmount);// Send money to owner
}
/**
* @dev startIco starts the public ICO
**/
function startIco() public onlyOwner {
require(currentStage != Stages.icoEnd);
currentStage = Stages.icoStart;
}
/**
* @dev endIco closes down the ICO
**/
function endIco() internal {
currentStage = Stages.icoEnd;
// Transfer any remaining tokens
if(remainingTokens > 0)
balances[owner] = balances[owner].add(remainingTokens);
// transfer any remaining ETH balance in the contract to the owner
owner.transfer(address(this).balance);
}
/**
* @dev finalizeIco closes down the ICO and sets needed varriables
**/
function finalizeIco() public onlyOwner {
require(currentStage != Stages.icoEnd);
endIco();
}
}
/**
* @title LavevelToken
* @dev Contract to create the Lavevel Token
**/
contract AlexToken is CrowdsaleToken {
string public constant name = "AlexToken";
string public constant symbol = "ALT";
uint32 public constant decimals = 18;
}agus an riochdachadh binary mar a tha an lĂŹonra ga fhaicinn
60806040526000600355600060045533600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600560146101000a81548160ff021916908360028111156200006f57fe5b0217905550620001036b019d971e4fe8401e74000000600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200024a6401000000000262000b1d179091906401000000009004565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001986b019d971e4fe8401e740000006001546200024a6401000000000262000b1d179091906401000000009004565b6001819055506b033b2e3c9fd0803ce8000000600481905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b019d971e4fe8401e740000006040518082815260200191505060405180910390a362000267565b600081830190508281101515156200025e57fe5b80905092915050565b611cb880620002776000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146104c7578063095ea7b31461055757806318160ddd146105bc57806323b872dd146105e7578063313ce5671461066c578063355274ea146106a3578063518ab2a8146106ce57806366188463146106f957806370a082311461075e57806389311e6f146107b55780638da5cb5b146107cc578063903a3ef61461082357806395d89b411461083a578063a9059cbb146108ca578063bf5839031461092f578063c7876ea41461095a578063cbcb317114610985578063d73dd623146109b0578063dd62ed3e14610a15578063f2fde38b14610a8c575b60008060008060006001600281111561012757fe5b600560149054906101000a900460ff16600281111561014257fe5b14151561014e57600080fd5b60003411151561015d57600080fd5b600060045411151561016e57600080fd5b3494506101a7670de0b6b3a764000061019968056bc75e2d6310000088610acf90919063ffffffff16565b610b0790919063ffffffff16565b9350600092506b033b2e3c9fd0803ce80000006101cf85600354610b1d90919063ffffffff16565b111561024c576101f66003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b915061022e670de0b6b3a764000061022068056bc75e2d6310000085610b0790919063ffffffff16565b610acf90919063ffffffff16565b90506102438186610b3990919063ffffffff16565b92508094508193505b61026184600354610b1d90919063ffffffff16565b6003819055506102886003546b033b2e3c9fd0803ce8000000610b3990919063ffffffff16565b6004819055506000831115610344573373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156102dd573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a35b610395846000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a361045184600154610b1d90919063ffffffff16565b600181905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f193505050501580156104bf573d6000803e3d6000fd5b505050505050005b3480156104d357600080fd5b506104dc610b52565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051c578082015181840152602081019050610501565b50505050905090810190601f1680156105495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056357600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b8b565b604051808215151515815260200191505060405180910390f35b3480156105c857600080fd5b506105d1610c7d565b6040518082815260200191505060405180910390f35b3480156105f357600080fd5b50610652600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c87565b604051808215151515815260200191505060405180910390f35b34801561067857600080fd5b50610681611041565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b3480156106af57600080fd5b506106b8611046565b6040518082815260200191505060405180910390f35b3480156106da57600080fd5b506106e3611056565b6040518082815260200191505060405180910390f35b34801561070557600080fd5b50610744600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061105c565b604051808215151515815260200191505060405180910390f35b34801561076a57600080fd5b5061079f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ed565b6040518082815260200191505060405180910390f35b3480156107c157600080fd5b506107ca611335565b005b3480156107d857600080fd5b506107e16113eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561082f57600080fd5b50610838611411565b005b34801561084657600080fd5b5061084f6114ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561088f578082015181840152602081019050610874565b50505050905090810190601f1680156108bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d657600080fd5b50610915600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114e4565b604051808215151515815260200191505060405180910390f35b34801561093b57600080fd5b50610944611703565b6040518082815260200191505060405180910390f35b34801561096657600080fd5b5061096f611709565b6040518082815260200191505060405180910390f35b34801561099157600080fd5b5061099a611716565b6040518082815260200191505060405180910390f35b3480156109bc57600080fd5b506109fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611726565b604051808215151515815260200191505060405180910390f35b348015610a2157600080fd5b50610a76600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611922565b6040518082815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119a9565b005b600080831415610ae25760009050610b01565b8183029050818382811515610af357fe5b04141515610afd57fe5b8090505b92915050565b60008183811515610b1457fe5b04905092915050565b60008183019050828110151515610b3057fe5b80905092915050565b6000828211151515610b4757fe5b818303905092915050565b6040805190810160405280600981526020017f416c6578546f6b656e000000000000000000000000000000000000000000000081525081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610cc457600080fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d1157600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610d9c57600080fd5b610ded826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e80826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5182600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b601281565b6b033b2e3c9fd0803ce800000081565b60035481565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508083111561116d576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611201565b6111808382610b3990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561139157600080fd5b60028081111561139d57fe5b600560149054906101000a900460ff1660028111156113b857fe5b141515156113c557600080fd5b6001600560146101000a81548160ff021916908360028111156113e457fe5b0217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561146d57600080fd5b60028081111561147957fe5b600560149054906101000a900460ff16600281111561149457fe5b141515156114a157600080fd5b6114a9611b01565b565b6040805190810160405280600381526020017f414c54000000000000000000000000000000000000000000000000000000000081525081565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561152157600080fd5b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561156e57600080fd5b6115bf826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b3990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611652826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60045481565b68056bc75e2d6310000081565b6b019d971e4fe8401e7400000081565b60006117b782600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a0557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611a4157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6002600560146101000a81548160ff02191690836002811115611b2057fe5b021790555060006004541115611c0a57611ba5600454600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b1d90919063ffffffff16565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611c89573d6000803e3d6000fd5b505600a165627a7a723058205bbef016cc7699572f944871cb6f05e69915ada3a92a1d9f03a3fb434aac0c2b0029Gheibhear tuilleadh fiosrachaidh mu chĂšmhnantan snasail san artaigil: .
co-dhĂšnadh
Tha sinn air liosta de na teicneòlasan air a bheil blockchain Úr-nodha air an togail agus mar a tha iad ceangailte ri chèile. A-nis cruthaichidh sinn dè na duilgheadasan a dh'fhaodar fhuasgladh le bhith a 'cleachdadh blockchain, agus dè na fuasglaidhean a bhios, aig a' char as fheà rr, neo-èifeachdach. Mar sin, chan eil feum air blockchain a chleachdadh ma tha:
- Bithear aâ dèanamh gnothaichean ann an Ă rainneachd earbsach;
- Chan eil là thaireachd coimisean eadar-mheadhanairean a 'dèanamh beatha nan com-pà irtichean nas miosa;
- Chan eil seilbh aig com-pĂ irtichean a dh'fhaodar a riochdachadh mar mhaoin dhidseatach;
- Chan eil cuairteachadh ann an so-mhaoin didseatach, i.e. tha an luach fo shealbh no air a thoirt seachad le dĂŹreach aon chom-pĂ irtiche.
Dè a tha san Ă m ri teachd airson blockchain? A-nis chan urrainn dhuinn ach beachdachadh air dòighean a dhâ fhaodadh a bhith ann airson teicneòlas blockchain a leasachadh:
- Bidh Blockchain gu bhith mar an aon theicneòlas stòr-dà ta cumanta ri, mar eisimpleir, SQL no NoSQL airson a raon sònraichte de dhuilgheadasan fhuasgladh;
- Bidh Blockchain gu bhith na phròtacal farsaing, mar a tha HTTP airson an eadar-lÏn;
- Bidh Blockchain gu bhith na bhunait airson siostam ionmhais is poilitigeach Ăšr air aâ phlanaid!
Anns an ath phĂ irt bheir sinn sĂšil air dè na blockchains a thâ ann an-drĂ sta agus carson a thathas gan cleachdadh ann an diofar ghnĂŹomhachasan.
Chan eil an seo ach toiseach!
Source: www.habr.com
