Bitcoin Forum
April 23, 2024, 12:28:43 PM *
News: Latest Bitcoin Core release: 27.0 [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 62 63 64 65 66 »
  Print  
Author Topic: Lightning Network  (Read 722020 times)
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


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

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

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

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

Posts: 1713875323

View Profile Personal Message (Offline)

Ignore
1713875323
Reply with quote  #2

1713875323
Report to moderator
1713875323
Hero Member
*
Offline Offline

Posts: 1713875323

View Profile Personal Message (Offline)

Ignore
1713875323
Reply with quote  #2

1713875323
Report to moderator
You get merit points when someone likes your post enough to give you some. And for every 2 merit points you receive, you can send 1 merit point to someone else!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713875323
Hero Member
*
Offline Offline

Posts: 1713875323

View Profile Personal Message (Offline)

Ignore
1713875323
Reply with quote  #2

1713875323
Report to moderator
1713875323
Hero Member
*
Offline Offline

Posts: 1713875323

View Profile Personal Message (Offline)

Ignore
1713875323
Reply with quote  #2

1713875323
Report to moderator
1713875323
Hero Member
*
Offline Offline

Posts: 1713875323

View Profile Personal Message (Offline)

Ignore
1713875323
Reply with quote  #2

1713875323
Report to moderator
A-Bolt
Legendary
*
Offline Offline

Activity: 2311
Merit: 2297


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

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

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

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

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

Activity: 770
Merit: 305


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

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

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

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

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


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


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

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



OpenTrade - Open Source Cryptocurrency Exchange
QWeB
Sr. Member
****
Offline Offline

Activity: 402
Merit: 275



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

Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не смогут установить друг с другом 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: 770
Merit: 305


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

Еще раз: если ни у одной стороны обмена нет выделенного ип адреса, то они не
смогут установить друг с другом 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: 2311
Merit: 2297


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

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

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

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

Activity: 402
Merit: 275



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

Кто ж с этим спорит?
Я спорю (смотри выше).
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: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


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

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

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

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

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

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

OpenTrade - Open Source Cryptocurrency Exchange
QWeB
Sr. Member
****
Offline Offline

Activity: 402
Merit: 275



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

Но если прикрутить динамик днс, то создастся видимость прямого подключения. Хотя это тоже через прокладку будет, но это прокладка на уровне 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: 770
Merit: 305


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

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

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

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


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

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

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

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

OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


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

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: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


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


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


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

OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


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

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

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

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

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

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

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

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


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

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

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

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

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

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

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

так что ли?

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


OpenTrade - Open Source Cryptocurrency Exchange
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


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

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

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

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


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

Activity: 1468
Merit: 1102


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

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

Правда, рассматривается создание канала. Создание маршрута из нескольких каналов надо смотреть в другом месте.
amaclin1
Sr. Member
****
Offline Offline

Activity: 770
Merit: 305


View Profile
February 28, 2019, 03:19:43 PM
 #759

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

Мы просто путаемся, потому что иногда под словом Алиса подразумеваем человека Алису,
а иногда её ноду с софтом, которая является вершиной в графе LN.

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

Activity: 402
Merit: 275



View Profile
February 28, 2019, 04:02:59 PM
Last edit: February 28, 2019, 07:45:59 PM by QWeB
Merited by chimk (5)
 #760

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

Сначала происходит обмен информацией о каналах в сети (задолго до платежа). Затем источник платежа на основе его данных о получателе строит сквозной путь (платёжный канал) и отправляет платежное сообщение первой ноде маршрута, с которой у него есть канал. Такое платёжное сообщение начинает передаваться между нодами по цепочке, определённой отправителем. Все ноды, через которые проходит платёж, последовательно блокируют свои каналы. Такое движение платежа к получателю можно сравнить с движением лидера (ионизированного канала) реальной молнии к земле.

Если во время прохождения платежа, какой-то из платёжных каналов на маршруте оказывается недоступен, источник платежа (не дожидаясь разрушения платёжного канала по таймауту) отправляет отмену платежа по всей цепочке, строит новый маршрут и повторяет всё заново. У реальной молнии такие неудачные попытки можно сравнить с ветвлением лидера (светящиеся отростки).

После успешного достижения платежа до получателя, происходит снятие блокировки по всему платёжному каналу (с обратной стороны, от получателя). Это можно сравнить непосредственно с самой молнией.



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

https://tippin.me/@LeningradLnd
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 62 63 64 65 66 »
  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!