Перейти к публикации

Apirone

Новички
  • Публикации

    35
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

О Apirone

  • Звание
    Новичок

Контакты

  • Сайт
    https://apirone.com

Информация

  • Пол
    Мужчина

Посетители профиля

521 просмотр профиля
  1. Подобная идея на Ethereum https://cryptopicture.com/mosaic/ cделано красиво и функционально
  2. Apirone

    Платежки для Telegram бота

    Возможно вам этот тред поможет https://forum.bits.media/index.php?/topic/138702-пишем-страницу-поддержки-с-бесплатной-оплатой-биткоинами/
  3. Слово "пожертвование" не всегда вызывает положительные эмоции, ведь оно происходит от слова "жертвовать" или “пожертвовать” чем либо. Выражение "поддержать", "помочь" или "стать частью" гораздо благозвучнее и приятнее. Особенно если в ответ плательщик получает рекламную ссылку или рекламное упоминание о себе. Яркий пример, это Patreon на сайте https://coin.dance/. Но было бы интереснее продавать не одинаковые размеры логотипов, а всю рекламную площадь, в зависимости от суммы оплаты. Скажем квадрат 1х1 стоит 10.000 Сатоши. Кому то хватит реферального пикселя для поисковика, а кто то захочет большой анимированный логотип. Итак, приступаем. Мы уже писали о новом Биткоин процессинге на форуме. Все входящие транзакции обрабатываются Бесплатно, а значит это идеально подходит для сбора платежей. Для начала создаем Накопительный (saving) кошелек, отправляем JSON запрос на эндпоинт https://apirone.com/api/v2/btc/wallet В ответ получаем { "wallet": "8133edaa7e1c8040963159b2ef8b2d30", "type": "saving", "transfer_key": "sfZ4MmnfhXNb1RiLh7jqnFW2eZmdsYt9", "currency": "btc" } wallet - это кошелек, на который мы будем собирать платежи и им управлять. transfer_key - ключ, с помощью которого делаем выплаты по API Пример PHP кода: <?php $json_data = array ( 'type' => "saving" ); $api_endpoint = "https://apirone.com/api/v2/btc/wallet"; $curl = curl_init($api_endpoint); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($json_data)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($curl); $http_status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($http_status_code==200){ $decoded = json_decode($response, true); echo "Wallet: " . $decoded["wallet"] . "<BR>"; echo "Key: " . $decoded["transfer_key"]; } else { var_dump($response); } ?> База данных будет максимально проста и оптимизирована. В единственную таблицу мы будем записывать только оплаченные URL, ссылку на логотип и сумму с количеством подтверждений сети. CREATE TABLE `supporters` ( `id` int(11) NOT NULL, `address` varchar(34) NOT NULL, `logo` varchar(250) NOT NULL, `link` varchar(250) NOT NULL, `amount` int(11) NOT NULL, `confirmations` tinyint(4) NOT NULL, `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Индексы таблицы `supporters` ALTER TABLE `supporters` ADD PRIMARY KEY (`id`); -- AUTO_INCREMENT для таблицы `supporters` ALTER TABLE `supporters` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; COMMIT; На странице оплаты нам потребуется форма с двумя текстовыми полями URL, link to logo. По нажатию на кнопки SUBMIT, оба этих поля и ссылку для получения колбэка, отправляем в JSON запросе на API эндпоинт. https://apirone.com/api/v2/btc/wallet/<WalletID>/address <WalletID> - это тот идентификатор кошелька который мы получили в первом запросе. 'secret' - какой то секретный код, для защиты нашего приложения. Мы будем его сверять на странице колбэка. Пример PHP кода: <?php $json_data = array ( "callback" => array( 'url'=> 'http://example.com/callback', 'data' => array ( 'secret' => "abrakadabra", 'url' => "https://bits.media/", 'logo' => "https://bits.media/local/templates/bits.media/images/bits3.png" ) ) ); $wallet = "8133edaa7e1c8040963159b2ef8b2d30"; $api_base = "https://apirone.com/api/v2/btc/wallet/". $wallet ."/address"; $curl = curl_init($api_base); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($json_data)); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $http_status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); $response = curl_exec($curl); curl_close($curl); $decoded = json_decode($response, true); echo "Please send the payment to the following bitcoin address: " . $decoded["address"]; ?> В ответ на запрос, получаем новый Биткоин адрес для оплаты. Все сгенерированные адреса будут постоянно мониториться нашим сервисом, ведь клиент может оплатить сейчас, а может сделать это чуть позже. Для удобства оплаты выводим QR код, с помощью АПИ https://apirone.com/ru/docs/get-qr-code Обработка колбэка. Callback.php Страница колбэка нужна для обработки данных от платежного сервиса. Apirone передает адрес на который поступил платеж, сумму, транзакцию, количество подтверждений и данные которые предоставленные пользователем: secret, url, logo. Данные передаются POST запросом в формате JSON, так удобнее и безопаснее. <?php $secret = "abrakadabra"; //receive JSON data $data = file_get_contents('php://input'); if ($data) { $params = json_decode($data, true); // проверяем наш секретный код if ($params["data"]["secret"] !== $secret) die(); $url = $params["data"]["url"]; $logo = $params["data"]["logo"]; $input_address = $params["input_address"]; $value_in_satoshi = $params["value"]; //Save unconfirmed transaction and data to your Database. if ($params["confirmations"] == 0) { // записываем URL и LOGO в базу данных } if ($params["confirmations"] >= 3) { // обновляем количество конфирмов в базе данных // по завершению сделки, сообщаем серверу *ok* echo "*ok*"; } } ?> Оплату за донаты от доверительных плательщиков, можно принимать по нулевому подтверждению Биткоин сети. Но если вы продаете что то дорогое и значимое, мы рекомендуем завершать сделку по 2-3 подтверждениям сети. После завершения оплаты, в ответ серверу сообщаем *ok*. После этого колбэки по оплате прекращаются. Завершение оплаты и размещение логотипа Чтобы показать клиенту о проведенной оплате, мы должны её периодически проверять. Мы будем проверять её в созданной таблице. Ведь как только платежный сервер сделает колбэк, у нас сохраняется сгенерированный адрес и ссылки в БД. С помощью Ajax JQuery запроса с периодичностью в 3 секунды, проверяем оплату в БД по идентификатору - сгенерированному биткоин адресу. Как альтернатива, можно проверять транзакцию напрямую в блокчейне, например через blockchain.info или любой другой открытый API или открытая подписка по сокету. Именно поэтому все входящие платежи должны быть бесплатными, а не брать за это процент. Транзакции всегда можно проверить в блокчейне. Как только мы нашли транзакцию, пишем плательщику что оплата прошла успешно и перезагружаем страницу. Теперь его логотип со ссылкой будет на сайте. Размер логотипа = сумма оплаты / 10000 Сатоши. Отладка Чтобы проверить работу колбэка без оплаты, достаточно его эмулировать cURL запросом: curl -X POST -H "Content-type: application/json" -d '{ "data": {"url": "https://bits.media/", "logo": "https://bits.media/local/templates/bits.media/images/bits3.png", "secret": "abrakadabra"}, "input_address": "1E2VSRsaW3Kb1gDkdRUGDo6knAKfi9iYsb", "confirmations": 0, "input_transaction_hash": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", "value" : 100000000 }' -i http://example.com/callback.php http://example.com - замените на свой ресурс. http или httpS - важный префикс для обращения колбэка. Так мы отправляем запрос с "data" - данными пользователя и информацию о транзакции в формате JSON. Вы можете поменять секретный код, ссылки, количество подтверждений, сумму и увидеть, что на это отвечает страница callback.php. Заключение Предложенный код, вы можете использовать и модифицировать как угодно. Например выставлять логотипы одного размера, а сумма оплаты это время размещения в минутах. Или сумма это занимаемая площадь экрана, а может даже клетка на шахматной доске или приоритет в списке. Возможно это перерастет в крупный проект, такой как Patreon.com и станет для вас дополнительным источником дохода. Рабочий пример: https://allprivatekeys.com/become-a-supporter.php GitHub: https://github.com/Apirone/supporter Документация по разворачиванию проекта: https://apirone.com/ru/integrations/become-a-supporter Документация для разработчиков: https://apirone.com/ru/docs/wallet
  4. Состоялся релиз процессинга V2 - Wallet as a Service. Теперь вы можете полностью управлять кошельком и создавать выплаты по API запросу. Тариф простой: Все ВХОДЯЩИЕ транзакции абсолютно БЕСПЛАТНЫ! Фиксированная комиссия 0.0002 BTC ($0.8) за исходящую транзакцию на сумму более 0.001 BTC. Микро-выплаты менее 100.000 Сатоши также бесплатны. Мы считаем что брать комиссию за входящие транзакции в 2019 году нелепо, а уж тем более 1% за транзакцию. Ведь биткоин-ноде всё равно что записано в транзакции $1000 или миллион, так почему магазин должен платить $10 с каждой тысячи?! А ещё, существует множество открытых Blockchain API, с помощью которых можно посмотреть транзакцию клиента вообще бесплатно. Используя наш интерфейс Transfer API (вывод средств), вы можете указать до 255 получателей одновременно. Такая транзакция имеет меньшую комиссию в блокчейн сети и выйдет намного дешевле, чем отправлять каждую по отдельности. Такой сервис идеально подходит для создания Биткоин-игр с доказуемой честностью, ICO и HYIP проектов, лотерей, классического гэмблинга, частных обменников и даже бирж. Ведь на биржах никто не берет комиссию за входящие платежи. Документация: https://apirone.com/docs/wallet
  5. Эксперимент номер 3. Существует легенда о человеке, который хорошо помнит цифры любимого биткоин блока, как памятную дату, и использует хэш блока для получения приватного ключа. Каким образом, сколько раз и как он шифрует этот хэш - не известно. Но давайте возьмем стандартный sha256(hash_block) и проверим все блоки. Используем питон и blockchain RestAPI. В результате найдены: Block 329580 Hash 000000000000000011f680d073874580796bd9f96e9f7646b04a1b50172e2a19 p2pkh https://btc.com/14Z7XPhxKRZRn32XDftFMEgG8f588EzRm9 key 5K3owRspFRUXpiFgZUGykpzq2ghTGpUGg37PbKNTwTeYQUHXMMT Всего получено 0.06264640 BTC Транзакции 4 Дата последней транзакции 2015-11-06 Block 382310 Hash 000000000000000000a4b292d930390af57b409e34a1867dc59a1df6a6669b79 p2pkh https://btc.com/18BRmS1hC2FTYzVq9zYD8z2bo9RvUpjDUX key 5KgpNF1eGjdP27SrKhvqikvzL2SaZz78yKBmK6YizsvXnHh437i Всего получено 0.00520000 BTC Транзакции 2 Дата последней транзакции 2014-11-18 Ещё из стандартных способов можно проверить многократное хэширование и crypt.
  6. Написал лично, что бы не обсуждать в общем треде Ваш приватный ключ и с чего он начинается.
  7. Повторюсь. Проект научно-популярный, занимаюсь им факультативно в свободное время. Чужих денег не беру и ни один сатоши не пострадал. Иначе зачем мне всё это здесь писать и что-то доказывать. Я ставлю гипотезу - получение приватных ключей по словарям brainwallet методом псевдо-рандомного подбора и проверка на использование данного кошелька ранее. Доказательством использования кошелька служат - транзакции в прошлом. Не смотря на все противоречия, результат достигнут - найдены адреса с десятками и даже сотнями транзакций в разные периоды времени от 2012 до конца 2018 года. Присутствуют адреса с суммой всех входов по всем транзакциям - в более 500 Биткоинов. Так же найдены, и находятся на балансах, не потраченные выходы в основной сети Bitcoin и в форке Bitcoin Gold. Результат исследования я выгружаю в один список ключей, можете брать его и эксперементировать. (ссылка на первой странице треда). Статистика вещь упрямая: за эту ночь собралось ещё 6950-6838 = 112 ключей. Гипотеза подтверждена. Доказательства более не нужны. Сейчас я проверяю другие мифы. Возможно, кому то они могут показаться крайне бредовыми и вызовут новую бурю волнений и хэйтов, но мне это интересно. Как обычно, позже напишу отчет.
  8. Вроде никто и не говорил про это, не? Читайте внимательнее. Вообще в природе существуют ключи полученные из нескольких итераций sha256. Слово "hello" прогоняем 4 раза, получаем ключ 5KTcTotxvXvqppbY1E4yVaBkrFJpYbCW6THzEALBGzKHNTHGrPs адрес https://btc.com/1Jmiofq2bTwoaM2MhBAzcr24oqhMw4D3f6 Сриншоты приложения были специально сделаны так что бы было видно предупреждение и окошко с опцией, написано "checksum: failed" и я упомянул "Получаем предупреждение что это не безопасно." Сударь, попрошу вас более уважительно относиться к аудитории, не стоит применять слова "сказочные дебилы", "бред сивой кобылы" и т.д. Я думаю на этом форуме люди с критическим мышлением и интеллектуальным складом ума, иначе зачем им тут быть. Я благодарен тем кто меня читает, поддерживает, вступает в полемику и даже люто минусует. Потому что о безопасности и интересных вопросов мало. Конечно у меня в голове компот, я пишу тут всякий бред, такого не бывает и никто такие приватники не генерит. Но прошло ещё десять дней и собралась новая статистика: До этого была отметка в 3134 приватников, сейчас их собрано 6838, что означает прибавку более чем в два раза (на 3704). Это новые скомпроментированные ключи на которых хоть когда то были транзакции. Брейнваллетов собрано и опубликовано 18970. Скоро выгружу апдэйт, копятся новые.
  9. Спасибо большое за материал. Кое что интересное нашел для себя.
  10. Итак, расписываю более детально со скриншотом вашего профиля. Жмем Options. Получаем предупреждение что это не безопасно. Но мы то не боимся опасностей! Кнопка Next снова работает. Achivement. Нужен приватник из Электрума? Держите. Жмем Wallet->Private key->Export Получаем 20 адресов HD валлета. Снова предупреждение об опасности. Надеюсь это был не ваш личный кошелек? 😉
  11. Давайте разрядим обстановку и немного поиграем! Берем популярный пример фразы из документации "correct horse battery staple" вбиваем её в наш чекер https://allprivatekeys.com/try-your-passphrase.php и получаем приватник 5KJvsngHeMpm884wtkJNzQGaCErckhHJBGFsvd3VyK5qMZXj3hS а за ним два адреса BTC Uncompressed 1JwSSubhmg6iPtRjtyqhUYYH7bZg3Lfy1T BTC Compressed 1C7zdTfnkzmr13HfA2vNm5SJYRK6nEKyq8 И вот что находим: https://btc.com/1C7zdTfnkzmr13HfA2vNm5SJYRK6nEKyq8
  12. Хорошо. Переведу документацию Electrum. На главной странице https://electrum.org/ сказано "Your funds can be recovered from a secret phrase." 1. Скачиваем и устанавливаем кошелек. 2. Видим что вариантов много. Но мы создаем стандартный валлет. 3. Выбираем пункт "у меня уже есть сид" 4. Вводим "sausage sausage sausage sausage sausage sausage sausage sausage sausage sausage sausage sausage sausage" Получаем его приватник 5JXZ9tsdcBwX357SmFBZseXgc5QR2mdU3J88QBSND7exMHmZ2Wf Опционально: если этот кошелек у вас появился после HD wallet, то получаем серию адресов. Что и требовалось доказать. Кошелек Electrum поддерживает Brainwallet и мнемонические фразы по словарям BIP39. Если согласны, поставьте плюсик.
  13. Не согласен. Это официальный репозиторий Electrum. https://github.com/spesmilo/electrum/blob/master/electrum/mnemonic.py Вот питоновский скрипт использующий мнемонический формат и подключающий те самые словари из BIP39 и ссылки что я дал выше. Вот видео с Дефкона про Electrum https://youtu.be/foil0hzl4Pg
  14. Про Electrum можете здесь посмотреть https://github.com/spesmilo/electrum/tree/master/electrum/wordlist В остальном я с вами полностью согласен.
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

    YoBit.Net
×