SteemWorld ~ Newsletter #3 / February, 2018

in #steem7 years ago (edited)

Parsing and compressing the blockchain for the SteemWorld Web API...

After I've successfully downloaded all blocks and saved the transactions in a local relational database, now the fun part begins.

How it works

My goal is to have one self-refreshing (current) db on my server that will only contain the data of the past few days/weeks so that the indices won't get to large and therefore write operations will always be executed with maximum performance. When a client makes a request to receive the new mentions, followers, etc. for an account the server will search in the (current) db and return the rows instantly.

After thinking about it for some hours, I came to the conclusion that my server needs to create new databases automatically in a defined interval and move the old db to a backup directory periodically. As I'm working with SQLite this can be done in a much easier and faster way than by using MySQL. The script for parsing new blocks and handling/creating the backup dbs will be executed by a Cronjob on the server. The filename for each db in the backup path will contain information about the date range of the in there stored data so that the server does not need to walk through millions of rows to retrieve data for a specific day. That makes it possible to retrieve old account operations very fast as well.

I've much experience in professional database administration/development and have worked with different big vendors like Oracle, Informix, Sybase (ASA) and MySQL for many years. Nevertheless I decided to use a purely file-based type of database and SQLite seems to be the perfect choice for me here (MongoDB would also work and may be my second choice). That also enables me to attach external db files easily (for example from backup dir) to an existing connection of the main (current) db and join the data within one SELECT-Statement (or multiple UNION's as well).

Better Compression

Since I want to save as much disc space as possible, I've written an own compression algorithm for the operations. Some of you might know that the transactions consist of much redundant data that could be saved in a much better way than just putting the complete JSON into a column. As far as I know, @dan has done similiar optimizations for EOS recently. Before the data will get deflated, the property names in the JSON Object will be replaced by 'Property IDs' which are automatically being stored in kind of a 'JSON IDs table'.

In theory it's done

One thing I've learned on my journey as developer is the importance of spending time in planning and thinking about different scenarios that can occur in a production environment. I know that there will be coming a huge number of requests from SteemWorld and I want to be well prepared for that. In most cases making big changes to a running system later lead to more headaches and sometimes unforeseeable consequences.

If you don't see any changes coming to the SteemWorld currently it is because the main work happens in background on many pieces of paper ;) Since I'm currently receiving new ideas for the site nearly every day, I'm thinking about creating an extra post for ideas/feedback/bug tracking and adding a link to it on SteemWorld, so that others can see what is already planned.

Please be patient and keep in mind that this is all being developed by me alone. I know that there are still many nice features missing in the tool and I will continue to work on them as soon as the Web API is running stable. As mentioned before, my current step will enable me to realize many cool things like desktop notifications for mentions/followers, a fast overview for incoming delegations and SP ranks as it has been on steemwhales.com.

[DE]

Parsen und Komprimieren der Blockchain für die SteemWorld Web API...

Nachdem ich alle Blöcke erfolgreich heruntergeladen und die Transaktionen in einer lokalen relationalen Datenbank gespeichert habe, beginnt jetzt der spaßige Teil meiner Arbeit.

Wie es funktioniert

Mein Ziel ist es, eine selbstaktualisierende (aktuelle) Datenbank auf meinem Server zu haben, die immer nur die Daten der letzten paar Tage/Wochen enthält, so dass die Indizes nicht zu groß werden und Schreiboperationen daher immer mit maximaler Leistung ausgeführt werden. Wenn ein Client eine Anfrage stellt, um die neuen Erwähnungen, Follower usw. für einen Account zu erhalten, sucht der Server in dieser (aktuellen) Datenbank und gibt die Zeilen sofort zurück.

Nachdem ich einige Stunden darüber nachgedacht hatte, kam ich zu dem Schluss, dass mein Server in einem definierten Intervall automatisch neue Datenbanken erstellen und die alte Datenbank regelmäßig in ein Backup-Verzeichnis verschieben muss. Da ich mit SQLite arbeite, kann dies viel einfacher und schneller erfolgen als mit MySQL. Das Skript zum Parsen neuer Blöcke und zum Bearbeiten/Erstellen der Backup-DBs wird von einem Cronjob auf dem Server ausgeführt. Der Dateiname für jede Datenbank im Sicherungspfad enthält Informationen über den Datumsbereich der darin gespeicherten Daten, sodass der Server nicht durch Millionen von Zeilen wandern muss, um Daten für einen bestimmten Tag abzurufen. Dadurch kann ich auch ältere Kontovorgänge sehr schnell anzeigen.

