Реализация InstantX

smmarat

Member
Mar 1, 2016
55
48
58
Хочу реализовать InstantX-платежи в своем кошельке. Порылся на dashpay.atlassian.net, нашёл много user's guide и всякого разного но не нашёл какого-нибудь описания протокола (вроде https://en.bitcoin.it/wiki/Protocol_documentation). Идеально было бы найти что-то вроде SDK или хотя бы примеры кода. Если такого нет, согласен на любые советы и пояснения "на пальцах", могу по результату сделать описание для следующих кто будет искать то же самое
 
  • Like
Reactions: alex-ru

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
Описания протокола нормальными словами нет, есть только код https://github.com/dashpay/dash/blob/master/src/instantx.cpp :oops:
Вкратце: клент шлет p2p сообщение "ix", содержащее транзакцию, top10 мастернод (определенные по хэшу блока для последнего входа) проверяют и шлют подписанное сообщение "txlock". Все клиенты собирают и ждут минимум 6 таких подтверждений (и тоже проверяют не только подпись, но и саму транзакцию). После получения 6 правильных "txlock" транзакция считается успешной, а конфликтующие транзакции (использующие те же входы) и содержащие их блоки отклоняются.

Сторонние реализации:
- iOS https://dashtalk.org/threads/dash-iphone-wallet.6079/ (https://github.com/QuantumExplorer/dashwallet)
- Android https://dashtalk.org/threads/dash-wallet-for-android-ix-w-send-and-receive-new-ui.8228/
- вендинговый аппарат https://dashtalk.org/threads/dashvend-miami-soda-machine-tech-demo-software.8001/

PS. выделил в отдельную тему
 
  • Like
Reactions: alex-ru

Reedych

Member
Feb 2, 2016
126
50
78
The moon
Описания протокола нормальными словами нет, есть только код https://github.com/dashpay/dash/blob/master/src/instantx.cpp :oops:
Вкратце: клент шлет p2p сообщение "ix", содержащее транзакцию, top10 мастернод (определенные по хэшу блока для последнего входа) проверяют и шлют подписанное сообщение "txlock". Все клиенты собирают и ждут минимум 6 таких подтверждений (и тоже проверяют не только подпись, но и саму транзакцию). После получения 6 правильных "txlock" транзакция считается успешной, а конфликтующие транзакции (использующие те же входы) и содержащие их блоки отклоняются.

Сторонние реализации:
- iOS https://dashtalk.org/threads/dash-iphone-wallet.6079/ (https://github.com/QuantumExplorer/dashwallet)
- Android https://dashtalk.org/threads/dash-wallet-for-android-ix-w-send-and-receive-new-ui.8228/
- вендинговый аппарат https://dashtalk.org/threads/dashvend-miami-soda-machine-tech-demo-software.8001/

PS. выделил в отдельную тему
кажется надо выделять силы на документацию побольше. Кстати, что надо знать чтобы стать разработчиком криптовалют?
 

ilovedash

Active Member
Aug 19, 2015
479
141
113
кажется надо выделять силы на документацию побольше. Кстати, что надо знать чтобы стать разработчиком криптовалют?
Так предложение бюджетное создайте, что бы профинансировать образцовую техдокументацию на английском, русском, испанском и китайским языках, главное расписать грамотно и придумать кто это сделает и переведет на основные мировые языки.
 

alex-ru

Grizzled Member
Jul 14, 2014
2,374
3,243
1,183
Так предложение бюджетное создайте, что бы профинансировать образцовую техдокументацию на английском, русском, испанском и китайским языках, главное расписать грамотно и придумать кто это сделает и переведет на основные мировые языки.
Dash такой динамичный проект, что Документация успевает устаревать ещё до того момента, когда её писать заканчивают.
Особенно это заметно по Dash WIKI - правят её (англоязычную - Русскую так никто и не взялся вести до сих пор :sad: ) практически каждый день - а всё равно постоянно вылезает устаревшая неактуальная информация... :D
 
  • Like
Reactions: ilovedash

ilovedash

Active Member
Aug 19, 2015
479
141
113
Dash такой динамичный проект, что Документация успевает устаревать ещё до того момента, когда её писать заканчивают...
Так я потому и предложил с постоянным финансированием назначить человека, который будет на постоянной основе этим вопросом заниматься, на уровне команды dash. Насколько это полезно, пусть программисты напишут, но мне НЕ технарю кажется, что без актуальной документации крайне сложно в народ продвигаться в техническом плане. В это же предложение и dash wiki можно запихнуть. Раз так часто обновляется, пусть только на английском, но главное что бы актуальность данных была.

ps: баблос можно от PR-бюджета откусить, они стабильно ужасно свою работу делают :rolleyes:
 
Last edited by a moderator:

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
кажется надо выделять силы на документацию побольше.
...
Есть такая проблема. Программисты не очень любят документировать код, который еще не закончен. Проблема только. что код всегда незакончен. :D
...
Кстати, что надо знать чтобы стать разработчиком криптовалют?
Прочитать https://bitcoin.org/bitcoin.pdf, чтобы понять азы. Углубиться подробнее можно с помощью книги A.M. Antonopolous https://www.bitcoinbook.info/, есть почти законченный русский перевод.
По технике: Core и кошельки большинства форки написаны на C++, но есть масса реализаций на Java, JavaScript, Python и т.д., у Ethereum основные реализации на C++, python, Java и Go, вроде.
 
  • Like
Reactions: Reedych

smmarat

Member
Mar 1, 2016
55
48
58
С документацией в быстро растущих проектах всегда плохо. Давно работаю в индустрии и ни разу не видел нормальной документации. Т.е. обьёмная документация иногда бывает, особенно там где её пишет отдельный департамент. Видели бы вы, какие тонны текста вываливает на разработчиков тот же MaserCard. При этом реально полезную информацию в десятках 100-страничных pdf найти сложнее чем догадаться самому. В целом у меня сложилось мнение что лучшая документация - это справочник по API конкретного модуля + человек, который знает проект и не ленится обьяснить.
По сути вопроса - спасибо за наводку, разбираюсь с darkcoinj, думаю, справлюсь.
 

Reedych

Member
Feb 2, 2016
126
50
78
The moon
Есть такая проблема. Программисты не очень любят документировать код, который еще не закончен. Проблема только. что код всегда незакончен. :D

Прочитать https://bitcoin.org/bitcoin.pdf, чтобы понять азы. Углубиться подробнее можно с помощью книги A.M. Antonopolous https://www.bitcoinbook.info/, есть почти законченный русский перевод.
По технике: Core и кошельки большинства форки написаны на C++, но есть масса реализаций на Java, JavaScript, Python и т.д., у Ethereum основные реализации на C++, python, Java и Go, вроде.
А какие разделы математики надо знать?
 

UdjinM6

Official Dash Dev
Core Developer
Dash Core Team
May 20, 2014
3,639
3,537
1,183
А какие разделы математики надо знать?
Зависит от задачи, наверное, может тервер чуток да азы криптографии. Математические примитивы и функции крипто (шифрование, хэширование и т.п.) все как правило уже написаны в библиотеках, так что по большей части остается их правильное применение, а не переписывание.

EDIT:
а вообще, мы отклонились от темы, предлагаю завязывать с этим вопросом (здесь) ;)
 
  • Like
Reactions: Reedych