Pages:
Author

Topic: Внедрение интерфейса к ethereum смарт-контракту. - page 2. (Read 846 times)

full member
Activity: 313
Merit: 103
оригинально, спасибо. но для полноты понимания вопроса работы интерфейса с нодой, хотелось бы на своей ноде тренироваться.
newbie
Activity: 31
Merit: 0
Услугу выделенной ноды можно заказать
https://infura.io/
full member
Activity: 313
Merit: 103
спасибо, было бы неплохо, несмотря на то, что есть в интернете немало примеров.

меня ещё сама архитектура решения "немного" путает. web3.js это клиентская или клиент-серверная библиотека (набор библиотек). Т.е. Что должно лежать на хостинге рядом с сайтом и подключаться на html страничку вот так:  - достаточно ли одного файла из вот этого набора: https://github.com/ethereum/web3.js/tree/develop/dist или им нужны ещё какие-нибудь зависимости?

Путаюсь, потому как есть установка web3.js через npm install web3 и доступен целый набор скриптов этого web3 на github (https://github.com/ethereum/web3.js), что явно больше чем просто один файл скрипта для включения его в страничку html. Плюс можно общаться через web3 через консоль напрямую с запущенным geth. Получается, что на ноде должна работать серверная часть библиотеки web3. Т.е. её нужно устанавливать на локальном компьютере для работы в браузере загруженной странички html с внедрённой клиентской частью. В добавок ко всему этому недопониманию, при установке (npm install web3) под windows  валится куча ошибок gyp error... Получается, сейчас, похоже что, есть какая-то web3 установленная вместе с geth, но похоже, что она не работает если запускается testrpc вместо geth.
jr. member
Activity: 98
Merit: 3
Чуть позже напишу пример кода
full member
Activity: 313
Merit: 103
попробовал сделать как написал, получил такое:
Ошибка карты кода: request failed with status 404
URL ресурса: http://xxxxxxxxxxxxxxxx.com/sc-js/web3-light.js
URL карты кода: web3-light.js.map
ReferenceError: Web3 is not defined
 Embarrassed
full member
Activity: 313
Merit: 103
не подкинете адреса доступных в сети web3.js и ноды)
публичный IP - это статический?
Тот IP который видит тот же самый yandex.xml (подписав его так: Ваш текущий IP) - подойдёт для текущего доступа к локальной ноде на testrpc?
Крупные провайдеры используют динамические серые IP. Динамические- это при каждой новой сессии меняются, а серые - 10.0.0.0 до 10.255.255.255 и 172.16.0.0 до 172.31.255.255 то есть в сети интернет таких адресов не может быть, они есть только в локалке, А с сетью общаются через NAT. После которого в сети у тебя появляется реальный IP. (но понятно динамический) Публичный статический IP- покупаешь у провайдера. А вообще рекомендую использовать DNS имя, Оно не меняется (пока за него платишь) А публичный статический IP даже при оплате всегда могут отобрать, ты сам можешь поменять провайдера, и т.д. и т.п. (правда не все сервисы поддерживают привязку к DNS.)

т.е. я вполне могу поднять локальную RPC ноду, узнав этот свой реальный ip, который получился после NAT (потом гляну, что это такое вообще) подпихнуть его в web3.js и спокойно тестировать свой скрипт на хостинге, пока не перегружу свой модем, я правильно понимаю? После перезагрузки я получу новый реальный IP, поменяю его в исходниках и далее буду спокойно тестироваться. И таким образом для отладки я обойдусь без покупки реального статического белого IP.

Порт в этом случае указывать тот с которым стартанула RPC нода (там вроде можно задавать)?
full member
Activity: 154
Merit: 100
ICP forever and ever
не подкинете адреса доступных в сети web3.js и ноды)
публичный IP - это статический?
Тот IP который видит тот же самый yandex.xml (подписав его так: Ваш текущий IP) - подойдёт для текущего доступа к локальной ноде на testrpc?
Крупные провайдеры используют динамические серые IP. Динамические- это при каждой новой сессии меняются, а серые - 10.0.0.0 до 10.255.255.255 и 172.16.0.0 до 172.31.255.255 то есть в сети интернет таких адресов не может быть, они есть только в локалке, А с сетью общаются через NAT. После которого в сети у тебя появляется реальный IP. (но понятно динамический) Публичный статический IP- покупаешь у провайдера. А вообще рекомендую использовать DNS имя, Оно не меняется (пока за него платишь) А публичный статический IP даже при оплате всегда могут отобрать, ты сам можешь поменять провайдера, и т.д. и т.п. (правда не все сервисы поддерживают привязку к DNS.)
jr. member
Activity: 98
Merit: 3
https://ethereum.stackexchange.com/questions/517/are-there-any-public-free-nodes-to-connect-a-dapp-front-end

