amaclin
Legendary
Offline
Activity: 1260
Merit: 1019
|
|
October 12, 2015, 01:09:24 PM |
|
Дело в том, что хэширование делается два раза, как и для всех остальных сущностей (транзакций, заголовков блоков и так далее). При этом, на вход второму вызову функции нельзя передать просто результат первого, его надо передать в перевернутом виде. Т.е. sha256(sha256(x)) на практике выглядит как-то вроде sha256(swap(sha256(x))).
Чо-та ты гонишь про переворачивание. Вот так реализовывается на Qt sha256d inline explicit MyKey32 ( const quint8* buf, const int len ) { quint8 tmp [32]; resize ( 32 ); SHA256 ( SHA256 ( buf, len, tmp ), 32, ptr ( ) ); } Откуда тут переворачивание? Как раз то, что вычислилось в первом вызове - отдаем на вход второму вызову
|
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 12, 2015, 01:50:55 PM Last edit: October 12, 2015, 02:48:23 PM by Balthazar |
|
Дело в том, что хэширование делается два раза, как и для всех остальных сущностей (транзакций, заголовков блоков и так далее). При этом, на вход второму вызову функции нельзя передать просто результат первого, его надо передать в перевернутом виде. Т.е. sha256(sha256(x)) на практике выглядит как-то вроде sha256(swap(sha256(x))).
Чо-та ты гонишь про переворачивание. Вот так реализовывается на Qt sha256d inline explicit MyKey32 ( const quint8* buf, const int len ) { quint8 tmp [32]; resize ( 32 ); SHA256 ( SHA256 ( buf, len, tmp ), 32, ptr ( ) ); } Откуда тут переворачивание? Как раз то, что вычислилось в первом вызове - отдаем на вход второму вызову Это потому что функция сразу выдает и принимает байты в нужном порядке, и паддинг неполных сообщений тоже делает сама. То, что мы имеем сейчас - это, издержки конкретной реализации, которая вообще не была предназначена для подобного использования. По-хорошему, надо привести её вывод к нужному виду, а не ставить подпорку в виде промежуточной функции. Но для экспериментов пока сойдет и подпорка, а в дальнейшем такой свистопляски быть не должно уже не будет. P.S. Перечитал оригинальное сообщение и понял, что невольно ввел в заблуждение. Повторюсь, речь идет о небольшой кривизне в конкретной реализации, а не об алгоритме хэширования в целом. EDIT: Добавил ремарки в изначальное сообщение. EDIT2: Думаю, что сегодня или завтра этот вопрос уже будет решен.
|
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 12, 2015, 06:31:34 PM |
|
Думаю, что сегодня или завтра этот вопрос уже будет решен. Вопрос решен, попутно исправлено несколько мелочей. Однако же, заметной разницы в плане производительности по крайней мере на x86 точно не наблюдается. Видимо, с pshufb переворачивание шло достаточно быстро для того, чтобы всё упиралось в собственно вычисление sha256 хэша Сборки будут где-то ближе к полуночи.
|
|
|
|
Dimanoid
|
|
October 12, 2015, 07:11:12 PM Last edit: October 12, 2015, 07:22:34 PM by Dimanoid |
|
Попробовал собрать для x64.. но размеры NovacoinD и Novacoin-QT совпали до байта. А для MSVC не нужно что-нибудь поменять - как для других сборок makefile?
|
NVC: 5GRZSmMP6byiSsZXyJs9FomCo7cCF2ds7MSLFx15rnNygdKTdMCVms5d97ZFFc6PR7BfVqsXCTCSYtW HjHaHig6Q5RLbjv65q6d
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 12, 2015, 08:13:39 PM |
|
Собственно, в MSVC проекте никто ничего не менял, как я вижу. Так что если не вешается намеренно флаг USE_ASM, то должен собираться как и раньше без вопросов. Если добавили такой флаг в проект, то конечно же не соберет, потому как gnu специфичным моментам компилятор microsoft'а не обучен.
Попробую собрать, как доберусь до железки со студией.
|
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 12, 2015, 08:39:26 PM |
|
|
|
|
|
Dimanoid
|
|
October 12, 2015, 08:51:15 PM Last edit: October 12, 2015, 09:02:45 PM by Dimanoid |
|
Ну да, это одинарные (апострофы) А там где txid - я говорил, надо двойные ещё добавить.. как-то так, если это возможно: - "scaninput '{\"txid\":txid, \"vout\":[vout1, vout2, ..., voutN], \"difficulty\":difficulty, \"days\":days}'\n" + "scaninput '{\"txid\":\"txid\", \"vout\":[vout1, vout2, ..., voutN], \"difficulty\":difficulty, \"days\":days}'\n" Потому как сам хэш тоже в кавычки берётся, в отличие от значений других параметров.. а по справке этого не видно.
|
NVC: 5GRZSmMP6byiSsZXyJs9FomCo7cCF2ds7MSLFx15rnNygdKTdMCVms5d97ZFFc6PR7BfVqsXCTCSYtW HjHaHig6Q5RLbjv65q6d
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 12, 2015, 10:25:56 PM |
|
А там где txid - я говорил, надо двойные ещё добавить..
Сделано.
|
|
|
|
|
Dimanoid
|
|
October 13, 2015, 05:15:24 AM Last edit: October 13, 2015, 05:33:19 AM by Dimanoid |
|
Получается я в MSVC неоптимизированную версию собирал. Потестил последний билд: Реализация Железка Платформа Кол-во потоков Время SSE2+SSSE3 Core 2 Quad Q9550 2.833GHz Win64 4 5,5s
|
NVC: 5GRZSmMP6byiSsZXyJs9FomCo7cCF2ds7MSLFx15rnNygdKTdMCVms5d97ZFFc6PR7BfVqsXCTCSYtW HjHaHig6Q5RLbjv65q6d
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 13, 2015, 06:38:15 AM |
|
Вот это я называю приростом
|
|
|
|
in100
Legendary
Offline
Activity: 1200
Merit: 1021
|
|
October 13, 2015, 08:04:09 AM |
|
|
1BTCin1ooigFtHHD82qquqysdfxFZGdd8a | LTCin1oo9JhxcZu8ZK5HivqwvzAdQSaoua | 4NVCin1ooAd2XKoEfEhBn6tYNUHhojf4QS Блокчейн биткоина с его алгоритмом децентрализованного консенсуса на самом деле неэффективен, но неэффективность – это та цена, которую мы платим за свободу. © Andreas Antonopoulos
|
|
|
penek
Legendary
Offline
Activity: 976
Merit: 1003
|
|
October 13, 2015, 08:50:49 AM |
|
электрики озоровали... после чего вывалился один винт из рейда... надо думать теперь о замене... сам не могу понять почему не показывает, буду разбираться...
|
Факт — самая упрямая в мире вещь. © М.А.Булгаков «Мастер и Маргарита»
|
|
|
svost
|
|
October 13, 2015, 09:16:45 AM |
|
Получается я в MSVC неоптимизированную версию собирал. Потестил последний билд: Реализация Железка Платформа Кол-во потоков Время SSE2+SSSE3 Core 2 Quad Q9550 2.833GHz Win64 4 5,5s
date && ./novacoind scaninput '{"txid" : "bdd760e6d7d957f5d68ff1464307db69e35be9c5e0cdfa21649276563226023b", "days" : 365}' && date arm -mfpu=neon odroid U3 1.7GHz arm ubuntu 4 21s
|
4NovacoinyLfMCjTzqDXcaGNTrykfDBNkP
|
|
|
7Pay.in
|
|
October 13, 2015, 10:28:54 AM Last edit: October 13, 2015, 11:03:46 AM by 7Pay.in |
|
просьба потестить обмен новакоинов на что-нибудь и наоборот - лайтов например на новы (правда их щас нет на сервисе) https://7pay.in/to_coinвижу кто-то 12 новы поменял на биткоины я комиссию поуменьшил до 1% Тестим. Баланс сайта в новах обновляется почти сразу или после 1 подтверждения. Битки идут. Только вместо 0.05 --> 0.0499. Мне не принципиально, но правильно сразу закладывать все сборы, ведь могут менять на определённые цели конкретную сумму. А сумма заказывалась именно 0.05. добавил комиссию сети в расчет и сообщение об этом тоесть оплачивать придется чуть больше сразу чтобы получить точную сумму криптовалюты на выходе при этом комиссия сервиса снижена значительно если брать в расчет проскальзывание курса на бирже и скорость ввода-вывода у бирж, то на 7Pay.in возможно даже выгоднее обменивать новакоины чем на бирже - правда резервы маленькие пока
|
|
|
|
sawa
Legendary
Offline
Activity: 1308
Merit: 1011
|
|
October 13, 2015, 03:06:25 PM |
|
|
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 13, 2015, 04:18:24 PM Last edit: October 13, 2015, 05:58:59 PM by Balthazar |
|
Да, многовато сломали-починили в последние пару дней, исправлю как доберусь до терминала. Между тем, рекомендуется пока отключить UPNP до выхода новых сборок. Причина: http://talosintel.com/reports/TALOS-2015-0035/Особой опасности в плане потенциальной кражи закрытых ключей не представляет, т.к. клиент собирается с полным набором опций для усложнения эксплуатации таких уязвимостей. Однако, это может позволить злоумышленнику положить клиенты, находящиеся в одной с ним локальной сети, запустив модифицированный UPNP сервер. Это не касается тех, кто собирал клиент самостоятельно, и компоновал его динамически с предоставляемой дистрибутивом библиотекой. В таких случаях все починится само с очередным апдейтом дебиана/убунты или кто что использует. P.S. Опция upnp=0 в параметрах или снятие галочки UPNP в настройках. P.P.S. Учитывая несильно большую полезность автоматического проброса портов в наше время, лично я считаю целесообразным удаление зависимости от этой библиотеки, либо вынос пробрасывания порта в отдельную утилиту.
|
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 13, 2015, 05:17:02 PM |
|
При сборке ругается makefile.unix:247: *** missing separator. Останов. Исправлено.
|
|
|
|
zaraza
Newbie
Offline
Activity: 7
Merit: 0
|
|
October 13, 2015, 06:45:58 PM |
|
Привет. Всем. Подскажите пожалуйста как запустить на ресбери пи2 novacoind как демон. Либо ссылки скиньте.
|
|
|
|
Balthazar (OP)
Legendary
Offline
Activity: 3108
Merit: 1358
|
|
October 13, 2015, 08:41:07 PM Last edit: October 13, 2015, 08:54:26 PM by Balthazar |
|
Привет. Всем. Подскажите пожалуйста как запустить на ресбери пи2 novacoind как демон. Либо ссылки скиньте.
Можно запускать по-разному, я делаю это так. 1. Устанавливаем пакет с демоном. $ sudo dpkg -i novacoind_0.5.4~ab2d2546-1_armhf.deb $ sudo apt-get -f install 2 Добавляем скрипт запуска: $ sudo cp novacoind /etc/init.d $ sudo chmod +x /etc/init.d/novacoind $ sudo update-rc.d novacoind defaults 3. Создаем новую учетную запись, под которой клиент будет работать. $ sudo useradd -m -d /opt/novacoin novacoin $ sudo usermod -s /bin/bash novacoin 4. Создаем конфигурационный файл, записываем в него минимально необходимые клиенту параметры и устанавливаем права доступа. $ sudo mkdir /opt/novacoin/.novacoin $ sudo bash -c 'echo rpcuser=novacoin > /opt/novacoin/.novacoin/novacoin.conf' $ sudo bash -c 'echo rpcpassword=ТУТ_ПАРОЛЬ_ОБЯЗАТЕЛЬНО_НОРМАЛЬНЫЙ > /opt/novacoin/.novacoin/novacoin.conf' $ sudo chown -R novacoin:novacoin /opt/novacoin $ sudo chmod 600 /opt/novacoin/.novacoin/novacoin.conf 5. Пробуем запустить демон: $ sudo /etc/init.d/novacoind start Если всё прошло нормально, то под пользователем novacoin можно будет делать к демону запросы и, разумеется, получать на них ответы. cubie@Cubian:~/deb/0.5.4$ sudo su - novacoin [sudo]password for cubie: ************ novacoin@Cubian:~$ novacoind getdifficulty { "proof-of-work" : 3640.84567887, "proof-of-stake" : 2.05306382, "search-interval" : 1 } novacoin@Cubian:~$ Запускаться же демон будет автоматически, при загрузке системы.
|
|
|
|
|