Задать вопрос
Ответы пользователя по тегу Blockchain
  • Можно ли хранить персональные данные в блокчейне на основе EVM?

    @rPman
    Все что хранится в блокчейне и должно быть доступно для смартконтракта - доступно всем (в этом смысл смартконтракта - это код, который все могут запустить и проверить что состояние, которое майнеры с его помощью получают, было у всех одинаковое).

    Т.е. перед хранением данные придется зашифровать ну и после чтения - расшифровать (это придется делать сервисом, который собственно предоставляет интерфейс пользователя), а значит смартконтракт эти данные может только хранить.

    p.s. есть гомоморфное шифрование, позволяет проводить операции над зашифрованными данными, без их расшифровки... очень высокие требования к вычислениям и реализовывать их внутри смартконтракта абсурдно бессмысленно.
    Ответ написан
    Комментировать
  • Litecoin Core: приём, отправка, баланс - что к чему?

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

    Итак, bitcoin балланс это сумма входящих переводов на указанные адреса (там чуть сложнее но с обывательской точки зрения есть адрес и его приватный ключ, из которого он был сделан, адрес - это то куда монетки приходят, а приватный ключ дает права их тратить). Монетки - это не потраченные пополнения (входы).

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

    Таким образом на одном адресе может быть несколько не потраченных входящих переводов. Сумма их всех - это балланс. Он вычисляется приложением bitcoind автоматически (мало того, можно завести кошелек с адресами без приватных ключей для мониторинга). wallet.dat это файл, в котором хранится список адресов, опционально их приватные ключи и закешированный список транзакций (например вся история), затрагивающих эти адреса.

    Подчеркиваю, wallet.dat это просто информация о транзакциях, в т.ч. не потраченных. Ты можешь размещать один и тот же адрес (в любых комбинациях) на разных кошельках и итоговый баланс на каждом будет свой, собираться из балансов этих адресов. Ты можешь даже потратить 'одновременно' монетки с одного и того же адреса в разных кошельках, но подтвердится сетью только один из них, но вот какой - зависит от кучи факторов, это называется двойная трата и ее можно использовать что бы разблокировать подвисшую транзакцию из-за слишком маленькой комиссии (например не включили replace-by-fee), отправив другую транзакцию с некоторыми входами первой с бОльшей комиссией (считается за килобайт а не в целом).

    Теперь одна особенность, когда ты подсовываешь wallet.dat приложению bitcoind либо добавляешь новый адрес как свой, то что бы узнать, какой теперь баланс, он обязан просканировать весь блокчейн с самого нулевого блока, что бы узнать всю историю переводов, ведь баланс получается размазан по всему блокчейну (ни в транзакции, ни в блоках не записывается текущий баланс адреса), правда есть идеологический баг/фича в api bitcoind (исправлено в каком то непопулярном форке), так как информация о балансах на каждом адресе хранится рядом с блокчейном в отдельном файлике, но доступа к нему средствами api нет (можно остановить ноду, так как файл заблокирован, и работать с этим файлом отдельным скриптом). В api bitcoind есть возможность пропустить сканирование блокчейна при добавлении адреса, если пользователь к примеру знает что адрес новый без истории или нет нужды в истории, потому что не потраченных монет на нем нет, что заметно ускоряет это добавление, или к примеру сначала добавить много адресов без индексации а потом при добавлении последнего запустить сканирование.

    В общем ответ на твой вопрос да, нужно в последний wallet.dat добавить адреса из предыдущего, предварительно экспортировав приватные ключи.
    dumpprivkey, importprivkey, importaddress
    Ответ написан
    7 комментариев
  • Получение баланса кошельков?

    @rPman
    Правильно, поднять свою ноду geth (етсь и другие) в режиме light node (не хранит блокчейн, только анализирует новые блоки) и работать с официальным api (примеры простых запросов) или же поискать библиотеки 'все включено'

    Недостаток - нода должна работать постоянно и потреблять процессор и немного оперативной памяти (я давно не изучал, возможно light node позволяет пропускать выполнение/проверку всех контрактов в блоке)

    p.s. недостаток light node в пониженной надежности, если соседние ноды будут злонамеренными, они могут задержать информацию о транзакции, а при наличии ресурсов, даже совершать атаку на протокол (нужно много денег и мотивации на это, но не 50%+1), и даже в этом случае есть способы это отследить
    Ответ написан
    2 комментария
  • Где хранятся публичные и секретные ключи в Web-кошельке Telegram?

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

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

    Чуть лучше ситуация с расширениями, можно отключить их авто обновление, и проверять их поведение самостоятельно.

    Поэтому на вопрос можно ответить - секретные ключи хранятся на веб сервере и копируются в браузерное хранилище. На словах же могут говорить что секретные ключи не копируюатся и даже не предоставлять функционал, вытекающий из этого.
    Ответ написан
    Комментировать
  • Лучше купить один асик с большим хешрейтом или несколько с небольшими хешрейтами?

    @rPman
    Помимо простых и явных зарактеристик оборудования для майнинга, таких как мощность и энергопотребление, есть другие, не менее важные но не заметные на первый взгляд - это сложность обслуживания, габариты/масса, шум, ремонтопригодность и т.п.

    Даже если мощность и энергопотребление у одного устройства будет такими же как у других в сумме, нужно представить что будет если железо сломается. Одно устройство после поломки прекратит выдавать всю 'приобретенную мощность' а вот несколько меньших будут ломаться не одновременно, а значит потеря мощности будет только частичной.
    Менее мощные железки имеют дешевле блоки питания, их проще найти (читай быстрее - а с майнерами время = деньги).
    Несколько дешевых железок проще продать по одной чем одну дорогую и большую железку - потенциальных покупателей больше.
    Несколько железок можно разнести по разным помещениям, это кстати тоже одна из форм защиты от рисков - отключат электроэнергию в одном месте, а в другом часть железа будет продолжать работать.

    p.s. текущий момент времени (цена и динамика курса и всей криптоэкономики в целом) наихудший для инвестиций в майнинг (да и вообще в покупку), лучший момент был когда курс биткоина и альтов падал, все пророчили очередную смерть сети и т.п.
    Ответ написан
    Комментировать
  • Где купить готовые, синхронизированные ноды?

    @rPman
    Для всех популярных проектов тебе нужна быстрая машина (кроме может только bitcoin, я на 3$ vps в режиме -prune прогружал блоки считанные часы) и быстрый ssd (настоятельно не рекомендуется hdd, т.е. ты не получишь бонуса к скорости за счет готового дампа если будешь скачивать его у кого то, за исключением случаев когда у тебя hdd а не ssd, или к примеру закажешь его на носителе типа флешка, но это садомазохизм в любом случае)

    bitcoin синхронизируется почти на максимуме скорости сети, его нет смысла откуда-то загружать

    Для ethereum в geth достаточно указать ключ --fast и состояние будет прогружаться тем же способом что и блоки, т.е. максимально быстро, как с torrent

    Остальные криптовалюты по ситуации... например DPOS из популярных возможно имеет смысл покупка, но не имеет смысла если у тебя слабая машина (у них там в требованиях сотни гигабайт ram), так как запустить ты ноду не сможешь, но если у тебя быстрая машина, то и загрузка штатным способом должна пройти за несколько часов-суток (скорее всего eos и tron будут проблемными)
    Ответ написан
    Комментировать
  • Как получить и выводить usdt trc20?

    @rPman
    Кошелек бери только один из официальных Tron (trc20), самое простое для обывателя это расширение для браузера TronLink.

    Настоятельно рекомендую завести отдельный аккаунт ОС или хотя бы профиль браузера для этого, профиль ОС можно штатно зашифровать в 1 клик мышкой (бакапы незабываем!) и в этом профиле заходить только на те сайты, которые нужны для работы, условно говоря сайты экосистемы tron (ссылки из кошелька) и обменник.

    DPOS блокчейны (коим является Tron, кстати это лучший выбор для usdt по затратам, худший - это bitcoin omni) для работы требуют свои базовые токены для оплаты комиссий (дорогой вариант) или стейкинга (дешевле раза в 3 но требует заблокировать монеты), если тебе однократно, то просто переведи себе на кошелек некоторое количество trx (купи там же где менять собираешься).

    Чтобы знать сколько купить trx, загляни в блокчейн, посмотри последние транзакции, сколько они потребляют trx (возьми с запасом, скорее всего так и получится, так как минимальная сумма покупки монет а точнее вывода с бирж заметно выше)
    Ответ написан
    2 комментария
  • Возможно ли на C# выполнить перевод криптовалюты и её трату?

    @rPman
    Мой тебе совет - найми знающего человека.
    Самоучиться на продакшене своими/чужими деньгами - плохая идея.

    Код твоего проекта не должен в принципе работать с криптовалютой. Отделяй финансовую систему от 'игры' максимально. Для приема криптовалюты достаточно заранее нагенерированных адресов, которые ты можешь делать чуть ли не вручную почти в любом кошельке.

    p.s. куда ты переводить криптовалюту собрался, если ты ее принимаешь? продавать сразу как получил? - отдельная задача на миллион, завести на бирже аккаунт, держать там некоторый буфер, обменивать ту же сумму что получил от клиента и оперативно выводить излишки и пополнять недостаток. Все это отдельными скриптами, которые должны быть максимально далеко от игрового 'сервера'. На c# красивых универсальных библиотек мало, для других языков настоятельно рекомендую ccxt
    Ответ написан
    4 комментария
  • Популярные блокчейны очень объемные. Как поднимать ноды популярных блокчейнов быстро?

    @rPman
    Такова селяви.
    Скорость интернета тут не причем, нода должна выполнить все транзакции всех контрактов на блокчейне, чтобы собрать базу состояний (условно балансов)

    На эфире для этого в протокол запилили поддержку, ключи geth кажется --fast, когда ты соглашаешься доверять готовым дампам

    По уму это должно быть частью блокчейна, когда витнесы дают подпись текущего слепка базы состояни в блок, но кажется это не делают специально, чтобы усложнить вхождение новых участников и уменьшить конкуренцию своим проектам на своем же блокчейна.
    Но ещё более вероятно, просто не подумали, и миром правит не вселенский заговор а вселенская глупость
    Ответ написан
    5 комментариев
  • Как работать с кошельком зная его приватный ключ?

    @rPman
    Почти все нормальные криптовалюты имеют кошелек с api (часто rpc) по работе с ним.
    Так же для облегчения веса в мегабайтах результата, пользуются (часто неофициальными) библиотеками.
    Для криптовалют с поддержкой контрактов бывают особенности реализации, так же надстройки меняют картину, например lightning network требует отдельный кошелек/демон lnd когда как обычные переводы bitcoin можно делать только офф кошельком.

    гуглить: имя твоей криптовалюты + имя языка программирования + library + опционально название/версия контракта
    Ответ написан
    Комментировать
  • Какие реализации DNS и CA в блокчейне можно использовать в i2p?

    @rPman
    Точно помню был старейший namecoin (и он однозначно работает, так как это децентрализация, даже если это никому не нужно, пока блоки собираются - это будет работать)

    Потом каждая вторая DPOS криптовалюта предлагала решения для распределенного DNS но так как они все хотели много зарабатывать 'грести лопатой' а не работу работать, ничего не прежилось

    p.s. гуглятся много проектов, хз как они реально используются
    Ответ написан
  • Как реализовать обмен токенов на сайте?

    @rPman
    попробуй эту статью
    bsc основан на эфире, поэтому инструкции подойдут
    Ответ написан
    Комментировать
  • Как на сайте настроить автоматическую отправку токенов в bsc пользователям?

    @rPman
    bsc основан на эфире, поэтому практически все инструкции и библиотеки подойдут

    формально можно воспользоваться официальной нодой https://github.com/bnb-chain/node (будет кушать место и ресурсы) там и примеры есть как с ней работать
    Ответ написан
    Комментировать
  • Отследить пополнение Bitcoin кошелька?

    @rPman
    Кошелек - это набор адресов для пополнения, их список у тебя должен быть (в этом и есть смысл работы), смотришь среди входов и выходов транзакции на твои адреса, и соответственно вычитаешь или плюсуешь баланс.

    bitcoin-core умеет это делать, если добавить требуемые адреса в кошелек (можно даже только публичные адреса), тогда баланс можно запросить rpc запросом

    p.s. есть ключ командной строки ноды, позволяющей запускать пользовательское приложение на каждый новый блок, и даже появление транзакции кошелька в мемпуле, кажется -notify.
    Там еще добавили новый протокол, ZeroMQ
    Ответ написан
    4 комментария
  • Как в ноде эфириум задать стартовый блок для быстрой синхронизации?

    @rPman
    При старте сети (приватной или тестовой), ноде нужно подсунуть genesis.json в котором прописаны все стартовые транзакции и балансы

    Как я понимаю файл собирался на основе ico из bitcoin переводов (как то по особому сделанных)
    гуглится это
    https://github.com/ethereum/ethereumj/blob/develop...

    по уму проверить можно, создав свою сеть на его основе и проверив хеш
    geth --genesis genesis_block.json
    Ответ написан
  • Как потерять криптовалюту?

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

    Это не вопрос криптовалют, это вопрос уязвимостей в кошельке
    Ответ написан
  • Где почитать сравнение про выбор криптовалюты для использования?

    @rPman
    Стабильность курса? тебе сравнение стейблкоинов что ли? их не так уж и много.
    - централизованные токены с обеспечением на доверии
    фактически каждый крупный игрок - биржи, делают свой токен:
    usdt - tether = bitfinex
    usdc - circle = coinbase
    busd - binance
    ...
    - алгоритмические токены с обеспечением в какой-либо криптовалюте (контракт гарантирует что при необходимости можно будет обменять любое количество токенов на равноценной им стоимости криптовалюту
    sai/dai - на эфире, но у dai обеспечение не только в эфире но в рисованных токенах а sai на задворки закинут
    usdd - на троне, поддерживается poloniex, смутно догадываюсь что обеспечение там тоже не в trx а в рисованном мусоре, что превращает саму идею алготокенов в централизованную но с огромными рисками (смотрим на luna - ust)
    ...

    Еще 'популярные' токены поддерживаются на нескольких блокчейнах, типа tether есть и на биткоине (onionwalet) и на эфире и на троне, на эфире и троне ликвидные (принимаются кучей обменников), остальные похоже для галочки

    Судя по тому как тупят в команде эфира, бразды ликвидного хранения стейблкоинов примут на себя трон и bnb (binance), ибо там дешево и быстро (но блокчейны относительно централизованные)
    Ответ написан
    Комментировать
  • Какие есть пути объединения Blockchain и AI?

    @rPman
    Создание ИИ, даже в упрощенном виде (не тот который человека заменяет а тот что для конкретных задач формулируется), обычно это две огромные задачи:
    1. описание проблемы и определение метрики качества ее выполнения
    если говорить про использование нейронных сетей то это обучающая выборка и функция ошибки (оценка качества соответствия обучающей выборке полученной нейронке)
    2. собственно создание ИИ
    в нейронках это создание сети ипоследовательное изменение этой сети с целью минимизации функции ошибки, плюс другие правки (например защита от переобучения)

    Первую задачу формализовать мягко говоря сложно, а для того чтобы ее можно было отдавать на откуп неуправляемого большинства - потребуется ее как то оценивать (на сколько качественно ее сделали), и это проблема не технического плана... но пусть, например эта задача уже решена централизованно, например создание проекта типа SETI@, Folding@ или BOINC, где некий центр определяет задачу и определяет какую то награду (закроем пока глаза на то что наличие такого центра в принципе убирает необходимость в использовании блокчейна)

    Вторую задачу наверное можно как то реализовать,сохраняем в блоках текущую нейронную сеть и информацию о используемом датасете, и каждый участник проверяет, верно ли задача решена, плюс метрики оценки переобучения и прочих сюда добавить, но есть проблема другого плана, обычно участник не может решить часть задачи обучения сети, не всегда она успешно распаралеливается, т.е. каждое следующее изменение нейронки можно сделать только после предыдущего... да бывают задачи, которые решаются не одной большой сетью а множеством по меньше, тогда каждую из них можно раздать разным участникам сети.

    недостатки - все участники должны загружать огромный датасет, на каждом шаге по сети должно распространяться промежуточное значение нейронной сети и главное, чего нет в ней - время (т.е. сложность этой задачи) не поддается прогнозированию, в отличии от простого перебора хешей, тут нельзя выдать и главное проверить вероятность нахождения результата, а значит время на поиск блока будет случайым... кто знает как много ресурсов потратил участник чтобы сделать сеть лучше на минимально требуемое уменьшение фукнкции ошибки, сжег он киловат энергии или на малинке пару секунд считал, как правильно наградить этого участника?
    Ответ написан
    Комментировать
  • Существует ли публичное API для проверки доходности от ETH по хэшу?

    @rPman
    Потрясающе, это же криптовалюта, абсолютно все что тебе нужно можно получить и посчитать самому

    https://bitcointalk.org/index.php?topic=2262328.0
    EarningsPerMonth = (UserHashMh * 1e6 / ((difficultyTH / BlockTimeSec)*1000*1e9))*((60/ BlockTimeSec)*BlockReward)*(60*24*30)*(EthPrice)

    UserHashMh = Mining servers hashpower (in MH/s)
    Difficulty in TH/s
    BlockTime in seconds
    BlockReward = number of ETH per block mined (5 currently)
    EthPrice in fiat

    60*24*30 - интервал времени в минутах (потому что в формуле есть еще 60/ BlockTimeSec ...)
    difficulty берут из запущенной ноды (но ты же не запустил), можно брать с эксплореров (история, api для получения таких параметров майнера реже дают, например тут )
    BlockTime in seconds - можно взять за 13.25 в среднем или так же считать из блокчейна по блокам и времени в них (посмотри график)
    BlockReward так же рекомендую брать из блоков, особенно если тебя история интересует
    Ответ написан
  • Как работают выплаты в Awesome miner?

    @rPman
    да найсхеш будет выплачивать после определенного порога и это логично, ваша транзакция ему может стоить от 50 центов до десятков баксов на участника (чтобы оптимизировать их будут объединять в несколько но на каждого все равно получатся заметно)

    Не понимаю, зачем тебе посредник между nicehash и тобой в виде awesome miner, абсолютно все необходимое есть у самого nicehash

    p.s. мало того в прошлом году они говорили о снижении порога вывода через сеть лайтинг, т.е. ты один раз открываешь канал с ними а затем получаешь выплаты (правда для открытия канала нужно минимум 0.005btc но это не плата а заморозка на время жизни канал, формально ты можешь большую часть этой суммы вывести через какой-нибудь шлюз лайтинг-btc и канал останется открытым с перекосом баланса в сторону пула но ты же майнишь)
    Ответ написан
    Комментировать