Отправка события в конкретную учетную запись пользователя

Я пытаюсь отправить уведомление пользователю о какой-либо активности. Я пытался использовать события, но когда событие запускается, оно передается всем учетным записям пользователей, которые в данный момент активны в сети. Есть ли другой способ сделать то же самое в Ethereum.

Насколько мне известно, это пока невозможно использовать, но я думаю, что шепот github.com/ethereum/wiki/wiki/Whisper — это то, что вы ищете.

Ответы (2)

Нет, нет. Эфириум — это публичный реестр. Это означает: а) все, что вы делаете, является публичным, все видят все, что вы делаете. б) Все натянуто. Если пользователь хочет что-то увидеть, он может запросить блокчейн, вы не можете отправить что-то на конкретный адрес.

Конечно, вы могли бы создать что-то подобное. Но такие решения по-прежнему будут общедоступными и будут зависеть от клиентской реализации. Однако вся идея блокчейна заключается в независимости от центральных посредников и клиентской реализации.

Если вы хотите реализовать что-то подобное: создайте сопоставление, которое сопоставляет адрес -> ваше сообщение в контракте. Затем клиент может регулярно проверять наличие обновлений в этом отображении.

Вы можете создавать темы в своих журналах, индексируя определенные поля в своем событии.

event BidPlaced(address indexed bidder, uint amount);

Затем вы можете отфильтровать эти события по проиндексированным полям в своем интерфейсе и отображать пользователю только соответствующие уведомления.

var contract = web3.eth.contract(abi).at(contractAddress);
contract.BidPlaced({ bidder: "0x0000..." }).get(console.log);