Bitcoin Forum
December 03, 2020, 04:21:07 AM *
News: Latest Bitcoin Core release: 0.20.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 »
  Print  
Author Topic: Lightning Network  (Read 209524 times)
amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 07:47:14 AM
 #741

Ну ладно, у меня и у магазина хранится состояние канала. Понял.
Теперь как происходит обмен состояниями? Я так понимаю, что можно напрямую, но чаще через п2п релеи?
Промежуточные узлы никак не проверяют валидность того, что они релеят, следовательно заспамить сеть - как два пальца?

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

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

NB: Я могу ошибаться. Мои представления о лайтнинге основаны скорее из чтения форумов
и размышлений "как оно должно быть построено", а не на основе того, что я разбирался в
чужих сорцах "как это сделали конкретные разработчики".

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1606969267
Hero Member
*
Offline Offline

Posts: 1606969267

View Profile Personal Message (Offline)

Ignore
1606969267
Reply with quote  #2

1606969267
Report to moderator
1606969267
Hero Member
*
Offline Offline

Posts: 1606969267

View Profile Personal Message (Offline)

Ignore
1606969267
Reply with quote  #2

1606969267
Report to moderator
kzv
Legendary
*
Offline Offline

Activity: 1624
Merit: 1226

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
February 28, 2019, 08:57:27 AM
 #742

Чисто логически: прямое tcp соединение для пересылки информации о канале возможно далеко не всегда. Как минимум у одной стороны для этого должен быть выделенный ип адрес. Тут народ с лайтингом через андроид работает - какой там в жопу выделенный ип может быть на телефоне?
Единственный надежный способ передачи информации в п2п сетях - передача ее через промежуточные ноды.
Я подозреваю. что в андроид версии промежуточной нодой служит сервер создателя приложения, к которому подключаются все клиенты. То есть никакого п2п там в помине нет, а есть обычная архитектура типа "звезда". Упадет один сервак - упадут все.

amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 09:09:39 AM
 #743

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

Давайте различать софт лайтнинг-ноды (функционирует 24/7) как часть лайтнинг-сети и софт
клиента, который цепляется к сети для того чтобы инициировать какое-то действие.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
A-Bolt
Legendary
*
Offline Offline

Activity: 1742
Merit: 1494


View Profile
February 28, 2019, 09:18:51 AM
 #744

Чисто логически: прямое tcp соединение для пересылки информации о канале возможно далеко не всегда. Как минимум у одной стороны для этого должен быть выделенный ип адрес. Тут народ с лайтингом через андроид работает - какой там в жопу выделенный ип может быть на телефоне?

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

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

А SPV Bitcoin кошелёк в сочетании с лайтнинг-нодой разве не подойдёт для Андроида?
amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 10:54:49 AM
 #745

А SPV Bitcoin кошелёк в сочетании с лайтнинг-нодой разве не подойдёт для Андроида?
Это не у меня надо спрашивать, а у реальных пользователей.

Я повторю - я рассуждаю с позиции "как оно внутри должно быть устроено".
А какие сверху прикрутили интерфейсы для взаимодействия с живыми людьми - это отдельный вопрос.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
kzv
Legendary
*
Offline Offline

Activity: 1624
Merit: 1226

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
February 28, 2019, 11:16:55 AM
 #746


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

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



QWeB
Sr. Member
****
Offline Offline

Activity: 389
Merit: 260



View Profile
February 28, 2019, 11:27:07 AM
 #747

Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не смогут установить друг с другом TCP соединение. Никак.
Мой ответ не относится напрямую к лайтнинг нетворк и касается утверждения про невозможность установки TCP соединений. Технически это возможно с помощью сервиса DynDNS.
П.С. Это не работает для абонентов 4G мобильных сетей.

Full LN node LENINGRAD[LND]: 0338f87cb05016c9427de7872192615f9313d622db1a88f6c2594625ffd0b2d270@146.120.67.44:9735

