С помощью libbitcoin«S программа голосующий, я скачал все базы данных Bitcoin сети в PostgreSQL для тех, кто заинтересован.
Вот дамп базы данных Bitcoin (все блоки, транзакция, скрипты, ...): http://libbitcoin.org/bitcoin-sql.tar.bz2
|
20 августа 2011, 1:13:28 AM | # 1 |
Сообщения: 1232
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru С помощью libbitcoin«S программа голосующий, я скачал все базы данных Bitcoin сети в PostgreSQL для тех, кто заинтересован.
Вот дамп базы данных Bitcoin (все блоки, транзакция, скрипты, ...): http://libbitcoin.org/bitcoin-sql.tar.bz2 |
20 августа 2011, 1:15:26 AM | # 2 |
Сообщения: 1134
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
|
20 августа 2011, 1:17:51 AM | # 3 |
Сообщения: 1232
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
|
20 августа 2011, 4:49:11 AM | # 4 |
Сообщения: 1232
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
Я только что совершил Postgres функции для расчета трудности:
Код: DROP DOMAIN IF EXISTS target_type CASCADE; CREATE DOMAIN target_type как числовые (68, 0) ПРОВЕРКА (ЗНАЧЕНИЕ <= 26959535291011309493156476344723991336010898738574164086137773096960 и значение >= 0); CREATE OR REPLACE FUNCTION extract_target (bits_head INT, bits_body INT) ВОЗВРАТ target_type КАК $$ НАЧАТЬ ВОЗВРАТ bits_body * (2 ^ (8 * (CAST (bits_head А.С. target_type) - 3))); КОНЕЦ; $$ ЯЗЫК plpgsql; CREATE OR REPLACE FUNCTION трудности (bits_head INT, INT bits_body) ВОЗВРАТ target_type AS $$ НАЧАТЬ ВОЗВРАТ extract_target (CAST (x'1d 'AS INT), CAST (x'00ffff' AS INT)) / extract_target (bits_head, bits_body); КОНЕЦ; $$ ЯЗЫК plpgsql; Так что если вы хотите, чтобы рассчитать общую сложность блока цепи вы можете сделать: SELECT SUM (сложность (bits_head, bits_body)) FROM блоков WHERE глубина IS NOT NULL; Общая сложность blockchain является: 20077745448 Вы можете играть с этим синтаксисом, чтобы выбрать определенное количество блоков: SELECT SUM (сложность (bits_head, bits_body)) из блоков, где глубина > 400 и глубина <= 500; .и т.д. получайте удовольствие |
23 октября 2011, 2:20:46 AM | # 5 |
Сообщения: 1232
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
обновленный дамп выше:
- более эффективный формат БД - 150256 блоки - быстрее (использует BYTEA для хэшей, уплотненные скрипты) |
30 ноября 2011, 6:51:24 PM | # 6 |
Сообщения: 154
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
libbitcoin.org, кажется недостижимым?
|
30 ноября 2011, 6:59:02 PM | # 7 |
Сообщения: 142
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
Любой чувствую, как портирование это MySQL? Не каждый использует PostgreSQL. Чем больше форматов, доступных тем лучше.
|
21 июня 2012, 11:51:46 AM | # 8 |
Сообщения: 1134
цитировать ответ |
Re: Bitcoin отвала сети базы данных в PostgreSQL (скачать ссылка внутри)
Любой чувствую, как портирование это MySQL? Не каждый использует PostgreSQL. Чем больше форматов, доступных тем лучше. Я работаю над ней для моей библиотеки Perl. Это довольно сильно отличается от подхода genjix, хотя. В частности, я хочу использовать триггеры, чтобы создать структуру цепи дерева. Во-первых, я хотел бы использовать такие идеи, как вот этот, но вскоре я понял, что с длинной цепью это будет стоить много памяти. Например, с 200000 прикованных блоков, таблица дерево будет иметь 40 миллиардов записей. По крайней мере, 64 байт в записи, которая была бы около 1 Ро, который глупо. Так что я до сих пор думаю о лучших структур, так как я не совсем понимаю Genjix годов. Код: CREATE TABLE блоки ( хэш-символ (32) двоичный первичный ключ, версия целое число, hashPrev символ (32) двоичный не нулевой, hashMerkleRoot символ (32), не двоичная нуль, NTime целое число без знака не равно нулю, Nbits целое число без знака не равно нулю, nNonce целое число без знака не равно нулю, ключ (hashMerkleRoot), ключ (hashPrev) ); CREATE TABLE операций ( хэш-символ (32) двоичный первичный ключ, версия целое число, Locktime целое число без знака, ); CREATE TABLE tx_in ( хэш-символ (32) двоичной, prevout_hash символ (32) двоичной, prevout_n целое число без знака, scriptSig блоб, Последовательность целое число без знака, Первичный ключ (хэш, prevout_hash, prevout_n), Ключ (хэш) ) CREATE TABLE tx_out ( tx_out_id целое число без знака первичного ключа auto_increment, хэш-символ (32) двоичной, целое значение, scriptPubKey блоб, Ключ (хэш) ); CREATE TABLE Merkle_trees ( Корневой символ (32) двоичная не нулевые, гашиш символ (32) двоичные, IDX целое число без знака не равно нулю, Первичный ключ (корень, IDX), ключ (корень) ); CREATE TABLE block_tree ( Лист символ (32) двоичные, Узел символ (32) двоичной, Длина целое число без знака, ПЕРВИЧНЫЙ КЛЮЧ (лист, узел) ); CREATE VIEW view_blocks AS ВЫБРАТЬ HEX (хэш) в качестве хэша, версия, HEX (hashPrev) в качестве hashPrev, HEX (hashMerkleRoot) в качестве hashMerkleRoot, NTime, Nbits, nNonce ОТ блоков; CREATE VIEW orphan_blocks AS Выберите.* ОТ блокирует LEFT JOIN блоки б ON a.hashPrev = b.hash ГДЕ b.hash IS NULL; CREATE VIEW view_orphan_blocks AS ВЫБОР view_blocks. * ОТ view_blocks INNER JOIN orphan_blocks ПО view_blocks.hash = HEX (orphan_blocks.hash); CREATE VIEW view_Merkle_trees AS ВЫБОР НЕХ (корень) как корень, HEX (хэш) в качестве хэша, IDX ОТ Merkle_trees; CREATE VIEW view_block_tree AS ВЫБОР НЕХ (лист), как лист, HEX (узел) в качестве узла, длина ОТ block_tree; CREATE VIEW chain_length AS SELECT, лист, длина от block_tree КУДА листа = узел; CREATE VIEW chain_weight AS SELECT, лист, СУММА (работы (целевой (b.nBits))) как вес ОТ block_tree INNER JOIN блоки ON block_tree.node = blocks.hash GROUP BY листа; CREATE VIEW longest_chain AS SELECT, лист, макс (длина) как длина ОТ chain_length; CREATE VIEW heaviest_chain AS ВЫБРАТЬ лист, макс (вес), как вес ОТ chain_weight; CREATE целевой функции (биты с плавающей точкой) ВОЗВРАТ РЕАЛ DETERMINISTIC ВОЗВРАТ моды (биты, 0x1000000) * пау (256, биты Дива 0x1000000 - 3); CREATE TRIGGER update_block_tree ПОСЛЕ INSERT ON блоков ДЛЯ КАЖДОЙ ROW НАЧАТЬ INSERT INTO block_tree (лист, узел, длина) ВЫБОР new.hash, new.hash, длина + 1 ОТ block_tree КУДА листьев = new.hashPrev; UPDATE block_tree SET лист = new.hash КУДА лист = new.hashPrev; КОНЕЦ; # ВИМ: фт = MySQL |