Title: Снять снэпшот токенов на Ethereum Post by: Ivanech on December 24, 2017, 11:23:30 AM Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?
Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены. Т.е. у кого и сколько токенов строго по состоянию на нужный блок. Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть? Title: Re: Снять снэпшот токенов на Ethereum Post by: mrkahharov on December 30, 2017, 07:34:33 PM Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum? Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены. Т.е. у кого и сколько токенов строго по состоянию на нужный блок. Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть? Класс, как раз мне тоже интересно) Title: Re: Снять снэпшот токенов на Ethereum Post by: Coin-1 on January 01, 2018, 11:47:22 PM Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum? Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены. Т.е. у кого и сколько токенов строго по состоянию на нужный блок. Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть? Как вариант, можно мониторить все ETH-кошельки, на которые когда-либо передавались эти ERC20-токены. Title: Re: Снять снэпшот токенов на Ethereum Post by: TechPriest on January 02, 2018, 11:38:47 AM Вариант такой: задавать программно количество блоков через которые будет происходить снапшот.
1. Программа берет блок, на котором должен состояться фикс. И парсит все utxo ДО этого блока. Потом идут какие то уже действия. На втором снапшоте берем уже промежуток от снапшота 2, и вниз до снапшота 1 (здесь я имею ввиду блоки на которых они зафиксированы) и так далее. Если нужно проверять лежат ли коины на конкретных адресах, то лучше не делать снапшоты а время от времени парсить эти самые адреса на предмет потраченых выходов. Title: Re: Снять снэпшот токенов на Ethereum Post by: yokotoka on January 03, 2018, 05:19:20 AM Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum? Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены. Т.е. у кого и сколько токенов строго по состоянию на нужный блок. Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть? 1. Можно через web3.js запрашивать метод balanceOf() у контракта, хранящего токены. Но т.к. там структура, которая хранит только хеши адресов - нужно знать адреса контрактов, на которые токены передавались. Это гемор. Поэтому рекомендую второй путь. 2. ERC20-токены генерят событие Transfer(address indexed from, address indexed to, uint tokens) Можно проиндексировать блокчейн на предмет этих event'ов и записать себе куда-нибудь (в SQL-базу, например), и уже по ней запросы делать - блокчейн не изменится, только новые записи докидывать. Чем конкретно распарсить event'ы сейчас не подскажу, но в api эфира, вроде есть. Title: Re: Снять снэпшот токенов на Ethereum Post by: densmirnov on January 08, 2018, 07:38:21 AM Можно использовать что-то типа этого (https://github.com/hunterlong/tokenbalance), скармливая ему локальные снэпшоты блокчейна.
Title: Re: Снять снэпшот токенов на Ethereum Post by: AdeptEthereumStocks on January 10, 2018, 07:43:18 PM В нашем проекте решили эту проблему следующим образом:
Нам необходимо иметь массив всех адресов с нашими токенами. Если мы хотим решить эту задачу без привлечения оракулов( или внешней обработки, а лишь инструментами смарт контракта) Нам необходимо в функцию mint - если ваш токен подразумевает выпуск и функцию transfer добавить дополнительный массив Quote address[] public invstors_adrees; И при выпуске токенов или при трансфере проверяем нет ли адреса в масиве и если нету добавляем. Можете делать проверку на исключение итд как пожелаете, но проще без проверки т.к. у вас тогда будет полная база, всех кто использовал ваши токены.Quote invstors_adrees.push(_address) -1; И функцию начисления может перебрать адреса прям в смарт контракте, поскольку мы при сканировании не изменяем переменные и сам блокчейн это не сильно газозатратно.Плюс наше dApps обращаясь к этому массиву может легче парсить без реализации дополнительного функционала отслеживания перевода посредством парсенья блоков. Title: Re: Снять снэпшот токенов на Ethereum Post by: Pro100Sany on January 16, 2018, 09:12:16 PM Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
Title: Re: Снять снэпшот токенов на Ethereum Post by: AristoteI on January 20, 2018, 11:59:27 PM Добрый вечер, заинтересовала эта тема, а что такое снепшоты? Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом.Title: Re: Снять снэпшот токенов на Ethereum Post by: hotbit on February 09, 2018, 09:49:07 PM Добрый вечер, заинтересовала эта тема, а что такое снепшоты? Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом.Title: Re: Снять снэпшот токенов на Ethereum Post by: pofigist on February 13, 2018, 01:06:47 PM Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum? Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены. Т.е. у кого и сколько токенов строго по состоянию на нужный блок. Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть? 1. Можно через web3.js запрашивать метод balanceOf() у контракта, хранящего токены. Но т.к. там структура, которая хранит только хеши адресов - нужно знать адреса контрактов, на которые токены передавались. Это гемор. Поэтому рекомендую второй путь. 2. ERC20-токены генерят событие Transfer(address indexed from, address indexed to, uint tokens) Можно проиндексировать блокчейн на предмет этих event'ов и записать себе куда-нибудь (в SQL-базу, например), и уже по ней запросы делать - блокчейн не изменится, только новые записи докидывать. Чем конкретно распарсить event'ы сейчас не подскажу, но в api эфира, вроде есть. |