У меня есть локальный узел Эфириума, и я разблокировал учетную запись. Теперь я хочу использовать браузер Solidity для развертывания этого контракта, но когда я переключаюсь на вариант развертывания поставщика web3 и нажимаю кнопку «Создать» по адресу « http://localhost: 8000 », все, что я вижу, это ошибка, которая говорит: « Ошибка: учетная запись заблокирована». Я не знаю, почему и как это работает?
Также как проще всего развернуть смарт-контракт на локальном работающем узле?
Я вижу, что вы меняете Web3 Provider Endpoint
в браузере Solidity и обязательно разблокируете учетную запись .
Альтернативный способ — просто оставить значение по умолчанию: Javascript VM
, затем:
Create
и скопируйте значения в Web3 deploy
.Web3 deploy
значения в консоль Geth и дождитесь завершения транзакции.Вот Web3 deploy
значения для самого простого contract Test {}
и видно, что web3.eth.accounts[0]
нужно разблокировать (или поменять на свой разблокированный аккаунт).
var testContract = web3.eth.contract([]);
var test = testContract.new(
{
from: web3.eth.accounts[0],
data: '6060604052600a8060106000396000f360606040526008565b00',
gas: 3000000
}, function(e, contract){
console.log(e, contract);
if (typeof contract.address != 'undefined') {
console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
}
})