Маркетплейс
Імёны можна купляць і прадаваць праз убудаваны маркетплейс з эскроў. Усе плацяжы цалкам экранаваныя.
Эскроў тут кастадыяльны, і варта дакладна сказаць, што гэта азначае. Пакупнік плаціць на пратакольны адрас рэгістратара; рэгістратар утрымлівае сродкі, перадае імя і залічвае прадаўцу на ўнутраны баланс суму за вылікам сэрвіснай камісіі. Прадавец выводзіць яе калі захоча. Такім чынам, рэгістратар сапраўды выступае эскроў-агентам — ён трымае грошы аднаго боку, пакуль абавязак другога боку не будзе выкананы.
Чым гэта не з'яўляецца, дык гэта даверлівым эскроў у блокчэйне. Няма смарт-кантракта, які выпускаў бы сродкі аўтаматычна; захоўванне ў рэгістратара — гэта самае сапраўднае захоўванне. Абмяжоўвае яго тое, што абавязкі вылічваюцца публічна: гл. Давер і прыватнасць — там апісаны інварыянт балансу, які можа праверыць любы, і тое адзінае месца, дзе захоўванне звонку не правяраецца.
Згода прадаўца на продаж — гэта яго раней падпісаная каманда LST, цана з якой зафіксаваная ў
дрэве стану: каманда BUY сапраўдная толькі па роўна гэтай цане, і ў момант пакупкі подпіс
прадаўца не патрабуецца.
Продаж
Прадавец падпісвае запыт LIST у блокчэйн-транзакцыі і фармуе memo з камандай LIST:
PiNS:1:LST:{name}:{ed25519_pubkey}:{price}:{nonce}:{signature}
Так імя выстаўляецца на Маркетплейс.
- цана задаецца цэлым лікам сатошы і мусіць быць большай за нуль (1 PIVX = 100 000 000 сатошы)
- LIST можна адправіць паўторна для ўжо выстаўленага імя, каб змяніць цану; перамагае апошняе аб'яўленне
Калі вы перадумалі
Прадавец заўсёды можа зняць дамен з Маркетплейса, адправіўшы блокчэйн-транзакцыю з memo, якое змяшчае каманду UNLIST:
PiNS:1:ULT:{name}:{ed25519_pubkey}:{nonce}:{signature}
Так імя прыбіраецца з Маркетплейса.
Каманды апрацоўваюцца па чарзе ў парадку блокчэйна PIVX. Гэта значыць, што ваша каманда UNLIST мусіць быць атрыманая раней, чым чыясьці каманда BUY.
PIVX Names не кіруе парадкам транзакцый — ён цалкам вызначаецца тым, як PIVX фармуе блокі, і парадкам індэксаў транзакцый унутры кожнага блока.
Пакупка
Пакупнік адпраўляе транзакцыю на адрас рэгістратара з камандай BUY у memo:
PiNS:1:BUY:{name}:{buyer_pivx_address}:{ed25519_pubkey}:{nonce}:{signature}
Сканер правярае:
- Імя мусіць быць выстаўлена на продаж
- Плацёж мусіць у дакладнасці супадаць з цаной аб'яўлення
- Калі ўсё правільна: імя пераходзіць пакупніку, а выручка за вылікам сэрвіснай камісіі залічваецца на ўнутраны баланс прадаўца
- Калі не: сродкі вяртаюцца на ўнутраны баланс пакупніка
Калі некалькі чалавек захочуць купіць адно і тое ж імя адначасова, апрацавана будзе толькі першая транзакцыя, а астатнім сродкі вернуцца на ўнутраны баланс. Вывесці іх можна ў любы момант, проста ўказаўшы адрас для вываду на сайце.