https://tippin.me/@LeningradLnd
amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 11:28:54 AM
 #748

Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не
смогут установить друг с другом TCP соединение. Никак. Потому что вот тут:
https://pubs.opengroup.org/onlinepubs/7908799/xns/connect.html
второй аргумент это тот самый ип адрес.
Ну хватит вам упорствовать не по делу, а?
Как клиенты на телефонах (да и из дома мы все сидим за NAT) взаимодействуют
с биткойн-сетью? Вот так же можно и с лайтнинг-сетью взаимодействовать, если
есть возможность хоть с кем-то соединиться - дальше уже пиринговая сеть передаст
запрос.

Но!

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


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

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


Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
A-Bolt
Legendary
*
Offline Offline

Activity: 1742
Merit: 1494


View Profile
February 28, 2019, 11:31:23 AM
 #749

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

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

Ясен пень! Кто ж с этим спорит? Поэтому я выше и написал, что андроид-кошелёк создаёт односторонний канал с полноценной LN-нодой. Под полноценной нодой, я имею в виду ноду, имеющую белый IP и способную принимать входящие TCP-соединения на какой-то там порт.
QWeB
Sr. Member
****
Offline Offline

Activity: 389
Merit: 260



View Profile
February 28, 2019, 11:36:37 AM
Last edit: February 28, 2019, 12:30:43 PM by QWeB
 #750

Кто ж с этим спорит?
Я спорю (смотри выше).
Dynamic DNS уже давно встраивается в роутеры. Текущая реализация лайтнинг не поддерживает решение напрямую, но при небольшой доработке (настройке сетевого оборудования на обоих сторонах канала), вполне может заработать при отсутствии у нод постоянных IP адресов.

Здесь товарищ описывает настройку ноды без внешнего IP (https://tgraph.io/Gajd-po-zapusku-i-monetizacii-nody-Bitcoin-Lightning-10-02?tg_rhash=6f689bcee5d75f):
Code:
Примечание: если ваш интернет-провайдер предоставляет вам статический IP-адрес, вы можете перейти прямо в часть создания сертификата.В противном случае вам придется создать динамическую запись DNS (запросите данные у провайдера).

Full LN node LENINGRAD[LND]: 0338f87cb05016c9427de7872192615f9313d622db1a88f6c2594625ffd0b2d270@146.120.67.44:9735

https://tippin.me/@LeningradLnd
kzv
Legendary
*
Offline Offline

Activity: 1624
Merit: 1226

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
February 28, 2019, 12:42:22 PM
 #751

Вот так же можно и с лайтнинг-сетью взаимодействовать, если
есть возможность хоть с кем-то соединиться - дальше уже пиринговая сеть передаст
запрос.

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

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

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

В лайтинге ноды ничего проверить не могут, значит если они служат в качестве проксей, то сеть можно заспамить всяким мусором практически бесплатно.

QWeB
Sr. Member
****
Offline Offline

Activity: 389
Merit: 260



View Profile
February 28, 2019, 12:52:41 PM
Last edit: February 28, 2019, 01:03:14 PM by QWeB
 #752

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

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

П.С. было время полчаса, погуглил. Сейчас настройки ноды не поддерживают доменные имена, только IP. Но заявка на GitHub на добавление такой возможности есть.
П.С.С я не понимаю о каком трафике вы говорите (платёжном или служебном(gossip messages)) когда хотите спамить, поэтому, к сожалению, не могу аргументированно поучаствовать в основном обсуждении.

Full LN node LENINGRAD[LND]: 0338f87cb05016c9427de7872192615f9313d622db1a88f6c2594625ffd0b2d270@146.120.67.44:9735

https://tippin.me/@LeningradLnd
amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 12:53:24 PM
 #753

В лайтинге ноды ничего проверить не могут, значит если они служат в качестве
проксей, то сеть можно заспамить всяким мусором практически бесплатно.
А они сегодня служат в качестве проксей? И действительно ли они не могут проверить
трафик в этом режиме? Я не знаю ответ на эти вопросы, да в целом и ддосить сеть -
занятие бессмысленное на мой взгляд.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
kzv
Legendary
*
Offline Offline

Activity: 1624
Merit: 1226

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
February 28, 2019, 02:01:54 PM
Merited by chimk (4)
 #754

П.С.С я не понимаю о каком трафике вы говорите (платёжном или служебном(gossip messages)) когда хотите спамить, поэтому, к сожалению, не могу аргументированно поучаствовать в основном обсуждении.

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

Теперь про лайтинг
1. В лайтинге обязательно должен быть описанный выше механизм помимо прямого соединения, потому что андроид это хорошо, а динамик днс умеют настраивать примерно 0.0% юзеров.
2. Алиса посылает Бобу 0.000001 биткоин, но Боб в оффлайне. Какие действия у проксирующих нод?
По логике они должны друг другу посылать эту транзакцию, пока не кончится какой-нибудь ттл (время жизни).
Вопрос1: удовлетворится ли Алиса тем, что ее транзакция исчезла в небытие или она попробует послать транзакцию еще 100500 раз через каждые полсекунды?
Вопрос2: что будут делать прокси-ноды с транзакциями Алисы? Они их будут забывать или где-то запоминать? Как ноды защищаются от ддоса?
Вопрос3: если Боба не существует в принципе, то прокси-ноды смогут об этом как-то узнать?

amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 02:16:04 PM
 #755

2. Алиса посылает Бобу 0.000001 биткоин, но Боб в оффлайне. Какие действия у проксирующих нод?
Сперва Алиса строит маршрут до Боба
Допустим, Алиса имеет канал до Чарли, а Чарли до Боба.
Алиса обращается к Чарли: "эй, Бобу хочу отправить 1 биткойн"
Чарли смотрит - находится ли Боб в онлайне, есть ли открытый канал до Боба и хватает ли в нем средств.
Если все выполняется - Чарли с Бобом меняют состояние канала между ними - то есть Чарли пересылает Бобу биткойн.
После этого Чарли предъявляет Алисе: "зырь, я отправил Чарли биткойн, значит теперь и в нашем с тобой канале
один биткойн перетек на мою сторону"

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

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

Смысл в том, что транзакция не просто гуляет по сети. У нее, как у TCP-пакета есть маршрут
от нода к ноде. И задрочить можно только ноды на этом маршруте.

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
kzv
Legendary
*
Offline Offline

Activity: 1624
Merit: 1226

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
February 28, 2019, 02:25:04 PM
 #756


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


Тогда все то же самое но не для А и Б, а для А и Ч.
Алиса не может подцепиться к Чарли напрямую в 99% случаев. Ей нужно окружение из сидеров с реальными внешними ип адресами. Сидеры работают как прокси. Дальше все то же самое: проксям надо проверять транзакции на валидность, а контрагентов на онлайность. Иначе сидеров заспамят - к гадалке не ходить.

amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 02:29:01 PM
 #757

Тогда все то же самое но не для А и Б, а для А и Ч.
Тут все просто.

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

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

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

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

Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
kzv
Legendary
*
Offline Offline

Activity: 1624
Merit: 1226

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
February 28, 2019, 02:54:11 PM
 #758

Тогда все то же самое но не для А и Б, а для А и Ч.
Тут все просто.

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

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

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

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

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

так что ли?

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


amaclin1
Sr. Member
****
Offline Offline

Activity: 686
Merit: 271


View Profile
February 28, 2019, 02:58:24 PM
 #759

А: установи ка Ч канал со мной

Блеать. Каналы - это адреса с ненулевым балансом в обычной биткойн-сети.
Их устанавливает Алиса ручками заранее. Нода не открывает каналы в процессе работы.

Quote
А: эй сидеры, у кого из вас открыт канал с Б
Какие в пизду сидеры? Алиса знает публичный ключ Чарли - единственным с кем у нее
открыт канал, допустим. Задача - установить TCP/IP соединение с кем-то и проверить, что тот,
кто выдает себя за Чарли действительно им является. Эта задача решается без всяких "сидеров"


Bitcoin SV GUI client for Windows and Linux
https://github.com/AlisterMaclin/bitcoin-sv/releases
GGUL
Legendary
*
Offline Offline

Activity: 1433
Merit: 1091


View Profile
February 28, 2019, 03:13:32 PM
 #760

Тут есть вроде бы неплохое описание LN:
https://bitnovosti.com/2016/06/22/understanding-the-lightning-network/

Правда, рассматривается создание канала. Создание маршрута из нескольких каналов надо смотреть в другом месте.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [38] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!