Search content
Sort by

Showing 20 of 57 results by Ninazu
Post
Topic
Board Альтернативные криптовалюты
Re: [ANN] [ICO] [WGR] | Wagerr | Блокчейн-ставки
by
Ninazu
on 08/01/2020, 10:55:18 UTC
Кто может подсказать откуда берутся коэффициенты, лимиты, события? Могу ли я добавить своё событие? Изменение коэффициентов записывается в блокчейн? Как можно связать транакцию в блокчейне с конкретной ставкой из реального мира?
Post
Topic
Board Майнеры
Re: HashFlare.io - Облачный майнинг
by
Ninazu
on 04/09/2018, 12:19:07 UTC
Если контракты закончились, то остаток менее 0.01 выводят по запросу и без верификации

Тебе удалось? Как сформировать запрос? У меня осталось 0.007 BTC там
Окончание SHA256 контракта пишет что 31.08.2018
Post
Topic
Board Альтернативные криптовалюты
Re: [IOTA] Крипто-токен для "интернета вещей" (Internet-of-Things)
by
Ninazu
on 04/01/2018, 16:27:17 UTC
Народ помоги разобраться с этим дерьмом

Суть такова, скидывал на локальный кошелёк, еще летом.
https://thetangle.org/address/MPSCEZSEDPLXCPUKGJXEPLTQVKCUVEDDLFHDLYPPFCGSEPZANVAJHPVDGSLAJGOFRTLLRGBHRLYU9BRSF
Одна входящая транзакция, но при этом на балансе в эксплорере показывает 0.

Если правильно понял там произошел резервый snapshot, погуглив и поискав в файлах снапшота за сентябрь и октябрь

Нашел свой кошелёк в обеих
Сентябрь
Quote
{"address":"MPSCEZSEDPLXCPUKGJXEPLTQVKCUVEDDLFHDLYPPFCGSEPZANVAJHPVDGSLAJGOFRTLLRGBHRLYU9BR SF","balance":1980539722,"category":"CURL_UNUSED"},
Октябрь
Quote
MPSCEZSEDPLXCPUKGJXEPLTQVKCUVEDDLFHDLYPPFCGSEPZANVAJHPVDGSLAJGOFRTLLRGBHRLYU9BR SF; 1980539722; CURL_NOT_TRANSITIONED

Вроде это уже хорошо

На всякий случай проверил через balance-finder c ключем p (Pre-Transitioned)

Который мне вернул на первом же адресе
Quote
Got a hit! MPSCEZSEDPLXCPUKGJXEPLTQVKCUVEDDLFHDLYPPFCGSEPZANVAJHPVDGSLAJGOFRTLLRGBHRLYU9BR SF has a balance of 1980.539722 Mi which was found in the snapshot taken on October 23. The reason was CURL_NOT_TRANSITIONED


Значит всё правильно Seed правильный и соответсвует кошельку

Как понимаю нужно юзать Reclaim Tool?

Под каким Seed заходить в кошелек под старым или под новым? Или это не играет роли. Главное указать Old Seed соответсвующий кошельку MPSCEZS....?
А новый seed также генерируется случайно, и нужно будет просто зайти под ним, после подтверждения транзакции?

И как посмотреть на какой адрес ушли средства после reclain?
Post
Topic
Board Announcements (Altcoins)
Re: IOTA
by
Ninazu
on 12/12/2017, 10:55:46 UTC
Was hoping to find some neighbors so that I can setup a full node. Please send list in PM
Post
Topic
Board Announcements (Altcoins)
Re: IOTA
by
Ninazu
on 12/12/2017, 10:51:13 UTC
Why is there no Telegram Group for IOTA?

@iotatangle
Post
Topic
Board Кодеры
Re: Что подписывается в транзакции?
by
Ninazu
on 15/11/2017, 18:56:24 UTC
Как понимаю за это отвечает BIP 143.

Нашел в примерах
https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki#native-p2wpkh

Все что до hash preimage понятно

Code:
   outpoint:     ef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a01000000
    scriptCode:   1976a9141d0f172a0ecb48aee1be1f2687d2963ae33f71a188ac
    amount:       0046c32300000000
    nSequence:    ffffffff

А вот тут вот не ясно:

Почему берется первый индекс входа? для outpoint и  nSequence. Что с нулевым входом делается?
Code:
outpoint = vin[1][txid] + vin[1][index]

Что такое scriptCode
Code:
scriptCode:   1976a9141d0f172a0ecb48aee1be1f2687d2963ae33f71a188ac

Откуда взялась сумма?
Code:
amount:       0046c32300000000


