Title: Помогите с написанием майнера (C#) Post by: Digor on March 02, 2015, 07:00:24 AM Здравствуйте. Поиск по форуму и гугление ничего не дали, поэтому решил создать этот топик. О Bitcoin знаю давно, всегда слежу за последними новостями, но с недавнего времени стал на теории изучать принципы его работы. И теперь я поставил перед собой задачу, написать свой простенький майнер, пусть он будет и не производительным, хочу на практике разобраться в принципах его работы. Но не знаю с чего начать. Как подключиться к сети, как получить текущую сложность, последний найденный блок и т.д. Я не знаю с чего начать и в какую сторону идти. Обязательно ли должен стоять биткоин кошелек и связываться через него? или можно обойтись и без него. Поделитесь кто что знает, буду очень признателен.
Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 02, 2015, 08:18:57 AM Ну что? никто не знает? может поделитесь любыми исходниками? библиотеки? любая инфа, как подключиться к сети биткоин, адреса, порты.
Title: Re: Помогите с написанием майнера (C#) Post by: amaclin on March 02, 2015, 08:38:58 AM Нууу.... Тут две подзадачи в одной задаче.
1) Подключиться к сети, скачать блокчейн, получать чужие транзакции. 2) Сформировать блок из транзакций (чужие + coinbase себе), подсчитать merkle hash, сформировать blockheader, потом в цикле от 0 до 4миллиардов перебрать все возможные nonce, пересчитать sha256d (header), если не найдется нужный хеш - начать заново начать с изучения технических статей на bitcoin.it потом желание делать это на C# само пропадёт Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 02, 2015, 08:54:12 AM Нууу.... Тут две подзадачи в одной задаче. Вот этот пункт меня и интересует на данный момент, как происходят транзакции и формируются блоки более менее понятно. Сейчас передо мной задача именно подключения к сети. 1) Подключиться к сети, скачать блокчейн, получать чужие транзакции. Какие могут быть варианты? Title: Re: Помогите с написанием майнера (C#) Post by: amaclin on March 02, 2015, 09:10:28 AM Quote Вот этот пункт меня и интересует на данный момент, как происходят транзакции и формируются блоки более менее понятно. Сейчас передо мной задача именно подключения к сети. Какие могут быть варианты? Хардкодишь или записываешь в файл конфигурации десяток (сотню?) IP-адресов например отсюда https://blockchain.info/connected-nodes открываешь сокетное соединение по порту 8333 ну и дальше обмениваешься пакетами по протоколу, описанному вот тут: https://en.bitcoin.it/wiki/Protocol_specification Полезно будет поставить WireShark и внимательно посмотреть как работает Bitcoin Core Client Там ничего сложного нет. Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 02, 2015, 09:42:10 AM Спасибо за толчек :)
еще один вопрос, кошелек нужно ставить или можно обойтись без него? Title: Re: Помогите с написанием майнера (C#) Post by: amaclin on March 02, 2015, 09:45:58 AM Спасибо за толчек :) еще один вопрос, кошелек нужно ставить или можно обойтись без него? Ну, вообще-то лучше поставить. Тогда сможешь свою софтину коннектить не к какому-то далекому IP-адресу, а к 127.0.0.1:8333 Ну и база блоков в актуальном состоянии для майнера - это "маст хэв" ЗЫ. Можно с тестнета начать. Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 02, 2015, 09:49:23 AM А можно по подробнее о тестнет-е?
Title: Re: Помогите с написанием майнера (C#) Post by: amaclin on March 02, 2015, 10:01:22 AM А можно по подробнее об тестнет? Блин, ну ты совсем нуп. Кроме основной сети биткойна есть еще тестнет - тестовая сеть. Если запустить клиента с параметром -testnet , то он соответственно законнектится к тестовой сети Тестовая сеть имеет непринципиальные различия с основной сетью и предназначена именно для различных экспериментов Тестовые койны принципиально не меняются ни на какую-другую валюту, их несложно раздобыть В чем будет твоя выгода от использования тестовой сети: 1) блокчейн гораздо меньше - не 30 гигабайт, а один (точно не знаю сколько там) 2) сложность тестовой сети меньше - есть даже шанс что твой майнер сможет (если повезет) тебе тестовый блок смайнить Короче, читай мануалы пока и разбирайся. Тут даже конкретных советов тебе трудно дать - куда ни ткнёшь - всё ты не знаешь. Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 02, 2015, 10:06:42 AM Спс :) иду копать дальше ;D
Title: Re: Помогите с написанием майнера (C#) Post by: A-Bolt on March 02, 2015, 10:17:17 AM Ну что? никто не знает? может поделитесь любыми исходниками? библиотеки? любая инфа, как подключиться к сети биткоин, адреса, порты. https://aois.blob.core.windows.net/public/Blockchain%20Programming%20in%20CSharp.pdf (https://aois.blob.core.windows.net/public/Blockchain%20Programming%20in%20CSharp.pdf) Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 02, 2015, 10:56:00 AM Ну что? никто не знает? может поделитесь любыми исходниками? библиотеки? любая инфа, как подключиться к сети биткоин, адреса, порты. https://aois.blob.core.windows.net/public/Blockchain%20Programming%20in%20CSharp.pdf (https://aois.blob.core.windows.net/public/Blockchain%20Programming%20in%20CSharp.pdf) Спасибо за ссылку Title: Re: Помогите с написанием майнера (C#) Post by: Rabinovitch on March 05, 2015, 07:20:19 AM К вашей удаче, на Земле существует человек, описавший это всё в подробностях:
http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html (http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html) И даже описавший майнинг вручную, для большего погружения интересующихся в прроцесс: http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html (http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html) Title: Re: Помогите с написанием майнера (C#) Post by: yo-blin on March 10, 2015, 06:41:04 AM https://github.com/lithander/Minimal-Bitcoin-Miner
Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 10, 2015, 06:48:38 AM Rabinovitch и yo-blin огромное Вам спасибо за информацию
Title: Re: Помогите с написанием майнера (C#) Post by: Digor on March 10, 2015, 02:19:23 PM 1) Подключиться к сети Может подскажете как подключиться к сети? Куда нужно обратиться чтоб получить блокчейн? Хочу разобраться именно в соло майнинге. Насколько я понимаю в таком случае обязательно нужен кошелек переведенный в режим сервера и уже к нему подключаться, если это не так, укажите верную дорогу ;D Title: Re: Помогите с написанием майнера (C#) Post by: amaclin on March 10, 2015, 03:08:02 PM Quote Может подскажете как подключиться к сети? Я кажется ответил уже выше, не? Хардкодишь или записываешь в файл конфигурации десяток (сотню?) IP-адресов например отсюда https://blockchain.info/connected-nodes открываешь сокетное соединение по порту 8333 ну и дальше обмениваешься пакетами по протоколу, описанному вот тут: https://en.bitcoin.it/wiki/Protocol_specification Полезно будет поставить WireShark и внимательно посмотреть как работает Bitcoin Core Client Там ничего сложного нет. Quote Куда нужно обратиться чтоб получить блокчейн? К одному из узлов сети. К любому.Quote Хочу разобраться именно в соло майнинге. Насколько я понимаю в таком случае обязательно нужен кошелек переведенный в режим сервера и уже к нему подключаться, если это не так, укажите верную дорогу ;D Тебе нужна база блоков, а не кошелёк.Но самый простой способ получить базу блоков - да, взять Bitcoin Core Client и выкачать её и сети Title: Re: Помогите с написанием майнера (C#) Post by: crazynetwork on December 23, 2016, 01:48:14 PM Всем привет. Может кто знает где почитать подобную инфу про ZCASH или Ethereum ?
1. Куда конектиться 2. Какой ответ должен прийти (скорее всего json) |