Ich habe viel Erfahrung in der professionellen Datenbankadministration/-entwicklung und habe viele Jahre mit verschiedenen großen Anbietern wie Oracle, Informix, Sybase (ASA) und MySQL gearbeitet. Nichtsdestotrotz habe ich mich für eine rein dateibasierte Art von Datenbank entschieden und SQLite scheint hier die perfekte Wahl für mich zu sein (MongoDB würde auch funktionieren und wäre wahrscheinlich meine zweite Wahl). Dies ermöglicht es mir unter anderem, externe DB-Dateien (z.B. aus dem Sicherungsverzeichnis) einfach an eine bestehende Verbindung zur Haupt- (aktuellen) DB anzuhängen und die Daten innerhalb einer SELECT-Anweisung (oder auch mehrerer UNIONs) zu verbinden.

Bessere Komprimierung

Da ich so viel Speicherplatz wie möglich sparen möchte, habe ich einen eigenen Komprimierungsalgorithmus für die Operationen geschrieben. Einige von euch wissen vielleicht, dass die Transaktionen aus vielen redundanten Daten bestehen, die viel besser gespeichert werden können, als einfach nur den kompletten JSON-String in eine Spalte zu schreiben. Soweit ich weiß, hat @dan kürzlich ähnliche Optimierungen für EOS vorgenommen. Bevor die Daten deflationiert werden, werden die Eigenschaftsnamen im JSON-Objekt durch 'Eigenschafts-IDs' ersetzt, die automatisch in Form einer 'JSON-IDs-Tabelle' gespeichert werden.

In der Theorie ist es getan

Eine Sache, die ich auf meiner Reise als Entwickler gelernt habe, ist die Wichtigkeit, Zeit in die Planung und das Nachdenken über verschiedene Szenarien zu investieren, die in einer Produktionsumgebung auftreten können. Ich weiß, dass SteemWorld eine große Anzahl von Anfragen erhalten wird und darauf möchte ich gut vorbereitet sein. In den meisten Fällen führen später gemachte, große Änderungen in einem laufenden System zu mehr Kopfschmerzen und manchmal unvorhersehbaren Folgen.

Wenn man also momentan keine Änderungen in der SteemWorld sieht, liegt das daran, dass die Hauptarbeit im Hintergrund auf vielen Zetteln Papier stattfindet ;) Da ich momentan fast täglich neue Ideen für die Seite erhalte, denke ich darüber nach, einen zusätzlichen Post für Ideen/Feedback/Bug-Tracking zu erstellen und einen Link dort hin auf SteemWorld.org zu platzieren, damit andere sich austauschen und sehen können, was bereits geplant ist.

Bitte habt etwas Geduld und bedenkt, dass dies alles nur von mir alleine entwickelt wird. Ich weiß, dass im Tool noch viele schöne Funktionen fehlen und ich werde weiter daran arbeiten, sobald die Web-API stabil läuft. Wie bereits erwähnt, wird mein aktueller Schritt es mir ermöglichen, viele coole Dinge wie Desktop-Benachrichtigungen für Erwähnungen / Follower, eine performante Übersicht für eingehende Delegationen und SP-Ränge zu realisieren, wie es auf steemwhales.com früher mal der Fall war.

In the meantime...

New buttons for showing the incoming/outgoing votes:


Links

SteemWorld.org/@YourAccountName


The Web API will make many awesome things possible on SteemWorld. As soon as I reach the point where I'm able to pay my bills with my work for the community, I will make it publicly accessible on a fast @privex server so that every developer can use it to easily retrieve data from the blockchain and to build/improve their own Steem tools.

Thank you all for the great support!


Sort:  

Definitely the best Steem tool so far. You see and get everything. All relevant data is in front of your eyes with a bit of scrolling and mostly one click away.

Awesome! Truly awesome.

Question - will we be able to tap into your database?

Question 2 - how will you implement search and filter functions. These are sadly inadequate now with current Steem APIs...

Thank you very much!

will we be able to tap into your database?

Yes, I've planned to make the Web API public as soon as I can make a living with my rewards here. I would probably get me two fast privex machines. One for steemworld itself and one for other developers.

how will you implement search and filter functions. These are sadly inadequate now with current Steem APIs...

That is one reason why I'm building the API. I think the public steem nodes should not be used for most developer tools because there are just a hand full nodes available and nearly every week there come new tools which all are making many requests to these few. That won't work well much longer I think.

For the search and filter functions I will create an extra db because I need huge full text indices for a much larger time period and that of course can't be done by joining all the weekly databases.

The API will have some parameters for searching and filtering so that one can retrieve only the operations of a specific kind, posts with desired tags/text etc.

Glad that you will eventually be opening up to other devs! I'm an analyst and DB guy myself, so I love me some data! When you do open up the API, I'd like to work on making more of a visualization dashboard for those who are less data-savvy!

I have a suggestion but first thanks for creating what I consider to be the best statistic site for the platform. I would recommend it to anyone.
The suggestion is based around a column that you already have so more of an update really, On the feed section you have created a followers sub section which includes; Followers not following & following not followers. Brilliant by the way. It's easy for me to use as a new user because I don't have much data to surf to find out what I need to know however this is getting harder as my account grows just through the sheer volume of traffic.
If a user has thousands of follows as apposed to my hundreds it will become harder to monitor the progress in this field as I don't wish to follow everybody just because they follow me especially if they have opened an account with good intention but are never going to actually use it.
So my suggestion is to add 2 fields to this section to make it easier for users with thousands of followers to spot new activity on their accounts.
The first section I would call New Followers; Add to this section any users who have become new followers in the last week; The benefit is that when I look here I will see new followers without having to sift through users that I have already decided not to follow that are currently appearing on followers not following.
The second section I would call inactive followers; add to this users who haven't posted, commented or voted on anything at all in the last fortnight; The benefit is that I don't have to keep following a user that mutually will probably never engage in any activity with. i.e they have no post for me to comment or vote on & they will never engage in my own blog which makes following them a complete waste of time.
It's your work so feel free to tweak, change or scrutinize.
Kind regards & keep up the good work.

Thanks for your great ideas! Your points are now on my todo list and I will think about ways for implementing it when the Web API is running stable ;) I've planned to save kind of an activity status for each account on my server and I think that I can use it for realizing your second point.

Thanks I'm pleased you liked the ideas & look forward to seeing them implemented. I have Steemworld open in a 2nd tab whenever I'm on Steemit it makes the platform a breeze to use. I recommend it to every new user I connect with.

Ein bereits jetzt geniales Tool. Wer kein Programmiere ist oder zumindest etws ähnliches macht wie du, kann sich nur sehr schwer vorstellen was da für Arbeit dahinter steckt.

Ich bin selbt jahrelang neben einem Programmierer gesessen. (Nein ich kann das nicht! ;) )
Wenn es so scheint als würde nichts passieren und man auch keine Ergebnisse sieht, dann befindet sich der Programmierer genau bei seiner Arbeit! Das ausdenken, duchdenken ist das schwierigste dabei. Wenn die Idee oder Lösung da ist, geht es ans Programmieren. Auch viel Arbeit! Aber das Lösung finden ist denke ich die größte Herausforderung dabei. ;)

Ich habe meinen Programmier-Kollegen wirklich sehr gerne neben mir gehabt! Nicht weil er still war! Nein, er hatte seinen eigenen Charme und Witz. Konnte mir technische Sachen erklären wie kein Anderer. Wahnsinn (positiv gemeint!) wie ein Programmierer an Dinge herangeht um sie zu lösen. Respekt vor der Arbeit und danke für deinen Einsatz! :)

That sounds like an immense job and it goes to further prove what I already know about Steemit - there are some really clever people here.

Thank you for your work.

Mind = blown.

Thank you again for all of the hard work! Steemworld is by far the best site for STEEM stats that I've seen, and I highly recommend it to others who have not tried it out yet!

Einmal mehr herzlichen Dank für das beste aller Steemit-Tools! Ich habe es immer in 4 Tabs gleichzeitig offen und schaue täglich als erstes in meine SteemWorld, noch bevor ich auf Steemit gehe. Es ist interessant, dass du uns an deiner Hintergrundarbeit mit viel vorausschauend, weit, breit und tief denken und planen teilhaben lässt. Da bekommt man eine ungefähre Vorstellung von dem enormen Aufwand. Wie so oft ist die meiste Arbeit die, die man nicht sieht.

Fantastic work! It reads very difficult to do!

Thanks! Yes, the huge amount of transactions is the main reason for the need of a very well thought solution. But I'm happy that I've found a good way. Even if it is still theoretical and my ideas are just written on paper, I know that it will work ;)

You are awesome! I truely admire you and all people who are able to code those complicated programs.

          I would like to throw my thanks in with all the others. I use it everyday, I am very appreciative of the manual vote slider. It takes a bit, but I use it almost all the time now on votes, even on some votes that are full power votes. That tool is a god-send for us less than minnows.
          Really looking forward to the mentions tool when it comes out. I love the vote indicator, my 'oh $hit I voted to much' warning graph.
          The incoming and outgoing vote tool is great also. I have found that I sort of rely on it to let me know that "oops" forgot to go give them any votes lately meter. For some reason though the incoming votes graph has not wanted to work in the last few days, I don't use it as much, but I do like to know who is voting my content, so I can make sure I visit their blogs to give votes if needed.
          I think, as I have told a lot of people, steemworld is a great tool.

I've been using your SteemWorld "tool" and have to say I love it!! It's amazing and continually open on my laptop. I feel badly that I never thought to check out your newsletter, and now I find you're doing this all by yourself!! Thank you, thank you, thank you!! Cheers!

@steemchiller, vielen Dank für deine tolle Arbeit bis jetzt. Das was die Developer-Tools in den Browsern für die Webentwickler sind, ist Steemworld für die Power-User auf Steemit.

Hey Steemchiller, seit du es mir empfohlen hast, benutze ich SteemWorld täglich. Ich finde das Tool sehr übersichtlich und freue mich auch schon auf die neuen Funktionen. Vielen Dank auch für die ganze Programmierung und alles was noch dazu gehört. Ich habe früher auch in IT-Firmen gearbeitet und weiss, wie viel Arbeit dahinter steckt. Ich nehme an, du machst das alles hobbymässig und dafür "chapeau". Freu mich auf deine Updates. Liebe Grüsse, Prisca

I regularly use steemworld.org, It has great improvements and much more flexibility than the old steemd.com
Thank you @steemchiller, although I don't have an idea about how can I use the web API, but I believe it will be beneficial to most of the members.

Thanks! Yes, the Web API will make many awesome things possible on SteemWorld.

As soon as I reach the point where I'm able to pay my bills with my work for the community, I will make it publicly accessible on a fast privex server so that every developer can use it to easily retrieve data from the blockchain and to build/improve their own Steem tools. ;)

I've noticed that the ratio of USD to post payouts in my coming Author Rewards preview is showing a lot lower today, but it appears that it's just due to the setting option where you can set it to only show the Net less the 24% curation. I've had that option set for a while now though, but it just seems to be working now. Was there a bug with this that was recently fixed, or maybe something on my end (browser, cache, etc...) that was causing this? Just curious, so not a big deal if you're not sure. Everything seems to be working as expected now.

Everything seems to be working as expected now.

Thanks man, I'm glad to hear this!

Yes, that was a strange phenomenon, I can tell you... ^^
I've 'optimized' so many things in the past weeks and didn't spend much time in testing the outcomes. Today, while I was working on including/splitting the benefactor rewards, I noticed it.

There is still a bug in the calculation of the reward pool percentage for the coming author rewards and that's one of the next points on my list.

Thank you so much for doing this. I have no clue whatsoever how this all can be done but am so happy that you do. I even understood a little tiny bit of the tech talk.
But your tool is very easy to understand and is so very helpful. Thank you so much for that!!

I've enjoyed using Steemworld a lot. It lets me see things that I couldn't with any other tools. I like seeing my outgoing votes. It would be nice to see the total of what I have distributed out of the reward pool over the past day or 7 days, too. I think it would motivate people to vote more, rather than hoard their vote power. Thanks for your work on Steemworld!

@steemchiller immer wieder bravo für Deinen Einsatz & Deine Kreativität, machst das sichtbar was dem Durchschnittsnutzer verborgen bleibt und man kann schneller auf einige Sachen reagieren, die man sonst nicht so übersichtlich auf einen Blick sehen würde. Schmunzeln muss ich häufig über die Frage wie man bemerkt ob ein eigener Beitrag resteemt wurde. Dies und so viel mehr findet man mit Deinem Tool, man muss sich halt nur intensiv damit beschäftigen. Vielen Dank und weiter so! lg

hi @steemchiller,
is the app working fine?
seems like the last operations aren't registering
the ones around past lunch central EU's time
is it the node?
refreshed several times :)

Yo, the buildteam-node seems to be stuck again (also yesterday). I have found a solution for such cases and added a test for the last received irreversible block num, so that steemworld will automatically connect to an other node if something like this happens.

The new tab "System Info" shows the last block and seconds since the last change:

Please refresh the page and it should work again. You may need to wait for 3 minutes before it will switch to an other node automatically or you can do it manually in settings ;)

Same here for me. 8:55 am EST was my last thing updated on it.

it also seems broken
it says my voting power and voting influence rate is higher than that of steem now

Recent Posts & Coming Author Rewards seems to be the only things updating. Feed & Account Operations haven't updated in 2 hours. Voting Power is updating, but from at that time the other things stopped. So whatever your VP was then it's updating it from that. Any votes now are not being subtracted on it.

Top half of the page isn't updating, bottom half is.

Please take a look at my answer to @englishtchrivy ;)

I wish you good luck fixing it, as of this morning Steemworld gets stuck at 7%, Loading 'Price Ticker' ... Feb 14, 09:33 Netherlands.

Richtig richtig cooles Projekt 👍
Schön, zu sehen, dass dieses Netzwerk sogar durch Projekte einzelner so gestärkt und Supported wird - weiter so 👌

I love the how it is now so I can only assume it be more amazing in the coming months. Thank you for all the hard work and for such a wonderful tool that I use daily. I think the optimization of MySQL and backing up older date ranges will help a lot.

I'm curious and wonder what happened to Steemit UI Tools (SCT). Thought it was a great tool sorting your favorites feed. Do you know any similar funktion if the application is down. Have good day!

Thanks! SCT can still be used but it is currently only working with Tampermonkey. I've no time for implementing new features, therefore I will only make updates if the existing should no longer work.

I'm trying it out using Tampermoney. The script is running but I can't see the menu button. I know the UI tool is running because of the drop shadow on the posts. Do you know if it is working with the new layout of Steemit or could it be that I use Steemplus and Steemit more info? Thanks for support!

I'm still using it and it's working with the new layout but SCT won't work as expected in conjunction with some other tools as you guessed. Tampermonkey does not allow page manipulations coming from other addons at the same time. I'm not sure if there is a way to define trusted addons in the Tampermonkey config.

Thanks for the info! Then I can switch the other tools on and off if needed.

Thanks for your hard work! I use steemworld daily :-)

Hey man!

Excellent work with SteemWorld, it's a great app which I use all the time.

I was wondering if you could help me with something regarding the delegations 'out'.

I'm looking at the table an I cant work out the logic to list the current active delegations. I'd be using SQL (and I think you could be using something else), but any clues on to list just the active delegations would be great.

I see the vesting_shares = 0.0000 is the end of a delegation, but Im unsure how to code the 'active' list, particularly if a delegation has ended, and restarted for the same users.

Any advice would be much appreciated!

Thanks again for your work!

Thanks man! If you want to build it on your own with SQL, you need to look for the last 'delegate_vesting_shares' operation with the desired combination of 'delegator' and 'delegatee':

SELECT vesting_shares FROM [table] WHERE delegator = [1] AND delegatee = [2] ORDER BY [date] DESC LIMIT 1

To retrieve all active outgoing delegations for an account you will also need some grouping/joining to select each group ( delegator + delegatee ) with the last date. I think I would do it with MAX( [date] ) so that for each group only the row with highest date will be returned. To reach optimal performance I would recommend to test a few different queries (depending on existing indices for the table and type of your used SQL server).

You could also use SteemJS ( steem.api.getVestingDelegationsAsync() ) or just make a direct curl() to a steem node with 'get_vesting_delegations' to achieve that.

Thank you for the web site, It helps me, as a new user in many ways! Thanks for your time.

Danke für die tolle Arbeit. Ich liebe die Seite. Ist die erste Seite die ich öffne wenn ich meinen Browser starte. Läuft immer nebenbei.

Great work @steemchiller! Why don't you make your work opensource and post from Utopian? You'd get more exposure for your work! (Btw I love Steemworld and use it regularly!)

I understood maybe 8% of that. 😂

Here u can check a Portuguese version of this text. Not just translation, but the explain too.

https://steemit.com/pt/@vempromundo/steemworld-web-api

Love Steemworld! Vielen dank!!

Thank you for this tool and the work you are doing

Vielen dank für deine Arbeit 😊 🙏

Wow @Steemchiller! Danke dir für deine Zeit und Know How was du hier in Steemit hinein steckst um das ganze ein bisschen weiter zu entwickeln!

Gerade erst ausprobiert und funktioniert echt gut ! :)

Thanks for the update @steemchiller, thanks for sharing this wonderful tool. ...entwickelt with love indeed, dass sieht man ueberall darauf :-)
All the very best to you sir!

appreciate your work.. loved steemworld .. its my homepage now.

Ein riesiges großes Dankschön. Bin jeden Tag auf der genial programmierten Seite.
Danke Danke Danke.

Getting a load error at 7% on "Loading Price Ticker". I love using SteemWorld. Keep up the great work.

There is an issue with the default steem node and I was not prepared for the case when a node is reachable but not working properly. I've now added a node functionality test to the normal connection test and from now on steemworld should switch to an other node, if something like this happens.

Please refresh the page and it should work again ;)

Thank you! Much appreciated!

Hola hermano veo que la página tiene problemas se quedó trabada Aunque doy like sigue viéndose Mi voto como 100%

There seems to be issues regarding new blocks on some steem nodes. Please choose an other node (for example 'gtg') in the settings ;)

Oye gracias a lo que estás haciendo estoy creciendo muy rápido Muchas gracias Espérame un poco y te voy a agradecer de una forma muy generosa mucha buena vibra y un abrazo

Hey @steemchiller
Thanks again for the awesome tool. I've been using Steemworld daily.
I have a question, though.
Can I un-delegate using Steemworld by setting the numbers in the 'edit delegation' window to zero?

undelegate.png

Thanks! Yes, that will work. I should add a hint for that in the dialog... :)

You just planted 0.39 tree(s)!


Thanks to @vladimir-simovic

We have planted already 2495.823 trees
out of 1,000,000


Let's save and restore Abongphen Highland Forest
in Cameroonian village Kedjom-Keku!
Plant trees with @treeplanter and get paid for it!
My Steem Power = 18385.08
Thanks a lot!
@martin.mikes coordinator of @kedjom-keku
treeplantermessage_ok.png

wonderful,thanks for your work

interesting, it would be nice to show these functions to the community in Spanish

Very helpful blog
Thanks for share
All the best

do you think it's funny to use the pictures from @steemchiller?
let me count to ten... change it now or you will be flagged...


chiller_pic.jpg


[edit:] well done. thx. and don't try this again.

Danke @pawos! Habe ihn schon gemeldet und möchte keine VP dafür verschwenden. Ich muss zugeben, dass ich nicht schlecht gestaunt habe, als ich mich selbst hier als Kommentar gesehen habe... ^^ Die probieren immer neue Sache, aber schlauer werden sie dabei irgendwie trotzdem nicht :)

unsere flaggen zeigten wirkung, lieber @steemchiller. er hat sein profil angepasst und jede ähnlichkeit zu deinem entfernt. ich habe ihm gerade geantwortet, das wir nun aufhören ihn zu flaggen. meine lasse ich stehen - lehrgeld. nur das du bescheid weißt. lg

Ah, da haben wir zeitgleich geschrieben.. :)

I am very very sorry Sir , i am new steemer. i don't know about this picture.....but i understand.
present time i change this picture. please withdraw your flag.
and next time i don't mistake

I also was new here (about a year ago) and I've never copied other peoples work to earn money. You should try to participate in the community, write good comments and not only share posts by one "leader" (marketreport). That will bring you nothing of value.

You still have my website defined as yours on your profile and I'm asking myself how dumb one can be...

REMOVE MY WEBSITE FROM YOUR PROFILE IMMEDIATELY AND BEGIN TO THINK!

Ok yes sir, done

Ok, I removed most of my flags. I hope you've learned something.

Er hat den Account von @steemchiller komplett kopiert, omg:

Org:

arg dreist halt. hab schon mal vorboten mit flaggen losgeschickt...

I am really sorry dear
Please withdraw a flagged

sir i am new steemer . So i am very sorry for steemchiller sir profile copy . Present time i remove steemciller sir profile all information . Please sir [-]
@pawos withdraw your flag . Next time i don"t mistake . I try my best .

since you've talked to @steemchiller and he decided to remove some of his flags i'm going to do the same.

Many many thanks sir

You got a 20.90% upvote from @postpromoter courtesy of @steemchiller!

Want to promote your posts too? Check out the Steem Bot Tracker website for more info. If you would like to support the development of @postpromoter and the bot tracker please vote for @yabapmatt for witness!

Steemchiller outstanding name! good contribution

best regards to friends good luck always

So beautiful dear
This very helpful post
I like this
All the best
I wait your next blog