Я создаю Dapp на Ethereum. Главной особенностью этого Dapp является логика регистрации/входа. Я не хочу использовать Metamask, но я хочу сделать систему входа в систему как MyEtherWallet без каких-либо расширений Chrome. Как лучше всего это сделать?
следует ли использовать централизованную базу данных? потому что Dapp больше не будет децентрализованным.
В целях тестирования мы можем использовать metamask/myetherwallet. Но для производственной системы в Dapp мы должны управлять учетной записью и ее действиями, такими как подписание транзакции. Вот общие шаги, чтобы ваше Dapp функционировало хорошо.
Управление учетными записями: это основная часть взаимодействия с контрактными функциями. Вот модуль web3.eth.accounts. это объясняет. Web3.eth.accounts содержит функции для создания учетных записей Ethereum и подписи транзакций и данных. вы можете делать почти все, что вы делаете из метамаски.
Сетевая конечная точка RPC: вышеуказанные учетные записи должны находиться в той же сети, где и в которой вы включили порт RPC.
Хостинг децентрализованных приложений: в конечном итоге ваш блокчейн распределен и децентрализован, но ваше децентрализованное приложение не нуждается в распределении и децентрализации. Вы можете разместить где угодно, например AWS, Google Cloud. Вам нужен только закрытый/открытый ключ для взаимодействия с блокчейном. Это означает, что вы должны позаботиться о своей учетной записи и механизме подписи, что означает, что ваш закрытый ключ должен храниться отдельно и в безопасности.
Независимо от того, реализуете ли вы свое децентрализованное приложение с помощью web3, собственного языка go или любого другого . Концепция та же.
Если у вас есть свой отдельный закрытый ключ и только вы можете взаимодействовать с этим ключом, то нет такого ограничения, чтобы сделать децентрализацию взаимодействия пользователя с централизованным пользовательским интерфейсом.
Добавление к ответу Гильерме - недавно я наткнулся на проект под названием Fortmatic.
Кажется, это еще одно жизнеспособное решение для обработки идентичности без MetaMask. Я только что добрался до альфы и начал с ней играться, и пока все хорошо, очень чистые и приличные документы и хорошо интегрируются с web3.
Существует множество способов обработки удостоверений без использования метамаски или какого-либо расширения Chrome, но вы всегда будете в некотором роде «не таким уж децентрализованным», потому что в конечном итоге вам придется создавать внешнюю базу данных.
Вы можете подключиться к какому-нибудь поставщику удостоверений, чтобы справиться с этим за вас, я думаю, это самый простой способ сделать то, что вы хотите.
Я знаю некоторых провайдеров, если вы хотите взглянуть на них:
Похоже, вам понадобятся системы ретрансляции транзакций, чтобы ваш пользователь децентрализованного приложения подписывал транзакции, а ретранслятор затем выполнял их на Ethereum. Для этого вы можете взглянуть на https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1077.md и аналогичную реализацию на https://github.com/gnosis/safe-contracts .
Однако тогда ретрансляторы, скорее всего, будут централизованными, в принципе, если бы мы могли построить децентрализованную ретрансляционную сеть для всех подобных транзакций. Но я пока не знаю ни одного готового.
PS: мы предприняли попытку создать децентрализованную ретрансляционную сеть на хакатоне по адресу https://devpost.com/software/hermes-network , и я надеюсь, что очень скоро появятся другие подобные проекты.
О. Шекриладзе
Гопал Оджха
О. Шекриладзе
Гопал Оджха