Author

Topic: Вместо десктопного кошелька - хтмл страни (Read 562 times)

member
Activity: 266
Merit: 42
The rising tide lifts all boats
Ну вот, хоть кто-то понял, что я хотел: реализовать UI на статичных хтмл файлах.
Из коробки кора этого не даёт и совершенно непонятно  - почему?. Отсылка к безопасности мне кажется надуманной ибо вирусня легко обойдет CORS если захочет, а вот разработчикам это жизнь усложняет ибо нужно думать, как уговорить юзера поставить дополнительный софт, чтобы запустить прокси сервер для запросов к RPC (((
Я думаю, добавлять веб-сервер в bitcoind - неоправданный риск.
Хотя вам и никто не запрещает отфоркать понравившуюся вам версию, и распространять с добавлениями. Но там вроде на C++ всё...
Вам именно хочется, чтобы ваш кошелек был полной нодой, а не SPV?
Есть три библиотеки на Python с примитивами, нужными для биткойн протокола, я полагаю, что из хотя бы одной из них можно слепить приличный полный клиент (без эзотерического функционала и пожалуйста, без SegWit!), и к нему прикрутить что угодно.

Если SPV достаточно, можно просто взять Electrum и добавить туда, всё что хотите - он тоже на Python.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
member
Activity: 266
Merit: 42
The rising tide lifts all boats
вы brainwallet видели?
https://github.com/colt05/brainwalletX.github.io
тоже на node.js
Кстати, ещё одной темой было бы сделать user-friendly, понятный дедушке Cold Storage.
Инструкция Электрума как хранить на "холодном компьютере" всё же не для дилетантов...
legendary
Activity: 2294
Merit: 1047
вы brainwallet видели?
https://github.com/colt05/brainwalletX.github.io
тоже на node.js
member
Activity: 266
Merit: 42
The rising tide lifts all boats
Чтобы избежать хранения блокчейна, я бы посмотрел в сторону Electrum, у него тоже есть JSON RPC.
Можно добавить к нему веб сервер реализованный на Python, например с фреймворком Flask.
Но нужно понять, что такой веб-клиент добавит к уже существующей функциональности Electrum?
Опять же - я бы поостерегся доверить браузеру мой приватный ключ. Особенно под виндой. Если так, то получится что все операции с файлами кошельков и приватными ключами нужно будет делать через командную строку, или по-старинке через QT. А куда вводить passphrase? Если какая-нибудь зараза в броузере его перехватит и потом найдёт на диске приватные ключи, денежки перейдут хакерам.

Лучше уж запаковать WebKit + GTK + Python + модули Electrum в один binary executable, чтобы пользователям не нужно было устанавливать Python.
member
Activity: 266
Merit: 42
The rising tide lifts all boats
Я предлагал пользоваться встроенным в стандартный bitcoin core веб сервером. В случае прокладок типа nodejs, пользователь должен будет устанавливать у себя на комп интерпретатор, это отдельная программа. Зачем плодить сущности?
Не совсем так: node.js отдельно устанавливать не нужно, проекты Electron и NW.js пакуют его и WebKit вместе в один инсталлятор, скачиваемый как одно приложение.
Думаю, что CommonJS позволит запустить бинарник bitcoind под каждой ОС (Linux/OSX/Win) так что бинарник можно вложить в тот же инсталлятор. Проблема лишь в случае BTC что нужно хранить блокчейн (хотя нынче его вроде можно прунить).
Можно посмотреть, как решают проблему блокчейна в Copay, скорее всего он аналогично Electrum работает с полной нодой по некому протоколу. Если делать так, нужно будет скорее всего быть совместимыми с Electrum - тогда можно использовать те же сервера что и он.
Но надо решить, что вы предлагаете чего нет в Copay? Copay выглядит вполне "модно".

В принципе, должен появиться AppMarket - чтобы не плодить действительно по одному интерпретатору и броузер-движку на каждое такое установленное приложение.
Но если хотите AppMarket, тогда можно уже сейчас сделать Chrome App или плагин для Мозиллы.
У Ethereum есть такой, насколько я понимаю.

P.S. bitcoind уже предоставляет JSON-RPC по HTTP с SSL и т.д., можно даже заходить с другого хоста если настроить аутентикацию.
https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)

Так что остаётся добавить простейший веб-сервер который будет выдавать статические страницы на ещё одном порту, и проксить RPC запросы на порт занятый bitcoind. Это необходимо, так как если ваш UI будет реализован на локальных файлах, придётся использовать JSONP, а из коробки bitcoind вряд ли это делает.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Я предлагал пользоваться встроенным в стандартный bitcoin core веб сервером. В случае прокладок типа nodejs, пользователь должен будет устанавливать у себя на комп интерпретатор, это отдельная программа. Зачем плодить сущности?
Если бы встроили поддержку запросов GET прямо в кору, то больше ничего дополнительно устанавливать не надо было.
newbie
Activity: 34
Merit: 0
а чем jaxx не устраивает ?
member
Activity: 266
Merit: 42
The rising tide lifts all boats
Понятно, что не составляет труда сделать прокси для работы с RPC, но зачем нужна дополнительная прокладка, если можно прямо в клиенте это реализовать?
Прокладка есть насколько я понимаю, называется Bitcore.
У неё скорее всего даже UI с Bootstrap, как нынче популярно.
Не уверен, что там есть все нужные Вам функции, но она OpenSource и написана на ECMAScript под платформу Node.JS, так что можно добавить нужное.
member
Activity: 266
Merit: 42
The rising tide lifts all boats
А где сам блокчейн лежать будет?
Имею ввиду база транзакций... В кеш же вы не запихнете 120 гиг ))

Ваш кошелек кастрированный получится.


Update. Прочитал второй раз понял вас.
Ну так через rpc можно и общаться с вашим веб кошельком (get json). Биржи же так и работают.
В случае Byteball, там есть два варианта: full and light wallet. Light доверяет полной ноде, так же как и Electrum.
Про Copay не знаю, не пользовался, вероятно тоже есть Light вариант, так как нынешний блокчейн под 100 гигов.
Если бы я делал аналог Copay для (например) лайткойна, или мультивалютный на его основе, я бы предложил два варианта, как у Byteball. Для мультивалютного не хранить блокчейны у себя особенно актуально.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Не поддержали разрабы. С формулировкой, что будут траблы с безопасностью в браузерах ((
Ну ладно, может лет через десять им QT надоест наконец и они вернутся к этому вопросу.

Понятно, что не составляет труда сделать прокси для работы с RPC, но зачем нужна дополнительная прокладка, если можно прямо в клиенте это реализовать?
sr. member
Activity: 369
Merit: 252
А где сам блокчейн лежать будет?
Имею ввиду база транзакций... В кеш же вы не запихнете 120 гиг ))

Ваш кошелек кастрированный получится.


Update. Прочитал второй раз понял вас.
Ну так через rpc можно и общаться с вашим веб кошельком (get json). Биржи же так и работают.
member
Activity: 266
Merit: 42
The rising tide lifts all boats
Во-первых, уже есть приблуда на NodeJS - называется Bitcore.
Она взаимодействует с bitcoind через RPC и позволяет прикрутить биткойн к вебу.
Во-вторых, есть всякие кошельки на основе NodeJS вставленного в браузер (система NW.js, есть ещё аналогичная ей - Electron).
Они выглядят идентично и на десктопе, и на смартфонах.

https://github.com/bitpay/copay
а также основанный на нём:
https://github.com/byteball/byteball

В-третьих, тому кому не хочется выкачивать блокчейн Ethereum, приходится пользоваться MyEtherWallet.com
Но это малость стремновато, загружать в браузер свой приватный ключ
Легко зафишить новичков, подсунув им похожую URL
В целом по-моему именно в браузере - плохая идея, лучше на NW.js/Electron.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
Меня всегда поражала убогость интерфейса стандартного bitcoin-qt. Но как программист понимаю, что кросплатформенное десктопное приложение красивей вряд-ли получится сделать. И главное не я один такой... Практически каждому новому биткоин-юзеру я вынужден объяснять, что эта вот программа это то же самое, что интернет-банк, только не в браузере как вы привыкли видеть, а вот такая.

Вот и подумалось, а что если разрабы в RPC вызовах разрешат запросы GET? Тогда можно будет замутить весь интерфейс в html5+css+javascript как это все привыкли видеть в стандартных интернет-банках и забыть про QT как про страшный сон!

Подкинул идею разрабам коры на гитхабе: https://github.com/bitcoin/bitcoin/issues/11254
Как считаете, одобрят?

Jump to: