Bitcoin Forum
May 10, 2024, 01:48:41 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Снять снэпшот токенов на Ethereum  (Read 298 times)
Ivanech (OP)
Hero Member
*****
Offline Offline

Activity: 808
Merit: 1014


View Profile
December 24, 2017, 11:23:30 AM
 #1

Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?
1715305721
Hero Member
*
Offline Offline

Posts: 1715305721

View Profile Personal Message (Offline)

Ignore
1715305721
Reply with quote  #2

1715305721
Report to moderator
Bitcoin mining is now a specialized and very risky industry, just like gold mining. Amateur miners are unlikely to make much money, and may even lose money. Bitcoin is much more than just mining, though!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715305721
Hero Member
*
Offline Offline

Posts: 1715305721

View Profile Personal Message (Offline)

Ignore
1715305721
Reply with quote  #2

1715305721
Report to moderator
mrkahharov
Member
**
Offline Offline

Activity: 154
Merit: 11


View Profile WWW
December 30, 2017, 07:34:33 PM
 #2

Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?


Класс, как раз мне тоже интересно)

Coin-1
Legendary
*
Offline Offline

Activity: 2450
Merit: 2190



View Profile
January 01, 2018, 11:47:22 PM
Last edit: October 02, 2018, 08:17:50 PM by Coin-1
 #3

Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?

Как вариант, можно мониторить все ETH-кошельки, на которые когда-либо передавались эти ERC20-токены.
TechPriest
Sr. Member
****
Offline Offline

Activity: 377
Merit: 282


Finis coronat opus


View Profile
January 02, 2018, 11:38:47 AM
 #4

Вариант такой: задавать программно количество блоков через которые будет происходить снапшот.
1. Программа берет блок, на котором должен состояться фикс. И парсит все utxo ДО этого блока. Потом идут какие то уже действия.
На втором снапшоте берем уже промежуток от снапшота 2, и вниз до снапшота 1 (здесь я имею ввиду блоки на которых они зафиксированы) и так далее.
Если нужно проверять лежат ли коины на конкретных адресах, то лучше не делать снапшоты а время от времени парсить эти самые адреса на предмет потраченых выходов.

In science we trust!
yokotoka
Member
**
Offline Offline

Activity: 126
Merit: 23


View Profile
January 03, 2018, 05:19:20 AM
 #5

Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?

1. Можно через web3.js запрашивать метод balanceOf() у контракта, хранящего токены. Но т.к. там структура, которая хранит только хеши адресов - нужно знать адреса контрактов, на которые токены передавались. Это гемор. Поэтому рекомендую второй путь.
2. ERC20-токены генерят событие Transfer(address indexed from, address indexed to, uint tokens)
Можно проиндексировать блокчейн на предмет этих event'ов и записать себе куда-нибудь (в SQL-базу, например), и уже по ней запросы делать - блокчейн не изменится, только новые записи докидывать. Чем конкретно распарсить event'ы сейчас не подскажу, но в api эфира, вроде есть.
densmirnov
Sr. Member
****
Offline Offline

Activity: 429
Merit: 252



View Profile WWW
January 08, 2018, 07:38:21 AM
 #6

Можно использовать что-то типа этого, скармливая ему локальные снэпшоты блокчейна.

▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ᴅᴇᴠᴇʟᴏᴘ ᴄᴜsᴛᴏᴍ ᴅᴇᴄᴇɴᴛʀᴀʟɪᴢᴇᴅ ʙʟᴏᴄᴋᴄʜᴀɪɴ ᴀᴘᴘʟɪᴄᴀᴛɪᴏɴs in ᴊᴀᴠᴀsᴄʀɪᴘᴛ with ʟɪsᴋ!
ᴡᴇʙsɪᴛᴇ 🇺🇸 ʙʟᴏɢ 🇺🇸 ᴄʜᴀᴛ 🇺🇸 ғᴀᴄᴇʙᴏᴏᴋ 🇷🇺 ᴠᴋ 🇷🇺 ᴛᴡɪᴛᴛᴇʀ 🇷🇺 Be part of the decentralized application movement!


▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
AdeptEthereumStocks
Newbie
*
Offline Offline

Activity: 84
Merit: 0


View Profile WWW
January 10, 2018, 07:43:18 PM
 #7

В нашем проекте решили эту проблему следующим образом:
Нам необходимо иметь массив всех адресов  с нашими токенами.
Если мы хотим решить эту задачу без привлечения оракулов( или внешней обработки, а лишь инструментами смарт контракта)
Нам необходимо в функцию mint - если ваш токен подразумевает выпуск и функцию transfer добавить  дополнительный массив
Quote
  address[] public invstors_adrees;
И при выпуске токенов или при трансфере проверяем нет ли адреса в масиве и если нету добавляем. Можете делать проверку на исключение итд как пожелаете, но проще без проверки т.к. у вас тогда будет полная база, всех кто использовал ваши токены.
Quote
invstors_adrees.push(_address) -1; 
И функцию начисления может перебрать адреса прям в смарт контракте, поскольку мы  при сканировании не изменяем переменные и сам блокчейн это не сильно газозатратно.
Плюс наше dApps  обращаясь к этому массиву может легче парсить без реализации дополнительного функционала отслеживания перевода  посредством парсенья блоков.
Pro100Sany
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
January 16, 2018, 09:12:16 PM
 #8

Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
AristoteI
Member
**
Offline Offline

Activity: 574
Merit: 12


View Profile
January 20, 2018, 11:59:27 PM
 #9

Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом.
hotbit
Full Member
***
Offline Offline

Activity: 364
Merit: 113



View Profile
February 09, 2018, 09:49:07 PM
 #10

Добрый вечер, заинтересовала эта тема, а что такое снепшоты?
Снэпшот, это моментальный "снимок" сети. Информация о кошельках и наличествующих в данных кошельках средствах на такой-то момент времени в какой-либо сети конкретной монеты. Отпечаток информационный одним словом.
А для этого есть какое-то особенное программное обеспечение или как это практически делается?
pofigist
Full Member
***
Offline Offline

Activity: 331
Merit: 100


View Profile
February 13, 2018, 01:06:47 PM
 #11

Прошу помощи - подскажите, как лучше всего организовать периодическое снятие снэпшотов распределения ERC20 токенов на Ethereum?

Задача простая: нужно по состоянию сети Ethereum на определённый блок получить для выбранного токена ERC20 информацию о том, на каких аккаунтах и в каком количестве находятся эти токены.

Т.е. у кого и сколько токенов строго по состоянию на нужный блок.

Есть ли какие-то готовые инструменты для этого? Если нет - куда смотреть?

1. Можно через web3.js запрашивать метод balanceOf() у контракта, хранящего токены. Но т.к. там структура, которая хранит только хеши адресов - нужно знать адреса контрактов, на которые токены передавались. Это гемор. Поэтому рекомендую второй путь.
2. ERC20-токены генерят событие Transfer(address indexed from, address indexed to, uint tokens)
Можно проиндексировать блокчейн на предмет этих event'ов и записать себе куда-нибудь (в SQL-базу, например), и уже по ней запросы делать - блокчейн не изменится, только новые записи докидывать. Чем конкретно распарсить event'ы сейчас не подскажу, но в api эфира, вроде есть.
А разве event'ы записываются в блокчейн, вроде event'ы пишутся в лог-файлы? Ну это не столь важно, в смарт контрактах не обязательно что будут генерировать event, и поэтому не стоит полагаться на event'ы.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!