Как отправить произвольное сообщение в транзакции, используя JSON RPC?

Я использую geth client и метод personal_sendTransaction для отправки транзакции. Мне нужно добавить комментарий к транзакции. Как я могу это сделать? Я пытался вставить шестнадцатеричную строку в необработанные данные, но транзакция отправляется без моего комментария.

Например, когда я добавляю строку данных:

 data":"" 

Появляется в эфире как 0x.

ОБНОВИТЬ

Это была моя ошибка в коде. Это просто отправить произвольные данные в строке данных. Вам просто нужно записать шестнадцатеричную строку в параметр данных метода personal_sendTransaction.

Это мой tx: https://etherscan.io/tx/0x86081299634081ff8b654dfb55b8a89e8b03946fb6a6a3d42d464168d90a818c

Но посмотрите на эту транзакцию etherscan.io/tx/… Как они поместили эту большую строку?
Хорошо, у geth есть команда personal.sendTransaction (). Чрезвычайно длинное поле «входных данных», отображаемое в Etherscan, относится только к транзакции, в которой используется контракт. Это не что иное, как контракт ABI. Это переменная длина и построено из определения контракта.
В Etherscan вы можете просмотреть поле входных данных как UTF-8, нажав кнопку «Просмотреть входные данные» и выбрав «UTF-8». Это покажет вам источник контракта.
Посмотрите на эту транзакцию: etherscan.io/tx/… в данном случае это не контракт. Как они ставят простую строку?
Если вы наведите курсор на поле «Входные данные» на странице Etherscan, вы увидите подсказку «Двоичные данные, которые сформировали входные данные для транзакции, либо входные данные, если это был вызов сообщения, либо инициализация контракта, если это было создание контракта. ». Получается, что поле входных данных также можно использовать, когда выполняется «вызов сообщения». Этот пост ethereum.stackexchange.com/a/12081/20155 может помочь вам лучше понять разницу между транзакцией и сообщением.

Ответы (1)

У меня есть два внутренних сервера. Один из них взаимодействует с geth, и на этом сервере я забыл добавить данные поля в параметрах personal_sendTransaction. Я определил это, отправив curl с полем данных непосредственно в geth. И geth принимает любые данные в шестнадцатеричном формате.