🔄 Adesso ti spiego come fare delle semplici query su steemit - No Pyton, No Ruby, Solo SQL 🔄

in #steemit7 years ago (edited)

🔄 SQL E' NOSTRO AMICO 🔄

Ho visto in giro parecchi script fatti in python ed in ruby per fare delle semplici query sui database di SteemIT.

Per fare l'esempio più eclatante, mi viene da pensare a coloro che hanno hackerato parecchi account su SteemIT, ossia il gruppo di @noisy & @lukmarcus.
Poi lasciatemi dire che se trovare la password dei poveri cristiani che l'hanno messa per sbaglio nelle memo delle transazioni è essere hacker, allora proprio non ci siamo. #lameroni
Questo mi ricorda un pò quando per cazzeggiare ai tempi di msn, entravo negli account degli altri solo perchè conoscevo la domanda segreta. Vuol dire essere hacker quello? LOOOOOLLLL 😊

Ed intanto questi sono i soldini che si sono intascati i VOSTRI amici alle spalle della gente....
script.png

https://steemit.com/steemit/@noisy/we-just-hacked-11-accounts-on-steemit-1158-sbd-and-8250-steem-is-under-our-control-but-we-are-good-guys-so

NON DI CURAR DI LORO MA GUARDA E PASSA......

Anche il buon @ned era contento perchè dopo il danno hanno fatto uscire una bellissima FIX che risolveva la falla. Sono arrivati i buoni samaritani....
Ma gli hacker non facevano le cose a sfondo didattico una volta?

ned.png

Ma spieghiamo cosa hanno fatto questi signori e come lo hanno fatto. Per comprenderlo, vi citerò un pezzo del loro listato...

des.png

Non vi ricorda qualcosa di famoso?

Bhe ve lo dico io. La risposta è SI! è il famosissimo linguaggio SQL. Allora c'e' qualcosa che mi sfugge... Questi signori hanno fatto delle query tramite phyton per interrogare i DB di steemIT catturando le informazioni della chiave pubblica sul campo MEMO.
200 righe di listato per fare una cosa che si fa con si e no 20 righe. L'informatica è un optional a quanto pare!!!

E' quì che entro in campo io...

SOLUZIONI SEMPLIFICATE ED OTTIMIZZATE

Non tutti forse sanno che il DB di SteemIT è pubblico ed è fruibile tramite il sito http://www.steemsql.com/

sql.png

Personalmente quando l'ho scoperto mi è sembrata un'eresia. Lo trovo veramente molto rischioso per una serie di motivi. Ma diciamo che ci fidiamo e che possiamo comunque fare le nostre bellissime query.

Piccola premessa: il database di cui parleremo non è quello realmente in produzione, ma una copia messa a disposizione della comunità e che presumo abbia una discrepanza di circa un paio d'ore dall'originale.

Ma andiamo alla parte pratica.

REQUISITI

  • Un software per fare le query SQL
  • buona conoscenza del linguaggio SQL (in giro ci sono milioni di guide. Molte di più che del python. Ma magari a voi programmatori piace tanto di più.....)

A) SOFTWARE PER QUERY SQL
Nel mio lavoro quando devo fare delle query SQL utilizzo un tool gratuito di Microsoft denominato "Microsoft SQL Management Studio". Altro non è che il tool di gestione remota di Microsoft SQL. Poco importa che sia di Microsoft o meno, perchè il linguaggio SQL è standard per tutti.
Scaricato, installato ed eseguito ci chiederà le informazioni di accesso al DB di SteemIt che sono anche indicate nel sito
http://www.steemsql.com/

ssms.png

Server Name: sql.steemsql.com
Authenticaion: SQL Auth.
Login: steemit
Password: steemit

Accediamo ed operiamo.....

CUORE A CIELO APERTO

Una volta dentro, se sfogliamo le varie sezioni, però, ci accorgiamo subito che manca il DB di SteemIT. Quello che non ho capito è se il DB è stato oscurato volutamente oppure se il nostro bel programma non è in grado di farcelo vedere!!

sqlqq.png

Ma ecco che etra in aiuto il nostro bellissimo linguaggio SQL

🔄 SQL I LOVE YOU🔄

Prima di tutto NEW QUERY ed eseguiamo la seguente query:

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'

Questa query non fa altro che prendere le informazioni di tutte le tabelle dall'INFORMATION_SCHEMA. Da quì vediamo che il DB che stiamo interrogando si chiama "DBSteem"

sqlll.png

Le cui tabelle si chiamano:

|TxWithdraws|
|TxWithdrawVestingRoutes|
|TxWitnessUpdates|
|Accounts|
|Tokens|
|Blocks|
|Transactions|
|Comments|
|TxTransfers|
|TxAccountCreates|
|TxAccountRecovers|
|TxVotes|
|TxAccountUpdates|
|TxAccountWitnessProxies|
|TxAccountWitnessVotes|
|TxClaimRewardBalances|
|TxComments|
|TxCommentsOptions|
|TxConverts|
|TxCustoms|
|TxDelegateVestingShares|
|TxDeleteComments|
|TxEscrowApproves|
|TxEscrowDisputes|
|TxEscrowReleases|
|TxEscrowTransfers|
|TxFeeds|
|TxLimitOrders|
|TxPows|
|TxDeclineVotingRights|

La tabella da cui i "nostri amici hacker" hanno preso le informazioni si chiama appunto:
dbo.TxTransfers

Una Query simile alla loro potrebbe essere:

select
*
from
dbo.TxTransfers
where
"from" = TxTransfers."from" and
memo like 'P5%' and
datediff(day, timestamp, GetUTCDate()) between 0 and 30

Dove setto anche il numero massimo di giorni a 30 perchè gli account più vecchi non ci interessano.

saq.png

Ma lasciamo il giochino di rubare le caramelle "ai bambini" a chi ne è capace....

meme.jpg

A noi interessano altre informazioni.
Come avete notato nell'elenco delle tabelle ce n'e' una che si chiama Accounts.
Lo so che state pensando che magari potremmo trovare la password privata degli utenti salvata all'interno, ma NO, vi è andata male. Solo chavi pubbliche (tutte e 4 per ogni utente). Ci sono, tuttavia, altre informazioni molto carine ed utili.
Come per es.:

quanti sono gli account attivi che hanno postato negli ultimi 30 giorni?

select
*
from
dbo.accounts
where
"name" = accounts."name" and
datediff(day, last_post, GetUTCDate()) between 0 and 30

RISPOSTA: 56856 al 26/10/2017

quali sono gli account in ordine decrescente per chi ha più STEEM sul conto?

select
name, owner, memo_key, post_count, balance, sbd_balance, vesting_shares,last_post, vesting_balance
from
dbo.Accounts
ORDER BY balance DESC;

RISPOSTA: non ve lo dico così andate a fare le query e magari ne suggerite di nuove.

Quasi si potrebbe pensare di fare una classifica tutta nostra Italiana per vedere chi ha più potenza di voto.

CHE NE PENSATE?

DQmdUT8cUb21GUcfGegpiY846gYtnvM4Y4yEsfhyAWw5HYD_1680x8400.png

@yanosh01

Sort:  

Essendo una blockchain pubblica è normale che le info possano essere rielaborate.. molte delle vostre curiosità sono già su https://steemwhales.com

Un post davvero importante per poter raccogliere informazioni utili per orientarsi e cogliere delle occasioni.

oh mamma...non puoi partire un post così....INVITANTE .
Chissà che magari riesco a farmi venire in mente qualche query ... ogni giorno che devo estrarre valori dai db mi imbatto in query e un pò con le conoscenze e un po con le funzionalità che trovo su microsoft (in pieno sviluppo di funzioni anno dopo anno) ...riesco ad arrivarci. Avere anche qui il db...TOP ;-)

Ottimo ci faccio qualche esperimento! 👍

Ecco la classifica!

1° bhuz
2° claudiop63
3° cheftony

sei un grande...

Esagerato! 😆 Ho seguito la tua guida. 👍

Posso dire che studiare SQL al liceo è stato veramente utile allora hahaha

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.029
BTC 61800.05
ETH 2496.29
USDT 1.00
SBD 2.64