Ka hoomaopopo ana i ka Stellar Consensus Protocol

Ka hoomaopopo ana i ka Stellar Consensus Protocol

Ua wehewehe mua ʻia ka protocol consensus Stellar ma ʻatikala ʻepekema ʻO David Mazier i ka makahiki 2015. He "pūnaewele aelike Byzantine federal" kēia e hiki ai i nā pūnaewele hoʻonohonoho hoʻokaʻawale ʻole alakaʻi ʻole i ka ʻae ʻana i ka manaʻo hoʻoholo. Ke hoʻohana nei ka pūnaewele uku Stellar i ka Stellar Consensus Protocol (SCP) no ka mālama ʻana i kahi mōʻaukala kūʻai like ʻole i ʻike ʻia e nā poʻe a pau.

Manaʻo ʻia nā protocol consensus he paʻakikī ke hoʻomaopopo. ʻOi aku ka maʻalahi o ka SCP ma mua o ka hapa nui o lākou, akā ke kaʻana like nei i kēia kūlana - ma muli o ka manaʻo kuhihewa ʻo "federated vote", ʻo ia ke kumuhana o ka hapa mua o ka ʻatikala ʻepekema, ʻo ia ʻo SCP. Akā ʻaʻole ʻoiaʻiʻo kēlā! He poloka hale koʻikoʻi kēia a ka hapa ʻelua o ka ʻatikala e hana ai maoli Kūkākūkā kuʻikahi Stellar.

Ma kēiaʻatikala e wehewehe pōkole mākou i keʻano o ka "system of agreements", he aha ka mea e hiki ai ke hoʻolilo iā ia i "Byzantine" a no ke aha e hana ai i ka pūnaewele Byzantine "federal". E wehewehe mākou i ke kaʻina hana koho pāloka i wehewehe ʻia ma ka ʻatikala SCP, a ma hope e wehewehe mākou i ka protocol SCP ponoʻī.

Pūnaehana ʻaelike

ʻO kahi ʻōnaehana ʻaelike e hiki ai i kahi hui o nā mea komo ke loaʻa i ka manaʻo ma kahi kumuhana, e like me ka mea e kauoha ai no ka ʻaina awakea.

Ma Interstellar, ua hoʻokō mākou i kā mākou ʻōnaehana ʻai ponoʻī: kauoha mākou i ka ʻōlelo a kā mākou luna hana, ʻo John. He polokalamu aelike maʻalahi kēia. Ke hilinaʻi nei mākou a pau iā John a manaʻoʻiʻo e loaʻa iā ia kahi mea hoihoi a meaʻai i kēlā me kēia lā.

Akā, pehea inā hana ʻino ʻo Ioane i kā mākou hilinaʻi? Hiki iā ia ke hoʻoholo hoʻokahi e lilo mākou i vegans. I hoʻokahi pule a ʻelua paha, e hoʻokahuli paha mākou iā ia a hāʻawi i ka mana iā Elizabeth. Akā, makemake koke ʻo ia i nā avocados me nā anchovies a manaʻo e like nā mea a pau. Pilikino ka mana. No laila, ʻoi aku ka maikaʻi o ka loaʻa ʻana o kahi ʻano democratic hou aʻe: kekahi ala e hōʻoia i ka mālama ʻia ʻana o nā makemake like ʻole, ʻoiai e hōʻoiaʻiʻo ana i ka hopena kūpono a me ka maopopo ʻole, i ʻole e pau ke kauoha ʻana i ka ʻaina awakea, a i ʻole nā ​​kānaka ʻelima e kau i nā kauoha like ʻole, a i ʻole ke kūkākūkā. e kauo ana i ke ahiahi.

Me he mea lā ua maʻalahi ka hoʻonā: paʻa i kahi koho! Akā, he manaʻo hoʻopunipuni kēia. Na wai e hōʻiliʻili i nā balota a hōʻike i nā hopena? A no ke aha e manaʻoʻiʻo ai kekahi i kāna ʻōlelo? Hiki paha iā mākou ma ka mua koho i alakaʻi a mākou e hilinaʻi nei e alakaʻi i ke koho balota - akā na wai e alakaʻi ʻo ka mua ma ke koho balota ana? Pehea inā ʻaʻole hiki iā mākou ke ʻae i kahi alakaʻi? A i ʻole he aha inā loaʻa mākou i kahi ʻaelike, akā paʻa kēia alakaʻi i kahi hālāwai a hele paha i ka hoʻomaha maʻi?

Loaʻa nā pilikia like ma nā pūnaewele lolouila puʻupuʻu. Pono nā poʻe a pau a i ʻole nā ​​​​node e ʻae i kekahi hoʻoholo, e like me ka mea nāna e hoʻololi i kahi faila kaʻana a i ʻole e wehe i kahi hana mai ka pila hana. I loko o kahi pūnaewele cryptocurrency, pono e koho pinepine nā nodes i ke ʻano o ka moʻolelo piha mai nā ʻano like ʻole, a i kekahi manawa hakakā. Hāʻawi kēia ʻaelike pūnaewele i ka hōʻoiaʻiʻo i ka mea loaʻa ke kālā (a) kūpono (ʻaʻole hoʻopunipuni) a (b) ʻaʻole i hoʻohana ʻia ma kahi ʻē aʻe. Hoʻomaopopo pū kēia e hiki iā ia ke hoʻolilo i nā kālā i ka wā e hiki mai ana no ka mea e loaʻa i ka mea loaʻa hou nā hōʻoia like no nā kumu like.

Pono e hoʻomanawanui hewa kekahi ʻōnaehana manaʻo i loko o kahi pūnaewele hoʻopili helu ʻia: pono e hoʻopuka i nā hopena like ʻole me nā hewa e like me nā loulou lohi, nā node pane ʻole, a me ke kauoha ʻana i nā memo hewa. Byzantine Kūʻē ka ʻōnaehana ʻaelike i nā hewa "Byzantine": nā nodes e hāʻawi i ka ʻike wahaheʻe, inā ma muli o kahi hewa a i ʻole ma ka hoʻāʻo ʻana e hoʻohaʻahaʻa i ka ʻōnaehana a i ʻole e loaʻa i kekahi pono. ʻO ka hoʻomanawanui hewa "Byzantine" - ka hiki ke hilinaʻi i kahi hoʻoholo pūʻulu inā paha e wahaheʻe kekahi mau lālā o ka hui a i ʻole e hahai i nā lula o ka hoʻoholo ʻana - ua kapa ʻia. nane e pili ana i na Generala o ke aupuni Byzantineka mea i hoao e hooponopono i ka hoouka. ʻO ka wehewehe maikaʻi ma Anthony Stevens.

E noʻonoʻo i ka mea nona ke kālā crypto ʻo Alice, ʻo ia ka mea pono e koho ma waena o ke kūʻai ʻana i ka hau hau ʻono mai Bob a me ka uku ʻana i kā Carol aie. Makemake paha ʻo Alice e uku iā lāua ʻelua i ka manawa hoʻokahi ma ka hoʻohana hoʻopunipuni ʻana i ke kālā hoʻokahi. No ka hana ʻana i kēia, pono ʻo ia e hōʻoiaʻiʻo i ka lolouila a Bob ʻaʻole i uku ʻia ke kālā iā Carol, a e hōʻoia i ka kamepiula a Carol ʻaʻole i uku ʻia ke kālā iā Bob. ʻO ka ʻōnaehana Byzantine o nā ʻaelike i hiki ʻole i kēia, me ka hoʻohana ʻana i kahi ʻano o ka lula nui i kapa ʻia kōrum. ʻAʻole hōʻole ka node i loko o ia pūnaewele e neʻe i kahi ʻano o ka mōʻaukala a ʻike ʻo ia ua lawa ka helu o nā hoa - he kōrum - ʻae i kēlā hoʻololi. Ke hana ʻia kēia, e hana lākou i kahi koho balota nui e koi ai i nā node pūnaewele i koe e ʻae i kā lākou hoʻoholo. Hiki iā Alice ke hoʻoikaika i kekahi mau node e moe nona, akā inā nui ka pūnaewele, e hoʻopau ʻia kāna hoʻāʻo ʻana e nā koho o nā nodes pono.

Ehia mau node e pono ai no ka quorum? Ma ka liʻiliʻi, ka hapa nui, a i ʻole, ka hapa nui kūpono e hakakā i nā hewa a me ka hoʻopunipuni. Akā no ka helu ʻana i ka hapa nui, pono ʻoe e ʻike i ka nui o nā mea komo. Ma ke keʻena Interstellar a i ʻole ma ke koho balota ʻāpana, maʻalahi kēia mau helu e ʻike. Akā inā ʻo kāu hui kahi pūnaewele i wehewehe ʻole ʻia e hiki ai i nā nodes ke komo a haʻalele i ka makemake me ka ʻae ʻole mai ke kikowaena, a laila pono ʻoe federala he ʻōnaehana ʻaelike Byzantine hiki ke hoʻoholo i nā kōruma ʻaʻole mai kahi papa inoa o nā nodes i koho mua ʻia, akā me ka dynamically, mai kahi kiʻi paʻi mau a inevitably incomplete o nā nodes i kahi manawa i hāʻawi ʻia.

He mea hiki ʻole paha ke hana i kahi kōrum mai ka manaʻo o ka node hoʻokahi i kahi pūnaewele nui, akā hiki nō. Hiki i ia kōrum ke hōʻoiaʻiʻo i nā hopena o ke koho balota decentralized. Hōʻike ka pepa keʻokeʻo SCP pehea e hana ai i kēia me ke kaʻina hana i kapa ʻia ma ke koho federala.

No ka poe hoomanawanui

ʻO ke koena o ka ʻatikala e wehewehe i ke koho balota a me ka protocol consensus Stellar i nā kikoʻī hou aku. Inā ʻaʻole ʻoe hoihoi i nā kikoʻī, eia ka ʻike nui o ke kaʻina hana.

  1. E alakaʻi ana nā nodes i nā pōʻai koho federal ma luna o nā "koho." ʻO ke ʻano o ke koho balota federal:
    • Koho ka node i kekahi ʻōlelo, no ka laʻana, "Ke hāpai nei au i ka waiwai o V";
    • Hoʻolohe ka node i ka leo o nā hoa a hiki i ka loaʻa ʻana o ka mea hiki ke "loaʻa";
    • Ke nānā nei ka node i "quorum" no kēia ʻōlelo. "Hōʻoia" kahi kōrum i ka mea koho.
  2. I ka manawa e hiki ai i ka node ke hōʻoia i hoʻokahi a ʻoi aʻe paha nā mea i koho ʻia, e hoʻāʻo ʻo ia e "hoʻomākaukau" i ka "paloka" ma o kekahi mau pōʻai o ke koho balota hui.
  3. Ke hiki i ka node ke hōʻoia ua mākaukau ka balota, hoʻāʻo ʻo ia e hana ma o nā pōʻai ʻē aʻe o ke koho balota hui.
  4. Ke hiki i ka node ke hōʻoia i ka hoʻokō ʻana i kahi koho balota, hiki iā ia ke "hoʻololi" i ka waiwai o kēlā balota ma o ka hoʻohana ʻana iā ia ma ke ʻano he hopena ʻae.

Loaʻa kēia mau ʻanuʻu i nā pōʻai he nui o ke koho balota hui ʻana, e hui pū ana i hoʻokahi puni SCP. E nānā pono kākou i ka hana ʻana i kēlā me kēia ʻanuʻu.

koho balota hui

He kaʻina hana no ka hoʻoholo ʻana inā hiki i ka pūnaewele ke ʻae i kahi noi. Ma ka pōʻai koho, pono kēlā me kēia node e koho i kekahi o nā waiwai he nui. ʻAʻole hiki ke hana i kēia ke ʻole ka hilinaʻi ʻaʻole e koho nā nodes ʻē aʻe i kahi hopena ʻē aʻe. No ka hōʻoia ʻana i kēia, hoʻololi nā nodes i kahi pahu o nā memo i hope a i waho i hiki i kēlā me kēia hookupaa iho la ia,ʻo ia kōrama nā pahi taliaina like ka hoʻoholo. ʻO ke koena o kēia ʻāpana e wehewehe i nā huaʻōlelo i loko o kēia ʻōlelo a me ke ʻano o ke kaʻina hana holoʻokoʻa.

Nā ʻāpana ʻāpana a me nā ʻāpana ʻāpana

E hoʻomaka kākou ma ka wehewehe ʻana i kahi kōrum. E like me kā mākou i kūkākūkā ai ma luna nei, i loko o kahi pūnaewele decentralized me ka lālā ikaika, ʻaʻole hiki ke ʻike mua i ka helu o nā nodes a no laila ehia nā mea e pono ai no ka hapa nui. Hoʻoponopono nā koho pāloka i kēia pilikia ma ka hoʻokomo ʻana i kahi manaʻo hou ʻoki kōrum (ʻāpana quorum): He pūʻulu liʻiliʻi o nā hoa i hilinaʻi ʻia e kahi node e haʻi i ka ʻike kūlana koho balota i ke koena o ka pūnaewele. Hoʻomaopopo kēlā me kēia node i kāna ʻāpana kōrum ponoʻī (e lilo ia i lālā de facto).

Hoʻomaka ka hoʻokumu ʻana i nā kōrum me ka ʻoki ʻana i ke kōrum. No kēlā me kēia node, hoʻohui ʻia kona mau ʻoki ʻoki. A laila hoʻohui ʻia nā huaʻōlelo ʻāpana keia mau node a laila. Ke hoʻomau nei ʻoe, ʻoi aku ka nui o nā nodes ʻaʻole hiki iā ʻoe ke hoʻohui no ka mea ua hoʻokomo ʻia i loko o ka ʻāpana. Inā ʻaʻohe mau node hou e hoʻohui ʻia, pau ke kaʻina hana: ua hoʻokumu mākou i kōrum ma ka "pani hoʻololi" o ka ʻāpana kōrum o ka node mua.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
No ka huli ʻana i ke kōrum mai kahi node i hāʻawi ʻia...

Ka hoomaopopo ana i ka Stellar Consensus Protocol
... hoʻohui i nā lālā o kāna ʻāpana...

Ka hoomaopopo ana i ka Stellar Consensus Protocol
...a laila hoʻohui mākou i nā lālā ʻāpana o kēia mau node.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
Hoʻomau mākou a hiki i ka loaʻa ʻole o nā nodes e hoʻohui.

Ka hoomaopopo ana i ka Stellar Consensus Protocol

Ka hoomaopopo ana i ka Stellar Consensus Protocol
ʻAʻohe nodes i koe e hoʻohui. He kōrum kēia.

ʻO ka ʻoiaʻiʻo, hiki ke ʻike ʻia kēlā me kēia node i ʻoi aku ma mua o hoʻokahi ʻāpana. No ka hana ʻana i kōrum, koho i hoʻokahi wale nō o nā ʻāpana a hoʻohui i nā lālā; a laila koho i kekahi ʻāpana no kēlā me kēia lālā a hoʻohui i nā lālā ia ʻoki a pēlā aku. ʻO ia hoʻi, he lālā kēlā me kēia node o nā kōrum he nui.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
E koho i hoʻokahi ʻāpana kōrum i kēlā me kēia ʻanuʻu.

Ka hoomaopopo ana i ka Stellar Consensus Protocol

Ka hoomaopopo ana i ka Stellar Consensus Protocol

Ka hoomaopopo ana i ka Stellar Consensus Protocol
Hoʻokahi kōrum hiki. A i ʻole he mea ʻē aʻe...

Ka hoomaopopo ana i ka Stellar Consensus Protocol
...koho i nā ʻāpana ʻē aʻe...

Ka hoomaopopo ana i ka Stellar Consensus Protocol

Ka hoomaopopo ana i ka Stellar Consensus Protocol
…(inā hiki)…

Ka hoomaopopo ana i ka Stellar Consensus Protocol
... hoʻokumu i kahi kōrama hou.

Pehea e ʻike ai ka node i nā ʻāpana ʻē aʻe i loko? E like me nā ʻike ʻē aʻe e pili ana i nā node ʻē aʻe: mai nā hoʻouna ʻana i hoʻolaha ʻia kēlā me kēia node i ka pūnaewele i ka wā e loli ai kona kūlana koho. Loaʻa i kēlā me kēia hoʻolaha ka ʻike e pili ana i nā ʻāpana o ka node hoʻouna. ʻAʻole ʻōlelo ka pepa keʻokeʻo SCP i kahi ʻano hana kamaʻilio. Hoʻohana maʻamau nā hoʻokō protocol haʻihaʻi no ka hoʻolaha ʻia ʻana o nā memo ma ka pūnaewele.

E hoʻomanaʻo i loko o ka ʻōnaehana Byzantine non-federal o nā ʻaelike, ua wehewehe ʻia kahi kōrum ma ke ʻano he hapa nui o nā nodes a pau. Hoʻolālā ʻia ka ʻōnaehana ʻaelike Byzantine mai ka manaʻo o ka nīnau: ʻehia mau node hewa ʻole e hiki ai i ka ʻōnaehana ke ʻae? I loko o kahi ʻōnaehana N−f i hoʻolālā ʻia no ke ola ʻana i nā hemahema, pono e holomua ka node ma ka loaʻa ʻana o nā manaʻo mai nā hoa N−f no ka mea ua emi paha ka f o lākou. Akā, i ka loaʻa ʻana o ka pane mai nā hoa N−f, hiki iā mākou ke manaʻo he ʻoiaʻiʻo maoli nā hoa f (mai kahi i loaʻa ʻole ai ka pane mai ka node). No laila, f mai loko mai o nā hoa N−f (mai kahi i loaʻa ai ka pane) he ʻino. No ka hui like ʻana o nā node, pono e ʻoiaʻiʻo ka hapa nui o nā node i koe, ʻo ia hoʻi, pono iā N−f ʻoi aku ka nui ma mua o 2f a i ʻole N > 3f. No laila, ʻo ka ʻōnaehana maʻamau i hoʻolālā ʻia e ola i nā hemahema e loaʻa ka huina o N=3f+1 nodes a me ka nui quorum o 2f+1. Ke hala ka manaʻo i ka paepae kōrum, ʻike ʻia ke koena o ka pūnaewele ʻaʻole e hāʻule nā ​​manaʻo hoʻokūkū. ʻO kēia ke ʻano o ka hui ʻana o ka pūnaewele i ka hopena.

Akā i loko o kahi ʻōnaehana ʻaelike Byzantine federal, ʻaʻole hiki i ka hapa nui (no ka mea ʻaʻohe mea i ʻike i ka nui o ka pūnaewele), akā ʻaʻole pono ka manaʻo o ka hapa nui! Inā wehe ʻia ka lālā o ka ʻōnaehana, a laila hiki i kekahi ke loaʻa ka hapa nui ma o ka hana ʻana i kahi mea i kapa ʻia ʻo Sybil attack: hui pinepine ʻana i ka pūnaewele ma nā nodes he nui. No laila no ke aha e hiki ai ke kapa ʻia ʻo transitive slice closure kōrum, a pehea e hiki ai iā ia ke hoʻopau i nā noi hoʻokūkū?

ʻO ka ʻenehana, ʻaʻohe ala! E noʻonoʻo ʻoe i kahi pūnaewele o ʻeono mau node, kahi i hoʻokaʻawale ʻia ai ʻelua triplets i loko o nā ʻāpana kōrum o kēlā me kēia. Hiki i ka pūʻulu mua ke hoʻoholo i ka lohe ʻole ʻana o ka lua, a ʻo ia hoʻi. ʻAʻohe ala e hiki ai i kēia pūnaewele ke ʻae i ka manaʻo (koe wale nō ma ka manawa wale nō).

No laila, koi ʻo SCP no ke koho balota hui ʻia (a no ka hoʻohana ʻana i nā manaʻo koʻikoʻi o ka pepa), pono e loaʻa i ka pūnaewele kahi waiwai i kapa ʻia. huikau o na quorums. I loko o kahi pūnaewele me kēia waiwai, ʻo nā ʻāpana ʻelua i hiki ke kūkulu ʻia e uhi mau i loko o hoʻokahi node. No ka hoʻoholo ʻana i ka manaʻo nui o ka pūnaewele, ʻoi aku ka maikaʻi o ka loaʻa ʻana o ka hapa nui. ʻO ia hoʻi, inā e ʻae kekahi kōrama i ka ʻōlelo X, ʻaʻole hiki i kekahi hui ʻē aʻe ke ʻae i kekahi mea ʻē aʻe, no ka mea, e hoʻokomo ʻia kekahi node mai ka ʻōlelo mua i koho mua ʻia no X.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
Inā loaʻa kahi hui o nā kōrum i ka pūnaewele...

Ka hoomaopopo ana i ka Stellar Consensus Protocol
...a laila hiki iā ʻoe ke kūkulu i ʻelua mau kōrama...

Ka hoomaopopo ana i ka Stellar Consensus Protocol
...e hui mau.

Ka hoomaopopo ana i ka Stellar Consensus Protocol

Ka hoomaopopo ana i ka Stellar Consensus Protocol

(ʻOiaʻiʻo, hoʻololi paha nā nodes i ka Byzantine-wahaheʻe a i ʻole he hewa ʻole. Ma kēia hihia, ʻaʻole kōkua ka hui kōrum i ka ʻae like ʻana o ka pūnaewele. nā manaʻo kikoʻī, e like me ka mea i waiho ʻia ma ka hui ʻana o ka hui ʻoiai ma hope o ka wehe ʻana i nā node maikaʻi ʻole. No ka maʻalahi, e haʻalele kākou i kēia mau manaʻo pili ʻole i ke koena o ka ʻatikala).

He mea kūpono ʻole paha ka manaʻo e hiki ke hele ʻia kahi korum hilinaʻi ma kahi pūnaewele o nā nodes kūʻokoʻa. Akā ʻelua kumu o kēia.

ʻO ke kumu mua ka noho ʻana o ka Pūnaewele ponoʻī. He laʻana maikaʻi loa ka Pūnaewele o kahi pūnaewele o nā node kūʻokoʻa me nā hui hui. Hoʻopili ka hapa nui o nā node ma ka Pūnaewele i kekahi mau node ʻē aʻe wale nō, akā ʻoi aku kēia mau pūʻulu liʻiliʻi i hiki ke loaʻa i kēlā me kēia node mai kēlā me kēia node ma kekahi ala.

ʻO ke kumu ʻelua he kikoʻī i ka pūnaewele uku Stellar (ka hoʻohana maʻamau o SCP). Loaʻa i kēlā me kēia waiwai ma ka pūnaewele Stellar kahi mea hoʻopuka, a koi nā alakaʻi a Stellar i kēlā me kēia mea hoʻopuka e koho i hoʻokahi a ʻoi aku paha nodes ma ka pūnaewele e hoʻoponopono i nā noi hoʻōla. Pono ʻoe e hoʻokomo pololei a ʻole paha i kēia mau node i nā ʻāpana kōrum no kēlā me kēia waiwai āu e makemake ai. ʻO nā kōrama no nā node a pau e makemake ana i kahi waiwai i hāʻawi ʻia e uhi ʻia ma ka liʻiliʻi ma kēlā mau node hoʻōla. ʻO nā nodes makemake i nā waiwai he nui e hoʻokomo i nā node hoʻōla a pau o kēlā me kēia mea hoʻopuka i kā lākou ʻāpana korum, a e ʻimi lākou e hui pū i nā waiwai āpau. Eia kekahi, kekahi waiwai i pili ʻole i kēia ala i nā mea ʻē aʻe ma ka pūnaewele, a pono ole e pili - ua hoʻolālā ʻia kēia i ʻole he korum overlap no kēia pūnaewele (no ka laʻana, makemake nā panakō mai ka ʻāpana kālā i kekahi manawa e kālepa me nā panakō mai ka ʻāpana euro a me nā panakō mai ka peso zone, no laila aia lākou ma ka pūnaewele like, akā ʻaʻohe ʻO lākou e mālama i ka pūnaewele kaʻawale o nā keiki e kūʻai aku ana i nā kāleka baseball).

ʻOiai, ke kali nei ʻAʻole ka hele ʻana o ke kōrum hōʻoiaʻiʻo. ʻO nā ʻōnaehana ʻaelike Byzantine ʻē aʻe ka nui o ko lākou paʻakikī i ka hōʻoia ʻana o nā korum. ʻO kahi hana hou o SCP ʻo ia ka wehe ʻana i ke kuleana no ka hana ʻana i nā quorums mai ka consensus algorithm ponoʻī a lawe iā ia i ka pae noi. No laila, ʻoiai ua lawa ka nui o ke koho balota hui ʻana no ke koho balota ʻana i kēlā me kēia hihia, ʻo kona hilinaʻi ʻia e hilinaʻi nui ʻia i ka manaʻo ākea o kēia mau manaʻo. ʻAʻole maikaʻi paha kekahi mau hoʻohana hypothetical i ka hana ʻana i nā pūnaewele pili pono e like me nā mea ʻē aʻe.

Ke koho balota, ka ʻae ʻana a me ka hōʻoia

Ma ka hui koho balota, hoʻomaka ka node e koho no kekahi waiwai V. ʻO ia ke ʻano o ka hoʻolaha ʻana i kahi memo i ka pūnaewele: "ʻO wau ka node N, ʻo Q kaʻu mau ʻāpana kōrama, a ke koho nei au iā V." Ke koho ka node i kēia ala, hoʻohiki ʻo ia ʻaʻole ia i koho kūʻē iā V a ʻaʻole loa.

Ma nā hoʻolaha peer-to-peer, ʻike kēlā me kēia node i ke koho balota ʻana o nā poʻe ʻē aʻe. Ke hōʻiliʻili ʻia kahi node i kēia mau memo, hiki iā ia ke hahai i nā ʻāpana ʻāpana a hoʻāʻo e ʻimi i nā ʻāpana. Inā ʻike ʻo ia i kahi kōrum o nā hoa e koho pū ana iā V, hiki iā ia ke hele i ka hookama V a hoʻolaha i kēia meʻa hou i ka pūnaewele: “ʻO wau ka node N, ʻo Q kaʻu mau ʻāpana kōrum, a ʻae wau iā V." Hāʻawi ka ʻae ʻana i kahi hōʻoia ikaika ma mua o ke koho maʻalahi. Ke koho ka node iā V, ʻaʻole hiki iā ia ke koho i nā koho ʻē aʻe. Akā inā ʻae ka node iā V, ʻaʻohe node ma ka Pūnaewele e ʻae i kahi koho ʻē aʻe (Theorem 8 i ka pepa keʻokeʻo SCP e hōʻoia i kēia).

ʻOiaʻiʻo, aia ke kūlana kiʻekiʻe ʻaʻole e loaʻa koke kahi kōrum o nā nodes i ʻaelike me V. Hiki i nā nodes ke koho i nā waiwai ʻē aʻe. Akā aia kekahi ala ʻē aʻe e neʻe ai kahi node mai ke koho maʻalahi a i ka ʻae. Hiki paha iā N ke ʻae i kahi waiwai ʻē aʻe no W, inā ʻaʻole ʻo ia i koho no ia, a inā ʻaʻole ʻo ia e ʻike i kahi kōrum no ia. No ka hoʻoholo e hoʻololi i kāu koho, e ʻike wale hoʻonohonoho ālai nā node i ʻae iā W. ʻO kahi pūʻulu pale hoʻokahi node mai kēlā me kēia ʻāpana kōrum N. E like me ka inoa e hōʻike ai, hiki iā ia ke poloka kekahi manaʻo ʻē aʻe. Inā ʻae nā node a pau o ia pūʻulu i ka W, a laila (ma ka Theorem 8) ʻaʻole loa e hiki ke hoʻokumu i kahi kōrum e lawe i kahi waiwai ʻē aʻe, a no laila ua palekana no N ke ʻae iā W.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
Node N me ʻekolu ʻāpana kōrum.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
ʻO ka BDF kahi hoʻonohonoho hoʻopaʻa ʻana no N: loaʻa iā ia hoʻokahi node mai kēlā me kēia ʻāpana o N.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
ʻO BE kekahi hoʻonohonoho pale no N no ka mea, ʻike ʻia ʻo E ma nā ʻāpana ʻelua o N.

Akā ʻaʻole ʻo ka hoʻonohonoho hoʻopaʻa ʻana he quorum. He mea maʻalahi loa ka hoʻopunipuni ʻana i ka node N i ka ʻae ʻana i ka waiwai i makemake ʻia inā lawa ia e hack hoʻokahi node i kēlā me kēia ʻāpana o N. No laila, ʻo ka ʻae ʻana i ka waiwai ʻaʻole ia ka hopena o ke koho balota. Akā, pono ʻo N e hōʻoia i ka waiwai, ʻo ia hoʻi, e ʻike i kahi hui o nā nodes e ʻae ana. Inā hiki i kēlā mamao, a laila, e like me ka hōʻike ʻana o ka pepa keʻokeʻo SCP (ma Theorem 11), ʻo ke koena o ka pūnaewele e hōʻoia i ka waiwai like, no laila e hoʻopau ʻo N i ka koho hui ʻana me kahi waiwai e like me ka hopena.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
koho balota hui.

ʻO ke kaʻina hana o ke koho pāloka, ʻae ʻia, a me ka hōʻoia ʻana he hoʻokahi pōʻai holoʻokoʻa o ke koho balota hui. Hoʻohui ka Stellar consensus protocol i ka nui o kēia mau pōʻai e hana i kahi ʻōnaehana consensus piha.

Kūkākūkā Kūkākūkā Stellar

ʻO nā waiwai koʻikoʻi ʻelua o ka ʻōnaehana consensus ʻo − palekana и hiki ke ola. ʻO kahi algorithm consensus he "palekana" inā ʻaʻole hiki iā ia ke hāʻawi i nā hopena like ʻole i nā mea komo like ʻole (ʻaʻole kūʻē ke kope o ka mōʻaukala a Bob iā Carol). ʻO ka "Livability" ʻo ia ka algorithm e hoʻopuka mau i kahi hopena, ʻo ia hoʻi, ʻaʻole ia e paʻa.

Ua wehewehe ʻia ke kaʻina hana koho federal palekana i ka manaʻo inā hōʻoia ka node i ka waiwai o V, ʻaʻohe node ʻē aʻe e hōʻoia i ka waiwai ʻē aʻe. Akā "ʻaʻole e hōʻoia i kahi manaʻo ʻē aʻe" ʻaʻole ia e hōʻoia i kekahi mea. Hiki i nā mea komo ke koho balota i nā waiwai like ʻole i hiki ʻole i kahi mea ke hiki i ka paepae ʻae. ʻO ia hoʻi, ma ke koho federal ʻaʻole hiki ke ola.

Ke hoʻohana nei ka protocol consensus Stellar i ke koho balota hui ʻana i kahi ala e hōʻoia ai i ka palekana a me ke ola. (He palena manaʻo ko ka SCP palekana a me ka hoʻopaʻa ola. Ua koho ka hoʻolālā i kahi hōʻoia palekana ikaika loa, e kaumaha ana i kahi hoʻemi liʻiliʻi o ke ola, akā hāʻawi ʻia i ka manawa kūpono, hiki ke loaʻa ka manaʻo.) I ka pōkole, ʻo ka manaʻo ka loaʻa ʻana o nā balota federated he nui ma nā waiwai he nui a hiki i kekahi o lākou e hana i nā papa koho SCP āpau i wehewehe ʻia ma lalo nei.

ʻO nā waiwai i ʻimi ai ʻo SCP i ka ʻae ʻana he moʻolelo kālepa a i ʻole kahi ʻaina awakea a i ʻole kekahi mea ʻē aʻe, akā he mea nui e hoʻomaopopo ʻaʻole kēia nā waiwai i ʻae ʻia a hōʻoia ʻia. Ma kahi o ke koho balota federala e like me nā ʻōlelo e pili ana i kēia mau waiwai.

Hana ʻia nā pōʻai mua o ke koho federal ma pae koho (ʻāpana koho), ma kahi pūʻulu o nā ʻōlelo e like me "Koho wau iā V," malia paha no nā waiwai like ʻole o V. ʻO ke kumu o ka koho ʻana ʻo ia ka ʻimi ʻana i hoʻokahi a ʻoi aku paha nā ʻōlelo e hele ai ma o ka ʻae a me ka hōʻoia.

Ma hope o ka loaʻa ʻana o nā moho i hōʻoia ʻia, neʻe ʻo SCP i ka pae koho, kahi e loaʻa ai kahi pahuhopu. palapala hoʻolaha (ʻo ia hoʻi, kahi pahu no ka waiwai i manaʻo ʻia) a me kahi kōrum e hiki ke haʻi hoʻopaʻa no ia mea (commit). Inā hāʻawi kahi kōrum i kahi balota, ʻae ʻia kona waiwai ma ke ʻano he ʻae. Akā, ma mua o ka hiki ʻana i kahi node ke koho balota i kahi koho balota, pono ia e hōʻoia mua hoʻopau ʻana nā balota a pau me ke kumu kūʻai haʻahaʻa. ʻO kēia mau ʻanuʻu—hoʻopau ʻana i nā koho balota e ʻike i kahi hiki ke hana ʻia—e hoʻokomo i nā pōʻai he nui o nā koho balota hui ma nā koi balota lehulehu.

Hōʻike ʻia nā ʻāpana aʻe i ke koho ʻana a me ke koho balota.

Koho

I ka hoʻomaka ʻana o ka māhele koho, hiki i kēlā me kēia node ke koho i kahi waiwai no V a koho i ka ʻōlelo "Koho wau iā V." ʻO ka pahuhopu i kēia wā ʻo ia ka hōʻoia ʻana i ke koho ʻana i kekahi waiwai ma o ka balota hui.

Ua lawa paha nā node i nā manaʻo like ʻole i hiki ʻole ke koho ʻia i ka paepae ʻae. No laila, ma waho aʻe o ka hoʻolaha ʻana i kā lākou mau koho koho ponoʻī, "hōʻike" nā nodes i nā koho o kā lākou mau hoa. 'O ia ho'i, inā koho 'ia ka node no ka koho 'ana V, akā 'ike 'o ia i ka leka mai ka hoalauna e koho ana i ka koho 'ana W, e koho 'o ia no V a me W. ʻO nā koho koho ʻē aʻe. Aia ka SCP i kahi hana e hoʻoponopono ai i kēia mau koho balota. ʻO ka pōkole, aia kahi ʻano no ka hoʻoholo ʻana i ka "priority" o kahi hoa mai ka manaʻo o ka node, a ʻo nā koho wale nō o nā node kūlana kiʻekiʻe ke ʻike ʻia. ʻO ka lōʻihi o ke koho ʻana. ʻO ka haʻahaʻa o ka paepae, no laila e hoʻonui ka node i nā hoa e hōʻike ana i nā koho. kekahi, a me ka hope).

ʻO ka manaʻo, ua like ka koho ʻana, ʻo V a me W he mau balota federal kaʻawale, hiki i kēlā me kēia kanaka ke loaʻa ka ʻae a i ʻole ka hōʻoia ʻana. Ma ka hoʻomaʻamaʻa, hoʻopili pū nā memo protocol SCP i kēia mau koho pākahi.

ʻOiai ʻo ke koho balota ʻana he ʻōlelo hoʻohiki ʻaʻole e koho kūʻē i ka koho ʻana o V, aia ma ka pae noi - ma kēia hihia SCP - ua hoʻoholo ʻia ke ʻano o ka "kūʻē". ʻAʻole ʻike ʻo SCP i kahi ʻōlelo e kūʻē ana i ka balota "Koho au iā X", ʻo ia hoʻi, ʻaʻohe memo "Ke kūʻē nei wau i ka koho ʻana X", no laila hiki i ka node ke koho e koho i nā waiwai. ʻAʻole e hele ka nui o kēia mau koho, akā hiki i ka node ke ʻae a hōʻoia i hoʻokahi a ʻoi aku paha nā waiwai. Ke hoʻopaʻa ʻia ka mea koho, lilo ʻo ia moho.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
Koho SCP me ka hoʻohana ʻana i ke koho balota hui. Nui nā waiwai "B" i waiho ʻia e nā hoa a "hōʻike ʻia" e ka node.

He nui nā moho i hoʻopaʻa ʻia. No laila, koi ʻo SCP i ka papa noi e hāʻawi i kekahi ʻano o ka hoʻohui ʻana i nā moho i hoʻokahi huikau (huihui). Hiki ke ʻano o ka hui ʻana i kekahi mea. ʻO ka mea nui inā he deterministic kēia ʻano, a laila e hui pū kēlā me kēia node i nā moho like. Ma ka ʻōnaehana koho pāʻina awakea, ʻo ka "hoʻohui ʻana" paha ke ʻano o ka hōʻole ʻana i kekahi o nā moho ʻelua. (Akā ma ke ʻano hoʻoholo: pono kēlā me kēia node e koho i ka waiwai like e hoʻihoʻi hou. I loko o ka pūnaewele uku Stellar, kahi i koho ʻia ai ka mōʻaukala kālepa, ʻo ka hoʻohui ʻana i ʻelua mau mea i koho ʻia e pili ana i ka hoʻohui ʻana i nā hana i loaʻa iā lākou a me nā mea hou loa o kā lākou mau timestamp ʻelua.

Hōʻike ka SCP whitepaper (Theorem 12) i ka pau ʻana o ka manawa hoʻonui, hoʻohuli ʻia ka pūnaewele i hoʻokahi composite. Akā aia kekahi pilikia: ʻo ke koho balota ʻana he protocol asynchronous (e like me SCP). I nā huaʻōlelo ʻē aʻe, ʻaʻole i hoʻonohonoho ʻia nā nodes e ka manawa, akā ma nā leka a lākou e hoʻouna ai. Mai ka manaʻo o ka node, ʻaʻole maopopo i ka wā hea pau pae hoʻonui. A ʻoiai e hōʻea ana nā node a pau i ka hui like, hiki iā lākou ke hele i nā ala like ʻole ma ke ala, e hana ana i nā moho hui like ʻole ma ke ala, ʻaʻole hiki ke haʻi i ka mea hope loa.

Akā maʻamau. He hoʻomākaukau wale nō ke koho. ʻO ka mea nui, ʻo ia ka kaupalena ʻana i ka helu o nā moho e hoʻokō i ka ʻae ʻana, e kū nei i ke kaʻina hana holo no ka oihana (koho balota).

Ke holo nei

ʻO Bulletin he lua , kahi helu helu helu e hoʻomaka ana ma ka 1 a he moho ka waiwai mai ka pae koho. He moho ponoi kēia node a i ʻole moho node kokoke i ʻae ʻia e kēlā node. ʻO ka ʻōlelo koʻikoʻi, pili ka balota i nā hoʻāʻo pinepine e hoʻoikaika i ka pūnaewele e hiki i ka ʻae ʻana i kekahi moho ma kekahi koho balota ma o ka paʻa ʻana i nā balota hui lehulehu ma nā ʻōlelo balota. Mālama nā mea helu ma nā balota i nā hoʻāʻo i hana ʻia, a ʻo nā balota me nā helu kiʻekiʻe e ʻoi aku ma mua o nā balota me nā helu haʻahaʻa. Ina ka nupepa paʻa, hoʻomaka kahi koho hou, i kēia manawa ma ka balota .

He mea nui e hoʻokaʻawale nā hiʻohiʻona (no ka laʻana, he aha ke kauoha ʻaina awakea: pizza a i ʻole salakeke), nā nūpepa (paa waiwai kū'ē) a olelo e pili ana i na balota. Aia i loko o ka puni SCP kekahi mau pōʻai o ke koho federal, ʻo ia hoʻi ma kēia mau ʻōlelo:

  • "Ua makaukau au e hana i ka balota B" a
  • "Ke hoʻolaha nei au i ka hana o ka balota B"

Mai ka manaʻo o ka node i hāʻawi ʻia, loaʻa ka manaʻo i ka wā e loaʻa ai iā ia kahi balota B e hiki ai iā ia ke hōʻoia (ʻo ia hoʻi, e ʻimi i kahi kōrum e ʻae ana) i ka ʻōlelo "I commit balota B." Mai kēia manawa, palekana ke hana i ka waiwai i kuhikuhi ʻia ma B - no ka laʻana, ke kau ʻana i kēia kauoha no ka ʻaina awakea. Ua kapa ʻia hoʻopuka waho nā manaʻo. Ke hoʻokūpaʻa ʻia ka ʻae ʻana i ka balota, hiki i kahi node ke hōʻoia ua hoʻopuka ʻia ka waiwai like a i ʻole e hana ʻia i ka wā e hiki mai ana.

ʻOiai ke alakaʻi ʻia nei nā koho balota he nui i nā koi no nā balota like ʻole, ʻaʻole lākou e hoʻololi i nā memo he nui no ka mea e hoʻopili ana kēlā me kēia memo i nā helu balota. Hoʻokahi memo e paipai nei i ka mokuʻāina o nā balota federated he nui i ka manawa hoʻokahi, no ka laʻana: “ʻAe wau i nā koho balota mai mamua "

He aha ke ʻano o nā huaʻōlelo "hoʻomākaukau" a "hoʻokō"?

Koho ka node e hana i ke koho balota ke hilinaʻi ʻo ia ʻaʻole e hana nā node ʻē aʻe i nā balota me nā waiwai like ʻole. ʻO ka hoʻomaopopo ʻana i kēia ke kumu o ka hoʻomākaukau ʻana i ka noi. ʻO kahi pāloka e ʻōlelo ana "Ua mākaukau wau e hana i ka balota B" he ʻōlelo hoʻohiki ʻaʻole loa e hana i kahi balota liʻiliʻi ma mua o B, ʻo ia hoʻi me kahi helu liʻiliʻi (pono ʻo SCP i nā waiwai o nā balota i kahi ʻano. No laila, newsletter emi mai , ina N1

No ke aha "Ua mākaukau wau e hana i ka balota B" ʻo ia hoʻi, "Ua hoʻohiki wau ʻaʻole loa e hana i nā balota liʻiliʻi ma mua o B"? No ka mea, ua wehewehe ʻo SCP i ka haʻalele ʻana ma ke ʻano he kūʻē i ka commit. ʻO ke koho no ka hoʻomākaukau ʻana i kahi balota e pili pū ana i kahi koho no ka hōʻole ʻana i kekahi mau balota ʻē aʻe, a, e like me kā mākou i kūkākūkā mua ai, ʻo ke koho ʻana i hoʻokahi mea he ʻōlelo hoʻohiki ʻaʻole e koho kūʻē iā ia.

Ma mua o ka hoʻolaha ʻana i kahi commit, pono e ʻimi mua ka node i kahi bulletin e hiki ke hōʻoia i ka mākaukau. ʻO ia hoʻi, hana ia i kahi koho pāloka ma ke kumuhana "Ua mākaukau wau e hana i ka balota B," paha ma nā koho balota like ʻole, a hiki i ka loaʻa ʻana o kahi koho e ʻae i kahi kōrum.

No hea mai nā balota e hoʻomākaukau ai i ke koho balota? ʻO ka mua, hoʻolaha ka node i ka hoʻomākaukau ʻana no ke koho balota no <1,C>, kahi ʻo C ka moho hui i hana ʻia ma ke kahua koho. Eia naʻe, ʻoiai ma hope o ka hoʻomaka ʻana o ka hoʻomākaukau ʻana no ke koho balota ʻana, hiki i nā koho ke loaʻa i nā moho hou e ʻike ʻia e lilo i mau balota hou. I kēia manawa, hiki i nā hoa ke loaʻa i nā moho like ʻole, a hiki iā lākou ke hana i kahi hoʻonohonoho pale e ʻae ana "Ua mākaukau wau e hana i ka balota B2," e hōʻoiaʻiʻo i ka node e ʻae pū kekahi. ʻO ka mea hope loa, aia kahi hana hoʻopau manawa e hoʻopuka ai i nā pōʻai hou o ke koho balota hui ma nā balota hou me nā helu kiʻekiʻe inā paʻa nā balota o kēia manawa.

Ke loaʻa koke ka node i kahi balota B hiki iā ia ke hōʻoia e like me ka hoʻomākaukau ʻana, hoʻolaha ʻo ia i kahi leka hou "E hana i ka balota B." Hōʻike kēia koho i nā hoa ʻaʻole e haʻalele ka node iā B. ʻOiaʻiʻo, inā he balota ʻo B , a laila "E hana balota " 'o ia ho'i ka 'ae 'ole e koho balota no ka makaukau o kela a me keia balota mai i <∞, s>. Hiki i kēia waiwai keu ke kōkua i nā hoa ʻē aʻe e hopu i ka hoa hana inā aia lākou i nā pae mua o ka protocol.

I kēia manawa, pono e hoʻoikaika hou i kēia mau protocols asynchronous. Ma muli wale nō o ka hoʻouna ʻana o hoʻokahi node i nā koho upvotes no kahi commit, ʻaʻole ia he manaʻo e hana pū nā hoa. Ke koho nei paha kekahi o lākou i nā ʻōlelo no ka hoʻomākaukau ʻana no ke koho balota ʻana, a ʻo nā mea ʻē aʻe i hoʻopuka mua i ka manaʻo. Hōʻike ʻo SCP i ke ʻano o ka node e hoʻoponopono i kēlā me kēia ʻano o ka memo hoa me ka nānā ʻole i kona ʻāpana.

Inā ʻo ka memo "Ua hoʻolaha wau i kahi hana » ʻaʻole hiki ke loaʻa a hoʻopaʻa ʻia, ʻo ia hoʻi, ka ʻae ʻia a hōʻoia ʻia paha o ka leka a i ʻole - a i ʻole, i kēlā me kēia hihia, kekahi balota me ka waiwai C, ʻaʻole nā ​​mea ʻē aʻe, no ka mea, ua hoʻohiki mua ka node ʻaʻole e kāpae. . I ka manawa e hoʻolaha ai ka node i nā balota no kahi hana, ʻo ia ka C a i ʻole ʻole, e pili ana i ka lōʻihi o ka ʻae ʻana. Eia naʻe, ʻaʻole lawa kēia no ka node e hoʻopuka i waho o C. Hiki i kekahi mau hoa Byzantine (ʻo ia ka mea i emi iho ma mua o kahi kōrama, e pili ana i kā mākou mau manaʻo palekana) hiki ke moe i ka node. ʻO ka ʻae ʻana a laila hōʻoia i kekahi balota (a i ʻole ka nui o nā balota) ʻo ia ka mea e hāʻawi ai i ka node i ka hilinaʻi e hoʻopau hope iā C.

Ka hoomaopopo ana i ka Stellar Consensus Protocol
Ke koho pāloka ʻana o SCP ma o ke koho pāloka hui. ʻAʻole i hōʻike ʻia: Hiki ke pio ka manawa i kēlā me kēia manawa, e hoʻonui ana i ka helu ma ka balota (a e hana ana paha i kahi hui hou o nā moho i koho ʻia).

A ʻo ia wale nō! I ka manawa i loaʻa ai ka ʻikepili i ka manaʻo, ua mākaukau e hana hou a hana hou. Ma ka pūnaewele uku Stellar, loaʻa kēia ma kahi o hoʻokahi manawa i kēlā me kēia 5 kekona: kahi hana e koi ai i ka palekana a me ke ola i hōʻoia ʻia e SCP.

Hiki iā SCP ke hoʻokō i kēia ma ka hilinaʻi ʻana i nā pōʻai he nui o ke koho balota hui. Hiki ke koho 'ia i hui 'ia e ka mana'o o nā 'āpana kōrum: nā pū'ulu o nā hoa i ho'oholo kēlā me kēia node e hilina'i ma ke 'ano he 'āpana o kāna kōrum (subjective). ʻO kēia hoʻonohonoho ke ʻano o ka ʻae ʻana hiki ke loaʻa i loko o kahi pūnaewele me nā lālā wehe a me nā hoʻopunipuni Byzantine.

Heluhelu hou ana

  • Hiki ke loaʻa ka pepa keʻokeʻo SCP mua maaneia me ka maanei kiʻi kikoʻī no ka hoʻokō ʻana.
  • ʻO ka mea kākau kumu o ka protocol SCP, ʻo David Mazier, wehewehe iā ia ma kahi ala maʻalahi (akā naʻe ʻenehana). maanei.
  • Ua kahaha paha ʻoe i ka ʻike ʻole ʻana i nā huaʻōlelo "mining" a i ʻole "hōʻoia o ka hana" ma kēia ʻatikala. ʻAʻole hoʻohana ʻo SCP i kēia mau ʻano, akā hana kekahi mau algorithm consensus ʻē aʻe. Ua kākau ʻo Zane Witherspoon i hiki ke loaʻa ka nānā ʻana i nā algorithms consensus.
  • ʻO ka wehewehe ʻanuʻu he pūnaewele maʻalahi e hiki i ka ʻae ʻana i hoʻokahi pōʻai holoʻokoʻa o SCP.
  • No ka poʻe heluhelu makemake i ka hoʻokō SCP: ʻike C++ code, hoʻohana ʻia e ka pūnaewele uku Stellar, a i ʻole Hele code, aʻu i kākau ai no ka hoʻomaopopo ʻana i ka SCP.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka