Author

Topic: Идея хранения Blockchain (Read 2482 times)

sr. member
Activity: 292
Merit: 251
November 07, 2013, 06:09:15 PM
#13
Вообще-то незачем, и биткоину начиная с 0.8 не нужно его хранить, достаточно только лишь непотраченных инпутов. В пользовательских инсталляциях блоки на данный момент используются лишь для раздачи и сервисных целей (для работы функций типа gettransaction).
Не нашел как это реализовано. Скачивать все Blockchain нет желания.
legendary
Activity: 3108
Merit: 1359
November 07, 2013, 02:09:09 PM
#12
Ну и я не понимаю зачем хранить весь лог операций вечно. Хватит только сумм на конечных адресах.
Вообще-то незачем, и биткоину начиная с 0.8 не нужно его хранить, достаточно только лишь непотраченных инпутов. В пользовательских инсталляциях блоки на данный момент используются лишь для раздачи и сервисных целей (для работы функций типа gettransaction).
sr. member
Activity: 292
Merit: 251
October 30, 2013, 12:05:49 AM
#11
Electrum еще сырой. Например у меня не работает через сокс. Обещают в следующем релизе.
Установить сервер не вышло, правда пробовал очень давно. Там все далеко не юзерфрендли. А если народ будет юзать в основном публичные серверные части, электрум будет легко вывести из игры.
Ну и возможно полностью веб клиент не имеющий доступа к закрытому ключу был бы также интересен.
Постараюсь точнее описать идею. Допустим нужно совершить транзакцию. Серверная часть генерирует уникальный запрос на совершение операции, клиент генерирует ответ при помощи закрытого ключа. Серевер получает только сгенерированный ответ. Таким образом ключ можно хранить даже на машине без доступа к инету.
Ну и я не понимаю зачем хранить весь лог операций вечно. Хватит только сумм на конечных адресах.
legendary
Activity: 1120
Merit: 1069
October 29, 2013, 02:44:17 PM
#10
Блоки должны быть на машине с широким каналом, находящейся онлайн 24/7. Т.Е. на сервере. Локальное хранение блоков, это издевательство.
Ключ должен быть на локальной машине.
Нужно исключить возможность коннекта множества клиентских частей к одной серверной, понятно почему Smiley
ИМХО, по истечению определенного времени стоит удалять историю операций.
Можно например так:
Публичный ключ на сервере, закрытый на локальной машине. И генерировать код для каждой операции. + вебморда для кошелька.
Вы только что описали схему работы Electrum.

Сервер Electrum: Модифицированный сервер bitcoin + abe, занимается помимо основных дел bitcoind, принимает от клиентов их созданные транзакции и отвечает на вопрос - сколько монет на этом адресе и нет ли новых транзакций с ним.
Клиент Electrum: хранит приватные ключи у себя (в дополнение к этому интересный способ их генерации на базе единого числа seed, который может быьт представлен словами, т.е. запомнил 12 слов и все, получил доступ ко всем будущим транзакциям и адресам на своем кошельке), занимается тем что фрмирует транзакции и отсылает на сервер.
Плюс сюда пытаются накрутить модульность, какие то плагины, например для работы с публичными метками адресов (хранятся децентрализовано) и т.п.
sr. member
Activity: 292
Merit: 251
October 29, 2013, 12:23:27 PM
#9
Блоки должны быть на машине с широким каналом, находящейся онлайн 24/7. Т.Е. на сервере. Локальное хранение блоков, это издевательство.
Ключ должен быть на локальной машине.
Нужно исключить возможность коннекта множества клиентских частей к одной серверной, понятно почему Smiley
ИМХО, по истечению определенного времени стоит удалять историю операций.
Можно например так:
Публичный ключ на сервере, закрытый на локальной машине. И генерировать код для каждой операции. + вебморда для кошелька.
legendary
Activity: 1334
Merit: 1004
TTM
October 15, 2013, 09:51:54 AM
#8
Обычному пользователю даже скачивать 2-3гб блоков будет лениво. Он скорее поставит легковесный клиент.
Сама идея интересная (принцип Freenet), но для безопасности лучше хранить 100%.
newbie
Activity: 19
Merit: 0
October 14, 2013, 04:55:34 PM
#7
Умный математик с самого начало просчитал все так чтоб работало.
Если б можно было "избыточность" сделать меньшей то сделал бы.
full member
Activity: 138
Merit: 100
August 03, 2013, 02:51:50 PM
#6
а я думаю основная проблема тут в том что сломать систему можно будет взломав лишь часть одинаковых блоков хранящихся лишь у одной четверти пользователей...
короче на взлом системы понадобиться больше 50% от 25% мощностей пользователей, для того чтобы записать в нужную часть блоков фиктивные транзакции.
legendary
Activity: 1120
Merit: 1069
July 20, 2013, 02:14:40 AM
#5
Непомерная избыточность, хранить полную цепь блоков на каждом компьютере. А что, если на каждом ПК хранить не всю цепь, а лишь её треть по принципу дисков в RAID5? Я не силён в жёстких дисках и системах хранения, но на пальцах это будет выглядеть так: Каждый компьютер получает рандомный номер от 0 до 3 и скачивает лишь часть цепочки блоков. Чтоб его данные можно было проверить, данные хранятся с избыточностью по принципу RAID5, где вместо хардов выступают отдельные компьютеры. На каждый компьютер будет скачиваться лишь часть цепочки блоков с избыточностью, а все компьютеры будут синхронизироваться между собой с соседями. Или бред?
1. такой метод подходит ТОЛЬКО для обычных клиентов, но не майнеров (пулов и соло), у которых любая миллисекундная задержка (они будут копиться на каждую транзакцию не загруженную локально) - повышение шанса орфана.
2. хранить можно случайные блоки, количеством - доля, обратно пропорциональная количеству клиентов (ну там от логарифма или еще как), готовых технологий миллион, тот же DHT
3. овчинка выделки не стоит

p.s. лучше развивать альтернативные клиенты (отдельно для майнинга отдельно для кошелька), и параллельно решать проблему концентрации мощностей у пулов майнинга...
newbie
Activity: 42
Merit: 0
July 19, 2013, 08:01:45 PM
#4
имел SHA5Sum

Чтобы хакеры вместо SHA1 могли подбирать SHA5Sum, да?
hero member
Activity: 639
Merit: 500
July 19, 2013, 07:56:44 PM
#3

Можно конечено заявить, что фиксирование количества типов узлов K = 4
позволяет проще решить проблему доверия сторонним узлам. Такое заявление следует обосновать.
Число 4 взято скорее для примера или упрощения, не суть важно. Но число кусков должно быть меньше числа узлов, чтоб каждый кусок многократно дублировался (и обязательно имел SHA5Sum).
newbie
Activity: 42
Merit: 0
July 19, 2013, 07:23:24 PM
#2
Я бы даже наоборот расчитывал - чем больше сеть, тем на большее количество кусков можно поделить (при фиксированном заданном времени доступа).
Допустим, нам нужна некоторая вероятность успешного считывания (нахождения заданного количества узлов нужного типа в онлайне), тогда надо:
1) определить это количество узлов (допустим N1)
2) разделить всю цепочку на N1 типов узлов и получить K = Total/N1 кусков  (а не 4), здесь Total - общее число блоков
Идея в том, что K может быть гораздо больше 4 и масштабироваться вместе с сетью.
Так же можно учитывать узлы разных видов (используя N1, N2, N3 и т.д. по количеству видов - сервер 7x24, десктоп, мобила)

Можно конечено заявить, что фиксирование количества типов узлов K = 4
позволяет проще решить проблему доверия сторонним узлам. Такое заявление следует обосновать.
hero member
Activity: 639
Merit: 500
July 19, 2013, 04:42:13 PM
#1
Непомерная избыточность, хранить полную цепь блоков на каждом компьютере. А что, если на каждом ПК хранить не всю цепь, а лишь её треть по принципу дисков в RAID5? Я не силён в жёстких дисках и системах хранения, но на пальцах это будет выглядеть так: Каждый компьютер получает рандомный номер от 0 до 3 и скачивает лишь часть цепочки блоков. Чтоб его данные можно было проверить, данные хранятся с избыточностью по принципу RAID5, где вместо хардов выступают отдельные компьютеры. На каждый компьютер будет скачиваться лишь часть цепочки блоков с избыточностью, а все компьютеры будут синхронизироваться между собой с соседями. Или бред?
Jump to: