170 похожих чатов

Немного оффтопа. Хочу спросить по эфириуму у кодеров, которые работали

с блокчейном.

Смотрите. Что бы взаимодействовать с смарт-контрактом необходимо использовать web3(это пример), для того что бы вызывать те или иные функции контракта. Без таких инструментов обычный юзер может разве что просто слать эфир на кошельки.

Это реализуемо к примеру на сайте используя метамаск. Юзер нажимает кнопку на сайте, web3 формирует транзакцию и вызов функции контракта. Юзеру остаётся только подтвердить(подписать) транзакцию в метамаске, нажав ещё одну кнопку. Готово, взаимодействие с контрактом произведено. Такой вариант выглядит логично.

А если я пишу бота в любую соцсеть? Или десктоп/мобайл эпп?
Там нет никакого метамаска который отвечает за подпись. Юзер выбирает действие, web3 формирует транзакцию, но не может подписать пока не имеет на руках секретный ключ от кошелька юзера.
Варианты:
1. Юзер обязан сообщить свой ключ приложению. Но это рушит парадигму блокчейна. Что если юзер не доверяет сервису?
2. Сервис сам создает юзеру кошелёк. Но тогда каждый эпп, каждая биржа, каждый магазин будет выдавать кошельки. Более того, юзеру теперь нужно скинуть ту сумму, которую он готов потратить, на кошелек сервиса, а потом с этого кошелька совершить оплату или взаимодействие с контрактом.

Я всё верно понимаю? В таком случае выходит что каждый сервис сам себе банк, он выдаёт свои(!) кошельки и ждёт что их будут юзать. И получается что десктоп-эпп я не могу написать не порождая кошельков для каждого юзера или не заставляя сообщить мне ключ. Может я упустил что-то?

1 ответов

16 просмотров

ну все примерно так, поэтому, если возможно, стоит впиливать поддержу metamask/ledger/trezor кстати 1 вариант отстой

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта