Я использую расширение Metamask.io в Google Chrome. Правильно подключен Metamask.io к частной сети, размещенной на экземпляре AWS EC2, с использованием адреса сокета (IP:номер порта). Базовый контракт был развернут на блокчейне с использованием Remix IDE для программирования надежности. Я могу получить информацию (функция getInstructor). Однако не удалось установить информацию о новом инструкторе.
Шаги -
На узле частной цепочки блоков Эфириума я попытался найти ожидающие транзакции, но их не было. Как показано,
> eth.pendingTransactions
[]
Однако, попробовав это,
web3.eth.getBlock("pending")
{
difficulty: 25082169,
extraData: "0xd583010701846765746885676f312e39856c696e7578",
gasLimit: 4712388,
gasUsed: 0,
hash: null,
logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
miner: null,
mixHash: "0x0000000000000000000000000000000000000000000000000000000000000000",
nonce: null,
number: 1557557,
parentHash: "0xf84ce5ff7845f399eb698bfc33abeb24a8e459096d7ad9c097de3eb6130a6360",
receiptsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
size: 537,
stateRoot: "0x017184c9d24daab688c39468af064cd3ab748f5adc9c5b1fd3c5bcc2f3a318a0",
timestamp: 1523753000,
totalDifficulty: 0,
transactions: [],
transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
uncles: []
}
Несколько дней назад я смог выполнить эту базовую транзакцию, но теперь я не могу. Невозможно понять, в чем дело.
Возможные ошибки -
Согласно этим обсуждениям
узлы майнера и транзакция не отправляются , я попытался создать другую личную учетную запись и позволить ей майнить (это не удалось).
«Обычная» настройка для разработки заключается в том, чтобы не подключать Metamask к вашему узлу AWS, потому что вы не хотите предоставлять API этому узлу. Я предполагаю, что вы используете POA, верно?
Просто запустите локальный узел на своем компьютере и подключите метамаску к локальному хосту.
По умолчанию узел будет принимать соединения только с локального хоста. Вы можете изменить это, чтобы принимать соединения от любого с: --rpcaddr "0.0.0.0".
Обратите внимание, что каждый раз, когда закрытый ключ разблокирован, любой человек в Интернете может использовать этот ключ, запрашивая ваш rpc-сервер и отправляя транзакции.
Похоже, у вас возникла эта проблема: https://github.com/MetaMask/metamask-extension/issues/1722 .
Попробуйте установить chainId
и networkId
на одно и то же значение, чтобы MetaMask оставался совместимым с EIP-155.
Руководство по использованию пользовательского узла с MetaMask находится здесь: https://github.com/MetaMask/faq/blob/master/USERS.md#using-a-local-node .
У меня была аналогичная проблема. По сути, в моем смарт-контракте не было «к оплате» в функции, куда вы отправляете Ethereum. Вы говорите, что все работает правильно, вы можете получить, метамаска открывается, но не отправляет Ethereum. Попробуйте добавить «оплачиваемый» и дайте мне знать, если это сработало, чтобы я знал, что нужно более глубоко изучить вашу проблему.
Исмаэль
mine.start(1)
или что-то подобное. Из вашего ожидающего блока у него есть номер 1557557, что довольно много для частной тестовой сети, чтоeth.blockNumber
возвращает? Вы уверены, что подключаетесь к правильной сети.Чайтанья Бапат
> eth.blockNumber
1558456