Pages:
Author

Topic: Lightning Network - page 30. (Read 916350 times)

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
February 28, 2019, 09:54:11 AM
Тогда все то же самое но не для А и Б, а для А и Ч.
Тут все просто.

Если Алиса открыла канал на Чарли, а Чарли упал в оффлайн,
то проводить лайтнинг-платежи Алиса не может, если, конечно у нее не открыты ещё
с кем-то каналы. Всё.

Канал на безвременно почившего Чарли Алиса может закрыть честно, получив через
какой-то промежуток времени свою долю из канала.

Quote
Ей нужно окружение из сидеров с реальными внешними ип адресами. Сидеры работают
как прокси. Дальше все то же самое: проксям надо проверять транзакции на валидность, а
контрагентов на онлайность. Иначе сидеров заспамят - к гадалке не ходить.
Не мешайте в кучу установку TCP/IP соединения и протокол лайтнинга.
Сперва мы устанавливаем соединение, потом по нему отправляем данные.
Если не можем установить соединение - считаем что комп контрагента выключен.

При установке соединения никакие промежуточные узлы не дрочатся.

То есть алгоритм такой:
А: эй сидеры, у кого из вас открыт канал с Б
Ч: у меня открыт
А: установи ка Ч канал со мной
Ч: установил
А: вот биткоин, передай его Б
Ч: передал.

так что ли?

А если в окружении Алисы не найдется Чарли, то типа все?

sr. member
Activity: 770
Merit: 305
February 28, 2019, 09:29:01 AM
Тогда все то же самое но не для А и Б, а для А и Ч.
Тут все просто.

Если Алиса открыла канал на Чарли, а Чарли упал в оффлайн,
то проводить лайтнинг-платежи Алиса не может, если, конечно у нее не открыты ещё
с кем-то каналы. Всё.

Канал на безвременно почившего Чарли Алиса может закрыть честно, получив через
какой-то промежуток времени свою долю из канала.

Quote
Ей нужно окружение из сидеров с реальными внешними ип адресами. Сидеры работают
как прокси. Дальше все то же самое: проксям надо проверять транзакции на валидность, а
контрагентов на онлайность. Иначе сидеров заспамят - к гадалке не ходить.
Не мешайте в кучу установку TCP/IP соединения и протокол лайтнинга.
Сперва мы устанавливаем соединение, потом по нему отправляем данные.
Если не можем установить соединение - считаем что комп контрагента выключен.

При установке соединения никакие промежуточные узлы не дрочатся.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
February 28, 2019, 09:25:04 AM

Допустим, Алиса имеет канал до Чарли, а Чарли до Боба.


Тогда все то же самое но не для А и Б, а для А и Ч.
Алиса не может подцепиться к Чарли напрямую в 99% случаев. Ей нужно окружение из сидеров с реальными внешними ип адресами. Сидеры работают как прокси. Дальше все то же самое: проксям надо проверять транзакции на валидность, а контрагентов на онлайность. Иначе сидеров заспамят - к гадалке не ходить.
sr. member
Activity: 770
Merit: 305
February 28, 2019, 09:16:04 AM
2. Алиса посылает Бобу 0.000001 биткоин, но Боб в оффлайне. Какие действия у проксирующих нод?
Сперва Алиса строит маршрут до Боба
Допустим, Алиса имеет канал до Чарли, а Чарли до Боба.
Алиса обращается к Чарли: "эй, Бобу хочу отправить 1 биткойн"
Чарли смотрит - находится ли Боб в онлайне, есть ли открытый канал до Боба и хватает ли в нем средств.
Если все выполняется - Чарли с Бобом меняют состояние канала между ними - то есть Чарли пересылает Бобу биткойн.
После этого Чарли предъявляет Алисе: "зырь, я отправил Чарли биткойн, значит теперь и в нашем с тобой канале
один биткойн перетек на мою сторону"

Если Боб в оффлайне - то Чарли не может сам изменить состояние канала и просто
отвечает Алисе, что платеж провести нельзя. (По идее может, но это чревато)

Это моё вольное изложение процесса. Всё может быть совсем не так.

Смысл в том, что транзакция не просто гуляет по сети. У нее, как у TCP-пакета есть маршрут
от нода к ноде. И задрочить можно только ноды на этом маршруте.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
February 28, 2019, 09:01:54 AM
П.С.С я не понимаю о каком трафике вы говорите (платёжном или служебном(gossip messages)) когда хотите спамить, поэтому, к сожалению, не могу аргументированно поучаствовать в основном обсуждении.

Я не знаком с протоколом, поэтому не знаю структуру трафика.
Рассуждаю из общих знаний о п2п сетях. В частности о сети биткоина.
1. Алиса хочет послать Бобу 1 биткоин, но ни у Алисы ни у Боба нет внешнего ип адреса
2. Алиса формирует транзакцию и посылает ее своему окружению: тем у кого есть выделенный адрес
3. Транзакция проходит по п2п цепочке нод и доходит до Боба.

Теперь про лайтинг
1. В лайтинге обязательно должен быть описанный выше механизм помимо прямого соединения, потому что андроид это хорошо, а динамик днс умеют настраивать примерно 0.0% юзеров.
2. Алиса посылает Бобу 0.000001 биткоин, но Боб в оффлайне. Какие действия у проксирующих нод?
По логике они должны друг другу посылать эту транзакцию, пока не кончится какой-нибудь ттл (время жизни).
Вопрос1: удовлетворится ли Алиса тем, что ее транзакция исчезла в небытие или она попробует послать транзакцию еще 100500 раз через каждые полсекунды?
Вопрос2: что будут делать прокси-ноды с транзакциями Алисы? Они их будут забывать или где-то запоминать? Как ноды защищаются от ддоса?
Вопрос3: если Боба не существует в принципе, то прокси-ноды смогут об этом как-то узнать?
sr. member
Activity: 770
Merit: 305
February 28, 2019, 07:53:24 AM
В лайтинге ноды ничего проверить не могут, значит если они служат в качестве
проксей, то сеть можно заспамить всяким мусором практически бесплатно.
А они сегодня служат в качестве проксей? И действительно ли они не могут проверить
трафик в этом режиме? Я не знаю ответ на эти вопросы, да в целом и ддосить сеть -
занятие бессмысленное на мой взгляд.
sr. member
Activity: 403
Merit: 275
February 28, 2019, 07:52:41 AM
Но если прикрутить динамик днс, то создастся видимость прямого подключения. Хотя это тоже через прокладку будет, но это прокладка на уровне tcp.

Опять позвольте не согласиться. Соединение будет напрямую: ddns просто вернёт (или не вернёт) IP адрес, а дальше уже прямое соединение, "без посредников и прокладок". Однако, посредников на уровне tcp и без ddns хватает.

П.С. было время полчаса, погуглил. Сейчас настройки ноды не поддерживают доменные имена, только IP. Но заявка на GitHub на добавление такой возможности есть.
П.С.С я не понимаю о каком трафике вы говорите (платёжном или служебном(gossip messages)) когда хотите спамить, поэтому, к сожалению, не могу аргументированно поучаствовать в основном обсуждении.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
February 28, 2019, 07:42:22 AM
Вот так же можно и с лайтнинг-сетью взаимодействовать, если
есть возможность хоть с кем-то соединиться - дальше уже пиринговая сеть передаст
запрос.

Дак вот и я о том же.
Есть два варианта:
1. Прямое соединение
2. Соединение через прокладку.

Первый вариант возможен далеко не всегда. Но если прикрутить динамик днс, то создастся видимость прямого подключения. Хотя это тоже через прокладку будет, но это прокладка на уровне tcp.
Второй вариант самый простой и надежный кода прокладкой является пиринговая сеть. Но чтобы пиринговая сеть работала как прокси, в ее протокол должны быть встроены команды прокси. Это уровень выше чем tcp. Это более высокий уровень протокола пиринговой сети.

Так вот, в биткоине каждая нода может работать как прокси - это заложено в протоколе. Но биткоин не заспамить потому что если посылать нодам всякую инвалидную чушь, то тебя быстро забанят ибо ноды проверяют все что пересылают другим.

В лайтинге ноды ничего проверить не могут, значит если они служат в качестве проксей, то сеть можно заспамить всяким мусором практически бесплатно.
sr. member
Activity: 403
Merit: 275
February 28, 2019, 06:36:37 AM
Кто ж с этим спорит?
Я спорю (смотри выше).
Dynamic DNS уже давно встраивается в роутеры. Текущая реализация лайтнинг не поддерживает решение напрямую, но при небольшой доработке (настройке сетевого оборудования на обоих сторонах канала), вполне может заработать при отсутствии у нод постоянных IP адресов.

Здесь товарищ описывает настройку ноды без внешнего IP (https://tgraph.io/Gajd-po-zapusku-i-monetizacii-nody-Bitcoin-Lightning-10-02?tg_rhash=6f689bcee5d75f):
Code:
Примечание: если ваш интернет-провайдер предоставляет вам статический IP-адрес, вы можете перейти прямо в часть создания сертификата.В противном случае вам придется создать динамическую запись DNS (запросите данные у провайдера).
legendary
Activity: 2317
Merit: 2318
February 28, 2019, 06:31:23 AM
Создать односторонний канал с полноценной нодой и отправлять по нему транзакции можно, не имея выделенного IP, что и используется в андроид-кошельках

Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не смогут установить друг с другом TCP соединение. Никак.

Ясен пень! Кто ж с этим спорит? Поэтому я выше и написал, что андроид-кошелёк создаёт односторонний канал с полноценной LN-нодой. Под полноценной нодой, я имею в виду ноду, имеющую белый IP и способную принимать входящие TCP-соединения на какой-то там порт.
sr. member
Activity: 770
Merit: 305
February 28, 2019, 06:28:54 AM
Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не
смогут установить друг с другом TCP соединение. Никак. Потому что вот тут:
https://pubs.opengroup.org/onlinepubs/7908799/xns/connect.html
второй аргумент это тот самый ип адрес.
Ну хватит вам упорствовать не по делу, а?
Как клиенты на телефонах (да и из дома мы все сидим за NAT) взаимодействуют
с биткойн-сетью? Вот так же можно и с лайтнинг-сетью взаимодействовать, если
есть возможность хоть с кем-то соединиться - дальше уже пиринговая сеть передаст
запрос.

Но!

Если у вас лично нет открытого канала - то вы не можете просто так скачать
клиента из гугль-плея и сразу отправить платеж в магазин за стикер. Вы сперва
создаете канал (по сути дела вносите авансовый платеж), а потом этот аванс
выюзываете постепенно.


Теперь едем дальше. Может нодой лайтнинг-сети выступать устройство, которое
заходит в интернет время от времени? Теоретически, да. Только при этом возникают
проблемы:

- мы не контролируем то, что другая сторона канала не закрыла канал читерским образом пока мы были в офлайне
- никто не может создать канал с нами пока мы в оффлайне, да и в онлайне не достучатся
- через ноду не проходит трафик, многие заводят ноды в расчете на копеечную прибыль от маршрутизации
- большой объем информации для синхронизации данных и задержки с этим связанные

sr. member
Activity: 403
Merit: 275
February 28, 2019, 06:27:07 AM
Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не смогут установить друг с другом TCP соединение. Никак.
Мой ответ не относится напрямую к лайтнинг нетворк и касается утверждения про невозможность установки TCP соединений. Технически это возможно с помощью сервиса DynDNS.
П.С. Это не работает для абонентов 4G мобильных сетей.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
February 28, 2019, 06:16:55 AM

Создать односторонний канал с полноценной нодой и отправлять по нему транзакции можно, не имея выделенного IP, что и используется в андроид-кошельках

Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не смогут установить друг с другом TCP соединение. Никак. Потому что вот тут: https://pubs.opengroup.org/onlinepubs/7908799/xns/connect.html
второй аргумент это тот самый ип адрес.


sr. member
Activity: 770
Merit: 305
February 28, 2019, 05:54:49 AM
А SPV Bitcoin кошелёк в сочетании с лайтнинг-нодой разве не подойдёт для Андроида?
Это не у меня надо спрашивать, а у реальных пользователей.

Я повторю - я рассуждаю с позиции "как оно внутри должно быть устроено".
А какие сверху прикрутили интерфейсы для взаимодействия с живыми людьми - это отдельный вопрос.
legendary
Activity: 2317
Merit: 2318
February 28, 2019, 04:18:51 AM
Чисто логически: прямое tcp соединение для пересылки информации о канале возможно далеко не всегда. Как минимум у одной стороны для этого должен быть выделенный ип адрес. Тут народ с лайтингом через андроид работает - какой там в жопу выделенный ип может быть на телефоне?

Создать односторонний канал с полноценной нодой и отправлять по нему транзакции можно, не имея выделенного IP, что и используется в андроид-кошельках (например, Eclair).  Принимать в таком режиме платежи не получится.

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

А SPV Bitcoin кошелёк в сочетании с лайтнинг-нодой разве не подойдёт для Андроида?
sr. member
Activity: 770
Merit: 305
February 28, 2019, 04:09:39 AM
Чисто логически: прямое tcp соединение для пересылки информации о канале возможно далеко не всегда. Как минимум у одной стороны для этого должен быть выделенный ип адрес. Тут народ с лайтингом через андроид работает - какой там в жопу выделенный ип может быть на телефоне?
Что? На андроиде уже подняли лайтнинг-ноды в сочетании с фулл-нодой биткойна, которая
лайтнинг-ноде в принципе необходима? Я отстал от жизни.

Давайте различать софт лайтнинг-ноды (функционирует 24/7) как часть лайтнинг-сети и софт
клиента, который цепляется к сети для того чтобы инициировать какое-то действие.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
February 28, 2019, 03:57:27 AM
Чисто логически: прямое tcp соединение для пересылки информации о канале возможно далеко не всегда. Как минимум у одной стороны для этого должен быть выделенный ип адрес. Тут народ с лайтингом через андроид работает - какой там в жопу выделенный ип может быть на телефоне?
Единственный надежный способ передачи информации в п2п сетях - передача ее через промежуточные ноды.
Я подозреваю. что в андроид версии промежуточной нодой служит сервер создателя приложения, к которому подключаются все клиенты. То есть никакого п2п там в помине нет, а есть обычная архитектура типа "звезда". Упадет один сервак - упадут все.
sr. member
Activity: 770
Merit: 305
February 28, 2019, 02:47:14 AM
Ну ладно, у меня и у магазина хранится состояние канала. Понял.
Теперь как происходит обмен состояниями? Я так понимаю, что можно напрямую, но чаще через п2п релеи?
Промежуточные узлы никак не проверяют валидность того, что они релеят, следовательно заспамить сеть - как два пальца?

Канал - это одно ребро в графе. Зачем тут приплетать какие-то еще дополнительные релеи?
Для процессинга лайтнинга надо чтобы обе ноды находились в онлайне. Устанавливается
ли там tcp-соединение - это надо смотреть в коде, скорее всего да, устанавливается. Хотя
сетевой уровень нас не должен интересовать если мы рассматриваем уровень взаимодействия
приложений. Ну по крайней мере определимся с терминологией: канал - это ребро в графе,
маршрут - это путь по ребрам из одной вершины графа в другую. На одном конце маршрута
находитесь вы, на другом конце - магазин в котором вы что-то покупаете. Для оплаты, разумеется,
не требуется устанавливать канал с магазином, если у вас есть маршрут до магазина.

Конечно, если одна нода в России, другая нода в Америке и между ними установлен канал,
то вы можете засрать своим IP-трафиком трансатлантический кабель Smiley Но опять же - никого
в мире кроме ваших хостеров и аплинков это не побеспокоит.

NB: Я могу ошибаться. Мои представления о лайтнинге основаны скорее из чтения форумов
и размышлений "как оно должно быть построено", а не на основе того, что я разбирался в
чужих сорцах "как это сделали конкретные разработчики".
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
February 28, 2019, 02:35:25 AM
Ну ладно, у меня и у магазина хранится состояние канала. Понял.
Теперь как происходит обмен состояниями? Я так понимаю, что можно напрямую, но чаще через п2п релеи?
Промежуточные узлы никак не проверяют валидность того, что они релеят, следовательно заспамить сеть - как два пальца?

legendary
Activity: 1330
Merit: 1681
February 27, 2019, 06:53:56 AM
Сегодня пришло в новостях, 12 кошельков для LN

https://telegra.ph/12-luchshih-koshelkov-dlya-Bitcoin-Lighting-Network-02-26

Quote
В отличие от других кошельков Lightning, Casa Node - это физическое устройство, которое позволяет вам по собственному желанию запустить свой собственный bitcoin-узел. Узлы Casa, предназначены для использования в офисах и домах, и предоставляют возможность самонастраивания для пользователей, заинтересованных в персональном узле.

https://store.casa/lightning-node/

Продают как физическое устройство, за 300 баксов. Принимается биткоин, эфир, лайт

И очень много кошельков делается именно под смартфоны.
Pages:
Jump to: