kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
September 06, 2017, 12:06:11 PM |
|
Меня всегда поражала убогость интерфейса стандартного bitcoin-qt. Но как программист понимаю, что кросплатформенное десктопное приложение красивей вряд-ли получится сделать. И главное не я один такой... Практически каждому новому биткоин-юзеру я вынужден объяснять, что эта вот программа это то же самое, что интернет-банк, только не в браузере как вы привыкли видеть, а вот такая. Вот и подумалось, а что если разрабы в RPC вызовах разрешат запросы GET? Тогда можно будет замутить весь интерфейс в html5+css+javascript как это все привыкли видеть в стандартных интернет-банках и забыть про QT как про страшный сон! Подкинул идею разрабам коры на гитхабе: https://github.com/bitcoin/bitcoin/issues/11254Как считаете, одобрят?
|
|
|
|
byteball
Member
Offline
Activity: 266
Merit: 42
The rising tide lifts all boats
|
|
September 06, 2017, 05:30:02 PM |
|
Во-первых, уже есть приблуда на 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.
|
Ceterum censeo Civitatem Profunda esse delendam
|
|
|
ermaxinc
|
|
September 06, 2017, 09:57:36 PM |
|
А где сам блокчейн лежать будет? Имею ввиду база транзакций... В кеш же вы не запихнете 120 гиг ))
Ваш кошелек кастрированный получится.
Update. Прочитал второй раз понял вас. Ну так через rpc можно и общаться с вашим веб кошельком (get json). Биржи же так и работают.
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
September 07, 2017, 05:09:23 AM |
|
Не поддержали разрабы. С формулировкой, что будут траблы с безопасностью в браузерах (( Ну ладно, может лет через десять им QT надоест наконец и они вернутся к этому вопросу.
Понятно, что не составляет труда сделать прокси для работы с RPC, но зачем нужна дополнительная прокладка, если можно прямо в клиенте это реализовать?
|
|
|
|
byteball
Member
Offline
Activity: 266
Merit: 42
The rising tide lifts all boats
|
|
September 07, 2017, 08:50:30 AM |
|
А где сам блокчейн лежать будет? Имею ввиду база транзакций... В кеш же вы не запихнете 120 гиг ))
Ваш кошелек кастрированный получится.
Update. Прочитал второй раз понял вас. Ну так через rpc можно и общаться с вашим веб кошельком (get json). Биржи же так и работают.
В случае Byteball, там есть два варианта: full and light wallet. Light доверяет полной ноде, так же как и Electrum. Про Copay не знаю, не пользовался, вероятно тоже есть Light вариант, так как нынешний блокчейн под 100 гигов. Если бы я делал аналог Copay для (например) лайткойна, или мультивалютный на его основе, я бы предложил два варианта, как у Byteball. Для мультивалютного не хранить блокчейны у себя особенно актуально.
|
Ceterum censeo Civitatem Profunda esse delendam
|
|
|
byteball
Member
Offline
Activity: 266
Merit: 42
The rising tide lifts all boats
|
|
September 07, 2017, 08:53:00 AM |
|
Понятно, что не составляет труда сделать прокси для работы с RPC, но зачем нужна дополнительная прокладка, если можно прямо в клиенте это реализовать?
Прокладка есть насколько я понимаю, называется Bitcore. У неё скорее всего даже UI с Bootstrap, как нынче популярно. Не уверен, что там есть все нужные Вам функции, но она OpenSource и написана на ECMAScript под платформу Node.JS, так что можно добавить нужное.
|
Ceterum censeo Civitatem Profunda esse delendam
|
|
|
devman
Newbie
Offline
Activity: 34
Merit: 0
|
|
September 07, 2017, 09:02:13 AM |
|
а чем jaxx не устраивает ?
|
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
September 07, 2017, 02:20:42 PM |
|
Я предлагал пользоваться встроенным в стандартный bitcoin core веб сервером. В случае прокладок типа nodejs, пользователь должен будет устанавливать у себя на комп интерпретатор, это отдельная программа. Зачем плодить сущности? Если бы встроили поддержку запросов GET прямо в кору, то больше ничего дополнительно устанавливать не надо было.
|
|
|
|
byteball
Member
Offline
Activity: 266
Merit: 42
The rising tide lifts all boats
|
|
September 07, 2017, 02:53:10 PM Last edit: September 07, 2017, 07:37:10 PM by byteball |
|
Я предлагал пользоваться встроенным в стандартный 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 вряд ли это делает.
|
Ceterum censeo Civitatem Profunda esse delendam
|
|
|
byteball
Member
Offline
Activity: 266
Merit: 42
The rising tide lifts all boats
|
|
September 07, 2017, 04:30:02 PM |
|
Чтобы избежать хранения блокчейна, я бы посмотрел в сторону Electrum, у него тоже есть JSON RPC. Можно добавить к нему веб сервер реализованный на Python, например с фреймворком Flask. Но нужно понять, что такой веб-клиент добавит к уже существующей функциональности Electrum? Опять же - я бы поостерегся доверить браузеру мой приватный ключ. Особенно под виндой. Если так, то получится что все операции с файлами кошельков и приватными ключами нужно будет делать через командную строку, или по-старинке через QT. А куда вводить passphrase? Если какая-нибудь зараза в броузере его перехватит и потом найдёт на диске приватные ключи, денежки перейдут хакерам.
Лучше уж запаковать WebKit + GTK + Python + модули Electrum в один binary executable, чтобы пользователям не нужно было устанавливать Python.
|
Ceterum censeo Civitatem Profunda esse delendam
|
|
|
yo-blin
Legendary
Offline
Activity: 2296
Merit: 1057
|
|
September 07, 2017, 07:17:09 PM |
|
|
Sign for rent, СОБИРАЮ МЕRIT! NVC: 4 YoBLincaRdAEG4v8tbZ4T26ZnKbT9SBsu
|
|
|
byteball
Member
Offline
Activity: 266
Merit: 42
The rising tide lifts all boats
|
|
September 07, 2017, 07:39:28 PM |
|
Кстати, ещё одной темой было бы сделать user-friendly, понятный дедушке Cold Storage. Инструкция Электрума как хранить на "холодном компьютере" всё же не для дилетантов...
|
Ceterum censeo Civitatem Profunda esse delendam
|
|
|
kzv (OP)
Legendary
Offline
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
|
|
September 08, 2017, 12:46:46 AM |
|
Я предлагал пользоваться встроенным в стандартный 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 вряд ли это делает. Ну вот, хоть кто-то понял, что я хотел: реализовать UI на статичных хтмл файлах. Из коробки кора этого не даёт и совершенно непонятно - почему?. Отсылка к безопасности мне кажется надуманной ибо вирусня легко обойдет CORS если захочет, а вот разработчикам это жизнь усложняет ибо нужно думать, как уговорить юзера поставить дополнительный софт, чтобы запустить прокси сервер для запросов к RPC (((
|
|
|
|
byteball
Member
Offline
Activity: 266
Merit: 42
The rising tide lifts all boats
|
|
September 09, 2017, 10:45:47 PM |
|
Ну вот, хоть кто-то понял, что я хотел: реализовать UI на статичных хтмл файлах. Из коробки кора этого не даёт и совершенно непонятно - почему?. Отсылка к безопасности мне кажется надуманной ибо вирусня легко обойдет CORS если захочет, а вот разработчикам это жизнь усложняет ибо нужно думать, как уговорить юзера поставить дополнительный софт, чтобы запустить прокси сервер для запросов к RPC (((
Я думаю, добавлять веб-сервер в bitcoind - неоправданный риск. Хотя вам и никто не запрещает отфоркать понравившуюся вам версию, и распространять с добавлениями. Но там вроде на C++ всё... Вам именно хочется, чтобы ваш кошелек был полной нодой, а не SPV? Есть три библиотеки на Python с примитивами, нужными для биткойн протокола, я полагаю, что из хотя бы одной из них можно слепить приличный полный клиент (без эзотерического функционала и пожалуйста, без SegWit!), и к нему прикрутить что угодно. Если SPV достаточно, можно просто взять Electrum и добавить туда, всё что хотите - он тоже на Python.
|
Ceterum censeo Civitatem Profunda esse delendam
|
|
|
|