Author Topic: Network Health, Delegates Statistics and Block Tools  (Read 12744 times)

0 Members and 1 Guest are viewing this topic.

Offline bytemaster

Use the btsx://bitmeat/transfer url to request support and also include the robo hash. 
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline vikram

Minor: it's "reliability" not "realiability"

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Thank you, bytemaster!

I compiled 0.4.7. from scratch, which seems to be really stable so far. Site has rebuilt the data from scratch and is up and running again!

:)

Offline bytemaster

Hmm I did a fresh checkout of 0.4.5 and seems I'm stuck on block 284575.

Any ideas? This is on Ubuntu 14

Yes.. this is a known issue.   Try this work around.  Clear chain folder and connect via chain server:

 https://github.com/BitShares/bitshares_toolkit/wiki/Using-Chain-Servers

We are preparing a fix for the next iteration.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Hmm I did a fresh checkout of 0.4.5 and seems I'm stuck on block 284575.

Any ideas? This is on Ubuntu 14

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Recompiling and will update shortly. In a perfect world hard forks won't happen, but they still do, so... it is what it is. :)

Thank you all for alerting me!

Offline GaltReport

Yeah, something's not right about it.  Probably just needs to be updated somehow.

Offline vikram

The website seems to be on a minority fork.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
That's a great idea and, you will soon see a "delegate profile page". Where can look at historical voting / reliability charts.

Offline king

  • Full Member
  • ***
  • Posts: 80
    • View Profile
Please forgive my poor English! ! !
About Delegates statistics, I think it is very good!
But I think the general BTSX users will not be too concerned about how many blocks delegate production, are more concerned about the reliability of the most recent Delegate, therefore, on this basis can provide delegate details:


Green triangle in the figure can be dragged to learn recently that the Delegate's reliability as whether to vote or concern basis.

Figure information just to show, of course, if you like,
 you can vote for my delegates "mister" or "delegate.mister",
 thanks!
« Last Edit: July 31, 2014, 04:58:29 pm by king »
BTSX Account: mister
BTSX Delegate :sun.delegate.service,moon.delegate.service


Offline liondani

  • Hero Member
  • *****
  • Posts: 3737
  • Inch by inch, play by play
    • View Profile
    • My detailed info
  • BitShares: liondani
  • GitHub: liondani

Offline GaltReport

I didn't know that.  That's cold man.

Think about it... let's say the slate for block production is as follows:

D1, D2, D3, D4, D5. Let's say D1 is a good honest guy and D2-D5 are playing dirty.

D1 produces a block, but as soon as he does, D2 builds a longer chain based on last block before D1 and marks it as missed. Then D3 confirms it, and so does D4 and D5. Now they have the longest chain of decent looking blocks. While good guy D1 has bad rep.
That's a shame but I guess I shouldn't be surprised.  Too bad there's no way to fix that.

Offline BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Directing a portion of my delegate pay to happypatty for the effort put forth on delegate statistics.

Thank you.

Appreciate the recognition of my efforts! Anything donated to bitmeat will help keep the monitoring service up & running, as it is not cheap.

Include a topic ID from this forum, and the senders name will automatically be highlited and listed in the donations section with a link to the topic on this forum. Amounts will not be shown, however they will be sorted in a descending order in the donations section.

e.g. if you include 6142 in the memo it would link to this thread. (Look in the URL web address in your browser you will see topic=6142)

100BTSX will be the minimum that will be processed using this system. If you want to be removed send again with "remove" in the memo, simple as that.

(this is work in progress, wanted to get some early feedback)
« Last Edit: July 28, 2014, 03:27:05 am by happypatty »

Offline Fox

Directing a portion of my delegate pay to happypatty for the effort put forth on delegate statistics.

Thank you.
Witness: fox

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
I didn't know that.  That's cold man.

Think about it... let's say the slate for block production is as follows:

D1, D2, D3, D4, D5. Let's say D1 is a good honest guy and D2-D5 are playing dirty.

D1 produces a block, but as soon as he does, D2 builds a longer chain based on last block before D1 and marks it as missed. Then D3 confirms it, and so does D4 and D5. Now they have the longest chain of decent looking blocks. While good guy D1 has bad rep.

Offline GaltReport

I think the latency metric is very important (only valid if your data collection node stays online the whole time).   A good node will have a median latency of 0.   

Right now I just connect to the client via JSONRPC. Any pointers as to where/how I could get that data from so I can include in analysis? Or do I need to plug into the toolkit source code directly?

Quote
Another metric is "who came before and after me" when I missed a block.  Sometimes it is the node that comes after you that "skips" your block and makes it look like you missed it.   Because of the shuffle it would appear as if everyone is "randomly" missing a block when in reality it is everyone who goes before Attacker always misses a block.

Funny you should mention that, I was just about to start doing an analysis of missed blocks before each delegate! Since as we all know a bad delegate could simulate missed block for someone else, so that they get kicked out. It gets worse - if you have a few delegates, you could target one specific delegate you want out, and collaborate to create bad rep for the good guy. It will be interesting how it unfolds, as the competition heats up. This is why I thought limiting to 100 delegates is tough because it will produce fierce competition and some bad behavior will ultimately come out of it. That said - it's also a good thing because we will analyze and find ways to strengthen the network. This is uncharted territory.

I didn't know that.  That's cold man.

Offline ripplexiaoshan

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 2300
    • View Profile
  • BitShares: jademont
Fantastic work! If you can add more information to the delegates, like pay rate, it will be better. +5% +5%
BTS committee member:jademont

Offline 8bit

  • Full Member
  • ***
  • Posts: 56
    • View Profile
Happypatty, are you using RPC to pull data from the blockchain? Could I look at your code? I'm having trouble connecting.

See here: https://bitsharestalk.org/index.php?topic=6270.0
« Last Edit: July 27, 2014, 09:03:14 pm by 8bit »
Code: [Select]
wallet_approve_delegate eightbitA VOTE FOR EIGHTBIT IS A VOTE FOR CRUDE DICK ART

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
I think the latency metric is very important (only valid if your data collection node stays online the whole time).   A good node will have a median latency of 0.   

Right now I just connect to the client via JSONRPC. Any pointers as to where/how I could get that data from so I can include in analysis? Or do I need to plug into the toolkit source code directly?

Quote
Another metric is "who came before and after me" when I missed a block.  Sometimes it is the node that comes after you that "skips" your block and makes it look like you missed it.   Because of the shuffle it would appear as if everyone is "randomly" missing a block when in reality it is everyone who goes before Attacker always misses a block.

Funny you should mention that, I was just about to start doing an analysis of missed blocks before each delegate! Since as we all know a bad delegate could simulate missed block for someone else, so that they get kicked out. It gets worse - if you have a few delegates, you could target one specific delegate you want out, and collaborate to create bad rep for the good guy. It will be interesting how it unfolds, as the competition heats up. This is why I thought limiting to 100 delegates is tough because it will produce fierce competition and some bad behavior will ultimately come out of it. That said - it's also a good thing because we will analyze and find ways to strengthen the network. This is uncharted territory.

Offline bytemaster

I think the latency metric is very important (only valid if your data collection node stays online the whole time).   A good node will have a median latency of 0.   

Another metric is "who came before and after me" when I missed a block.  Sometimes it is the node that comes after you that "skips" your block and makes it look like you missed it.   Because of the shuffle it would appear as if everyone is "randomly" missing a block when in reality it is everyone who goes before Attacker always misses a block.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bytemaster

The primary thing causing forks right now:

1) Network propagation delay (sometimes caused by CPU load)
2) Nodes with their timestamp set to the future (or past)
3) Delegates with their key loaded and active in two different nodes.

I think we need to rename them from "forks" to "orphans" if they are only one block long.  A fork would be a case where a subset of delegates disagreed with main fork for some reason un-releated to timing.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
happypatty, please be sure to let us know if there are any stats you think we should be tracking directly in the blockchain database that would be useful. For example: https://github.com/BitShares/bitshares_toolkit/issues/580

Yes, I would like to understand more about the forks command. The output of that seems to be huge. I want to track how forks are formed, identify what causes them, so that if there are bad delegates causing the forks they are out.

One thing that would be nice, is to get the vote selection for candidates as of specific block in the past.

Offline vikram

happypatty, please be sure to let us know if there are any stats you think we should be tracking directly in the blockchain database that would be useful. For example: https://github.com/BitShares/bitshares_toolkit/issues/580

Offline xeroc

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 12922
  • ChainSquad GmbH
    • View Profile
    • ChainSquad GmbH
  • BitShares: xeroc
  • GitHub: xeroc

Offline bytemaster

Sending you 8 PTS from the community fund in recognition of your amazing efforts Happypatty

https://bitsharestalk.org/index.php?topic=4909.new

+1  This is very exciting :)   I am very happy with the reliability of the network compared to the test network.
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline CLains

  • Hero Member
  • *****
  • Posts: 2606
    • View Profile
  • BitShares: clains
Sending you 8 PTS from the community fund in recognition of your amazing efforts Happypatty

https://bitsharestalk.org/index.php?topic=4909.new

Offline CalabiYau


Offline cass

  • Hero Member
  • *****
  • Posts: 4311
  • /(┬.┬)\
    • View Profile
█║▌║║█  - - -  The quieter you become, the more you are able to hear  - - -  █║▌║║█

Offline Riverhead

Nice one!
What about a site where you can see the realtime graphs?

Here you go: http://x.bitmeat.com/


Mmmm....meaty.  I like that there are 22 delegates with 100% over the last 10k blocks.  Would it be possible to add rank in there too?  So people could make an observation like, "Wow, delegate.smith has 100% reliability over the last 50k blocks but is in 101st place.  They need my support!"
« Last Edit: July 27, 2014, 09:36:12 am by Riverhead »

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
If you need beta testers let me know.  I have both Windows and Ubuntu environments.

Thank you! It will be put live on a website shortly. Just working out some kinks with the configuration.

Offline Riverhead

If you need beta testers let me know.  I have both Windows and Ubuntu environments.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Another preview, this time a bit more readable:



I think so far we are doing OK, but alerts would probably be very useful.

Offline Riverhead

Right now the data I'm collecting has already been collected by the client. You all have it, it's just not visualized very well. It can easily be verified by looking at the block chain.

However once I release this, I plan to start gathering more interesting stats, like current forks, who are the delegates that produced the most forks, etc. <-- this stuff is very important, since you could have good guys be bashed by bad guys, if they fake missed blocks. We will see how it plays out, and also what the community needs most.


You certainly have my votes.  We need more people like you.

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Right now the data I'm collecting has already been collected by the client. You all have it, it's just not visualized very well. It can easily be verified by looking at the block chain.

However once I release this, I plan to start gathering more interesting stats, like current forks, who are the delegates that produced the most forks, etc. <-- this stuff is very important, since you could have good guys be bashed by bad guys, if they fake missed blocks. We will see how it plays out, and also what the community needs most.

Offline Fox

I'm doing this entirely as a hobby and a pet project at the moment.

Completely respect this statement.  :)

Are you willing to share you data dictionary describing the information you are currently collecting? 

Respectfully,
Fox
Witness: fox

Offline luckybit

  • Hero Member
  • *****
  • Posts: 2921
    • View Profile
  • BitShares: Luckybit
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Very much looking forward to your progress.  How may interested parties connect with your efforts?  Are you providing your code for peer review at this time?  Are you willing to share a small subset of your collected data  (perhaps a few rounds)? 

Thanks,
Fox

I plan to make it possible for people to make an API call and use the data however they wish. I'm doing this entirely as a hobby and a pet project at the moment.

Offline Fox

I'll do much more over the weekend.

Very much looking forward to your progress.  How may interested parties connect with your efforts?  Are you providing your code for peer review at this time?  Are you willing to share a small subset of your collected data  (perhaps a few rounds)? 

Thanks,
Fox
Witness: fox

Offline ripplexiaoshan

  • Board Moderator
  • Hero Member
  • *****
  • Posts: 2300
    • View Profile
  • BitShares: jademont
Looking forward to seeing the real time graph +5% +5% +5%
BTS committee member:jademont

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Few notes:

I did 100 because it is good for calculating percentage. The math will need to be fixed as well, because it is based on last 100 produced blocks. But each produced block could have many missed delegates until it's produced.

So if in the last 100 produced blocks we had 20 missed blocks I show 80. However that's 20 out of 120 expected blocks missing.

I'll do much more over the weekend.

By the way the most consecutive misses were 5, which overall is not that bad.

Cheers!

Offline Riverhead

Very nice!!

Also - Isn't it the percentage of produced blocks rather than missed?  Otherwise we're in REALLY bad shape :D .


Offline bytemaster

100 is close enough because it is all random anyway.


Sent from my iPhone using Tapatalk
For the latest updates checkout my blog: http://bytemaster.bitshares.org
Anything said on these forums does not constitute an intent to create a legal obligation or contract between myself and anyone else.   These are merely my opinions and I reserve the right to change them at any time.

Offline Fox

Here to whet your appetite are just some network health stats:
This data visualization is much needed.  Thank you.

Change request: I believe the rounds are 101 blocks each (rather than 100). 
Witness: fox

Offline puppies

  • Hero Member
  • *****
  • Posts: 1659
    • View Profile
  • BitShares: puppies
I'm glad you're happy now rather than krabby.  I look forward to your public release.
https://metaexchange.info | Bitcoin<->Altcoin exchange | Instant | Safe | Low spreads

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
Nice one!
What about a site where you can see the realtime graphs?

All of that is coming. :) Like I said I already have real time data aggregation, just working on the various views. Once happy, I'll put it up live.

Offline emski

  • Hero Member
  • *****
  • Posts: 1282
    • View Profile
    • http://lnkd.in/nPbhxG
Nice one!
What about a site where you can see the realtime graphs?

Offline bitmeat

  • Hero Member
  • *****
  • Posts: 1116
    • View Profile
So, I decided to engage this community a bit more seriously. I started last night and imported all the data. (It is continuosly being imported)

Now I'm starting to build some very rough visual tools around the data, to help us understand what goes on, let us monitor the network and delegates health and hopefully help select decent delegates. Sometimes a delegate goes down and it could just be a network issue, the delegate owner probably prefers to be voted down for the time being instead of gathering bad stats.

And it's now Live, go at it:



I plan to also add alerts, so delegates can get notified if there are issues. Please keep in mind I am only able to put in a few hours here and there. With community support I am hoping for a transition in this space full time.

Current preview:


« Last Edit: July 27, 2014, 11:41:36 pm by happypatty »