Вот тут товарищ ищет тоже, что и вы. Ему отвечают, что халявных таких нод нету. Есть только интерфейсы, типа прокси запросов к нодам. Указывают, какие API есть. Но они не поддерживают RPC запросы и web3.js к ним не подключится. Нужно использовать их собственные либы.

Отвечающие указали какой-то rpc сервер, но он принимает только подписанные транзакции, то есть ваши клиенты должны будут ставить себе еще одну примочку к браузеру, чтобы подписывать транзакции у себя, а потом отправлять их вам.
jr. member
Activity: 98
Merit: 3
не подкинете адреса доступных в сети web3.js и ноды)
публичный IP - это статический?
Тот IP который видит тот же самый yandex.xml (подписав его так: Ваш текущий IP) - подойдёт для текущего доступа к локальной ноде на testrpc?

https://github.com/ethereum/web3.js/tree/develop/dist - тут несколько различных вариантов библиотеки.
Если вам достаточно простого функционала, там можно облегченные версии библиотеки подключать.

Подключать можно прямо так, по урлу https://github.com/ethereum/web3.js/blob/develop/dist/web3.js или скачать ее себе на хостинг.

Публичный - это не статический. Статический вы себе сами на компе можете прописать любой. Но его с внешней сети не видно будет. Это будет айпишник в сети вашего провайдера, а то и того хуже - внутренний айпишник вашей собственной локалки, если на входе у вас стоит какой-нибудь маршрутизатор. Тогда нужно будет через него какой-нибудь порт пробрасывать на вашу домашнюю машину, а у вашего провайдера попросить публичный айпишник. Обычно это стоит дополнительно примерно бакс в месяц. А может и бесплатно дадут. Все) Потом ставите себе ноду домой, запускаете ее с возможностью подключения как к RPC серверу и можете подключаться хоть откуда. Хоть с вашего хостинга.

На хостинге в вашем скрипте пишите web3 = new Web3(new Web3.providers.HttpProvider("http://127.0.0.1:8545"));

Только вместо 127.0.0.1 пишете ваш адрес, а вместо 8545 пишите порт, который будете пробрасывать с маршрутизатора. Все. Дальше можете посылать любые команды ноде вашей, которые разрешили, запуская ее. Можно там, например, майнинг запретить, или что-нибудь еще.

Чур мне плюс в репутацию за ответ)

full member
Activity: 313
Merit: 103
не подкинете адреса доступных в сети web3.js и ноды)
публичный IP - это статический?
Тот IP который видит тот же самый yandex.xml (подписав его так: Ваш текущий IP) - подойдёт для текущего доступа к локальной ноде на testrpc?
jr. member
Activity: 98
Merit: 3
full member
Activity: 313
Merit: 103
Такой вопрос. Я ленивый разработчик, и хочу малыми телодвижениями на свой сайт у хостера в сети добавить страничку с интерфейсом для тестирования своего смарт контракта эфириума. У меня есть желание использовать для этих целей какой-нибудь сторонний, доступный в интернете блокчейн через RPC и чей-нибудь сторонний web3.js. Т.е. хостинг шаред, и не хочу ничего ставить через администраторов, даже web3.js. (Это же просто .js библиотека, которую я могу с любого доступного адреса в интернете подгрузить через Блокчейн, я так понимаю, я и не поставлю, без покупки целого выделенного сервера. Сколько он там весит уже. Methamask не рассматриваю. Разве что их ноду с RPC. Т.е. интересует следующая инфа:
1. Можно ли вообще такое провернуть
2. Какова вообще архитектура запускаемых больших проектов (т.е. где обычно хранятся у них noda с блокчейном, web3.js и сам сайт)
3. Какова вообще архитектура запускаемых малых проектов (маленький сайт, но с подключением) (т.е. где обычно хранятся у них noda с блокчейном, web3.js и сам сайт)
4. Какова вообще архитектура запускаемых проектов без подключения к блокчейну, просто на лэндинге и с отправкой всех на mist для переводов (т.е. где обычно хранятся у них noda с блокчейном, web3.js и сам сайт)
5. Если такое можно провернуть, то где взять адреса ноды с RPC и web3.js, которые мне помогут сосредоточиться на тестировании интерфейса а не на запуске всей этой архитектуры.
6. Можно ли подключиться таким образом к локальной (домашней) ноде на testrpc (со страницы сайта на сервере хостинга)?
Pages:
Jump to: