#rust #blockchain #substrate #polkadot
#Ржавчина #блокчейн #подложка #polkadot
Вопрос:
Комментарии:
1. Я думаю, что этот вопрос довольно ясен для всех, кто использует
Substrate
фреймворк — я могу только улучшить его, добавив ссылку на документы Rust.
Ответ №1:
Если вы хотите запретить только переводы, то вам следует использовать блокировку, которая запрещает только вывод средств по причинам перевода, иначе говоря. WithdrawReason::Transfer
. Хотя, имейте в виду, что пользователь, вероятно, может найти способ обойти это, поскольку он может дать чаевые автору блока или оплатить комиссию за транзакцию заблокированными средствами, поэтому, если они вступят в сговор с автором блока, они могут эффективно обмануть систему.
Вполне вероятно , что именно этого вы на самом деле и хотите WithdrawReason::all()
.
И в качестве примечания — я подумал, что мог бы использовать подстроку (хэш (идентификатор учетной записи)) для идентификатора блокировки, стоит ли создавать блокировку для каждой учетной записи таким образом?
Я бы не стал этого делать. Каждая блокировка уже связана с учетной записью, и API для добавления и удаления блокировок уже запрашивает учетную запись для работы. Таким образом, использование хэша учетной записи в качестве ключа, на мой взгляд, является дублирующим (что также может плохо сказаться на производительности). Вы должны следовать соглашению в рамках substrate, используя уникальный идентификатор из поддона в качестве идентификатора блокировки (просто: подойдет имя поддона). Это гарантирует, что замки, созданные этим поддоном, не будут случайно сняты другим поддоном.