Post
Topic
Board Кодеры
Что подписывается в транзакции?
by
Ninazu
on 15/11/2017, 12:30:05 UTC
Что-то не получается проверить сигнатуру транзакции.

Допустим есть транзакция
http://learnmeabitcoin.com/browser/transaction/json.php?txid=c586389e5e4b3acb9d6c8be1c19ae8ab2795397633176f5a6442a261bbdefc3a

У которой публичный ключ
Quote
039d25ab79f41f75ceaf882411fd41fa670a4c672c23ffaf0e361a969cde0692e8

А сигнатура
Quote
30450221008604ef8f6d8afa892dee0f31259b6ce02dd70c545cfcfed8148179971876c54a02207 6d771d6e91bed212783c9b06e0de600fab2d518fad6f15a2b191d7fbd262a3e01

Что используется в качестве дайджеста для верификации?

scriptSig текущей транзакции?
scriptPubKey выхода предыдущей транзакции?
PubKey?
Всё тело транзакции?

Что-то не одно из значений не проходит валидацию. Они претерпевают каких-то модификаций? Хешируются?

Судя из параметров signrawtransaction там еще разные варианты есть
       "ALL"
       "NONE"
       "SINGLE"
       "ALL|ANYONECANPAY"
       "NONE|ANYONECANPAY"
       "SINGLE|ANYONECANPAY"

В чём преймущество каждого из них, где они применяются, а где нет.
Post
Topic
Board Кодеры
Re: Как работает пул изнутри?
by
Ninazu
on 08/11/2017, 09:28:02 UTC
Ковыряясь в поисках исходников пула. Наткнулся на такое решение, вроде даже работает.
https://github.com/bonesoul/CoiniumServ

Мультимонетный пул. Нужно только немного подправить исходники, а то там оно лезет на Poloniex который поменял подход к апи и добавил капчу, поэтому ошибки срутся
Post
Topic
Board Кодеры
Re: Как работает пул изнутри?
by
Ninazu
on 08/11/2017, 09:25:43 UTC
Спасибо за ответы. Для себя я это нарисовал так

Есть маска блока допустим 00000000FFFFFF.... тоесть нужно найти блок в хеше которого будут первые 4 нулевых байта. Но это сложно, поэтому пул раздает воркерам задачу искать хеши удовлетворяющих маску 0000FFFFFFFFFF... (достаточно первых 2-х нулей в хеше вместо 4-х) тоесть на два порядка проще найти такие. Есть вероятность что одна из таких шар будет решением блока.  Тогда награда за блок делится между всеми участниками которые слали шары.  И так как в блок вписывается кошелёк пула, воркер не может найти решение и сам им воспользоваться
Post
Topic
Board Кодеры
Как работает пул изнутри?
by
Ninazu
on 03/11/2017, 17:10:08 UTC
Меня интересует как пул собирает из шар общую картинку, и как проверяет каждую шару на валидность.

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

Что представляет из себя шара с точки зрения запрос/ответ и их структура.
Как пул валидирует шары? (ведь если бы не было валидации то воркеры могли слать что угодно и получать прибыль даже не перебирая счётчик)
У шар есть TTL какой-то? если допустим воркер не отдает решение шары в какой-то период времени, то по идее его работу пул должен передать кому-то другому
Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 19/09/2017, 17:01:35 UTC
Quote
Тогда берем сегвит-данные, проверяем что хэш (не помню какой - вроде просто SHA256) от последнего
элемента будет именно таким как надо

Да, обычный SHA256. У вас хорошая память, что вы всё это в голове держите.

До OP_CHECKMULTISIG всё заработо с первого раза) Вау!
https://play.golang.org/p/NIjm1yO4YO

Вернусь с коммандировки, будет мне домашнее задание посчитать мультисигну. И разобраться как формируется сам scriptSig.


Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 15/09/2017, 19:56:29 UTC
Quote
Сегвит (версии v0) добавляет два стандартных выхода (не помню как называются)
и еще может быть завернут в P2SH

Про завернут внутрь P2SH, это вы про P2WSH реализацию?
Рассмотрим транзакцию.
http://learnmeabitcoin.com/browser/transaction/json.php?txid=06c543e4f1f2ff6448e2c370078ac80b1d1ab324aa9dbef8db2202313a70c643

Почему первый элемент txinwitness пустой?
Дальше идут две подписи для каждого из ключей (в данном случае мультиподпись из 2-х ключей)
И вконце и дет pubKeyScript который формируется как MultiSigMOfN

Верно?
Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 12/09/2017, 19:46:19 UTC
Quote
Мы немного перепрыгнули BIP-16. Ладно.

Да. Это я на радостях))

Как я понял до BIP16 использовались
P2PK и P2PKH

BIP 16 подарил нам
P2SH
Что в свою очередь очен изменило архитектуру и добавило плюшки вроде MUTLISIG.

А сам SegWit уже в
P2WPK, P2WSH
Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 12/09/2017, 14:35:47 UTC
Да я уже понял что опкоды
01-4B отвечают за копирование данных, указанной длины в стек.

Ура наконец добрались до txinwitness данных. Как они загружаются в стек и выполняются предположу что по той же схеме что и скрипты. Но зачем они, какова их суть?
Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 12/09/2017, 09:52:04 UTC
Спасибо. Так более ясная картинка становится с каждым сообщением.

Quote
Потом Сатоши допёр почему так нельзя делать.

Минусы в избыточности данных? Или что-то с безопасностью?

Quote
Мы к сегвиту уже перешли. Рассматриваем как видит сегвит-транзакции обычная старая нода.

Ура. Но все равно у меня вопрос.

Если для новой транзакции
scriptSig что-то делает(главное чтоб не исключение бросал), а после этого scriptPubkey добавляет в стек пустой массив и хеш скрипта, и после этого нет больше никакого опкода. То верхним элементом стека будет хеш скрипта.

scriptHash -> [] -> scriptSigResult(если он есть)

Транзакция будет считаться валидной, но майнеры её не включат из-за полиси по размеру стека
Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 11/09/2017, 20:41:45 UTC
Quote
Не-не-не
Вы неправильно поняли мою запись.
OP_DUP OP_HASH160
OP_EQUALVERIFY OP_CHECKSIG - в этом скрипте
значит
"положить 20 байтов в стек" то есть здесь пять операций делается

Разберу оптимистический сценарий

1. Заносим scriptSig в стэк
pubKey->signature

2. Дублируем верхний элемент стека
pubKey->pubKey->signature

3. Находим хеш публичного ключа
pubKeyHash->pubKey->signature

4. Помещаем хеш адреса в стек
addressHash->pubKeyHash->pubKey->signature

5. Сравниваем addressHash и pubKeyHash (функция OP_EQUAL)
true->pubKey->signature

6. Если валидация не прошла помечаем транзакцию как невалидную (процедура OP_VERIFY)
pubKey->signature

7. Проверяем подпись OP_CHECKSIG
true

Quote
Повторяю вопрос. Каким должен быть scriptSig чтобы после выполнения сперва scriptSig а потом этого scriptPubKey
на вершине стека было бы ненулевое число? Ответ - одним словом.

Что-то тут неясно. Во первых scriptSig - это ж набор параметров, почему он должен выполнятся? Во вторых чтоб на выходе scriptPubKey было ненулевое число, сценарий должен дойти до конца и вернуть true. А это значит:

1. scriptSig должен состоять из публичного ключа и сигнатуры
2. сигнатура должна соответсвовать дайджесту
3. еще и полиси правило про один ненулевой элемент не мешало бы соблюсти.

Как на это ответить одним словом?

Причем тут OP_0 и scripthash?


Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 11/09/2017, 15:06:48 UTC
Прекрасно. Половина дела сделана. Базу вы как парсите? Дергаете клиент за API
или самостоятельно открываете  читаете blk-файлы?
За API, до blk формата файлов я еще не дошел. Но предположу что там тоже levelDb и на выходе будет просто сырые данные, которые после преобразования приймут структуру подобную json дереву из примеров.
http://learnmeabitcoin.com/browser/transaction/06c543e4f1f2ff6448e2c370078ac80b1d1ab324aa9dbef8db2202313a70c643

Задание на проверку навыков. Что если scriptSig состоит не из двух, а из трех и более элементов?
последний - это публичный ключ, предпоследний - валидная сигнатура, а остальные - какие-либо
другие? Что будет в стеке после выполнения? Будет ли транзакция валидной? Подтвердят ли её майнеры?

Так как значения забираются из стека в обратной последовательности, и функция почистит два элемента сигнатуру и публичный ключ, то в стеке останутся остальные элементы. А первый операнд будет заменён на результат функции. Предположу что да, транзакция будет валидной при условии соответсвия адреса и сигнатуры

И второе задание на проверку навыков: а если в scriptSig  будет одна или ноль пуш-операций?
На какой команде произойдет сбой выполнения?

По идее на первом обращении к функции, так как количество аргументов отличается от задекларированного. Ну или как вариант если аргументы динамические то OP_EQUALVERIFY так как до OP_CHECKSIG  не дойдёт очередь.

Каким должен быть scriptSig
чтобы после последовательного выполнения scriptSig и scriptPubkey наверху стека
оказалось бы ненулевое значение.

OP_0 - добавляет пустой массив в стек.
Значит scripthash любой отличный от нуля. Ненулевое значение в стеке будет если scriptPubkey вернёт не ноль.
Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 11/09/2017, 10:17:49 UTC
Пока будете разбираться - как раз и поймете как выглядят транзакции и
что такое bip16 и segwit

Хорошо знаю PHP и PureBasic
Немного хуже Go

Все адреса из блокчейна вытащил) Вначале пробовал в MySQL на PHP, но получилось сильно долго и много места. Более компактно и быстро получилось с levelDb и хранением адресов в бинарном виде.

Да именно такую задачу я перед собой и ставлю. Разобраться и попробовать реализовать segWit самому. Но для того чтоб сделать, нужно вначале понять как это сделать)

Я ведь правильно понимаю? Что раньше скрипт разблокировки включался в выход транзакции. Сейчас там содержится только хеш Меркля (P2SH), само дерево представляет из себя возможные вариации скрипта (для мультиподписи или блокировки по времени к примеру). Дальше в следующей транзакции на вход добавляется cамо тело скрипта который сработал, и используя рутовый хеш из предыдущего выхода, можно проверить находился ли этот скрипт где-то в хешируемом дереве. Но это всё в теории из того что я смог понять. И тут у меня ступор, ведь на практике если взять segWit транзакцию

http://learnmeabitcoin.com/browser/transaction/json.php?txid=06c543e4f1f2ff6448e2c370078ac80b1d1ab324aa9dbef8db2202313a70c643

То scriptSig - это тело скрипта, или очередной хеш? И что такое txinwitness

P.S.
Как оно работает брал отсюда
https://bits.media/news/sleduyushchiy-etap-po-uluchsheniyu-bitkoina-nazyvaetsya-mast/



Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 09/09/2017, 13:44:42 UTC
Ладно, смысл в том, что пока вы не поймете в чем суть BIP-16 вы о сегвите не поймёте
Я вас только запутаю

К сожалению мой уровень английского крайне плох также как и знание С++.  Поэтому я больше путаюсь в переводах. А все что вы мне говорите мне понятно. Спасибо вам за это. Пробовал разобраться самостоятельно в исходниках, но там черт ногу сломит. Вся логика размазана по абстрактным слоям
Post
Topic
Board Кодеры
Re: Помогите разобраться с SegWit
by
Ninazu
on 08/09/2017, 10:03:31 UTC
Quote
Я тебе советую не перепрыгивать через ступеньку а сперва разобраться что такое BIP16
то есть что было до внедрения этого изменения протокола, в чем заключается это изменение
и что стало лучше по сравнению с оригинальным концептом. Потом сегвит становится понятнее -
это дальнейшее развитие той же идеи что старый клиент проверяет тупо хэш, а новый клиент
кроме этого делает некоторые магические пассы.

Посмотрел BIP16

у входа scriptSig это результат подписи публичного ключа с опкодом подписи, приватным ключом подтверждающим владение кошельком
Я это увидел где-то так
Code:
scriptSig = sign(pubkey + OP_CHECKSIG, privKey),

А у выхода scriptPubKey это (в самом простом случае без мультиподписи)
Code:
scriptPubKey =  OP_HASH160 + hash(pubkey + OP_CHECKSIG) + OP_EQUAL

Хотя я вижу и другие сценарии у выхода вроде
Code:
scriptPubKey =  OP_DUP + OP_HASH160 + hash(pubkey + OP_CHECKSIG) + OP_EQUALVERIFY + OP_CHECKSIG

Если правильно понял суть, то подпись рассчитывается не сразу

Как пример старой транзакции брал эту
http://learnmeabitcoin.com/browser/transaction/json.php?txid=7a160081db721c1f915d9d5bec8a66fb4b52583188d2dab91ef37264d3534b12

Как еще более старая транзакция до BIP16
http://learnmeabitcoin.com/browser/transaction/json.php?txid=d52e6e7fbc1b5d5bc9177947c0ab276f261a761266aeba69eae413e80055dc57

Преобразование адреса в хеш проверял тут
http://bitcoinvalued.com/tools.php

Quote
3QVitrqkY1ddvWqVhCwAZteERFfv2MZ2hz -> FA281A32566066CC8BCA5E9FCD4051C66C690279 -> 1PohyKMJz7KFqM94a7Ga9GHJGjPCWD6FyP
1pGcRWf6XVg3z7susY1nGMMfnhv3M3Zsf -> 08F094D5EAF2F1C52E572F17828EFE12E4C52398 -> 1pGcRWf6XVg3z7susY1nGMMfnhv3M3Zsf