-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Conversation
What is this? There is no reason for a blacklisting mechanism to be included in a public blockchain node. That is what the gas/fee mechanism is for. Introducing a generic blacklisting mechanism is:
|
@taoeffect Unfortunately, the gas mechanism is fundamentally mis-priced. In the period before the instruction costs are adjusted, I hope you can forgive some interim measures intended to smooth over the corner cases of the current pricing scheme. It's not truly a blacklist but a (local) timeout for senders who appear to be producing transactions exploiting those weaknesses. |
Thanks @rphmeier, I just reached a similar conclusion after finishing reviewing the code. It's (thankfully) not user-specified but automatic based on txn processing time. I still get nervous anytime I see blacklisting mechanisms, even if they seem fairly benign like this, simply because once you introduce a blacklisting mechanism it becomes trivial to expand it. Every now and then you'll get someone else adding another "minor" change to it and after a while you're left with the full censorship-experience shebang. Therefore, if there is really no option but to do this, then I hope this code can be removed after a proper fix is introduced, e.g.: ethereum/EIPs#150 |
Once the pricing scheme is fixed, this should no longer be necessary, correct? Therefore, can we get a commitment that this code will be removed in a future release? And if no such commitment can be given, can it please be explained why that is, and also why the extreme divergence from the Yellow Paper? |
@taoeffect I don't see any problem in removing it once EIP 150 is in. If the costs are adjusted correctly we shouldn't see any transactions hitting the time limit here, making the mechanism effectively dead code. |
@rphmeier Awesome, thank you. 🙇 |
Err, what am I saying, that's not how it usually works. Usually it works more like we're seeing here right now.
So, this stuff is real. This is how sophisticated sabotage attempts actually work, and we have plenty of case studies of existing attempts on Bitcoin. That is why it is very important to take this seriously and to really remove the code ASAP, or better yet, don't merge it at all. |
@tomusdrw i'm generally happy to merge this, but i think it'd be better we |
Sure, will have a look at this. |
Conflicts: ethcore/Cargo.toml ethcore/src/miner/miner.rs
byteorder = "0.5" | ||
transient-hashmap = "0.1" | ||
lru-cache = { git = "https://github.com/contain-rs/lru-cache" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why move to the direct version? i've found that they'll usually publish a new version if you ask :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Either I broke something during merge or it was already like this on master:
https://github.com/ethcore/parity/blame/master/ethcore/Cargo.toml
[ci:skip]
would prefer to see the "180 seconds" parameterised, too. looks good otherwise. |
Updated. |
flag_remove_solved: false, | ||
flag_notify_work: Some("http://localhost:3001".into()), | ||
|
||
// -- Footprint Options | ||
flag_tracing: "auto".into(), | ||
flag_pruning: "auto".into(), | ||
flag_pruning_history: 64u64, | ||
flag_pruning_history: 128u64, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why change pruning history default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, will move it to separate PR - I haven't changed the default, but rather fixed a bug where config value would not be used (usage.txt
had [default:
instead of (default:
)
This change was only to verify that it's not working.
No description provided.