Учимся разрабатывать децентрализованные приложения, но испытываем трудности с их тестированием

Я начинаю изучать все тонкости разработки децентрализованных приложений. Я следовал нескольким урокам - теперь я могу читать Solidity!. Я хочу попробовать модифицировать некоторые существующие децентрализованные приложения, чтобы понять, что происходит, в частности, в многопользовательских играх.

Я нашел децентрализованное приложение «on-chain-chess» https://github.com/ise-ethereum/on-chain-chess , и я пытаюсь начать отсюда в качестве учебного примера (т. шахматы оттуда).

Однако у меня возникают проблемы при попытке использовать dapp. Я запустил testrpc, и npm установил/npm запустил его. У меня есть пара предупреждений на этапе сборки.

При открытии index.html ничего не происходит, когда я нажимаю «создать игру». У меня нет реакции на testrpc и нет реакции на браузер. Я, наверное, что-то упускаю, чего не могу понять. Я думал, что это связано со временем майнинга, но, похоже, это не ответ.

Есть что-то очевидное? Есть ли хороший учебник, объясняющий такого рода проблемы? Или мне попробовать с другим проектом?

Ответы (1)

Когда вы открываете консоль, вы видите какие-либо сообщения об ошибках? Я смог запустить его, я использовал npm install, а затем npm start. Когда вы запустите npm start, вы должны увидеть много движений на testrpc, потому что контракты развертываются, вы это видели? Кроме того, вы захотите получить к нему доступ через http://localhost:8080/ . Есть также несколько более простых руководств по Truffle , если это поможет.

Привет, спасибо за ваш ответ. У меня есть два предупреждения при запуске npm install (одноранговые зависимости от mocha. Я пытался изменить package.json, но получилось хуже). При запуске npm start я действительно вижу много вывода на терминале testrpc. Я захожу на localhost:8080/webpack-dev-server/index.html , что указывает на «приложение готово», но нажатие «начать новую игру» или «присоединиться к игре» не действует ни в моем браузере, ни в консоли testrpc. Я попытался перейти на localhost:8080 и получил те же результаты, хотя URL-адрес меняется, когда я нажимаю (/#/initializeGame, /#/joinGame), экран остается черным.
Когда вы открываете страницу, можете ли вы использовать F12, чтобы увидеть журнал консоли на странице? Обычно вы увидите некоторые ошибки, если соединение web3 не работает, как это и выглядит. Кроме того, вы используете Metamask? Потому что вам нужно убедиться, что для Metamask установлено значение testrpc, если это так.
Вы правы, у меня действительно есть ошибка в журнале консоли: Ошибка: объект MetaMask Web3 не поддерживает синхронные методы, такие как eth_call, без параметра обратного вызова. Я попытался снова клонировать репо и попробовать Chrome и Firefox, но та же ошибка остается. Метамаска установлена ​​​​на localhost: 8545, где должен работать testrpc. Самая внутренняя функция, вызывающая ошибку, находится в angular.js, и строка читает return instanceInjector.invoke(provider.$get, provider, undefined, serviceName).
Наконец-то мне удалось отобразить веб-сайт и получить реакцию, отключив метамаску. Я не уверен, почему он не будет работать с метамаской... Теперь я получаю сообщение об ошибке "Нет газа", когда хочу создать игру, независимо от лимита газа, который я установил при запуске testrpc... Но я рад чтобы увидеть прогресс.
Хм, вы обязательно использовали пароль из 12 слов для testrpc при использовании Metamask? Ошибка отсутствия газа будет относиться к тому, сколько газа вы отправляете как пользователь учетной записи. Таким образом, это может относиться и к тому, как был сделан их пользовательский интерфейс, если вы не можете настроить свой газ с помощью Metamask. Тем не менее, я настоятельно рекомендую Truffle Dapps. Я думаю, что с ними намного проще начать работу, и они могут показать вам несколько более простых дизайнов для начала. Кроме того, я слышал хорошие отзывы о CryptoZombies ( cryptozombies.io ).