CrypTTracker - Investigating Wallet Transfers Utopian Hackathon Entry

in #utopian-io6 years ago (edited)

CrypTTracker - Investigating Wallet Transfers

image.png

CrypTTracker is a work-in-progress tool for investigating wallet transfers on the STEEM blockchain.

The idea was brought forward by @iamstan while investigating voting rings on Steemit. Most voting rings we encounter are using delegations from Steemit.

Consider this copy/paste image and the 14 characters of attribution to Pexels. It had upvotes from 300+ accounts with delegated SP. Imagine 10 more voting rings of that size and you have 3,000 accounts spamming the blockchain.

image.png

Most of the concerned Steemians we work with @steemflagrewards rely on their instincts and STEEM blockchain's transparency in tracking abuse on the platform. Manual tracking is a time consuming process.

We use different condensers, steemd, steemworld and steemdb for researching accounts. It takes multiple browser tabs, clicks and windows just to come up with a list of well-researched ring of accounts.

And while taking the time to pull data together, these accounts are busy posting spam and generating STEEM rewards.

Developing CrypTTracker is an essential for efficiency. This tool will aid in pinpointing the main account the voting ring uses for withdrawing STEEM. It will also help collect accounts related to a voting ring.



For the Utopian Hackathon, I came up with the following goals:

  1. provide account name and find transfers to exchanges
  2. provide account name and find transfers to other accounts
  3. provide account name and find who transferred to this account name
  4. provide wallet address and find other accounts using it



Considering the time constraint, distractions and my Python proficiency, I was able to complete two of my goals. The rest are included for future development.

This project is open source and made available at below GitHub repository:
https://github.com/livefreensmart/crypttracker

Project Details

CrypTTracker is a tool developed for the anti-abuse community. It is now possible to integrate this project's code to a Discord bot providing

  • a list of an account's transfers to exchanges with wallet address specified in memo
    image.png
  • a list of an account's transfers to other accounts that might be related to a voting ring
    image.png

A beem-powered function is also available for streaming wallet transfers. Provide the account name and how far back you want to start. You can provide a whole number for days or less than 1 for hours.

For below example, we're looking at an account's transfers to exchanges 42 minutes ago. It prints the memo to the console.

image.png

Technology Stack

  • Python 3.6
  • Requires Beem by @holger80 for streaming blockchain operations
  • Requires lxml for scraping an account's wallet history

Roadmap

  • Discord integration or a website (may dive into Quasar Framework for that)
  • Consider SteemSQL subscription for faster response time
  • Complete goal#3 - retrieve accounts transferring to the account in question
  • Complete goal#4 - retrieve different accounts using a given wallet address

There will be more features simmering in my head which can benefit the anti-abuse community. Updates will be posted as soon as possible.

Key Takeaway
From a beginner's standpoint, it is overwhelming to finish a project in a short amount of time. But at the same time, it challenges your ability to focus and be an efficient developer.

  • Learning how to use beem is easy. The documentation is very helpful.
  • Learning XPath is very interesting when you're web scraping.

Contribution
Pull requests are appreciated on GitHub. Comments, enhancement requests are also welcome.

Github Account

https://github.com/livefreensmart
image.png

I'm a beginner Pythonista, this is my first hackathon and my first Open Source Python project!

It has been a wonderful 24+ hours of learning and improving my skills. Thank you for the opportunity @elear and @utopian-io.

Visit below post on the latest hackathon update from the Utopian Villa in Lucca, Italy.

Sort:  

Cool stuff. We need more detective tools. :)

Requires lxml for scraping an account's wallet history

Why don't you just parse the account history call and filter transfers operations instead of scraping?

I also would like too see that as a packaged CLI tool on pypi, then run as like that:

$ detective emrebeyler transfers

which will put the transfers of my account.

Currently, if I want to run that, I do a ```git clone`` first, then try to run and see missing dependencies. (beem, lxml), install them, try again...

Not exactly a smooth workflow. Packacking it also handle the dependency installation.

Thanks so much for the tips! Flug also asked why I didn't use account history. Short answer, I didn't think to go to the Account module.

I'll get that fixed and use it. Great idea on creating a packaged CLI tool - now I just need to learn how to do it :)

Btw, I've been reading up on your Python tutorials. They were really helpful for me. Thanks for putting them together.

Btw, I've been reading up on your Python tutorials.

Glad it helps! :) Keep developing.

This is an incredible project, in my opinion.

With all the uproar surrounding @transparencybot "spamming" the blockchain, etc. We have voting rings that literally spam 10 posts a day PER ACCOUNT with their garbage.

I wonder which one puts more pressure on the Witnesses? I don't have the technical prowess to explain that.

Big features coming for Admiral. Now if I can keep up with the ideas and code it efficiently...that's another question.

I guess when that bot spams the witnesses it will put pressure on them to flag it themselves. No need for technical prowess hehe

Thanks for chiming in!
Daily abuse fighters like yourself is what inspired this project.
There are probably closed tools that others have built, but are afraid what we would discover if they released it.
We just wanted to have a tool added to @admiralbot that would enhance our ability to track this type of abuse. Will save us time and make our work quicker.

Sounds like a great idea.

May I also suggest a lifetime transfers total to each account. Then could see the amount of steem/sbd sent to specific accounts.

Oh yeah I'd be curious how much the numbers are going to look like. Will have that on the list for sure.

Good Idea @pjau.

I figure you have a tool like this already, but no one offered to allow us to use it.

Thanks for all the hard work you do every day! We completely support your work.

Yeah have a tool. Just our eyes. lol 👀

Wow! I'm really impressed with not only your astute choice for a useful programming application that is highly relevant and even essential to Steem, but your rapid progress in development.

I could not find words to better convey how deeply impressed I am, but I am more impressed than I can communicate.

Kudos!

Thanks VC! I surprised myself considering all the distractions while finishing the barebones.

Just keep at it and I'll be back in my programming groove. It's been a while (3 years) since my last project.

Oh my God! @lovenfreedom, Yam I am so much impressed by your hard work and so much ashamed that I stopped my Python learning because of some glucks I had from the very beginning. I am so much thankful though that you helped me to install the basics for my Python learning.
I promise to you from today I will do Python study everyday. I want to reach that level of code understanding and usage that you have.
Thank you!

Thank you! I have experience in programming, that's what I did for 7 years but not with Python. This is just my first journey with Python.

You can learn it easily, there are plenty of YT tutorial about it. Just keep at it and you'll do great.

Coin Marketplace

STEEM 0.27
TRX 0.13
JST 0.032
BTC 61390.40
ETH 2913.66
USDT 1.00
SBD 3.64