развернуть контракт на приватном блокчейне с использованием трюфеля

Я установил частный блокчейн на локальном компьютере, используя geth. Что я сделал:

  1. создать генезис.json
  2. получить инициализацию
  3. гет прикрепить
  4. создать учетную запись, разблокировать учетную запись и начать майнинг
  5. инициализация truffle, запись контракта, миграция и обновление truffle.js

module.exports = { networks: { development: { host: "localhost", port: 8545, network_id: "*", } } };

когда я пытаюсь перенести контракт, я получаю следующую ошибку:

Could not connect to your Ethereum client. Please check that your Ethereum client:
    - is running
    - is accepting RPC connections (i.e., "--rpc" option is used in geth)
    - is accessible over the network
    - is properly configured in your Truffle configuration file (truffle.js)

используя эту команду, чтобы запустить узел с помощью geth :

geth --port 3000 --networkid 58342 --nodiscover --datadir="privchain" --maxpeers=0 autodag --rpc --rpcport 8545 --rpcaddr 127.0.0.1 --rpccorsdomain "*" --rpcapi "eth,net,web3" --ipcapi "eth,net,web3"

Это мой файл genesis.json:

{
  "config": {
    "chainId": 58342,
    "homesteadBlock": 0,
    "eip155Block": 0,
    "eip158Block": 0
  },
  "nonce": "0x0000000000000033",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "gasLimit": "0x8000000",
  "difficulty": "0x100",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}
В соответствии с вашей конфигурацией трюфеля на вашем компьютере должен быть запущен evm-процесс (например, testrpcили ganache), прослушивающий порт 8545.
@goodvibration, хочу развернуть контракт в частной сети, поэтому, пожалуйста, предложите мне обновить truffle.js
правильно ли ваш узел geth открывает интерфейс RPC в http://localhost:8545? и указали ли вы какие-либо --rpccorsdomainаргументы при запуске geth?
Я использовал эту команду для запуска узла с помощью geth: rpccorsdomain "*" --rpcapi "eth,net,web3" --ipcapi "eth,net,web3"
Я думаю, вам следует изменить порт в truffle.js, чтобы он соответствовал вашему порту geth.
не понял тебя! У меня есть порт 8545 в порту truffle.js и порту geth. хочу, я просто изменю порт i truffle.js с 8545 на 8546
Убедитесь, что никакое другое приложение не использует порт 8545. Возникает ли какая-либо ошибка при запуске geth? Вы можете попробовать добавить --verbosity 4в командную строку geth, чтобы увидеть больше журналов. Также вы можете попробовать удалить --rpcaddr 127.0.0.1и позволить geth разобраться.
@Исмаэль, не работает.

Ответы (2)

Прежде всего, взгляните на вывод Geth. Он должен говорить что-то вроде:

HTTP port opened on localhost:8545

Если он сказал это, и вы не можете подключиться, вы можете попробовать все это:

  1. Попробуйте получить доступ с помощью веб-браузера (я пробовал с Chrome). Если это работает, вы увидите свою страницу в белом цвете. Иногда выдает сообщение типа "недопустимый хост". В этом случае вы должны добавить --rpcvhosts="*", чтобы любой хост мог подключаться к вашему хосту.

  2. Попробуйте подключиться с помощью:

    телнет [i-адрес] [порт]

Помимо ранее упомянутого, попробуйте сначала пойти на простой подход. Если бы я был вами, я бы попробовал сначала:

geth --rpc --rpcport 8545 --rpcaddr "0.0.0.0" --rpccorsdomain "*" --rpcapi "eth,net,web3" --ipcapi "eth,net,web3"

Если вы настраиваете свою частную цепочку блоков в Windows, установите клиент testrpc, используя следующую команду в cmd

npm установить -g ethereumjs-testrpc

Затем перенесите свой контракт, он должен работать.введите описание изображения здесь

Еще лучше, npm install -g ganache-cli. Смотрите здесь .