EdJoJob (Thu, 29 Aug 2019 22:11:29 GMT):
Has joined the channel.
dhuseby (Thu, 29 Aug 2019 23:04:46 GMT):
Has joined the channel.
dhuseby (Thu, 29 Aug 2019 23:04:55 GMT):
hello! welcome
ajsutton (Fri, 30 Aug 2019 02:01:35 GMT):
Has joined the channel.
ajsutton (Fri, 30 Aug 2019 02:02:12 GMT):
Nice be(su?) here...
ajsutton (Fri, 30 Aug 2019 02:02:12 GMT):
Nice to be(su?) here...
joshuafernandes (Fri, 30 Aug 2019 02:48:54 GMT):
Has joined the channel.
joshuafernandes (Fri, 30 Aug 2019 02:49:23 GMT):
Ola!
macfarla (Fri, 30 Aug 2019 03:46:22 GMT):
Has joined the channel.
macfarla (Fri, 30 Aug 2019 03:46:22 GMT):
greetings
bretthenderson (Fri, 30 Aug 2019 03:59:14 GMT):
Has joined the channel.
bretthenderson (Fri, 30 Aug 2019 03:59:14 GMT):
Hi David.
VijayMichalik (Fri, 30 Aug 2019 09:34:27 GMT):
Has joined the channel.
faraggi (Fri, 30 Aug 2019 09:59:32 GMT):
Has joined the channel.
faraggi (Fri, 30 Aug 2019 09:59:32 GMT):
Hello everyone! This new place is nice!
*There's so much room for activities! *
Hyungsuk Kang (Fri, 30 Aug 2019 10:57:37 GMT):
Has joined the channel.
Hyungsuk Kang (Fri, 30 Aug 2019 10:57:37 GMT):
hello
shemnon (Fri, 30 Aug 2019 14:26:34 GMT):
Has joined the channel.
shemnon (Fri, 30 Aug 2019 14:27:32 GMT):
Hello everyone!
rjones (Fri, 30 Aug 2019 15:08:28 GMT):
joshuafernandes
rjones (Fri, 30 Aug 2019 15:11:00 GMT):
joshuafernandes
rjones (Fri, 30 Aug 2019 15:43:15 GMT):
joshuafernandes
Khaled.MH (Fri, 30 Aug 2019 16:12:28 GMT):
Has joined the channel.
rjones (Fri, 30 Aug 2019 16:27:26 GMT):
Has left the channel.
VipinB (Fri, 30 Aug 2019 18:56:02 GMT):
Has joined the channel.
VipinB (Fri, 30 Aug 2019 18:56:26 GMT):
Welcome #besu
HLFPOC (Sat, 31 Aug 2019 11:19:51 GMT):
Has joined the channel.
lucassaldanha (Sat, 31 Aug 2019 15:24:16 GMT):
Has joined the channel.
faraggi (Mon, 02 Sep 2019 13:51:21 GMT):
*PSA: *
Hello and welcome everyone to the Hyperledger #besu community chat.
In the spirit of improving the way we communicate and the information you receive, we've put together a short survey to gather your feedback. All answers are optional, and we'd love to hear what you have to say!
https://forms.gle/4Jddy7bSPFa9a2zz6
yacovm (Mon, 02 Sep 2019 14:15:10 GMT):
Has joined the channel.
arner (Mon, 02 Sep 2019 18:04:07 GMT):
Has joined the channel.
RicardoMurillo (Mon, 02 Sep 2019 22:03:07 GMT):
Has joined the channel.
RicardoMurillo (Mon, 02 Sep 2019 22:03:08 GMT):
Hi Felipe!
faraggi (Tue, 03 Sep 2019 08:36:46 GMT):
Hello @RicardoMurillo , welcome.
rai (Tue, 03 Sep 2019 13:06:29 GMT):
Has joined the channel.
rai (Tue, 03 Sep 2019 13:06:30 GMT):
:besu:
guoger (Wed, 04 Sep 2019 05:37:08 GMT):
Has joined the channel.
rjones (Wed, 04 Sep 2019 15:57:17 GMT):
Has joined the channel.
rjones (Wed, 04 Sep 2019 22:21:28 GMT):
:besu:
rjones (Wed, 04 Sep 2019 22:21:44 GMT):
(that's the new `:besu:` emoji
ajsutton (Wed, 04 Sep 2019 22:34:32 GMT):
It's not official until you have an emoji. :) :besu:
shemnon (Wed, 04 Sep 2019 22:40:15 GMT):
All your :besu: are belong to :hyperledger:
shahankhatch (Wed, 04 Sep 2019 23:14:52 GMT):
Has joined the channel.
faraggi (Thu, 05 Sep 2019 08:47:43 GMT):
@rjones I tried uploading it yesterday and couldn't find out how. thanks.
Hyungsuk Kang (Thu, 05 Sep 2019 18:01:24 GMT):
is besu pantheon? if it is, can I just jump straight to its quickstart tutorials?
shemnon (Thu, 05 Sep 2019 18:06:17 GMT):
Yes, with some name changes. We haven't moved the repos over yet but it is anticipated to include stuff like quickstart.
shemnon (Thu, 05 Sep 2019 18:06:51 GMT):
so stuff like `bin/pantheon` might becomes `bin/besu` but all the options should remain the same.
RealDeanZhao (Fri, 06 Sep 2019 02:37:38 GMT):
Has joined the channel.
faraggi (Fri, 06 Sep 2019 07:15:39 GMT):
@Hyungsuk Kang Sure! jump right in and if you have any questions, don't hesitate to ask them here.
VipinB (Fri, 06 Sep 2019 15:22:56 GMT):
Any data on privacy? We are now meeting on the Privacy and confidentiality subgroup of the Architecture WG. We were wondering about Orion? We would appreciate if a privacy expert from Besu takes a look at our paper
shemnon (Fri, 06 Sep 2019 15:31:45 GMT):
None of our engineers working on privacy are currently in this rocket chat. Let me see if I can get them to onboard and discuss.
binhn (Fri, 06 Sep 2019 15:51:35 GMT):
Has joined the channel.
AnilSingh (Fri, 06 Sep 2019 16:58:36 GMT):
Has joined the channel.
madelinemurray (Fri, 06 Sep 2019 23:11:33 GMT):
Has joined the channel.
madelinemurray (Fri, 06 Sep 2019 23:11:34 GMT):
@VipinB - is there specific information you're looking for? I can organise for someone to look at the paper if you point me in the direction of it.
Here's links to the privacy and Orion documentation (the Pantheon documentation will be rebranded as Besu documentation shortly):
https://docs.pantheon.pegasys.tech/en/latest/Concepts/Privacy/Private-Transaction-Processing/
https://docs.pantheon.pegasys.tech/en/latest/Concepts/Privacy/Privacy-Groups/
https://docs.orion.pegasys.tech/en/latest/
VipinB (Sat, 07 Sep 2019 00:32:29 GMT):
Thanks @madelinemurray That is a good start. Will you (or one of your associates) be able to do a presentation on the Privacy and Confidentiality sub group call 2 weeks from today at 11 am EDT (3 pm UTC) the call is run by Mic Bowman. He will have someone from TCF (Trusted Computing Framework- soon to be renamed) presenting as well. Our output will be a cross platform paper on Privacy put out by the Architecture Working Group. We have already put out papers on Consensus and Smart Contracts; we are working on Interoperability and Privacy and Confidentiality. We normally have sections that are more generic, stating the problem and then sections on the individual frameworks in Hyperledger on the topic, which call out the ways in which they have solved the problem and the differences in their approach. By doing this we also hope to make the Engineers look at ways in which others have solved the same problem and to get feedback from the community members on how to improve their solutions.
madelinemurray (Sat, 07 Sep 2019 00:38:48 GMT):
@VipinB - can you send me the links to the Consensus and Smart Contracts papers please. That'll help me figure out who's best to get involved in presenting.
VipinB (Sat, 07 Sep 2019 00:44:21 GMT):
The wiki for the Architecture working group is https://wiki.hyperledger.org/display/AWG the papers are linked from there under the heading "Links to completed work". In fact those papers need updates from Besu as well as we intend to keep them uptodate and function as living documents.
iikirilov (Sat, 07 Sep 2019 14:26:34 GMT):
Has joined the channel.
iikirilov (Sat, 07 Sep 2019 14:38:31 GMT):
Greetings all - @VipinB I am your contact for all things privacy regarding Besu.
VipinB (Sat, 07 Sep 2019 19:43:14 GMT):
@iikirilov Thanks. I will post your contact on the AWG. We can interact there #architecture-wg
trent.mohay (Sun, 08 Sep 2019 23:01:49 GMT):
Has joined the channel.
antonydenyer (Mon, 09 Sep 2019 10:22:17 GMT):
Has joined the channel.
mbaxter (Mon, 09 Sep 2019 13:29:38 GMT):
Has joined the channel.
Hyungsuk Kang (Mon, 09 Sep 2019 13:37:24 GMT):
Is community activities supported?
shemnon (Mon, 09 Sep 2019 14:25:22 GMT):
Can you clarify what you mean by community activities?
Hyungsuk Kang (Mon, 09 Sep 2019 14:32:38 GMT):
sorry, the detail is that I want to teach or make courses on how to make private blockchain with Pantheon(Hyperledger Besu).
Hyungsuk Kang (Mon, 09 Sep 2019 14:33:13 GMT):
Is there a technical ambassador program where I can have consistent support or feedback?
faraggi (Mon, 09 Sep 2019 15:53:53 GMT):
@Hyungsuk Kang Hi! We're currently working on an ambassador program. We're still working out the details, but the idea is to give you more in depth support and feedback. We have a couple of requirements to becoming one, like having done the Besu Certification. PM for more details if this interests you.
Kaia2104 (Tue, 10 Sep 2019 02:28:54 GMT):
Has joined the channel.
Kaia2104 (Tue, 10 Sep 2019 02:28:58 GMT):
Thanks Vipin, who is the right person to touch base with about updating those papers with Hyperledger besu content? I can get in touch with them. :)
VipinB (Tue, 10 Sep 2019 04:38:05 GMT):
I think @rjagadee the chair of the AWG
faraggi (Tue, 10 Sep 2019 10:05:04 GMT):
^ Just FYI, this is our certification program: https://learn.consensys.net/catalog/info/id:151
(still not renamed)
grace.hartley (Wed, 11 Sep 2019 18:33:06 GMT):
Has joined the channel.
NicolasMassart (Wed, 11 Sep 2019 22:14:06 GMT):
Has joined the channel.
Kaia2104 (Thu, 12 Sep 2019 05:58:06 GMT):
Thanks! @rjagadee anything I can help with on the updates?
ajsutton (Thu, 12 Sep 2019 15:21:38 GMT):
We plan to migrate the PegaSysEng/pantheon repo to hyperledger/besu and do the tech.pegasys.pantheon to org.hyperledger.besu rename on 16 Sept AEST (UTC+10). There will be a code freeze from 1600 on 15 Sept AEST (UTC+10) until the migration is completed. We'll notify this channel when that is complete. Any work not on the master branch of the PegaSysEng/pantheon repo by the time of the code freeze will need to be manually migrated to the new namespace and applied to a fresh clone of the new hyperledger/besu repo.
faisal.khan (Thu, 12 Sep 2019 15:57:56 GMT):
Has joined the channel.
faisal.khan (Thu, 12 Sep 2019 15:58:55 GMT):
:besu:
shemnon (Thu, 12 Sep 2019 16:26:46 GMT):
We are starting our #HyperledgerBesu contributor calls next week with an APAC/AMER friendly time, 0100 UTC on 17 Sep (or 11am Brisbane Tues 17 Sep, 9pm SF Mon 16 Sep) - https://wiki.hyperledger.org/display/BESU/2019-09-17+Besu+Contributor+Call
Our next call will be an EMEA/AMER friendly time at 1500 UTC on Tues 1 Oct (or 5pm Paris/Berlin, 11am New York, no agenda yet). Calls will be bi-weekly and will alternate APAC/EMEA friendliness.
shemnon (Thu, 12 Sep 2019 16:26:46 GMT):
We are starting our #HyperledgerBesu contributor calls next week with an APAC/AMER friendly time, 0100 UTC on 17 Sep (or 11am Brisbane Tues 17 Sep, 9pm New York Mon 16 Sep) - https://wiki.hyperledger.org/display/BESU/2019-09-17+Besu+Contributor+Call
Our next call will be an EMEA/AMER friendly time at 1500 UTC on Tues 1 Oct (or 5pm Paris/Berlin, 11am New York, no agenda yet). Calls will be bi-weekly and will alternate APAC/EMEA friendliness.
joshuafernandes (Thu, 12 Sep 2019 22:52:10 GMT):
@here: - We will be migrating the PegaSysEng/pantheon repo to hyperledger/besu and doing the tech.pegasys.pantheon to org.hyperledger.besu rename on 16 Sept AEST (UTC+10). There will be a code freeze from 1600 on 15 Sept AEST (UTC+10) until the migration is completed. We'll notify this channel when that is complete. Any work not on the master branch of the PegaSysEng/pantheon repo by the time of the code freeze will need to be manually migrated to the new namespace and applied to a fresh clone of the new hyperledger/besu repo.
- Docs for besu will be up on https://besu.hyperledger.org mid next week. https://docs.pantheon.pegasys.tech will still exist for a bit till 1.3.1 at which point we will do a redirect to https://besu.hyperledger.org
- Please subscribe to the Besu mailing list here: https://lists.hyperledger.org/g/besu/join, more details at https://wiki.hyperledger.org/display/BESU/Hyperledger+Besu.
usmansaleem (Fri, 13 Sep 2019 00:20:46 GMT):
Has joined the channel.
drinkcoffee (Fri, 13 Sep 2019 01:32:17 GMT):
Has joined the channel.
jframe (Fri, 13 Sep 2019 01:45:09 GMT):
Has joined the channel.
roderik (Fri, 13 Sep 2019 08:40:56 GMT):
Has joined the channel.
roderik (Fri, 13 Sep 2019 09:22:37 GMT):
Will the docker containers stay on dockerhub under the old container name, or move to somewhere else?
rjones (Fri, 13 Sep 2019 11:29:23 GMT):
@roderik https://cloud.docker.com/u/hyperledger/repository/docker/hyperledger/besu
roderik (Fri, 13 Sep 2019 11:39:58 GMT):
@rjones nice, but the stable tags are not there yet: https://hub.docker.com/r/hyperledger/besu/tags
rjones (Fri, 13 Sep 2019 12:12:58 GMT):
right, I was pointing out where I expect them to land.
rjones (Fri, 13 Sep 2019 12:13:54 GMT):
@roderik please keep in mind - I'm not working on Besu, I'm a functionary for Hyperledger ;)
rjones (Fri, 13 Sep 2019 12:13:54 GMT):
@roderik please keep in mind - I'm not working on :besu: , I'm a functionary for Hyperledger ;)
roderik (Fri, 13 Sep 2019 12:28:37 GMT):
:thumbsup:
shemnon (Fri, 13 Sep 2019 13:55:51 GMT):
I would expect those to start landing next week, after the codebase rename and move.
shemnon (Fri, 13 Sep 2019 13:56:41 GMT):
but if it ever had a pantheon name it will get renamed, to besu.
VipinB (Fri, 13 Sep 2019 14:22:01 GMT):
You mean 0100 UTC on 17 Sep (or 11am Brisbane Tues 17 Sep, *6*pm SF Mon 16 Sep)
shemnon (Fri, 13 Sep 2019 14:25:56 GMT):
Yea, I got SF and NY mixed up. SF is 6pm NY is 9pm, on 17 sep.
shemnon (Fri, 13 Sep 2019 14:25:56 GMT):
Yea, I got SF and NY mixed up. SF is 6pm NY is 9pm, on 17 sep. I edited the prior chat message to fix it. (and wow, you can edit messages days later !?!)
shemnon (Fri, 13 Sep 2019 14:26:21 GMT):
wiki page has it right.
rjones (Fri, 13 Sep 2019 15:06:29 GMT):
@shemnon I can change that setting (edit length) but I really have no interest in micro-managing stuff like that
shemnon (Fri, 13 Sep 2019 15:07:26 GMT):
I'm it is an option to be honest. Gitter and slack have like 15 min limits. No need to tweak knobs.
rjones (Fri, 13 Sep 2019 15:07:39 GMT):
but that is literally my job
shemnon (Fri, 13 Sep 2019 15:07:54 GMT):
I like being able to go back and correct errors like this.
VipinB (Fri, 13 Sep 2019 15:08:49 GMT):
I think it is OK to change messages if that is not what you meant or made an error... This is not an immutable record- we have too many things like that
VipinB (Fri, 13 Sep 2019 15:09:52 GMT):
It is also not a malicious thing- not everything is, this ability to change (by the original author) should not be limited.
rjones (Fri, 13 Sep 2019 15:10:53 GMT):
should not, may not, or must not?
shemnon (Fri, 13 Sep 2019 15:11:20 GMT):
I also think that unless we see malicious actions (gaslighting edit/i-never-said-that stuff) with the editing we leave it as-is. So should not.
josh-richardson (Fri, 13 Sep 2019 15:26:02 GMT):
Has joined the channel.
knagware9 (Fri, 13 Sep 2019 16:07:18 GMT):
Has joined the channel.
pinges (Mon, 16 Sep 2019 00:27:30 GMT):
Has joined the channel.
joshuafernandes (Mon, 16 Sep 2019 02:50:17 GMT):
@here: https://github.com/hyperledger/besu is now ready to go - code from pantheon has been migrated across
swkim109 (Mon, 16 Sep 2019 03:52:06 GMT):
Has joined the channel.
swkim109 (Mon, 16 Sep 2019 03:52:49 GMT):
Hello! Besu!
swkim109 (Mon, 16 Sep 2019 03:52:49 GMT):
Hello! Besu! :besu:
HLFPOC (Mon, 16 Sep 2019 05:26:35 GMT):
Hello team, In order to learn and start application development using :besu: , is learning ethereum a prerequisite or all the concepts will be covered under besu documentation ?
madelinemurray (Mon, 16 Sep 2019 06:03:51 GMT):
Besu documentation doesn't cover all Ethereum concepts. Have you got experience developing using other Ethereum clients? If so, the Besu docs cover concepts that are specific to Besu.
HLFPOC (Mon, 16 Sep 2019 08:51:46 GMT):
Thanks for your reply, I don't have hands on experience with any of the Ethereum clients. Can you recommend me some tutorials/documentation to start with ?
NicolasMassart (Mon, 16 Sep 2019 08:57:26 GMT):
What kind of development do you want to do? protocol dev, like contribute to Besu or develop dapps and smart contracts?
faraggi (Mon, 16 Sep 2019 09:03:13 GMT):
What development experience do you have?
Its helpful to know in order to guide you a bit more.
HLFPOC (Mon, 16 Sep 2019 09:51:04 GMT):
I am a software developer and have experience on developing applications using Hyperledger fabric. Right now I am looking to develop Dapps using Besu.
GinaRubino (Mon, 16 Sep 2019 11:21:36 GMT):
Has joined the channel.
jakehaugen (Mon, 16 Sep 2019 14:17:52 GMT):
Has joined the channel.
faraggi (Mon, 16 Sep 2019 14:42:53 GMT):
In that case, I would recommend doing a refresher on ethereum basics.
You already know solidity, which is a great stepping stone, but some things on the protocol level change quite a lot.
Afterall, Besu is a ethereum client and you'll need to know the full stack at least a bit.
faraggi (Mon, 16 Sep 2019 14:43:45 GMT):
Having said that; feel free to ask questions you aren't sure are generic ethereum or besu-specific, and we'll do our best to answer them, or to point you to the correct place.
tommyjay (Mon, 16 Sep 2019 14:57:35 GMT):
Has joined the channel.
HLFPOC (Mon, 16 Sep 2019 15:11:39 GMT):
Sure, Thanks a lot
timbeiko (Mon, 16 Sep 2019 15:13:52 GMT):
Has joined the channel.
rjones (Mon, 16 Sep 2019 15:35:22 GMT):
Has left the channel.
Silona (Mon, 16 Sep 2019 18:19:33 GMT):
Has joined the channel.
cristpereirag (Mon, 16 Sep 2019 20:59:42 GMT):
Has joined the channel.
cristpereirag (Mon, 16 Sep 2019 21:00:58 GMT):
Hi everyone! one question, it will be posible to create tokens like erc-20 or erc-721 in Besu just like in ethereum?
shemnon (Mon, 16 Sep 2019 21:24:08 GMT):
Yes, Besu has the full EVM implementation. If you connect to mainnet you can interact with existing ERC-20 tokens. If you create a private network you can still do ERC-20 tokens as well on your private network.
shemnon (Mon, 16 Sep 2019 21:24:16 GMT):
Same as ERC-721
cristpereirag (Mon, 16 Sep 2019 21:29:04 GMT):
Thanks for that info! So, if I already have a working token on Ethereum mainnet, I can use it on my Besu network?
carlosfaria (Mon, 16 Sep 2019 21:32:18 GMT):
Has joined the channel.
swkim109 (Tue, 17 Sep 2019 01:05:39 GMT):
I think you can deploy it on Besu without any change in contracts.
ajsutton (Tue, 17 Sep 2019 01:24:49 GMT):
Yep exactly. And you can also sync Besu to MainNet and use the existing contract.
EdJoJob (Tue, 17 Sep 2019 03:19:15 GMT):
Hi all, a _very_ basic and not-at-all comprehensive guide to getting started with contributing to Hyperledger Besu is at https://wiki.hyperledger.org/display/BESU/How+to+Contribute
daisuke1983 (Tue, 17 Sep 2019 03:48:59 GMT):
Has joined the channel.
drinkcoffee (Tue, 17 Sep 2019 03:49:09 GMT):
Version is StateTrieAccountValue: see line 101.
https://github.com/PegaSysEng/sidechains-besu/blob/master/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/StateTrieAccountValue.java
Questions:
- What is the version for?
- Has this field been enabled / are people using it?
The Sidechains team have also extended the account state stored in World State. Our implementation starts with set of flags which can be used to determine if the world state has extra information. If the flags don't exist, then nothing is stored. If the (optional) version data isn't in active use, then it would be good if it could use the same mechanism.
shemnon (Tue, 17 Sep 2019 03:50:15 GMT):
It is for EIP-1702
shemnon (Tue, 17 Sep 2019 03:50:44 GMT):
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1702.md
shemnon (Tue, 17 Sep 2019 03:51:43 GMT):
No one is using it yet. It may disappear. Since this affects world state we should be careful using it for anything not in an EIP.
drinkcoffee (Tue, 17 Sep 2019 04:01:41 GMT):
Thanks for the quick response.
World state is something which is local to a node isn't it? As such, isn't it up to the individual Ethereum Client implementation how it stores its information? Obviously we have to be careful to not cause state explosion.
shemnon (Tue, 17 Sep 2019 04:02:07 GMT):
No, this is what is used to calculate the world state hash as part of each block.
shemnon (Tue, 17 Sep 2019 04:03:06 GMT):
The RLP generated is thrown into a patricia tree (based on the account) and that is where consensus is derived to an extent.
shemnon (Tue, 17 Sep 2019 04:04:29 GMT):
It's meant as a flag for introducing backwards incompatible change into the EVM or adding the eWASM VM.
drinkcoffee (Tue, 17 Sep 2019 04:04:51 GMT):
Hmmmm.... so, indirectly, the local RLP of the world state leaks. As such, for MainNet compatibility, we need to ensure any changes are transparent.
drinkcoffee (Tue, 17 Sep 2019 04:04:54 GMT):
ok
shemnon (Tue, 17 Sep 2019 04:05:02 GMT):
basically.
drinkcoffee (Tue, 17 Sep 2019 04:05:54 GMT):
I will deal with this after the sidechains merge / update to besu. Almost done.
RealDeanZhao (Tue, 17 Sep 2019 06:23:04 GMT):
Hi, there are no docker images for tag 1.3.0 and latest. Can I use 1.2.4-SNAPSHOT?
bretthenderson (Tue, 17 Sep 2019 06:49:06 GMT):
Release 1.3.0 isn't out yet, so the latest is the 1.2.4-SNAPSHOT
RealDeanZhao (Tue, 17 Sep 2019 06:57:19 GMT):
Thanks, i will try 1.2.4
drinkcoffee (Tue, 17 Sep 2019 07:15:07 GMT):
@ajsutton I put a pull request in (https://github.com/hyperledger/besu/pull/17). It is just tiny. What is the process from here? Should I contact someone directly, or is there a daily / weekly review?
RealDeanZhao (Tue, 17 Sep 2019 07:18:05 GMT):
```2019-09-17 07:16:22.812+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
2019-09-17 07:16:23.042+00:00 | pool-9-thread-1 | INFO | BlockMiner | Produced and imported block #1,579 / 0 tx / 0 om / 0 (0.0%) gas / (0xc08d129373fbcd02f851d026391135348af7f8520e08625fe19eaa3b9f61279b) in 0.040s
2019-09-17 07:16:24.090+00:00 | pool-9-thread-2 | INFO | BlockMiner | Produced and imported block #1,580 / 0 tx / 0 om / 0 (0.0%) gas / (0x0fbea57c2d63dd6ddc708fdf5898916ffa4d9a7c0a5548eb584748cc3fb8ce7e) in 0.088s
2019-09-17 07:16:25.014+00:00 | pool-9-thread-1 | INFO | BlockMiner | Produced and imported block #1,581```
RealDeanZhao (Tue, 17 Sep 2019 07:18:52 GMT):
I start a node use dev network, the syncing result is still false after 30 minutes.
RealDeanZhao (Tue, 17 Sep 2019 07:24:51 GMT):
```docker volume create besu_dev_volume
docker run \
-p 8545:8545 \
-p 8546:8546 \
-p 30303:30303 \
-v besu_dev_volume:/var/lib/besu \
hyperledger/besu:develop \
--data-path=/var/lib/besu \
--miner-enabled \
--miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 \
--network=dev \
--rpc-http-enabled \
--rpc-ws-enabled \
--graphql-http-enabled \
--rpc-http-host=0.0.0.0 \
--rpc-ws-host=0.0.0.0 \
--graphql-http-host=0.0.0.0
```
faraggi (Tue, 17 Sep 2019 10:56:32 GMT):
@drinkcoffee The review process and reaction time will be posted to the wiki in the following days.
In practice, the reviews will depend on criticalness of the commit + difficulty to review.
Normally, we will recommend nudging after a determined time without maintainer action. This will also be covered in the wiki.
NicolasMassart (Tue, 17 Sep 2019 11:01:10 GMT):
@RealDeanZhao can you post the command lines used to run your other nodes on this dev network?
antoniosngular (Tue, 17 Sep 2019 11:02:42 GMT):
Has joined the channel.
RealDeanZhao (Tue, 17 Sep 2019 11:04:04 GMT):
I didn't use the commands to start other nodes.
RealDeanZhao (Tue, 17 Sep 2019 11:04:35 GMT):
I followed this guide to start a node for testing. https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Starting-node/
NicolasMassart (Tue, 17 Sep 2019 11:06:08 GMT):
So you have only one node?
RealDeanZhao (Tue, 17 Sep 2019 11:06:13 GMT):
yes
RealDeanZhao (Tue, 17 Sep 2019 11:06:33 GMT):
I just want to test it locally
NicolasMassart (Tue, 17 Sep 2019 11:07:46 GMT):
Then it's expected that it doesn't sync if it's alone. Your network is just this node and as you can see in the logs, it generates blocks `Produced and imported block #1,581` so that's ok. You can work with this. It's just a one node dentwork, but enough to test.
NicolasMassart (Tue, 17 Sep 2019 11:07:46 GMT):
Then it's expected that it doesn't sync if it's alone. Your network is just this node and as you can see in the logs, it generates blocks `Produced and imported block #1,581` so that's ok. You can work with this. It's just a one node network, but enough to test.
RealDeanZhao (Tue, 17 Sep 2019 11:13:14 GMT):
thanks. Is there a eea client library for java like web3.js-eea?
NicolasMassart (Tue, 17 Sep 2019 11:18:51 GMT):
@RealDeanZhao of course. You can use Web3j : https://github.com/web3j/web3j
nicktodorov (Tue, 17 Sep 2019 14:07:58 GMT):
Has joined the channel.
sagregg (Tue, 17 Sep 2019 19:06:57 GMT):
Has joined the channel.
hmijail (Tue, 17 Sep 2019 23:05:58 GMT):
Has joined the channel.
drinkcoffee (Wed, 18 Sep 2019 02:10:39 GMT):
Hey @shemnon , I had a re-read of the version stuff (https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1702.md). The version field is supposed to be 256 bits, and in Besu we only are storing it in an int (32 bits). Obviously, we could take a long time to get to (2**32)+1 assuming sequential versions. In the EIP they talk about "32", but those are 32 bytes....
ajsutton (Wed, 18 Sep 2019 02:12:05 GMT):
I'd say the most important thing about EIP-1702 is that it has not been finalised. There are a few concerns raised about it and so it will almost certainly change before it actually goes into a hard fork. I suspect any attempt to depend on it will lead you into a very difficult spot.
drinkcoffee (Wed, 18 Sep 2019 02:26:17 GMT):
The Sidechains team are creating an extension to the account state. The goal is for it to extend the MainNet account state. I think the best way will be to have a bit set at the top of the nonce field. If that is set, then it means the data is in "Crosschain extension format", otherwise is in MainNet format. However, the version field seems to be also a good possibility - once the field is definitely going to be locked in.
shemnon (Wed, 18 Sep 2019 02:52:15 GMT):
So if the state needs to be stored on mainnet we can only do to nonces and the version field what is defined. on a side chain, less restrictions. But we need to keep evolutionary concerns in mind too in case the use of the fields diverges.
shemnon (Wed, 18 Sep 2019 02:53:15 GMT):
the field as an int was done before the EIP PR added the 2^256 range, and that was chosen because of the long standing obsession with keccak hash sizes.
shemnon (Wed, 18 Sep 2019 02:53:47 GMT):
it can move but there are other things that would need to move with it type wise.
drinkcoffee (Wed, 18 Sep 2019 04:36:44 GMT):
makes sense
drinkcoffee (Wed, 18 Sep 2019 04:38:34 GMT):
agreed. The plan is for this to be just on sidechains / private blockchains. If we end up having this on Ethereum MainNet, we would have to adapt it and probably would use the version feature to indicate the extra information is present.
shemnon (Wed, 18 Sep 2019 04:39:18 GMT):
will this be enabled via a feature flag? such as something in the genesis config block?
jacobsaur (Wed, 18 Sep 2019 13:43:22 GMT):
Has joined the channel.
VipinB (Wed, 18 Sep 2019 15:27:58 GMT):
Is there any material on Sybil attack prevention in Besu or Ethereum mainnet. We are developing some material on this in the #identity-wg
faraggi (Thu, 19 Sep 2019 09:11:36 GMT):
Just another reminder to help us by answering our community survey.
In the spirit of improving the way we communicate and the information you receive, we've put together a short survey to gather your feedback. All answers are optional, and we'd love to hear what you have to say!
https://forms.gle/WqaU3juZnAF9Sz257
kiichi (Thu, 19 Sep 2019 09:57:52 GMT):
Has joined the channel.
joshuafernandes (Fri, 20 Sep 2019 00:24:31 GMT):
@here: Updates to License checks & Copyright for when you commit to Besu :
- Spotless will no longer be used to add / check the copyrights & license. It doesnt cater to the fact that there are multiple Copyrights that users can leave and will replace anything put in with the text in the license file
- You will need to add in a SPDX-License-Identifier like so /* SPDX-License-Identifier: Apache-2.0 */ - this will break your build if this isn't in !! If you use Intellij you can set it to auto insert https://www.jetbrains.com/help/idea/copyright.html
- I have updated the wiki section to in HLF to reflect the above too https://wiki.hyperledger.org/display/BESU/How+to+Contribute#HowtoContribute-CopyrightandLicense
joshuafernandes (Fri, 20 Sep 2019 00:24:31 GMT):
@here: Updates to License checks & Copyright for when you commit to Besu :
- Spotless will no longer be used to add / check the copyrights & license. It doesnt cater to the fact that there are multiple Copyrights that users can leave and will replace anything put in with the text in the license file
- You will need to add in a SPDX-License-Identifier like so ` /* SPDX-License-Identifier: Apache-2.0 */ `- this will break your build if this isn't in !! If you use Intellij you can set it to auto insert https://www.jetbrains.com/help/idea/copyright.html
- I have updated the wiki section to in HLF to reflect the above too https://wiki.hyperledger.org/display/BESU/How+to+Contribute#HowtoContribute-CopyrightandLicense
kiichi (Fri, 20 Sep 2019 01:38:00 GMT):
Hi! I took this tutorial.
kiichi (Fri, 20 Sep 2019 01:54:45 GMT):
Hi!
I want you help this error. :pray:
For making PoA using Clique by linux VM, I wrote code with this tutorial.
https://docs.pantheon.pegasys.tech/en/1.2.3/Tutorials/Private-Network/Create-Private-Clique-Network/
Environment
Pantheon version 1.2.3
- Mac high sierra
- Java 11
- VM: ubuntu/trusty64
Tutorial : Section4. Start First Node as Bootnode
When I wrote this code for boot node
`pantheon --data-path=data --genesis-file=../cliqueGenesis.json --bootnodes --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all" `
Then ↓error
kiichi (Fri, 20 Sep 2019 01:55:10 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=RthhQydcSrjemg743)
terminal.png
kiichi (Fri, 20 Sep 2019 01:55:59 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=KaS4PDoQjznaS4KK2)
dir.png
joshuafernandes (Fri, 20 Sep 2019 04:32:06 GMT):
Hello @kiichi could I get you to confirm that all the keys, config etc is on your linux vm (i.e the contents of dir.png are on your vm and not on the mac)?
joshuafernandes (Fri, 20 Sep 2019 04:32:06 GMT):
Hello @kiichi could I get you to confirm that all the keys, config etc is on your linux vm (i.e the contents of dir.png are on your vm and not on the mac)? and your filesystem has rw permissions
joshuafernandes (Fri, 20 Sep 2019 04:32:06 GMT):
Hello @kiichi could I get you to confirm that all the keys, config etc is on your linux vm (i.e the contents of dir.png are on your vm and not on the mac)? and your filesystem has rw permissions. If that is all good, could you try using an absolute path for the data dir please? Maybe create a directory eg: `/tmp/someFolderName` and pass that in like so: `--data-path=/tmp/someFolderName`
kiichi (Fri, 20 Sep 2019 05:28:43 GMT):
Thanks for your help!
Although I tried and checked this, I got error.:sweat_smile:
I googled error message. `org.rocksdb.rocksdbexception while fsync a directory invalid argument`
I know this bug depends on sync-share-folder maybe.
Anyway, I will try this tutorial with cloud Linux and challenge this problem. :grinning:
kiichi (Fri, 20 Sep 2019 05:28:43 GMT):
Thanks for your help!
Although I tried and checked this, I got error. :sweat_smile:
I googled error message. `org.rocksdb.rocksdbexception while fsync a directory invalid argument`
I know this bug depends on sync-share-folder maybe.
Anyway, I will try this tutorial with cloud Linux and challenge this problem. :grinning:
joshuafernandes (Fri, 20 Sep 2019 05:40:26 GMT):
No worries, I believe the error is related to it trying to write but not being able to, if you ran the tutorial natively on your Mac you should have no trouble with this
kiichi (Fri, 20 Sep 2019 06:16:58 GMT):
I have no trouble with this by MacOS:grin:
Thanks!
yunho.chung (Fri, 20 Sep 2019 09:52:32 GMT):
Has joined the channel.
yunho.chung (Fri, 20 Sep 2019 09:55:56 GMT):
Hi! I modified "deployContract.js" in web3js-eea examples. from " privateFor: [orion.node2.publicKey]" to privateFor: [orion.node2.publicKey, orion.node3.publicKey]
and.. I ran "node storeValueFromNode1.js" and get data as output: "0x". Can I get some tip?
VipinB (Fri, 20 Sep 2019 16:14:13 GMT):
Thanks to besu privacy experts for the presentation on architecture WG
VipinB (Fri, 20 Sep 2019 16:14:38 GMT):
Hopefully you found our questions useful and not just annoying
antonydenyer (Fri, 20 Sep 2019 16:39:02 GMT):
It's always good when you have interesting questions
joshuafernandes (Sun, 22 Sep 2019 23:53:04 GMT):
@here: the dates for the next couple Besu releases for Australia/Americas:
1.2.4: 23/24 Sept
1.3: 3/4 Oct
waleed (Sun, 22 Sep 2019 23:58:12 GMT):
Has joined the channel.
joshuafernandes (Mon, 23 Sep 2019 00:17:49 GMT):
1.2.4 currently slated in for 0800 AEST 24/9
faraggi (Mon, 23 Sep 2019 10:03:14 GMT):
Quick reminder for everyone who's got outstanding PRs or unanswered comments to leave a msg here (ping me if you wish) with a link to them. Sometimes we loose track of those and need nudging to help us out.
cjhare (Mon, 23 Sep 2019 22:02:28 GMT):
Has joined the channel.
EdJoJob (Mon, 23 Sep 2019 22:05:37 GMT):
We're beginning the release process for besu, please don't merge anything to master until further notice
EdJoJob (Tue, 24 Sep 2019 02:14:23 GMT):
It's now safe to merge into master again.
faraggi (Tue, 24 Sep 2019 07:58:49 GMT):
chainsafe
faraggi (Tue, 24 Sep 2019 14:08:09 GMT):
Hyperledger Besu 1.2.4 has been released!
Download here:
https://github.com/hyperledger/besu/releases/tag/1.2.4
faraggi (Tue, 24 Sep 2019 14:44:20 GMT):
Changelog: https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#124
RealDeanZhao (Wed, 25 Sep 2019 05:38:16 GMT):
Clipboard - September 25, 2019 1:38 PM
RealDeanZhao (Wed, 25 Sep 2019 05:40:37 GMT):
Could someone help explain, in a consortium network, should each org have one boot_node, miner_node and validator node?
NicolasMassart (Wed, 25 Sep 2019 07:13:54 GMT):
No it's just that the quickstart shows all kind of nodes here a bootnode to help all other nodes find each others, a minernode (it's PoW quickstart here) and 3 regular nodes (not mining). It also has one node called RPC that's used as an entrypoint on the network.
RealDeanZhao (Wed, 25 Sep 2019 07:43:41 GMT):
So for a consortium network use IBFT consensus, we only need one boot node for the network, one regular node for each org and some rpc nodes as the entrypoint? Does the rpc node also do same thing like the regular node? They don't have much difference except exposing the rpc endpint.
RealDeanZhao (Wed, 25 Sep 2019 07:45:20 GMT):
Does the regular node have full block and state data?
RealDeanZhao (Wed, 25 Sep 2019 07:45:20 GMT):
Does the boot node, regular node and rpc node have full block and state data?
NicolasMassart (Wed, 25 Sep 2019 07:50:16 GMT):
Exactly. All nodes are syncing the same way, even the bootnode. So for an IBFT2 network, you need 1 node also used as a bootnode, plan to have 2+ bootnodes in case of failure of one of them, then you have other nodes on which you can also activate RPC, and of course some of them have to be validators. By the way any can be a validator, even bootnode.
NicolasMassart (Wed, 25 Sep 2019 07:50:41 GMT):
All nodes have full block and state data.
RealDeanZhao (Wed, 25 Sep 2019 07:52:02 GMT):
Great, thanks.
RealDeanZhao (Wed, 25 Sep 2019 07:52:48 GMT):
Clipboard - September 25, 2019 3:52 PM
RealDeanZhao (Wed, 25 Sep 2019 07:56:52 GMT):
It's easy to start a private network. Hope there will be more comprehensive examples(web or app) for developing DApp on besu using web3js and web3j. Thanks.
circlespainter (Wed, 25 Sep 2019 08:43:43 GMT):
Has joined the channel.
RealDeanZhao (Wed, 25 Sep 2019 09:09:04 GMT):
Why are there so many blocks with 0 transaction?
NicolasMassart (Wed, 25 Sep 2019 12:08:48 GMT):
@RealDeanZhao thanks for this valuable feedback. We have a few examples today in our Besu doc, but nothing like a full dapp tutorial directly in our doc. We link to others docs for that as they do it very well too. Besu works mainly like other clients, so if you find a tutorial to create a dapp using Truffle for instance, you can easily use it on Besu as explained on https://besu.hyperledger.org/en/latest/Tutorials/Quickstarts/Private-Network-Quickstart/#truffle-pet-shop-tutorial for instance.
NicolasMassart (Wed, 25 Sep 2019 12:12:24 GMT):
@RealDeanZhao about the empty blocks, it's expected. Blocks are created whatever happens, even if no transactions are made on the network. It's a feature ;) I'm not going to dive in details but having blocks generated enables us to check that the network is live and timeout unavailable validators. Otherwise, if we create blocks only when a tx is sent, how can the rest of the network tell between a stuck validator that fail at creating a block or no block because of no tx?
SamuelDare (Wed, 25 Sep 2019 12:14:51 GMT):
Has joined the channel.
SamuelDare (Wed, 25 Sep 2019 12:14:51 GMT):
Does the format of this enode address look right?
```
{
"jsonrpc": "2.0",
"id": 1,
"result": "enode://3f0fa5a82a6e77a773f7ad62b02cb4519a71ac9894b52addaeae79e76fefe55fb580bcd9b72c882fbc4006dedd16d4fac42b288eb7d9d9df3d9944dd71a291e6@127.0.0.1:30303?discport=0"
}
```
faraggi (Wed, 25 Sep 2019 13:52:41 GMT):
@SamuelDare Yes, that looks alright. Jus verify that you need udp specification. Depending on that, the `discport` part is needed or not.
SamuelDare (Wed, 25 Sep 2019 14:39:17 GMT):
going through logs now
SamuelDare (Wed, 25 Sep 2019 14:39:21 GMT):
```
Invalid Proposal message, block did not pass validation.
```
SamuelDare (Wed, 25 Sep 2019 14:40:49 GMT):
any idea what might be wrong?
SamuelDare (Wed, 25 Sep 2019 14:54:54 GMT):
carrying on from gitter so we have convo in one place
SamuelDare (Wed, 25 Sep 2019 14:54:57 GMT):
```
I'm not too familiar with discport, the enode format is:
enode://
SamuelDare (Wed, 25 Sep 2019 14:55:15 GMT):
do you think the extra bits at the end could be causing the error?
SamuelDare (Wed, 25 Sep 2019 14:55:53 GMT):
the nodes seem to be connecting just sending bad blocks. . I would have thought enode was a udp kademlia thing
SamuelDare (Wed, 25 Sep 2019 14:56:08 GMT):
i.e. that should produce a bad connection message
shemnon (Wed, 25 Sep 2019 14:57:40 GMT):
I dont think enode is causing the bad block, likely something in the extradata in the genesis.
SamuelDare (Wed, 25 Sep 2019 15:00:42 GMT):
Thanks
SamuelDare (Wed, 25 Sep 2019 15:00:48 GMT):
what is meant to be in that field?
SamuelDare (Wed, 25 Sep 2019 15:05:34 GMT):
thanks i think thats the issue
SamuelDare (Wed, 25 Sep 2019 15:05:40 GMT):
hes what i had
```
"alloc=\"{$${alloc:1}}\"",
"extraData=\"\\\"RLP_EXTRA_DATA\\\"\"",
```
SamuelDare (Wed, 25 Sep 2019 15:05:40 GMT):
hes what i had
```
"extraData=\"\\\"RLP_EXTRA_DATA\\\"\"",
```
SamuelDare (Wed, 25 Sep 2019 15:05:57 GMT):
when it should be
```
pantheon rlp encode --from=toEncode.json
```
SamuelDare (Wed, 25 Sep 2019 15:06:49 GMT):
where does `toEncode.json` come from?
RealDeanZhao (Thu, 26 Sep 2019 02:05:01 GMT):
thanks for the explaination. it's different with fabric and sawtooth.
swkim109 (Thu, 26 Sep 2019 03:08:32 GMT):
I have heard about "empty mining" in public PoW chains but I don't know if empty blocks is necessary in private chain...
mauhcs (Thu, 26 Sep 2019 05:20:30 GMT):
Has joined the channel.
mauhcs (Thu, 26 Sep 2019 05:22:35 GMT):
Anyone going to Dev Con in Osaka? It would be great to organize a Besu meet up/catch up if people will be there.
NicolasMassart (Thu, 26 Sep 2019 07:06:48 GMT):
It's mostly useful on PoA concessus where calidators create blocks on a rotating basis. On PoW it's a financial incentive on public network, you are right that in private one it may not be the same. However, our PoW works the same on public or private network.
faraggi (Thu, 26 Sep 2019 08:27:36 GMT):
Hi mauchs, there's several (15+?) contributors and maintainers going to devcon this year. Some of us will be doing talks- we'll send the schedule once we get it.
Additionally, there will be a Hyperledger meetup during devcon, here's the link: https://www.meetup.com/Hyperledger-Kansai/events/264886205/
There's a lot of stuff going on during devcon so at this point, things are already difficult to organize but I'll gladly meet up directly over there.
mauhcs (Thu, 26 Sep 2019 08:34:30 GMT):
Thanks for the link.
I will try to go to this one too :)
mauhcs (Fri, 27 Sep 2019 01:29:10 GMT):
What about Tokyo?
Is anyone stopping by Tokyo before going to Osaka.
Let me know, I can hook you up with some Sushi and Sake ;)
yunho.chung (Fri, 27 Sep 2019 06:11:46 GMT):
Hi!. I did deploy/invoke some smart contract and I got error in node log as below. " ERROR | PrivacyPrecompiledContract | Failed to process the private transaction: private transaction nonce 0 does not match sender account nonce 1." It seems that transaction is ok. Is it correct??
swkim109 (Fri, 27 Sep 2019 06:35:53 GMT):
Be careful for sushi from Fukushima... (JOKE):stuck_out_tongue_winking_eye:
raj_shekhar (Fri, 27 Sep 2019 07:44:59 GMT):
Has joined the channel.
NicolasMassart (Fri, 27 Sep 2019 08:25:57 GMT):
Sushis are better in Osaka anyway ;)
WietzeS (Fri, 27 Sep 2019 08:51:09 GMT):
Has joined the channel.
faraggi (Fri, 27 Sep 2019 09:10:10 GMT):
Yes, I'll be in Tokyo on the 6th and 7th (and after devcon). I would *love* some sushi and sake.
antonydenyer (Fri, 27 Sep 2019 09:12:02 GMT):
How did you send the transaction?
WietzeS (Fri, 27 Sep 2019 09:48:26 GMT):
I am at the moment unable to pull any of the besu images from docker hub, anyone else encountering this same issue?
joshuafernandes (Fri, 27 Sep 2019 10:04:42 GMT):
Hi @WietzeS We will have a look at this
faraggi (Fri, 27 Sep 2019 10:08:49 GMT):
@WietzeS thanks for letting us know of the problem!
joshuafernandes (Fri, 27 Sep 2019 10:40:23 GMT):
@WietzeS should be fixed - could you try this please `docker pull hyperledger/besu:develop`
WietzeS (Fri, 27 Sep 2019 10:45:20 GMT):
Yeah works now thanks :+1:
joshuafernandes (Fri, 27 Sep 2019 11:09:29 GMT):
nw :)
joshuafernandes (Sun, 29 Sep 2019 22:16:34 GMT):
@here: Besu 1.3 RC slated for release this time tomorrow ie 0800 AEST 1/10
joshuafernandes (Sun, 29 Sep 2019 22:16:34 GMT):
@here: *Besu 1.3 RC *slated for release this time tomorrow ie *0800 AEST 1/10*
rjones (Mon, 30 Sep 2019 02:36:24 GMT):
@mauhcs I’ll be in Tokyo Tuesday, going to Osaka next Sunday
drinkcoffee (Mon, 30 Sep 2019 03:04:34 GMT):
Testing for Crosschain Transaction code: Where would be the best place for Crosschain Transaction testing? I can see there are unit, integration and acceptance tests.
The types of tests need to:
- launch one or more nodes on three blockchains
- Run one or more tests (it would be great to relaunch everything for each test, but then the tests might take a very long time to run).
- For many non-happy case tests, be able to remove network connections between nodes / remove nodes half way through a test.
The acceptance test framework seems like it could be a good starting point. However, is the goal to limit the number of tests in this test system so the acceptance tests run in a reasonable time frame?
cjhare (Mon, 30 Sep 2019 03:23:57 GMT):
> The acceptance test framework seems like it could be a good starting point. However, is the goal to limit the number of tests in this test system so the acceptance tests run in a reasonable time frame?
Yes, the goal with the ATs is to keep them running in reasonable time frame (as they are build on every master and PR commit).
As things currently stand with the AT framework, they are really aimed at happy path tests, few in number and relatively simple (compare to the potential unhappy path tests).
With Crosschain transactions, I could imagine that the interesting cases needing something more akin to real networks?
drinkcoffee (Mon, 30 Sep 2019 03:30:09 GMT):
So we will need to create some acceptance tests which do a lot with a couple of tests.
drinkcoffee (Mon, 30 Sep 2019 03:30:45 GMT):
For the complex cases including failure we will need something else...
drinkcoffee (Mon, 30 Sep 2019 03:31:21 GMT):
```With Crosschain transactions, I could imagine that the interesting cases needing something more akin to real networks?```
yes.
drinkcoffee (Mon, 30 Sep 2019 03:32:33 GMT):
What does Besu use for complex inter-node communication + checking out dead network connections / nodes? Is there a Chaos Monkey style test?
cjhare (Mon, 30 Sep 2019 03:33:13 GMT):
There is not any Choas Money style testing yet
cjhare (Mon, 30 Sep 2019 03:34:10 GMT):
The Crosschain transactions could always provide the beginnings of one though :grinning:
drinkcoffee (Mon, 30 Sep 2019 03:36:16 GMT):
We hadn't planned on creating a new test system..... but I guess if we need to.
I will start out with the acceptance test system. Perhaps the test support codebase could be extended.
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running ```./gradlew acceptanceTest```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running ```./gradlew acceptanceTest```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
```./gradlew acceptanceTest```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
```./gradlew acceptanceTest ```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
```./gradlew acceptanceTest
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
```./gradlew acceptanceTest```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
```./gradlew acceptanceTest```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
``` gradlew acceptanceTest```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
```./gradlew acceptanceTest```
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
drinkcoffee (Mon, 30 Sep 2019 04:00:45 GMT):
Unsatisfied Link Error when running acceptance tests.
I am running
./gradlew acceptanceTest
and I get several of these:
```org.hyperledger.besu.tests.web3j.privacy.PrivacyClusterAcceptanceTest > onlyAliceAndBobCanExecuteContract FAILED
java.lang.UnsatisfiedLinkError at PrivacyClusterAcceptanceTest.java:42
java.lang.NullPointerException```
What have I forgotten to do?
cjhare (Mon, 30 Sep 2019 06:10:20 GMT):
The Privacy AT use Orion, which currently uses LibSodium, does your setup have LibSodium installed?
shemnon (Mon, 30 Sep 2019 06:59:22 GMT):
One additional bit is that we need to be mindful of how long tests take if we make them gate checkins. Right now all of acceptance, integration, reference, and unit tests are run for every checkin. Perhaps we need a new set of tests that are not gating for a checkin?
drinkcoffee (Mon, 30 Sep 2019 07:27:16 GMT):
@shemnon I agree totally. We shouldn't expect to run all of the tests that need to be run for a release for every pull request.
drinkcoffee (Mon, 30 Sep 2019 07:30:24 GMT):
No - I don't have lib sodium installed. I was following the instructions here, https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Build-From-Source/
but ignoring the -x test because I wanted to run the tests.
Are there install instructions for libsodium?
antonydenyer (Mon, 30 Sep 2019 08:55:28 GMT):
We should be able to run these out the box with minimal effort. @iikirilov is working in this area at the moment.
antonydenyer (Mon, 30 Sep 2019 10:25:53 GMT):
It's fairly widely available -
brew install libsodium
apt-get install libsodium23
etc
antonydenyer (Mon, 30 Sep 2019 10:25:53 GMT):
It's fairly widely available -
`brew install libsodium`
`apt-get install libsodium23`
etc
SamuelDare (Mon, 30 Sep 2019 15:56:48 GMT):
what the command line arguments for specifying gas limit and block time?
shemnon (Mon, 30 Sep 2019 16:02:31 GMT):
For gas limit is is a single value in the genesis file, a CLI flag is coming in 1.3 (RC today or so).
shemnon (Mon, 30 Sep 2019 16:03:02 GMT):
Block time depends on the consensus algorithm. For those with configurable block times it is a parameter in the genesis.json.
SamuelDare (Mon, 30 Sep 2019 16:10:53 GMT):
thanks.. what are the values?
shemnon (Mon, 30 Sep 2019 17:16:23 GMT):
thanks.. what are the values?
brockhager (Mon, 30 Sep 2019 18:07:00 GMT):
Has joined the channel.
madelinemurray (Mon, 30 Sep 2019 20:01:21 GMT):
New doc with sample load balancer configurations: https://besu.hyperledger.org/en/latest/HowTo/Configure/Configure-HA/Sample-Configuration/
offcode (Tue, 01 Oct 2019 09:43:50 GMT):
Has joined the channel.
offcode (Tue, 01 Oct 2019 09:46:03 GMT):
Hi, I'm trying to import the blocks file used for graphql testing, but it fails throwing `tech.pegasys.pantheon.ethereum.rlp.RLPException: Expected current item to be a list, but it is: BYTE_ELEMENT (at bytes 0-1: [7b])`. The version used is `docker pull pegasyseng/pantheon` (the hyperledger image doesn't seem to work)
offcode (Tue, 01 Oct 2019 09:51:24 GMT):
Ok, now I have the same with the besu docker image: `org.hyperledger.besu.ethereum.rlp.RLPException: Expected current item to be a list, but it is: BYTE_ELEMENT (at bytes 0-1: [7b])`
mbaxter (Tue, 01 Oct 2019 12:50:11 GMT):
@offcode can you link to the file you're trying to import?
offcode (Tue, 01 Oct 2019 12:55:20 GMT):
@mbaxter I'm using this: https://gitlab.com/offcode/ethereum-graphql/blob/master/test-graphql/init/testBlockchain.blocks I copied it from the pantheon codebase, but it'd take some time to find the original location. `geth` can import it.
mbaxter (Tue, 01 Oct 2019 13:10:16 GMT):
Just tested on master with: `besu --genesis-file=/path/to/testGenesis.json blocks import --from=/path/to/testBlockchain.block`, and it seems to be working for me ... I used the files from the repo here: https://github.com/hyperledger/besu/tree/56029dc412ff7f26204e82f274a33d9255c3e592/testutil/src/main/resources
offcode (Tue, 01 Oct 2019 13:21:12 GMT):
yes, exactly, that's the one
offcode (Tue, 01 Oct 2019 13:29:44 GMT):
it's the same file. I wonder why it's not working for me running in a docker image. I'll try and install besu locally. I tried https://gitlab.com/offcode/ethereum-graphql/blob/master/test-graphql/clients/besu.sh#L7
offcode (Tue, 01 Oct 2019 13:30:40 GMT):
it's the same file. I wonder why it's not working for me running in a docker image. I'll try and install besu locally. I tried https://gitlab.com/offcode/ethereum-graphql/blob/master/test-graphql/clients/besu.sh#L7
mbaxter (Tue, 01 Oct 2019 14:03:52 GMT):
strange - i'll try running from docker as well
offcode (Tue, 01 Oct 2019 14:06:56 GMT):
I just tried with a fresh brew installed version. Same exception.
offcode (Tue, 01 Oct 2019 14:08:44 GMT):
To recap, the failing envs are:
- brew, besu/v1.2.4/osx-x86_64/oracle-java-11
- docker, besu/v1.3.0-RC2/linux-x86_64/oracle_openjdk-java-11
shemnon (Tue, 01 Oct 2019 14:19:51 GMT):
add --format=JSON if you are importing json files.
offcode (Tue, 01 Oct 2019 14:20:51 GMT):
it's an rlp-encoded blocks file
shemnon (Tue, 01 Oct 2019 14:21:13 GMT):
the file you sent: `docker_besu --genesis-file /init/testGenesis.json blocks import --from=/init/testGenesis.json`
shemnon (Tue, 01 Oct 2019 14:21:20 GMT):
--from is pointed to a json file.
offcode (Tue, 01 Oct 2019 14:21:23 GMT):
oo, I'm afraid I made a stupid mistake here
mbaxter (Tue, 01 Oct 2019 14:22:09 GMT):
good eye @shemnon !
offcode (Tue, 01 Oct 2019 14:22:47 GMT):
:facepalm:
offcode (Tue, 01 Oct 2019 14:23:37 GMT):
sorry guys
mbaxter (Tue, 01 Oct 2019 14:27:32 GMT):
np! I missed it too :D
shemnon (Tue, 01 Oct 2019 14:56:16 GMT):
Besu contributor call in 4 min: https://consensys.zoom.us/j/725448960
eum602 (Tue, 01 Oct 2019 16:15:16 GMT):
Has joined the channel.
eum602 (Tue, 01 Oct 2019 16:15:18 GMT):
@shemnon @faraggi @ajsutton I posted an issue on Jira about the possibility to implement a Fork on an private IBFT2.0 network. https://pegasys1.atlassian.net/projects/PAN/issues/PAN-3124?filter=reportedbyme&orderby=created%20DESC . Please I would like to listen some comments about that. Thanks!
mattatkiva (Tue, 01 Oct 2019 16:50:16 GMT):
Has joined the channel.
mattatkiva (Tue, 01 Oct 2019 16:50:16 GMT):
Im going through this tutorial (https://docs.pantheon.pegasys.tech/en/0.8.5/Tutorials/Create-Private-Network/) and am stuck on step 3 "Start First Node and Get Node Public key"
this command `pantheon --data-path=Node-1-Datadir --genesis-file=../privateNetworkGenesis.json export-pub-key Node-1-Datadir/publicKeyNode1` generates the following error:
`Unmatched arguments: export-pub-key, Node-1-Datadir/publicKeyNode1
Did you mean: public-key or operator?`
what is the correct command to export the node public key?
mattatkiva (Tue, 01 Oct 2019 16:50:16 GMT):
Im going through this tutorial (https://docs.pantheon.pegasys.tech/en/0.8.5/Tutorials/Create-Private-Network/) and am stuck on step 3 "Start First Node and Get Node Public key"
this command `pantheon --data-path=Node-1-Datadir --genesis-file=../privateNetworkGenesis.json export-pub-key Node-1-Datadir/publicKeyNode1` generates the following error:
```Unmatched arguments: export-pub-key, Node-1-Datadir/publicKeyNode1
Did you mean: public-key or operator?```
what is the correct command to export the node public key?
mattatkiva (Tue, 01 Oct 2019 16:50:16 GMT):
Im going through this tutorial (https://docs.pantheon.pegasys.tech/en/0.8.5/Tutorials/Create-Private-Network/) and am stuck on step 3 "Start First Node and Get Node Public key"
this command `pantheon --data-path=Node-1-Datadir --genesis-file=../privateNetworkGenesis.json export-pub-key Node-1-Datadir/publicKeyNode1` generates the following error:
```Unmatched arguments: export-pub-key, Node-1-Datadir/publicKeyNode1
Did you mean: public-key or operator?```
what is the correct command to export the node public key?
do I need to export the public key?
shemnon (Tue, 01 Oct 2019 17:30:44 GMT):
Those are the 0.8.5 docs for pantheon, not besu. Pantheon name fully changed to besu at 1.2.4 and the CLIs were significantly re-written in 0.9.0.
shemnon (Tue, 01 Oct 2019 17:31:02 GMT):
perhaps instead of `export-pub-key` try `pub-key export`
shemnon (Tue, 01 Oct 2019 17:31:02 GMT):
perhaps instead of `export-pub-key` try `public-key export`
shemnon (Tue, 01 Oct 2019 17:32:58 GMT):
Pantheon docs up to 1.2.3 are https://readthedocs.org/projects/pantheon/ and besu docs are at https://besu.hyperledger.org/en/latest/
mattatkiva (Tue, 01 Oct 2019 17:33:07 GMT):
I tried `export-pub-key` same error. `public-key export` seems to work and pushes key to console.
what is the most current documentation for setting up private network? is this it? https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Quickstarts/Private-Network-Quickstart/
shemnon (Tue, 01 Oct 2019 17:34:49 GMT):
those are the latest, you had the 0.8.5 docs selected before. Probably a side effect of where it was linked from.
nickgaski (Tue, 01 Oct 2019 19:36:57 GMT):
Has joined the channel.
mattatkiva (Tue, 01 Oct 2019 20:20:23 GMT):
great. Im following the directions for the latest quick start. I have started 3 nodes. Is this the correct message I should be seeing if they are working correctly: `2019-10-01 14:19:35.980-06:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers`
rjones (Tue, 01 Oct 2019 20:40:48 GMT):
Has joined the channel.
rjones (Tue, 01 Oct 2019 20:41:46 GMT):
@mauhcs I'm staying in the Moxy, have SUICA will travel. LMK
faraggi (Wed, 02 Oct 2019 08:37:16 GMT):
Yesterday's contributor call notes have been added to the wiki:
https://wiki.hyperledger.org/display/BESU/2019-10-01+Contributor+call
offcode (Wed, 02 Oct 2019 09:21:29 GMT):
I run `besu --discovery-enabled=false --graphql-http-enabled --genesis-file init/testGenesis.json` then I point to http://127.0.0.1:8547/. For all GraphQL queries it returns an empty string, even for `{ __schema { types { name }}}`. What am I overlooking?
NicolasMassart (Wed, 02 Oct 2019 09:41:33 GMT):
GraaphQL entrypoint has to be http://127.0.0.1:8547/graphql
offcode (Wed, 02 Oct 2019 09:42:06 GMT):
http://127.0.0.1:8547/ is the graphiql IDE
offcode (Wed, 02 Oct 2019 09:43:17 GMT):
I can see the IDE and execute. Or is it cached?
offcode (Wed, 02 Oct 2019 09:43:30 GMT):
http://127.0.0.1:8547/ is the graphiql IDE
I can see the IDE and execute. Or is it cached?
offcode (Wed, 02 Oct 2019 09:46:04 GMT):
Ouch, it must be cached. I can query the /graphql endpoint. Thank you
offcode (Wed, 02 Oct 2019 09:48:15 GMT):
Ouch, it must be cached. I can query the /graphql endpoint. Thank you.
NicolasMassart (Wed, 02 Oct 2019 09:49:22 GMT):
We will improve this. Thanks for the feedback.
offcode (Wed, 02 Oct 2019 09:50:09 GMT):
GraphiQL is actually pretty neat. But what matters is the graphql endpoint :)
NicolasMassart (Wed, 02 Oct 2019 09:51:14 GMT):
Yes we will at least improve our docs.
offcode (Wed, 02 Oct 2019 09:51:57 GMT):
I just went ahead and tried without reading the docs :)
NicolasMassart (Wed, 02 Oct 2019 09:52:13 GMT):
https://pegasys1.atlassian.net/browse/PAN-3213
NicolasMassart (Wed, 02 Oct 2019 09:52:38 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=YJkgYM3FEQ7tsiDGt) Oh naughty you...
offcode (Wed, 02 Oct 2019 09:53:11 GMT):
that was quick
NicolasMassart (Wed, 02 Oct 2019 09:53:12 GMT):
> I just went ahead and tried without reading the docs
Naughty you !
NicolasMassart (Wed, 02 Oct 2019 09:53:24 GMT):
It';s just the ticket, it's not solved yet ;)
offcode (Wed, 02 Oct 2019 09:53:52 GMT):
> Naughty you !
I'm just a developer ;)
NicolasMassart (Wed, 02 Oct 2019 09:55:48 GMT):
UX is for developers too, we'll improve it, I promise.
shemnon (Wed, 02 Oct 2019 14:15:12 GMT):
This looks like either the validator node isn't producing blocks or they are not connecting to the boot node and are not seeing each other. Can you run a peer count query on each (https://docs.pantheon.pegasys.tech/en/latest/Tutorials/Quickstarts/Private-Network-Quickstart/#counting-peers) and then check the --bootnodes CLI arg to make sure they are talking? It may also be that docker isn't letting the docker images talk if they are not on the same docker network.
NicolasMassart (Wed, 02 Oct 2019 14:37:59 GMT):
FYI, I also created a ticket to make an HTTP redirect form endpoint root path to the correct one.
offcode (Wed, 02 Oct 2019 14:40:02 GMT):
I'm not sure it's a good idea. I'd expect the root to provide an IDE. A simple "You'll see an IDE here soon. Until then use /graphql" message would be better
NicolasMassart (Wed, 02 Oct 2019 14:43:46 GMT):
I'm not sure a graphql endpoint role is to provide an IDE. At least there's no recommendation about that. DO you have examples of services doing that? @shemnon any thoughts?
NicolasMassart (Wed, 02 Oct 2019 14:43:46 GMT):
I'm not sure a graphql endpoint role is to provide an IDE. At least there's no recommendation about that. Do you have examples of services doing that? @shemnon any thoughts?
offcode (Wed, 02 Oct 2019 14:44:20 GMT):
`geth`does it this way
NicolasMassart (Wed, 02 Oct 2019 14:47:06 GMT):
Never tried to connect to root so never noticed that :D
offcode (Wed, 02 Oct 2019 14:47:24 GMT):
Also this is what the EIP says: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1767.md#node-api
NicolasMassart (Wed, 02 Oct 2019 14:48:26 GMT):
It says MAY, not MUST... but thanks for pointing this out. We'll at least discuss about it.
offcode (Wed, 02 Oct 2019 14:49:11 GMT):
yes, MAY .I'm just saying a redirect would be more confusing than serving nothing at the root
shemnon (Wed, 02 Oct 2019 14:54:31 GMT):
My concern with offering the IDE is security. It is implemented by loading large amounts of javascript from a server we don't control in the clients web browser. I consider the standalone Graphiql browser superior in that regard.
shemnon (Wed, 02 Oct 2019 14:55:13 GMT):
And I don't think Geth seriously contemplated the security implcations.
NicolasMassart (Wed, 02 Oct 2019 14:56:55 GMT):
Note also that is a developer only feature that has no use in a production environment.
mattatkiva (Wed, 02 Oct 2019 19:57:47 GMT):
ok that helps. I needed to get the nodes to talk to each other. I think that was step #9 add nodes as peer
mattatkiva (Wed, 02 Oct 2019 19:57:47 GMT):
ok that helps. I needed to get the nodes to talk to each other. I think that was step #9 add nodes as peers
mattatkiva (Wed, 02 Oct 2019 21:33:47 GMT):
Im going through this tutorial `https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/`
Theres a couple of steps where you have to get the `enode` value. Is there a way to get that programmatically?
mattatkiva (Wed, 02 Oct 2019 21:33:47 GMT):
Im going through this tutorial `https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/`
Theres a couple of steps where you have to get the `enode` value eg `
mattatkiva (Wed, 02 Oct 2019 21:33:47 GMT):
Im going through this tutorial `https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/`
Theres a couple of steps where you have to get the `enode` value eg `
NicolasMassart (Wed, 02 Oct 2019 22:17:04 GMT):
Yes you can build it form the public key returned by the `besu public-key export` subcommand https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Subcommands/#export_1 and use the `enode://
mattatkiva (Wed, 02 Oct 2019 22:32:09 GMT):
That isn't matching something, maybe its my misunderstanding. node1 startup output shows
```2019-10-02 14:22:34.284-07:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://276f223a54f3566b620401bb2460b4a2052cd8036821929a016ac2406c659d2106835bb591afc40f55b448133963fc87173500402de588f869eb4215e20851cc@127.0.0.1:30303```
and the command you gave me returns
```mattraffel@kiva-mattr:~/besu_pvn$ besu --data-path=${NETWORK_ROOT} public-key export
2019-10-02 15:30:37.764-07:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-10-02 15:30:37.770-07:00 | main | INFO | RocksDBPlugin | Plugin registered.
2019-10-02 15:30:38.134-07:00 | main | INFO | KeyPairUtil | Loaded key 0x35e9b7236de3e8c75eb1e2646164e7a1131663b1a719207352204f1f9ac5d07b3ee4163a7cf8eab939303c4a5e7c8d0c71df432a9ca88afbd150f947eb81d882 from /Users/mattraffel/besu_pvn/key```
mattatkiva (Wed, 02 Oct 2019 22:32:09 GMT):
That isn't matching something, maybe its my misunderstanding. node1 startup output shows
```2019-10-02 14:22:34.284-07:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://276f223a54f3566b620401bb2460b4a2052cd8036821929a016ac2406c659d2106835bb591afc40f55b448133963fc87173500402de588f869eb4215e20851cc@127.0.0.1:30303````
and the command you gave me returns
```mattraffel@kiva-mattr:~/besu_pvn$ besu --data-path=${NETWORK_ROOT} public-key export
2019-10-02 15:30:37.764-07:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-10-02 15:30:37.770-07:00 | main | INFO | RocksDBPlugin | Plugin registered.
2019-10-02 15:30:38.134-07:00 | main | INFO | KeyPairUtil | Loaded key 0x35e9b7236de3e8c75eb1e2646164e7a1131663b1a719207352204f1f9ac5d07b3ee4163a7cf8eab939303c4a5e7c8d0c71df432a9ca88afbd150f947eb81d882 from /Users/mattraffel/besu_pvn/key```
mattatkiva (Wed, 02 Oct 2019 22:33:25 GMT):
That isn't matching something, maybe its my misunderstanding. node1 startup output shows
```
2019-10-02 14:22:34.284-07:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://276f223a54f3566b620401bb2460b4a2052cd8036821929a016ac2406c659d2106835bb591afc40f55b448133963fc87173500402de588f869eb4215e20851cc@127.0.0.1:30303
```
and the command you gave me returns
```
mattraffel@kiva-mattr:~/besu_pvn$ besu --data-path=${NETWORK_ROOT} public-key export
2019-10-02 15:30:37.764-07:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-10-02 15:30:37.770-07:00 | main | INFO | RocksDBPlugin | Plugin registered.
2019-10-02 15:30:38.134-07:00 | main | INFO | KeyPairUtil | Loaded key 0x35e9b7236de3e8c75eb1e2646164e7a1131663b1a719207352204f1f9ac5d07b3ee4163a7cf8eab939303c4a5e7c8d0c71df432a9ca88afbd150f947eb81d882 from /Users/mattraffel/besu_pvn/key
```
NicolasMassart (Thu, 03 Oct 2019 08:32:05 GMT):
can you past the command line used to run the first log?
offcode (Thu, 03 Oct 2019 14:15:14 GMT):
@shemnon the security concern is valid, we haven't thought about it. Thnks for surfacing it.
offcode (Thu, 03 Oct 2019 14:16:47 GMT):
@NicolasMassart I see one of the advantages of GraphQL over the current JSON RPC is that it's more developer friendly.
NicolasMassart (Thu, 03 Oct 2019 14:22:57 GMT):
Can you elaborate on what you prefer about GraphQL? It's very valuable feedback for us. Thanks.
offcode (Thu, 03 Oct 2019 14:25:58 GMT):
1. I can write a single query, no need to process the result, feed it into the next query, repeat.
2. Easy to explore the data (especially with the help of the IDE ;)
3. Federation to integrate different services
4. Hopefully better error handling than with the current json rpc
NicolasMassart (Thu, 03 Oct 2019 14:26:27 GMT):
:thumbsup: Thanks.
offcode (Thu, 03 Oct 2019 14:26:39 GMT):
yw
mattatkiva (Thu, 03 Oct 2019 15:16:00 GMT):
```cd ${NETWORK_ROOT}/Node-$1
besu --data-path=data --genesis-file=../cliqueGenesis.json --permissions-nodes-config-file-enabled --permissions-accounts-config-file-enabled --rpc-http-enabled --rpc-http-api=ADMIN,ETH,NET,PERM,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="*" --p2p-port=${P2P_PORT} --rpc-http-port=${HTTP_RPC_PORT}```
mattatkiva (Thu, 03 Oct 2019 15:16:21 GMT):
```NETWORK_ROOT=$HOME/besu_pvn
P2P_PORT=30303
HTTP_RPC_PORT=8545```
NicolasMassart (Thu, 03 Oct 2019 17:17:44 GMT):
you have `--data-path=${NETWORK_ROOT}` in noe command and `--data-path=data` in the other, as you already ran`cd ${NETWORK_ROOT}/Node-$1` it means second path is `${NETWORK_ROOT}/Node-$1/data` so you look for a key file in `${NETWORK_ROOT}` on one command and a key file in `${NETWORK_ROOT}/Node-$1/data` in the other. Your two private keys are then different, hence not having the same public key. Let me know what happens if you run `cd ${NETWORK_ROOT}/Node-$1` then `besu --data-path=data public-key export`.
NicolasMassart (Thu, 03 Oct 2019 17:17:44 GMT):
you have `--data-path=${NETWORK_ROOT}` in one command and `--data-path=data` in the other, as you already ran`cd ${NETWORK_ROOT}/Node-$1` it means second path is `${NETWORK_ROOT}/Node-$1/data` so you look for a key file in `${NETWORK_ROOT}` on one command and a key file in `${NETWORK_ROOT}/Node-$1/data` in the other. Your two private keys are then different, hence not having the same public key. Let me know what happens if you run `cd ${NETWORK_ROOT}/Node-$1` then `besu --data-path=data public-key export`.
mattatkiva (Thu, 03 Oct 2019 17:34:37 GMT):
yup. my mistake. Thank you
eum602 (Thu, 03 Oct 2019 18:50:12 GMT):
Hi everyone, I am trying to filter events from Besu(v.1.2.4) in a private chain which currently have 2 200 000 blocks; the problem is the response time is TOO LONG; that is, to make a search on those blocks the response time is aproximately 369 seconds, I have made other test where I confirmed it approximately takes 1 second per 5000 blocks. I am using web3@0.20.6. Please can you suggest how can I deal with this issue? Thanks!
eum602 (Thu, 03 Oct 2019 18:59:25 GMT):
```
const {web3} = require("../besu_utils/web3")
var SolidityEvent = require("web3/lib/web3/event.js");
const abi = require("../contracts/ENSRegistry/abi-ensRegistry").ensRegistry
const LogParser = function (logs, abi) {
// pattern similar to lib/web3/contract.js: addEventsToContract()
var decoders = abi.filter(function (json) {
return json.type === 'event';
}).map(function(json) {
return new SolidityEvent(null, json, null);
});
return logs.map(function (log) {
return decoders.find(function(decoder) {
return (decoder.signature() == log.topics[0].replace("0x",""));
}).decode(log);
})
}
const web3filter = web3.eth.filter({
fromBlock: 1,//2009,
toBlock: 'latest',
topics:[[web3.sha3('NewOwner(bytes32,bytes32,address)')]]
})
//measure time:
const tPrevious=Date.now()
let tFinal
//executing the function
web3filter.get((error, logs)=> {
if (error){
console.log(error);
} else {
let newLogs = LogParser(logs, abi);
console.log(newLogs);
}
tFinal=Date.now()
console.log("response time",(tFinal-tPrevious)/1000, "seconds")
})
```
eum602 (Thu, 03 Oct 2019 19:01:46 GMT):
Here is part of the code I am using: ```
const web3filter = web3.eth.filter({
fromBlock: 1,
toBlock: 'latest',
topics:[[web3.sha3('NewOwner(bytes32,bytes32,address)')]]
})
//measure time:
const tPrevious=Date.now()
let tFinal
//executing the function
web3filter.get((error, logs)=> {
if (error){
console.log(error);
} else {
let newLogs = LogParser(logs, abi);
console.log(newLogs);
}
tFinal=Date.now()
console.log("response time",(tFinal-tPrevious)/1000, "seconds")
})
```
NicolasMassart (Thu, 03 Oct 2019 19:42:16 GMT):
You're welcome, enjoy Besu!
lucassaldanha (Thu, 03 Oct 2019 21:22:10 GMT):
Thanks for bringing this to out attention! I'll follow up with our team and see if we can come up with a solution!
lucassaldanha (Thu, 03 Oct 2019 21:38:38 GMT):
I have raised a ticket with the team so you can keep track of our investigation.
https://pegasys1.atlassian.net/browse/PAN-3219
mattatkiva (Thu, 03 Oct 2019 22:30:30 GMT):
yeah. thanks for your help. I was able to get it working. I confirmed this by using the metamask chrome addin to transfer $ between accounts on my private network.
arash009 (Fri, 04 Oct 2019 00:05:00 GMT):
Has joined the channel.
arash009 (Fri, 04 Oct 2019 00:07:07 GMT):
Besu 1.3 has been released!! Get your copy here: https://bintray.com/hyperledger-org/besu-repo/besu/1.2.4#
Change log available at: https://github.com/hyperledger/besu/releases/tag/1.3.0
arash009 (Fri, 04 Oct 2019 00:07:07 GMT):
Besu 1.3 has been released!! Get your copy here: https://bintray.com/hyperledger-org/besu-repo/besu/1.3.0#
Change log available at: https://github.com/hyperledger/besu/releases/tag/1.3.0
shemnon (Fri, 04 Oct 2019 04:28:53 GMT):
Have you tried the graphql interface?
shemnon (Fri, 04 Oct 2019 04:29:32 GMT):
web3@0.20.6, the nodejs package?
eum602 (Fri, 04 Oct 2019 16:14:07 GMT):
@shemnon I used used RPC for communication and Nodejs framework with web3.js in its version 0.20.6
shemnon (Fri, 04 Oct 2019 16:15:31 GMT):
Json rpc incurs a significant overhead as you can only query one transaction at a time. With graplql you can query larger blocks of transactions per call
eum602 (Fri, 04 Oct 2019 16:48:41 GMT):
I assume this problem occurs with Besu, because we do not have this issue with Geth. Is it right?
eum602 (Fri, 04 Oct 2019 21:01:57 GMT):
Clipboard - October 4, 2019 4:01 PM
eum602 (Fri, 04 Oct 2019 21:02:00 GMT):
I again, I want to report an issue with release 1.3.0 when trying to make private transactions, using the storeValueFromNode1.js which is on github (https://github.com/PegaSysEng/web3js-eea) , when running the script the nodes fall, here you can see a screenshot of one of the fallen nodes.
eum602 (Fri, 04 Oct 2019 21:02:34 GMT):
Clipboard - October 4, 2019 4:02 PM
eum602 (Fri, 04 Oct 2019 21:04:01 GMT):
I followed all steps detailed in https://besu.hyperledger.org/en/latest/Tutorials/Privacy/eeajs-Multinode-example/
iikirilov (Sat, 05 Oct 2019 11:27:05 GMT):
this will be investigated
lucassaldanha (Sat, 05 Oct 2019 21:45:25 GMT):
I've raised a JI to help tracking this issue: https://pegasys1.atlassian.net/browse/PAN-3222
lucassaldanha (Sat, 05 Oct 2019 21:45:36 GMT):
Thanks for reporting this!
eum602 (Sat, 05 Oct 2019 23:44:15 GMT):
you are welcome.
eum602 (Sat, 05 Oct 2019 23:44:40 GMT):
you are welcome.
yunho.chung (Sun, 06 Oct 2019 15:52:39 GMT):
Hi!. I did deploy/invoke some smart contract and I got error in node log as below. " ERROR | PrivacyPrecompiledContract | Failed to process the private transaction: private transaction nonce 0 does not match sender account nonce 1." It seems that transaction is ok. Is it correct??
eum602 (Sun, 06 Oct 2019 23:32:50 GMT):
Hi everyone, do you know how can I make a filter for events in a range of blocks using graphql?, by using web3 I use something like ```
const web3filter = web3.eth.filter({
fromBlock: 1,
toBlock: 'latest',
topics:[[web3.sha3('NewOwner(bytes32,bytes32,address)')]]
})
``` . I have been searching on besu documentation but most of them refers to query made to only one block.
eum602 (Sun, 06 Oct 2019 23:33:40 GMT):
Hi everyone, do you know how can I make a filter for events in a range of blocks using graphql?, by using web3 I use something like ```
const web3filter = web3.eth.filter({
fromBlock: 1,
toBlock: 'latest',
topics:[[web3.sha3('NewOwner(bytes32,bytes32,address)')]]
})
``` . I have been searching on besu documentation but most of them refers to query made to only one block. any answer is well appreciated. Thanks!!
shemnon (Mon, 07 Oct 2019 01:27:10 GMT):
The root logs query is a bit wonky at the moment, but you can query from a range of blocks with a graphql query like this:
```
{
blocks(from: 1420000, to: 1426000) {
logs(filter: {addresses: [], topics:[]}) {
index
account {address}
topics
data
}
}
}
```
eum602 (Mon, 07 Oct 2019 02:35:57 GMT):
@shemnon thanks for the code. I have just tested how fast is the query with graphql compared with rpc; the results are that to query in a range of 47000 blocks in a LOCALHOST chain, graphql takes 5.49 seconds; while rpc took 2.038 seconds.
eum602 (Mon, 07 Oct 2019 02:36:24 GMT):
here is my code made in nodejs: ```const axios = require("axios")
const {GRAPH_URL} = require("./keys")
const filter = {}
filter.getLogs = () =>{
const logs = axios({
url: GRAPH_URL,
method: 'post',
data: {
query: `{
blocks(from: 1, to: 47712)
{
logs(
filter:{
addresses:[],
topics:[
[
\"0xce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e82\"
]
]
}
)
{
index
account {address}
topics
data
}
}
}`
}
}).then((result) => {
const blocks = result.data.data.blocks
//console.log(blocks)
return blocks
}).catch(e=>console.log(e.message))
return logs
}
const t1 = Date.now()
filter.getLogs().then(blocks=>{
const t2 = Date.now()
console.log("response time", (t2-t1)/1000,"seconds")
for(const block of blocks){
if(block.logs.length>0){
console.log(block.logs)
}
}
})```
shemnon (Mon, 07 Oct 2019 02:37:13 GMT):
Good to know. There are many optimizations we still need to do in the graphql code. There is also an issue in that the top level logs query isn't working.
shemnon (Mon, 07 Oct 2019 02:37:40 GMT):
How would you characterize your 2M blockchain, mostly erc-20 transactions? Full blocks? half full blocks?
eum602 (Mon, 07 Oct 2019 02:42:44 GMT):
my 2 million blocks, that I mentioned before are in IBFT2.0 context, the majority of them does not have transactions and other part are transactions from smart contract state change.
shemnon (Mon, 07 Oct 2019 02:44:44 GMT):
What's the total transaction count w/in an order of magnitude?
eum602 (Mon, 07 Oct 2019 02:46:26 GMT):
I am very worried for the response time because rpc and grapql takes too much time to response for a reduced range of blocks(47000 blocks), so in a scenario where a search is needed in the whole chain it could take a LOT of time to resolve.
shemnon (Mon, 07 Oct 2019 03:04:23 GMT):
The architecture here may be to out the logs in a query optimized db. The blockchain structure is not very query firendly.
eum602 (Mon, 07 Oct 2019 03:43:56 GMT):
thanks for that suggestion @shemnon
sanket1211 (Mon, 07 Oct 2019 06:41:34 GMT):
Has joined the channel.
antoniosngular (Mon, 07 Oct 2019 08:34:53 GMT):
Hi, friends! I have a doubt regarding “*Account Permissioning*”. The documentation states that “_A node with account permissioning accepts transactions only from accounts in the accounts whitelist_”. But also says that Account Permissioning can be used for _“Blacklist broken contracts”._ How is it possible? If the restriction is based on “list of accounts (External Owned Accounts, I suppose) that can send transactions (write) to the blockchain”, how can that prevent access TO a broken Smart Contract? Thanks!!
antoniosngular (Mon, 07 Oct 2019 08:34:53 GMT):
Hi, friends! I have a doubt regarding “*Account Permissioning*”. The documentation states that _“A node with account permissioning accepts transactions only from accounts in the accounts whitelist”_. But also says that Account Permissioning can be used for _“Blacklist broken contracts”._ How is it possible? If the restriction is based on “list of accounts (External Owned Accounts, I suppose) that can send transactions (write) to the blockchain”, how that can prevent access TO a broken Smart Contract? Thanks!!
antoniosngular (Mon, 07 Oct 2019 08:34:53 GMT):
Hi, friends! I have a doubt regarding “*Account Permissioning*”. The documentation states that _“A node with account permissioning accepts transactions only from accounts in the accounts whitelist”_. But also says that Account Permissioning can be used for _“Blacklist broken contracts”._ How is it possible? If the restriction is based on “list of accounts (External Owned Accounts, I suppose) that can send transactions (write) to the blockchain”, how can that prevent access TO a broken Smart Contract? Thanks!!
carlosfaria (Mon, 07 Oct 2019 10:32:09 GMT):
Hi guys, when using IBFT 2.0 it's possible to change the `blockperiodseconds` and block gas limit, after the network is running?
NicolasMassart (Mon, 07 Oct 2019 11:21:10 GMT):
Let me just confirm my understanding with my colleagues for `blockperiodseconds`, but for gas limit, we just introduced a new option that makes you able to modify gas limit https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#target-gas-limit
You will have to restart your node to add this command line option then your node will push the chain toward this limit. If you want all your nodes to use this limit, you have to restart them one after the other, or per batches, with this new parameter.
I will get back to you for `blockperiodseconds`
ajsutton (Mon, 07 Oct 2019 11:23:22 GMT):
No, not really. I think you can get away with making it shorter (may need to ensure all validators are updated at the same time). Making it longer would cause earlier blocks to be rejected by any new nodes syncing the chain because the timestamp difference between the existing blocks would be less than `blockperiodseconds` and thus the blocks are considered invalid.
ajsutton (Mon, 07 Oct 2019 11:25:37 GMT):
Gas limit can't be changed in the genesis config - it forms part of the genesis block. But each block can vary the gas limit by a small amount and as Nico pointed out you can set a target gas limit and if enough of the validators have a similar gas limit then it will gradually move towards that new limit.
ajsutton (Mon, 07 Oct 2019 11:28:55 GMT):
With on-chain permissioning, the smart contract that controls permissioning can decide to allow or deny transactions based on a wide range of factors, including both who the transaction is from and the to address specified.
carlosfaria (Mon, 07 Oct 2019 11:36:39 GMT):
Hi @NicolasMassart and @ajsutton thank you for your answers.
I understand that a blockperiod change could affect early blocks.
If I add a new Protocol Spec on `MainnetProtocolSpecs` that defines that, for instance, in block #5000 the `blockperiodseconds` changes to a different value, should it work? - I haven't tested it yet.
Thanks
helderjnpinto (Mon, 07 Oct 2019 11:48:45 GMT):
Has joined the channel.
antoniosngular (Mon, 07 Oct 2019 13:28:52 GMT):
Thank you very much, @ajsutton !!
eum602 (Mon, 07 Oct 2019 20:48:47 GMT):
Hi friends, I have some troubles with cpu overuse; when I look for services which are consuming more cpu I can see this process :
eum602 (Mon, 07 Oct 2019 20:48:51 GMT):
Clipboard - October 7, 2019 3:48 PM
eum602 (Mon, 07 Oct 2019 20:49:48 GMT):
it is related to java, can someone give me some approach how to deal with this? ; thanks a lot.
eum602 (Mon, 07 Oct 2019 20:50:58 GMT):
definitely this process is consuming a lot of CPU. it is related to java, can someone give me some approach how to deal with this? ; thanks a lot.
EdJoJob (Mon, 07 Oct 2019 21:14:44 GMT):
That is pantheon-1.2.0 that is running. I suspect it is syncing a network
eum602 (Mon, 07 Oct 2019 21:19:01 GMT):
it is IBFT2, it is syncronized
eum602 (Mon, 07 Oct 2019 21:19:36 GMT):
it is IBFT2, it is syncronized
eum602 (Mon, 07 Oct 2019 21:20:36 GMT):
that process is making my vm slow
EdJoJob (Mon, 07 Oct 2019 21:29:11 GMT):
is this the same besu that you are querying with your queries?
eum602 (Mon, 07 Oct 2019 21:38:20 GMT):
not the same, the queries I asked before were made to a development network in my localhost and also here (but that time I had not this problem)
eum602 (Mon, 07 Oct 2019 21:39:45 GMT):
this problem has been noticed today, on friday it was working well
ajsutton (Mon, 07 Oct 2019 21:41:01 GMT):
Yes, the right way to do this is effectively to make it a hard fork that's activated at a specific block. `MainnetProtocolSpecs` provides the hard forks for MainNet so it's not the right place for this to live, but you ultimately want to have an additional entry in the built `ProtocolSchedule`. `ProtocolScheduleBuilder` is the class that builds this and inserts the specs for each hard fork.
The IBFT specific concepts like block period are actually added via the `protocolSpecAdapter` that's passed into it. Our IBFT implementation essentially starts with a MainNet spec and then swaps out the bits that are different, including the header validator which checks the block period. `IbftProtocolSchedule` defines those changes.
You'd also need the `BlockTimer` which is used by the block creation process to know that the block period has changed.
If you find usages of `IbftConfigOptions.getBlockPeriodSeconds` you can follow things through fairly well.
eum602 (Mon, 07 Oct 2019 23:28:15 GMT):
Increasing the CPUs solved this for now, but I am still curious why it was needed, because other nodes have less cpu and are working normally. :)
hmijail (Tue, 08 Oct 2019 02:16:35 GMT):
Does that mean that there is a specific place where non-MainNet hard forks would belong?
ajsutton (Tue, 08 Oct 2019 02:29:15 GMT):
Currently we o my have mainnet hard forks and things that adapt them (eg for IBFT2 and clique). The IBFT adaptations live in IbftProtocolSchedule. ETC Collab is looking to add ETC support which would have different hard forms and they may introduce a new class to hold those. Depends on the details though. But MainNetProtocolSpecs is definitely just for mainnet things.
pcmola (Tue, 08 Oct 2019 07:05:51 GMT):
Has joined the channel.
pcmola (Tue, 08 Oct 2019 07:20:39 GMT):
Hi, Everyone. I have a question.
I want to build a test environment using Hyperledger Besu.
I am thinking about choosing between three consensus algorithms: Ethash, Clique, and IBFT 2.0.
Please tell me if there is any data comparing the performance of each consensus algorithm.
Or is there a guide document on how to measure performance?
shemnon (Tue, 08 Oct 2019 07:23:38 GMT):
Ethash is PoW and is permissionless: anyone can mine blocks. Not recommended for private networks. Clique and ibft2 run off a set if validators that is seeded in the genesis and updated as part of block production. Clique still has probabalistic finality while ibft offers real finality.
shemnon (Tue, 08 Oct 2019 07:23:38 GMT):
Ethash is PoW and is permissionless: anyone can mine blocks. Not recommended for private networks. Clique and ibft2 run off a set of validators that is seeded in the genesis and updated as part of block production. Clique still has probabalistic finality while ibft offers real finality.
pcmola (Tue, 08 Oct 2019 08:20:07 GMT):
Thank you for answer.
Then I'm going to adopt ibft2.0 and set it up.
pcmola (Tue, 08 Oct 2019 08:20:07 GMT):
Hi, guys.
I have a question during the 'Using the Pantheon with Truffle' practice.
http://docs.pantheon.pegasys.tech/en/stable/HowTo/Develop-Dapps/Truffle/
I used estash to complete the test as usual (successfully transferring Ether with Metamask).
But with ibft I have a problem.
When I try to 'truffle migrage', I get the following problem:
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft$ truffle migrate --network pantheonWallet
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'pantheonWallet'
> Network id: 2018
> Block gas limit: 0x47b760
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
Error: Error: Error: *** Deployment Failed ***
"Migrations" exceeded the block limit (with a gas value you set).
* Block limit: 0x1fee420
* Gas sent: 6721975
* Try:
+ Sending less gas.
+ Setting a higher network block limit if you are on a
private network or test client (like ganache).
at Object.run (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:96:1)
at process._tickCallback (internal/process/next_tick.js:68:7)
Truffle v5.0.39 (core: 5.0.39)
Node v10.16.3
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft$
The ibft pantheon run log has the following output:
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-1$ pantheon --data-path=data --genesis-file=../genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all"
Setting logging level to INFO
2019-10-11 11:06:49.532+09:00 | main | INFO | Pantheon | Starting Pantheon version: pantheon/v1.2.2/osx-x86_64/oracle_openjdk-java-12
2019-10-11 11:06:49.570+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/pet-shop-tutorial_ibft/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-10-11 11:06:49.570+09:00 | main | INFO | Pantheon | Connecting to 0 static nodes.
2019-10-11 11:06:50.019+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb962e52b5e421d1dd73fc2c18b7cf162b2cc8936b3ec7a689365474c7a64c28767c61ff8ef46829dd71fcc52593fdda7a16ff229ffbdbd5108634471700d70d8 from /Users/pcmola/my/edu/pet-shop-tutorial_ibft/Node-1/data/key
...
2019-10-11 11:07:55.742+09:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.fasterxml.jackson.databind.util.ClassUtil (file:/usr/local/Cellar/pantheon/1.2.2/lib/jackson-databind-2.9.9.1.jar) to constructor java.util.OptionalLong()
WARNING: Please consider reporting this to the maintainers of com.fasterxml.jackson.databind.util.ClassUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2019-10-11 11:08:00.744+09:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
From the log, it looks like pantheon ibft has blocked access.
And what should I do to solve this problem?
carlosfaria (Tue, 08 Oct 2019 10:15:49 GMT):
@ajsutton I'm actually using the `MainNetProtocolSpecs` to define a new fork that replaces the `MainnetTransactionProcessor` with a `CustomTransactionProcessor` in a IBFT 2.0 network. And it works fine.
I'm doing it right?
ajsutton (Tue, 08 Oct 2019 23:13:55 GMT):
If it works fine that’s ok. :) Where the code lives is mostly a design issue - MainNetProtocolSpecs should be exclusively about MainNet. The only thing that actually matters in terms of operation is what winds up in the ProtocolSchedule that is ultimately built. Files like MainNetProtocolSpecs and IbftProtocolSchedule just house utility functions to help build up that ProtocolSchedule and try to categorise it in a way that makes it clear which things are MainNet, which are IBFT2, which are Clique etc.
lucassaldanha (Wed, 09 Oct 2019 06:15:55 GMT):
We have just merged a fix for the issue that was crashing the nodes. You can find more details about it on the ticket.
This is the PR with the fix: https://github.com/hyperledger/besu/pull/96
The fix is available in our master branch and should be part of our next 1.3.1 release (next week).
Thanks again for bringing this issue to our attention!
RealDeanZhao (Wed, 09 Oct 2019 08:41:53 GMT):
Clipboard - October 9, 2019 4:41 PM
RealDeanZhao (Wed, 09 Oct 2019 08:42:26 GMT):
Will the lite explorer show the detail input data of a transaction?
RealDeanZhao (Wed, 09 Oct 2019 08:43:00 GMT):
Clipboard - October 9, 2019 4:42 PM
eum602 (Wed, 09 Oct 2019 15:07:58 GMT):
NP. I expected a mention :grin:
eum602 (Wed, 09 Oct 2019 15:07:58 GMT):
NP. I expected a mention @lucassaldanha :grin:
nehalshah50 (Wed, 09 Oct 2019 17:09:40 GMT):
Has joined the channel.
nehalshah50 (Wed, 09 Oct 2019 17:09:43 GMT):
Hi, I am new to Besu and I have following questions
1) Can Besu be configured to run as public network in parallel to private/permissioned network?
2) Does Besu uses a Fork of Ethereum like Quorum?
3) How does Besu differ from Quorum?
carlosfaria (Thu, 10 Oct 2019 08:33:25 GMT):
Makes sense @ajsutton Thank you for your support!
shemnon (Thu, 10 Oct 2019 10:42:38 GMT):
1) that would involve two processes currently. Besu supports one chain per process currently, although theoretically it could do multiple. But you can run one besu node for a public chain and one for a private chain
2) Besu is fully mainnet compatible (and most testnets) and is up to date with ethereum specifications. For private network some protocol details are changed such as consensus and private transaction support.
3) IIRC Quorum can not sync mainnet anymore and is fixed to private networks. Besu supports more consensus engines (ethash, clique, and IBFT 1.0 and 2.0) and has other minor changes like prometheus support and ethql support.
NicolasMassart (Thu, 10 Oct 2019 12:20:20 GMT):
> 2) Does Besu uses a Fork of Ethereum like Quorum?
No, Besu is a completely different client implemented in Java from scratch. It was called Pantheon before entering Hyperledger and being renamed Besu. You can read more about this on https://media.consensys.net/why-we-rebuilt-ethereum-from-scratch-9e38b6ebd4a2
Javi (Thu, 10 Oct 2019 15:03:27 GMT):
Has joined the channel.
nehalshah50 (Thu, 10 Oct 2019 19:18:47 GMT):
Besu gives great APIs and monitoring capability which is great compare to other ETH clients like Geth or Quorum. But how Besu would be different or perform better when it comes to private/permissioned network compare to solution like Corda?
nehalshah50 (Thu, 10 Oct 2019 19:18:47 GMT):
Besu gives great APIs and monitoring capability which is great compare to other ETH clients like Geth or Quorum. But how Besu would be different or perform better when it comes to private/permissioned network compare to solution like Corda or Hyperledger Fabric?
achenette (Thu, 10 Oct 2019 21:03:55 GMT):
Has joined the channel.
achenette (Thu, 10 Oct 2019 21:03:56 GMT):
madeline
SamuelDare (Thu, 10 Oct 2019 22:03:10 GMT):
This is a loaded question and I dont think is an apple to apple comparison
SamuelDare (Thu, 10 Oct 2019 22:04:05 GMT):
Having built on all , I would say things it primarily use case specific; and how much complexity / heavy lifing you want to do
SamuelDare (Thu, 10 Oct 2019 22:05:35 GMT):
Built on Fabric over a year ago and it was relentlessly complex.
Corda isnt really a blockchain , and those performance cannot be directly compared. Hope it helps
pcmola (Fri, 11 Oct 2019 02:20:02 GMT):
Hi, guys.
I have a question about the 'Using the Pantheon with Truffle' practice.
Link: http://docs.pantheon.pegasys.tech/en/stable/HowTo/Develop-Dapps/Truffle/
I used estash to complete the test as usual (successfully transferring Ether with Metamask).
But with ibft I have a problem.
When I try to 'truffle migrage', I get the following problem:
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft$ truffle migrate --network pantheonWallet
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'pantheonWallet'
> Network id: 2018
> Block gas limit: 0x47b760
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
Error: Error: Error: *** Deployment Failed ***
"Migrations" exceeded the block limit (with a gas value you set).
* Block limit: 0x1fee420
* Gas sent: 6721975
* Try:
+ Sending less gas.
+ Setting a higher network block limit if you are on a
private network or test client (like ganache).
at Object.run (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:96:1)
at process._tickCallback (internal/process/next_tick.js:68:7)
Truffle v5.0.39 (core: 5.0.39)
Node v10.16.3
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft$
The ibft pantheon run log has the following output:
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-1$ pantheon --data-path=data --genesis-file=../genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all"
Setting logging level to INFO
2019-10-11 11:06:49.532+09:00 | main | INFO | Pantheon | Starting Pantheon version: pantheon/v1.2.2/osx-x86_64/oracle_openjdk-java-12
2019-10-11 11:06:49.570+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/pet-shop-tutorial_ibft/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-10-11 11:06:49.570+09:00 | main | INFO | Pantheon | Connecting to 0 static nodes.
2019-10-11 11:06:50.019+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb962e52b5e421d1dd73fc2c18b7cf162b2cc8936b3ec7a689365474c7a64c28767c61ff8ef46829dd71fcc52593fdda7a16ff229ffbdbd5108634471700d70d8 from /Users/pcmola/my/edu/pet-shop-tutorial_ibft/Node-1/data/key
...
2019-10-11 11:07:55.742+09:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
*WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.fasterxml.jackson.databind.util.ClassUtil (file:/usr/local/Cellar/pantheon/1.2.2/lib/jackson-databind-2.9.9.1.jar) to constructor java.util.OptionalLong()
WARNING: Please consider reporting this to the maintainers of com.fasterxml.jackson.databind.util.ClassUtil
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
*2019-10-11 11:08:00.744+09:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
From the log, it looks like pantheon ibft has blocked access.
And what should I do to solve this problem?
madelinemurray (Fri, 11 Oct 2019 03:51:44 GMT):
hi @pcmola - can you confirm if your IBFT 2.0 network is creating blocks? If blocks aren't being created, the deployment won't work.
pcmola (Fri, 11 Oct 2019 05:25:12 GMT):
As you said, it doesn't seem to be creating blocks.
I don't know if I checked correctly but when I check the latest block it keeps showing as only block 1.
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft$ curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ "0x5d301767ae21d29200661a24d9318d57885316fe", "0xaf3aa4810e15eaf71631389e411d53493efe1aac", "0x89fc175f2317a9475f3d0cb3e7de36c968369bb2", "0x1b0265ee954c4bcd2b124ecd597771501ecf1a22" ]
}
I'm sorry, but can you explain how I can create a block?
Commands executed from Node 1 to 4 are as follows.
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-1$pantheon --data-path=data --genesis-file=../genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all"
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-2$pantheon --data-path=data --genesis-file=../genesis.json --bootnodes="enode://b962e52b5e421d1dd73fc2c18b7cf162b2cc8936b3ec7a689365474c7a64c28767c61ff8ef46829dd71fcc52593fdda7a16ff229ffbdbd5108634471700d70d8@127.0.0.1:30303" --p2p-port=30304 --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all" --rpc-http-port=8546
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-3$pantheon --data-path=data --genesis-file=../genesis.json --bootnodes="enode://b962e52b5e421d1dd73fc2c18b7cf162b2cc8936b3ec7a689365474c7a64c28767c61ff8ef46829dd71fcc52593fdda7a16ff229ffbdbd5108634471700d70d8@127.0.0.1:30303" --p2p-port=30305 --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all" --rpc-http-port=8547
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-4$pantheon --data-path=data --genesis-file=../genesis.json --bootnodes="enode://b962e52b5e421d1dd73fc2c18b7cf162b2cc8936b3ec7a689365474c7a64c28767c61ff8ef46829dd71fcc52593fdda7a16ff229ffbdbd5108634471700d70d8@127.0.0.1:30303" --p2p-port=30306 --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all" --rpc-http-port=8548
madelinemurray (Fri, 11 Oct 2019 05:28:55 GMT):
It could be that you haven't specified your validators correctly in the genesis file. What result do you get from the following request:
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://127.0.0.1:8546
pcmola (Fri, 11 Oct 2019 05:35:19 GMT):
I see the same result at http://127.0.0.1:8545.
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ "0x5d301767ae21d29200661a24d9318d57885316fe", "0xaf3aa4810e15eaf71631389e411d53493efe1aac", "0x89fc175f2317a9475f3d0cb3e7de36c968369bb2", "0x1b0265ee954c4bcd2b124ecd597771501ecf1a22" ]
}
pcmola (Fri, 11 Oct 2019 05:35:52 GMT):
The result is same for 8547(Node3) and 8548(Node4).
madelinemurray (Fri, 11 Oct 2019 05:37:37 GMT):
Are they the addresses of your 4 nodes?
You can use the following command to write the address of each node to a file:
besu --data-path=data public-key export-address --to=data/node1Address
pcmola (Fri, 11 Oct 2019 05:53:59 GMT):
I used pantheon so I used the 'pantheon' command instead of 'besu'.
Node-1 has the same result as address, but Node2 ~ 4 are different.
pcmola (Fri, 11 Oct 2019 05:54:47 GMT):
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-2$ pantheon --data-path=data public-key export-address --to=data/node2address
2019-10-11 14:49:30.279+09:00 | main | INFO | KeyPairUtil | Loaded key 0xf22e489ee9b27d27b5af968dbad82f789f3d17b2ef4fdb065433841017c9409b89acb3a1fd3785629274f27dcc7b9183b3bc71237e0dc64f99c2d847355f60eb from /Users/pcmola/my/edu/pet-shop-tutorial_ibft/Node-2/data/key
pcmola@wonjongyoon:~/my/edu/pet-shop-tutorial_ibft/Node-2$ cat data/key
0xa4ae9467c6d8775a331381314a8280cff9c8d7483ebabb78fcc7648ac2cd721c
madelinemurray (Fri, 11 Oct 2019 06:09:38 GMT):
How did you create the extraData string used in your genesis file?
madelinemurray (Fri, 11 Oct 2019 06:10:09 GMT):
The blocks aren't being created because the validators 2,3, and 4 aren't running
RealDeanZhao (Sat, 12 Oct 2019 01:57:08 GMT):
```
```
RealDeanZhao (Sat, 12 Oct 2019 01:57:12 GMT):
```2019-10-12 01:53:50.097+00:00 | pool-9-thread-3 | ERROR | BlockMiner | Block mining threw an unhandled exception.
java.lang.NullPointerException: null
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.createSenderTransactionOrder(PendingTransactions.java:215) ~[besu-eth-1.3.0.jar:1.3.0]
at java.util.HashMap.computeIfAbsent(HashMap.java:1133) ~[?:?]
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.selectTransactions(PendingTransactions.java:188) ~[besu-eth-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.BlockTransactionSelector.buildTransactionListForBlock(BlockTransactionSelector.java:131) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.selectTransactions(AbstractBlockCreator.java:220) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.createBlock(AbstractBlockCreator.java:146) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.createBlock(AbstractBlockCreator.java:119) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.BlockMiner.mineBlock(BlockMiner.java:123) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.BlockMiner.run(BlockMiner.java:82) [besu-blockcreation-1.3.0.jar:1.3.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
2019-10-12 01:53:50.097+00:00 | pool-9-thread-3 | ERROR | BlockMiner | Block mining threw an unhandled exception.
java.lang.NullPointerException: null
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.createSenderTransactionOrder(PendingTransactions.java:215) ~[besu-eth-1.3.0.jar:1.3.0]
at java.util.HashMap.computeIfAbsent(HashMap.java:1133) ~[?:?]
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.selectTransactions(PendingTransactions.java:188) ~[besu-eth-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.BlockTransactionSelector.buildTransactionListForBlock(BlockTransactionSelector.java:131) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.selectTransactions(AbstractBlockCreator.java:220) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.createBlock(AbstractBlockCreator.java:146) ~[besu-blockcreation-1.3.0.jar:1.3.0]
^C at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
2019-10-12 01:53:50.097+00:00 | pool-9-thread-3 | ERROR | BlockMiner | Block mining threw an unhandled exception.
java.lang.NullPointerException: null
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.createSenderTransactionOrder(PendingTransactions.java:215) ~[besu-eth-1.3.0.jar:1.3.0]
at java.util.HashMap.computeIfAbsent(HashMap.java:1133) ~[?:?]
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.selectTransactions(PendingTransactions.java:188) ~[besu-eth-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.BlockTransactionSelector.buildTransactionListForBlock(BlockTransactionSelector.java:131) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.selectTransactions(AbstractBlockCreator.java:220) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.createBlock(AbstractBlockCreator.java:146) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.createBlock(AbstractBlockCreator.java:119) ~[besu-blockcreation-1.3.0.jar:1.3.0]```
RealDeanZhao (Sat, 12 Oct 2019 01:57:12 GMT):
```2019-10-12 01:53:50.097+00:00 | pool-9-thread-3 | ERROR | BlockMiner | Block mining threw an unhandled exception.
java.lang.NullPointerException: null
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.createSenderTransactionOrder(PendingTransactions.java:215) ~[besu-eth-1.3.0.jar:1.3.0]
at java.util.HashMap.computeIfAbsent(HashMap.java:1133) ~[?:?]
at org.hyperledger.besu.ethereum.eth.transactions.PendingTransactions.selectTransactions(PendingTransactions.java:188) ~[besu-eth-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.BlockTransactionSelector.buildTransactionListForBlock(BlockTransactionSelector.java:131) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.selectTransactions(AbstractBlockCreator.java:220) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.createBlock(AbstractBlockCreator.java:146) ~[besu-blockcreation-1.3.0.jar:1.3.0]
at org.hyperledger.besu.ethereum.blockcreation.AbstractBlockCreator.createBlock(AbstractBlockCreator.java:119) ~[besu-blockcreation-1.3.0.jar:1.3.0]```
RealDeanZhao (Sat, 12 Oct 2019 02:00:40 GMT):
The error happens when transferring ether. I use the 1.3.0 quick start to start the network.
RealDeanZhao (Sat, 12 Oct 2019 02:02:04 GMT):
Clipboard - October 12, 2019 10:02 AM
roderik (Sat, 12 Oct 2019 16:08:37 GMT):
I've got a stupid question probably, but I used to have a working helmfile based setup, coming from the helm charts/helmfile you shared a while ago. Been trying to move to the besu image (but tbh, it started failing with 2.3 pantheon as well), and the bootnode launches, the validators launch, all the jobs run, but all nodes keep repeating "No sync target, wait for peers". I assume because no nodes are mining? Any idea on where to start looking?
shemnon (Sat, 12 Oct 2019 22:16:52 GMT):
Ny Sync Targets is because of no peers found. Is this a private network or a public chain?
shemnon (Sat, 12 Oct 2019 22:16:52 GMT):
No Sync Targets is because of no peers found. Is this a private network or a public chain?
shemnon (Sat, 12 Oct 2019 22:17:26 GMT):
Is this a private network or a public network? If private are you using private transactions?
madelinemurray (Sun, 13 Oct 2019 19:30:26 GMT):
You can use the `rlp encode` sub-command to create the extraData string:
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Subcommands/#rlp
RealDeanZhao (Mon, 14 Oct 2019 02:16:24 GMT):
It's private network, not using private transactions.. It works when I use 1.2.5 to start the network.
shemnon (Mon, 14 Oct 2019 04:21:54 GMT):
I think a fix is coming in 1.3.1, out this week.
shemnon (Mon, 14 Oct 2019 04:22:45 GMT):
Looks to be another manifestation of this one: https://github.com/hyperledger/besu/commit/b4f1becc058ca4064c90f3314b6afa4571a3855f
pcmola (Mon, 14 Oct 2019 07:33:02 GMT):
How did you create the extraData string used in your genesis file? --> I just followed the guide.
pcmola (Mon, 14 Oct 2019 07:33:50 GMT):
http://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/#3-generate-node-keys-and-genesis-file
diestrin (Mon, 14 Oct 2019 16:14:05 GMT):
Has joined the channel.
diestrin (Mon, 14 Oct 2019 16:14:06 GMT):
Hi, I'm setting up a besu permissioned network, but I have a problem. My nodes are located some in a single k8s cluster and some others in a external location, so I'm having a problem with them talking to each other, I'm setting permissions config with the enodes using the public external IP address of the cluster, but in the logs I can see what the nodes in the same cluster get is a request using the internal ip address, and thus they don't get allowed, if I call perm_addNodesToWhitelist with the internal ip, then they start to talk to each other
diestrin (Mon, 14 Oct 2019 16:14:23 GMT):
what am I suppose to do in this case?
ajsutton (Mon, 14 Oct 2019 21:00:26 GMT):
One option would be to allow both the internal and external IPs but that's somewhat messy. The other possibility is to use `--p2p-interface` to set the IP address that the DevP2P networking will use for sending and receiving to the public IP. It's a fairly new option and I'm somewhat foggy on the details but worth a try.
pcmola (Tue, 15 Oct 2019 00:28:34 GMT):
Hi.
When running Orion, 'An illegal reflective access operation has occurred' message appears.
shemnon (Tue, 15 Oct 2019 00:30:19 GMT):
This can be ignored. It is a result of the Java 9 module system.
pcmola (Tue, 15 Oct 2019 00:32:01 GMT):
Thank you. And even though I referenced the trouble shooting page.
pcmola (Tue, 15 Oct 2019 00:32:09 GMT):
http://besu.hyperledger.org/en/stable/HowTo/Troubleshoot/Troubleshooting/#illegal-reflective-access-error-on-startup
shemnon (Tue, 15 Oct 2019 00:34:38 GMT):
That page won't affect the error seen on orion, only besu.
pcmola (Tue, 15 Oct 2019 00:35:43 GMT):
Thank you for quick response!
ramvi (Tue, 15 Oct 2019 08:36:53 GMT):
Has joined the channel.
heenas06 (Tue, 15 Oct 2019 09:12:19 GMT):
Has joined the channel.
madelinemurray (Tue, 15 Oct 2019 19:33:01 GMT):
Here's the doc on `--p2p-interface`:
http://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#p2p-interface
http://besu.hyperledger.org/en/latest/HowTo/Find-and-Connect/Configuring-Ports/#p2p-networking
arash009 (Wed, 16 Oct 2019 01:02:23 GMT):
Besu 1.3.1 has been released! Get your copy here: https://bintray.com/hyperledger-org/besu-repo/besu/1.3.1#files
Changelog available at: https://github.com/hyperledger/besu/releases/tag/1.3.1
A note that a critical bug with Privacy that was present in 1.3 was fixed in 1.3.1. If you are using Privacy functionality please update to the latest release.
vaxou (Wed, 16 Oct 2019 07:36:59 GMT):
Has joined the channel.
vaxou (Wed, 16 Oct 2019 07:36:59 GMT):
Hi, I've been testing out the automated besu ibft setup on a kubernetes cluster and managed to get it booting up all the validator nodes. The only issue i am still enduring is that my setup is not mining any blocks. The only messages i am getting are ```2019-10-16 07:24:47.316+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
``` Any idea what I might be missing?
vaxou (Wed, 16 Oct 2019 07:36:59 GMT):
Hi, I've been testing out the automated besu ibft setup on a kubernetes cluster and managed to get it booting up all the validator nodes. The only issue i am still enduring is that my setup is not mining any blocks. The only messages i am getting are ```2019-10-16 07:24:47.316+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
``` Any idea what I might be missing?
For reference, I am using this https://github.com/PegaSysEng/besu-kubernetes/tree/master/helmfile/private-network-ibft-automated
ramvi (Wed, 16 Oct 2019 10:25:52 GMT):
Is a besu node be default closed off to the public in any way?
I run `curl -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}' localhost:8545` on the node, and it returns data
ramvi (Wed, 16 Oct 2019 10:26:15 GMT):
I run `curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' 104.41.208.243:8545` from my machine (remote) and get `Connection refused`
ramvi (Wed, 16 Oct 2019 10:26:44 GMT):
Clipboard - October 16, 2019 12:26 PM
ramvi (Wed, 16 Oct 2019 10:26:51 GMT):
The node is started with :point_up:
NicolasMassart (Wed, 16 Oct 2019 10:28:35 GMT):
@ramvi the node is listening on localhost by default meaning you have to set the --rpc-http-host to your external ip (or 0.0.0.0 to listen on all interfaces). More details are available on https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#rpc-http-host
ramvi (Wed, 16 Oct 2019 10:30:24 GMT):
:thumbsup:
NicolasMassart (Wed, 16 Oct 2019 10:30:24 GMT):
And of course same for websocket with https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#rpc-ws-host or other remote apis like GraphQl or metrics
ramvi (Wed, 16 Oct 2019 10:30:26 GMT):
Thanks
NicolasMassart (Wed, 16 Oct 2019 10:31:34 GMT):
We have all remote apis disabled and if enabled, then only available for localhost by default to prevent users to mistakenly open their nodes to the world.
NicolasMassart (Wed, 16 Oct 2019 10:32:21 GMT):
The only connection which is on by default is p2p, as otherwise you can't join any network.
hiron (Wed, 16 Oct 2019 14:19:01 GMT):
Has joined the channel.
pandrejko (Wed, 16 Oct 2019 15:19:13 GMT):
Has joined the channel.
cam-parra (Wed, 16 Oct 2019 17:00:04 GMT):
Has joined the channel.
cam-parra (Wed, 16 Oct 2019 17:00:05 GMT):
Has anyone tried running a network on docker nodes?
NicolasMassart (Wed, 16 Oct 2019 19:10:37 GMT):
@cam-parra Yes, what do you want to achieve here? We have multiple examples, I suggest you let us now a bit more about your goal. Meanwhile, you can also read https://besu.hyperledger.org/en/latest/Tutorials/Quickstarts/Private-Network-Quickstart/ for a quick Docker-compose network demo, or directly dive in https://besu.hyperledger.org/en/latest/HowTo/Deploy/Kubernetes/
cam-parra (Wed, 16 Oct 2019 19:14:58 GMT):
Thank you! We're looking to make a 3 node private network and we will be using it to store credit data. We're thinking of using aws to host the nodes
NicolasMassart (Wed, 16 Oct 2019 20:04:30 GMT):
Great yes definitely works with Besu. How do you plan on deploying and handling containers? Kubernetes?
joshuafernandes (Wed, 16 Oct 2019 20:54:09 GMT):
Hello @vaxou if you make the call to check on the # of peers what do you get back? `curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}'
eum602 (Wed, 16 Oct 2019 21:40:59 GMT):
Hi Guys, I have so sorry for the persistence. I have downloaded the latest version 1.3.1 release and tested scenario when I deploy a private contract between TWO participants.(node 1, node 2). For that I did the following steps:
1. deployed a public contract
2. deployed a private contract between two nodes. That private contract is able to read a variable of the public conttract.
3. After that tested the functionality when node 1 access the private contract and reads the variable of the public contract.
4. In the same way tested the functionality when node 2 also access the same private shared contract and performs a call to read a variable of the public smart contract.
5. Up to this point all works well; but after that whole nodes in the network, other than Node 1 and Node 2, throws an error and are rejected. So at the end only node 1 and node 2 remains live in the network.
6. If I try to delete the database of some of the rejected nodes and start again that node, then it is still rejected being not able to join.
Here you can see the screenshot of one of the fallen rejected nodes:
eum602 (Wed, 16 Oct 2019 21:40:59 GMT):
Hi Guys, so sorry for the persistence about interaction between private and public contract. I have downloaded the latest version 1.3.1 release and tested scenario when I deploy a private contract between TWO participants.(node 1, node 2). For that I did the following steps:
1. deployed a public contract
2. deployed a private contract between two nodes. That private contract is able to read a variable of the public conttract.
3. After that tested the functionality when node 1 access the private contract and reads the variable of the public contract.
4. In the same way tested the functionality when node 2 also access the same private shared contract and performs a call to read a variable of the public smart contract.
5. Up to this point all works well; but after that whole nodes in the network, other than Node 1 and Node 2, throws an error and are rejected. So at the end only node 1 and node 2 remains live in the network.
6. If I try to delete the database of some of the rejected nodes and start again that node, then it is still rejected being not able to join.
Here you can see the screenshot of one of the fallen rejected nodes:
eum602 (Wed, 16 Oct 2019 21:41:16 GMT):
fallen node message
eum602 (Wed, 16 Oct 2019 21:43:28 GMT):
Shows a message "No sync target, wait for peers"
eum602 (Wed, 16 Oct 2019 21:48:06 GMT):
to sum up , the explained scenario corrupts the blockchain; this is a serious vulnerability that should be taken into really serious consideration.
eum602 (Wed, 16 Oct 2019 21:48:06 GMT):
to sum up , the explained scenario corrupts the blockchain; this is a serious vulnerability that should be taken into consideration.
eum602 (Wed, 16 Oct 2019 21:52:27 GMT):
@lucassaldanha @arash009
lucassaldanha (Wed, 16 Oct 2019 22:58:34 GMT):
Thanks again for your help! I'm sorry you are having problems with our quickstart. I'll get someone from the team to look at this and we'll follow up with you.
lucassaldanha (Wed, 16 Oct 2019 22:58:58 GMT):
Just to help us reproduce the issue, could you confirm the version of Orion that is being used in your setup?
eum602 (Wed, 16 Oct 2019 23:00:47 GMT):
Besu and Orion versions
eum602 (Wed, 16 Oct 2019 23:01:13 GMT):
Clipboard - October 16, 2019 6:01 PM
madelinemurray (Wed, 16 Oct 2019 23:02:03 GMT):
hi @eum602 - wanted to confirm a couple of things so we can understand your scenario a bit better and recreate.
1. Initially you have 4 nodes running. Are they all connected and creating/importing blocks before the crash?
2. The error message and disconnection occur on nodes 3 & 4? But 1 & 2 continue normally?
3. Then you delete the databases for 3 & 4 and attempt to reconnect but they won't reconnect?
eum602 (Wed, 16 Oct 2019 23:02:51 GMT):
1. yes, they are connected and sharing blocks, three are validators and one is regular
eum602 (Wed, 16 Oct 2019 23:03:05 GMT):
2. yes
eum602 (Wed, 16 Oct 2019 23:03:12 GMT):
3. yes
madelinemurray (Wed, 16 Oct 2019 23:03:54 GMT):
Thanks - we'll investigate and get back to you.
eum602 (Wed, 16 Oct 2019 23:05:12 GMT):
Ok, I recommend make more in deep tests before releasing. thanks
eum602 (Wed, 16 Oct 2019 23:06:22 GMT):
this is in an ibft2.0 context
RealDeanZhao (Thu, 17 Oct 2019 10:30:51 GMT):
Hi Team, is besu production ready?
shemnon (Thu, 17 Oct 2019 11:37:50 GMT):
It's in production environments already. Are there any other standards that would apply?
heiho1 (Thu, 17 Oct 2019 15:14:28 GMT):
Has joined the channel.
heiho1 (Thu, 17 Oct 2019 15:14:30 GMT):
Hi all, trying to build Besu from source and seeing an error: "| ~/dev/ether/besu @ foamfollower (heiho1)
| => ./gradlew build -x test
> Task :buildSrc:compileGroovy FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':buildSrc:compileGroovy'.
> BUG! exception in phase 'semantic analysis' in source unit '/Users/heiho1/dev/ether/besu/buildSrc/src/main/groovy/CheckSpdxHeader.groovy' Unsupported class file major version 57
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
________________________________________________________________________________
| ~/dev/ether/besu @ foamfollower (heiho1)
| => java --version
openjdk 13 2019-09-17
OpenJDK Runtime Environment (build 13+33)
OpenJDK 64-Bit Server VM (build 13+33, mixed mode, sharing)"
heiho1 (Thu, 17 Oct 2019 15:15:31 GMT):
The brew binary installations seems fine so far.
antonydenyer (Thu, 17 Oct 2019 15:24:22 GMT):
Are running that from inside idea by any chance?
antonydenyer (Thu, 17 Oct 2019 15:25:40 GMT):
You can (for reasons I don't know about) have different versions of java configured for gradle inside idea. Basically you need to be on a more recent java version (11 IIRC).
antonydenyer (Thu, 17 Oct 2019 15:25:40 GMT):
You can (for reasons I don't know about) have different versions of java configured for gradle vs project settingsinside idea. Basically you need to be on a more recent java version (11 IIRC).
antonydenyer (Thu, 17 Oct 2019 15:25:40 GMT):
You can (for reasons I don't know about) have different versions of java configured for gradle vs project settings inside idea. Basically you need to be on a more recent java version (11 IIRC).
shemnon (Thu, 17 Oct 2019 15:27:01 GMT):
Java 13 is not supported by Gradle yet. Use Java 11 or 12. This is the error it throws.
shemnon (Thu, 17 Oct 2019 15:27:29 GMT):
Java 13 is actually too recent a version, not enough tool vendors support it yet.
heiho1 (Thu, 17 Oct 2019 15:34:02 GMT):
ah, ill downgrade to java 11 then, thx
heiho1 (Thu, 17 Oct 2019 16:22:45 GMT):
I updated to JDK 11 and tried to run binary besu...getting a jnilib error?
heiho1 (Thu, 17 Oct 2019 16:22:48 GMT):
| ~/dev/ether/Private-Network @ foamfollower (heiho1)
| => java --version
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
________________________________________________________________________________
| ~/dev/ether/Private-Network @ foamfollower (heiho1)
| => besu --network=ropsten --rpc-http-enabled --rpc-http-cors-origins "http://remix.ethereum.org"
2019-10-17 12:21:12.726-04:00 | main | INFO | Besu | Starting Besu version: besu/v1.3.1/osx-x86_64/oracle_openjdk-java-11
2019-10-17 12:21:12.746-04:00 | main | INFO | StaticNodesParser | StaticNodes file /usr/local/Cellar/besu/1.3.1/static-nodes.json does not exist, no static connections will be created.
2019-10-17 12:21:12.746-04:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-10-17 12:21:13.427-04:00 | main | INFO | KeyPairUtil | Loaded key 0xdb68b7e8f5c333e55899ccab9ac14890c2830e10a661b6edef4d8b87ed043d1a02cbec0269c2e324633f155d06ee28cef2b153b246742cf316232fea3c414597 from /usr/local/Cellar/besu/1.3.1/key
2019-10-17 12:21:13.457-04:00 | main | INFO | RocksDBKeyValueStorageFactory | No existing database detected at /usr/local/Cellar/besu/1.3.1. Using version 1
2019-10-17 12:21:13.642-04:00 | main | ERROR | Besu | Uncaught exception in thread "main"
java.lang.UnsatisfiedLinkError: /private/var/folders/dk/nplzdgw90mb2qxy3q5zq2p5m0000gn/T/librocksdbjni5320329935051919095.jnilib: dlopen(/private/var/folders/dk/nplzdgw90mb2qxy3q5zq2p5m0000gn/T/librocksdbjni5320329935051919095.jnilib, 1): Symbol not found: __ZdlPvSt11align_val_t
Referenced from: /private/var/folders/dk/nplzdgw90mb2qxy3q5zq2p5m0000gn/T/librocksdbjni5320329935051919095.jnilib (which was built for Mac OS X 10.13)
Expected in: /usr/lib/libc++.1.dylib
in /private/var/folders/dk/nplzdgw90mb2qxy3q5zq2p5m0000gn/T/librocksdbjni5320329935051919095.jnilib
at java.lang.ClassLoader$NativeLibrary.load0(Native Method) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2430) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2487) ~[?:?]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2684) ~[?:?]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2617) ~[?:?]
at java.lang.Runtime.load0(Runtime.java:767) ~[?:?]
at java.lang.System.load(System.java:1831) ~[?:?]
at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78) ~[rocksdbjni-5.15.10.jar:?]
at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56) ~[rocksdbjni-5.15.10.jar:?]
heiho1 (Thu, 17 Oct 2019 16:35:01 GMT):
This may be because I'm on OS X 10.12...going to upgrade to catalina and try again.
shemnon (Thu, 17 Oct 2019 16:35:13 GMT):
That's a new one. What version of mac os are you runing?
heiho1 (Thu, 17 Oct 2019 16:35:20 GMT):
10.12 :)
heiho1 (Thu, 17 Oct 2019 16:35:46 GMT):
brew is complaining so I'm going to finally upgrade my OS :P
shemnon (Thu, 17 Oct 2019 16:36:38 GMT):
The jni line makes me thing catalina would help - Referenced from: /private/var/folders/dk/nplzdgw90mb2qxy3q5zq2p5m0000gn/T/librocksdbjni5320329935051919095.jnilib (which was built for Mac OS X 10.13)
heiho1 (Thu, 17 Oct 2019 16:36:59 GMT):
yah, i'll update after the oS upgrade
heiho1 (Thu, 17 Oct 2019 16:37:06 GMT):
gonna take a while
madelinemurray (Thu, 17 Oct 2019 23:03:32 GMT):
@shemnon - could we be adding this to the docs? We currently say Java 11+ which implies 13 is supported.
madelinemurray (Thu, 17 Oct 2019 23:06:34 GMT):
@eum602 - this is the Jira issue tracking your issue: I've raised a JI to help tracking this issue: https://pegasys1.atlassian.net/browse/PAN-3240
shemnon (Fri, 18 Oct 2019 00:03:40 GMT):
13 was just released 3 weeks ago, and Gradle 6 will fix it in two weeks...
eum602 (Fri, 18 Oct 2019 01:02:05 GMT):
great @madelinemurray !!
RealDeanZhao (Fri, 18 Oct 2019 02:14:48 GMT):
Are there any benchmark comparision among parity poa, quorum and besu?
RealDeanZhao (Fri, 18 Oct 2019 02:14:48 GMT):
Are there any benchmark comparision among parity poa, quorum, besu, fabric and sawtooth?
ramvi (Fri, 18 Oct 2019 07:04:28 GMT):
Hi, I'm experiencing problems with setting up Alethio Lite Explorer with your IBFT2. It returns "exited with code 3" before even getting to reading the config file, it seems. How do I troubleshoot this? Unable to find anything online
ramvi (Fri, 18 Oct 2019 07:06:12 GMT):
I've noticed you are using PoW for most of your documentation online. Is IBFT2 kind of in beta or bleeding edge?
NicolasMassart (Fri, 18 Oct 2019 08:06:28 GMT):
Can you tell me what software returns code 3? Are you using Alethio Docker images for the explorer? Would you mind sharing your configuration files and command lines used?
ramvi (Fri, 18 Oct 2019 08:11:24 GMT):
* Software: ethereum-lite-explorer started with `npm start`
* Tried with docker image too, but I couldn't connect to that either. The container only outputted "Now running" without any errors or troubleshooting info. However, I'm guessing the container is for PoW, not IBFT2?
* I don't mind at all. I have console logged a couple of the variables in the failing file: https://pastebin.com/r596BmdW
obernardovieira (Fri, 18 Oct 2019 09:57:25 GMT):
Has joined the channel.
obernardovieira (Fri, 18 Oct 2019 10:05:04 GMT):
Hi, I've setup a 3 besu nodes, all working fine, deployed contracts. But I want to create accounts, like web3.eth.personal.newAccount, but I can't. It says that the method does not exists. I've tried web3.eth.accounts.create, but then I can't use it to sign transactions
obernardovieira (Fri, 18 Oct 2019 10:05:04 GMT):
Hi, I've setup a 3 besu nodes, all working fine, deployed contracts. But I want to create accounts, like web3.eth.personal.newAccount, but I can't. It says that the method does not exists. I've tried web3.eth.accounts.create, but then I can't use it to sign transactions. Can you guys help me please?
ramvi (Fri, 18 Oct 2019 10:07:25 GMT):
Using the `besu-quickstart` with `-c ibft` (this is undocumented by the way), only sets up one validator. Doesn't a ibft2 chain need at least 4 validators? Console: https://pastebin.com/7gpuWXQm
NicolasMassart (Fri, 18 Oct 2019 10:08:31 GMT):
Hi @obernardovieira , for security reasons, Besu doesn't provide account management. You have to create accounts in a third party secure wallet like Metamask or any wallet you trust, or use our proxy signer EthSigner (https://docs.ethsigner.pegasys.tech). More about Besu account management can be found on https://besu.hyperledger.org/en/latest/HowTo/Interact/APIs/API/#account-management
NicolasMassart (Fri, 18 Oct 2019 10:14:03 GMT):
You can add validators manually after the first run using RPC: https://besu.hyperledger.org/en/latest/HowTo/Configure/Consensus-Protocols/IBFT/#adding-a-validator
The option is not documented, but I like that you read the script, because we are working on a new tool and focusing our efforts on it. So feel free to use it, it works well and you should also see a list of validators that's not displayed wen you use the default PoW quickstart. Make your RPC call on this validator to add another one, then run your request on both validators to add a third one and finally you can run the addition request on only 2 on 3 of the validators to add a 4th one as we require only majority (> 50% of the validators)
obernardovieira (Fri, 18 Oct 2019 10:16:49 GMT):
Hi,
thank you. I'll have a look.
NicolasMassart (Fri, 18 Oct 2019 10:23:34 GMT):
Looking at your files it seems to be an issue that you should directly discuss with Alethio. They have a Discord chat for that and I'm sure they would be glad to help you: https://discord.gg/FJRzDY
NicolasMassart (Fri, 18 Oct 2019 10:30:11 GMT):
We are planning on moving moving some tutorials to PoA, quickstart for instance as you noticed has Clique and IBFT2 capabilities. But we already have IBFT2 and Clique specific tutorials, so we wanted to keep it simple on the basic howtos and quickstart for now as PoW is easier to setup for new users. PoA is well established and working, but we have to admit that if you are really new to Ethereum and running a node, PoW is maybe the smart way to start as it matches what people can see running on mainnet. As Besu is a mainnet capable client, it's the way we chose to make them approach our software.
ramvi (Fri, 18 Oct 2019 10:57:04 GMT):
Thanks!
ramvi (Fri, 18 Oct 2019 13:12:05 GMT):
When allowing docker to select the port, where is port 30303 of the bootnode directed?
```
Besu Quickstart 1.3.1-ibft2
*************************************
List endpoints and services
----------------------------------
Name Command State Ports
------------------------------------------------------------------------------------------------------------------
besu-quickstart_bootnode_1 /opt/besu/bootnode_start.s ... Up 30303/tcp, 8545/tcp, 8546/tcp, 8547/tcp
besu-quickstart_explorer_1 nginx -g daemon off; Up 0.0.0.0:32770->80/tcp
besu-quickstart_grafana_1 /run.sh Up 3000/tcp
besu-quickstart_node_1 /opt/besu/node_start.sh -- ... Up 30303/tcp, 8545/tcp, 8546/tcp, 8547/tcp
besu-quickstart_node_2 /opt/besu/node_start.sh -- ... Up 30303/tcp, 8545/tcp, 8546/tcp, 8547/tcp
besu-quickstart_node_3 /opt/besu/node_start.sh -- ... Up 30303/tcp, 8545/tcp, 8546/tcp, 8547/tcp
besu-quickstart_node_4 /opt/besu/node_start.sh -- ... Up 30303/tcp, 8545/tcp, 8546/tcp, 8547/tcp
besu-quickstart_prometheus_1 /bin/prometheus --config.f ... Up 9090/tcp
besu-quickstart_rpcnode_1 /opt/besu/node_start.sh -- ... Up 30303/tcp, 8545/tcp, 8546/tcp, 8547/tcp
```
ramvi (Fri, 18 Oct 2019 13:12:17 GMT):
I wish to connect from a different machine
ramvi (Fri, 18 Oct 2019 13:17:44 GMT):
i.e. what is the dynamic docker port mapping for port 30303 on the bootnode?
ramvi (Fri, 18 Oct 2019 13:44:29 GMT):
Maybe I could just change the command that starts the bootnode with `-p 30303:30303`?
ramvi (Fri, 18 Oct 2019 13:44:38 GMT):
Unsure where that is though…
NicolasMassart (Fri, 18 Oct 2019 13:44:42 GMT):
It's not exposed in the docker quickstart. This quickstart network is aimed at being self contained demo/quickstart/fast overview of Besu ecosystem.
So the 30303 port is only reachable inside of the quickstart docker compose network. We only expose endpoint outside of the Docker network for RPC and web tools like the explorer or Grafana. They are all available trough a reverse proxy (nginx), here on the dynamically allocated port 32770 on your example. It allows you to run miltiple quickstarts in parallel if you want.
NicolasMassart (Fri, 18 Oct 2019 13:46:50 GMT):
You can technically do that but the issue is that you will only be able to connect to the bootnode, and not to all the other nodes on the network. Bootnodes are only a venue for discovery, but then nodes are expected to communicate directly, it's P2P. So if your other nodes 30303 ports are not exposed to the outside, they won;t be able to communicate with the nodes outside of your docker network.
ramvi (Fri, 18 Oct 2019 13:46:53 GMT):
How are the 5 nodes able to connect to each other without having access to the 30303 port?
NicolasMassart (Fri, 18 Oct 2019 13:47:13 GMT):
they have, but only inside the Docker network.
NicolasMassart (Fri, 18 Oct 2019 13:47:24 GMT):
It's like an isolated network.
ramvi (Fri, 18 Oct 2019 13:47:41 GMT):
oh wow, I still have a lot to learn about docker I guess
NicolasMassart (Fri, 18 Oct 2019 13:48:08 GMT):
It's a very rich subject I admit
ramvi (Fri, 18 Oct 2019 13:50:23 GMT):
So what you're saying is that I have to set it all up manually to be able to connect another node to the network?
ramvi (Fri, 18 Oct 2019 13:50:33 GMT):
No quick fix with the docker containers?
NicolasMassart (Fri, 18 Oct 2019 13:50:45 GMT):
What you could do is having your new node in a Docker container too and make it connect to the existing network. Then it will have access to the inside of the network : https://docs.docker.com/engine/reference/commandline/network_connect/
NicolasMassart (Fri, 18 Oct 2019 13:51:57 GMT):
If your new node is in a docker container, using docker network connect will help https://docs.docker.com/engine/reference/commandline/network_connect/
If it's not in a docker container, it's going to be far more complicated.
ramvi (Fri, 18 Oct 2019 13:52:42 GMT):
Can the docker containers can be in a virtual network across the internet e.g. the network I now have running on the azure node, and my local machine?
NicolasMassart (Fri, 18 Oct 2019 13:54:39 GMT):
No, it has to be on the same docker engine I gess, at least if you are just using Docker/Docker compose/quickstart. Otherwise there's other ways to do with tools like Kubernetes, but that's another story.
What would you like to achieve exactly, if you allow me to go back to your initial need?
ramvi (Fri, 18 Oct 2019 13:57:31 GMT):
Thanks for your time and interest Nicolas! I want to have one node in one location (but i can be 4+ nodes in that first location since IBFT2 needs it) and then I want another node in another location. That's what I'm trying to achieve: a network across the internet with at least two locations
ramvi (Fri, 18 Oct 2019 13:58:52 GMT):
We are one company and 2 government agencies who want to test setting up a besu network together
NicolasMassart (Fri, 18 Oct 2019 14:00:34 GMT):
I think that you exceeded the quickstart capabilities here. What you try to achieve is already things we do with other companies usually using Kubernetes and some cloud (AWS/Azure). We could help you create this structure at Pegasys if you like. Would you like to be contacted by our team?
ramvi (Fri, 18 Oct 2019 14:01:09 GMT):
Sure
NicolasMassart (Fri, 18 Oct 2019 14:01:52 GMT):
I will contact you by PM
madelinemurray (Mon, 21 Oct 2019 08:59:53 GMT):
@eum602 - we've merged a PR for the JI for your issue (https://pegasys1.atlassian.net/browse/PAN-3240). Could you retry your scenario with the latest master and let us know if that solves the problem?
madelinemurray (Mon, 21 Oct 2019 10:06:10 GMT):
hi @RealDeanZhao - we're currently actively engaged with Whiteblock to implement a set of tests and benchmarks, including the TPS benchmark.
ramvi (Mon, 21 Oct 2019 13:22:34 GMT):
When I'm initiating two deploy scripts targeting the same node, blabla:8545, with rpc http requests, one proceeds and one is blocked. Does besu put requests in a non asynchoqious queue?
ramvi (Mon, 21 Oct 2019 13:23:13 GMT):
Q2: We moved our software from a PoA parity. Besu seems much slower. Is that correct?
shemnon (Mon, 21 Oct 2019 13:51:17 GMT):
blocked how? The RPC fails to continue? The contract doesn't deploy until the next block? I'm not aware of any synchronization locks that would block one RPC ove the other, they are both fed into a multi-threaded queue run by vertx.
eum602 (Mon, 21 Oct 2019 15:15:03 GMT):
Hello @madelinemurray @antonydenyer , I have tested the functionality to read a variable of a public smart contract from a private smart contract, now it works!. Here you can see how when node 1 and node 2 participate in a private smart contract by which they access a public smart contract(the response is as expected), also when node 3 try to access the private smart contract, to read a public SC, then it is not able to perform that action. Nodes do not crash anymore and any node is able to join without issues.
eum602 (Mon, 21 Oct 2019 15:15:43 GMT):
Clipboard - October 21, 2019 10:15 AM
eum602 (Mon, 21 Oct 2019 15:15:51 GMT):
here you can see the results.
eum602 (Mon, 21 Oct 2019 15:19:33 GMT):
The only detail that calls my attention is the message that appears on nodes with orion transaction manager enabled who are not participating in the transaction:
eum602 (Mon, 21 Oct 2019 15:20:12 GMT):
Clipboard - October 21, 2019 10:20 AM
eum602 (Mon, 21 Oct 2019 15:21:02 GMT):
without considering that detail all works well
ramvi (Mon, 21 Oct 2019 17:25:42 GMT):
One of the deploy scripts complete, while the other just waits for response. When the first completes, the second continues
shemnon (Mon, 21 Oct 2019 17:25:59 GMT):
What RPCs are they calling?
ramvi (Mon, 21 Oct 2019 17:25:59 GMT):
the other deploy script, that is
ramvi (Mon, 21 Oct 2019 17:26:11 GMT):
json rpc
ramvi (Mon, 21 Oct 2019 17:26:16 GMT):
Or what methonds?
shemnon (Mon, 21 Oct 2019 17:26:24 GMT):
which methods
ramvi (Mon, 21 Oct 2019 17:27:20 GMT):
It's a combination of deploy contracts and interactions with them (send_rawtx)
ramvi (Mon, 21 Oct 2019 17:27:38 GMT):
Though, I'm not writing the raw tx directly. It's a script in ethers.js
shemnon (Mon, 21 Oct 2019 17:30:23 GMT):
So to confirm, you don't see this behavior on geth or parity right?
ramvi (Mon, 21 Oct 2019 18:09:14 GMT):
Correct
ramvi (Mon, 21 Oct 2019 18:09:25 GMT):
Well, only tested with parity and ganach. Not geth
shemnon (Mon, 21 Oct 2019 18:11:44 GMT):
I'll need to know which apis are being called. If there was a sync block I would expect more of an interleave rather than an all of 1 then all of 2 type situation, unless there is only one real working RPC call.
shemnon (Mon, 21 Oct 2019 18:12:20 GMT):
Can you do a run where you turn on logging to debug (`--logging=DEBUG`) and then tell us what RPCs are called (grep JsonRpcHttpService
madelinemurray (Mon, 21 Oct 2019 19:16:40 GMT):
Great. Thanks @eum602
pcmola (Mon, 21 Oct 2019 23:12:38 GMT):
Hi.
In 'Configuring a Network for Private Transactions' example,
the count of IBFT Node is 3.
http://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/
I heard that it is recommended to be 3n+1 node in IBFT.
Is it okay that the the count of the node is 3?
conradjohnson (Tue, 22 Oct 2019 13:12:50 GMT):
Has joined the channel.
conradjohnson (Tue, 22 Oct 2019 13:12:50 GMT):
Trying to run the consensys academy setup for EthHash here - https://docs.pantheon.pegasys.tech/en/stable/Tutorials/Private-Network/Create-Private-Network/
conradjohnson (Tue, 22 Oct 2019 13:13:11 GMT):
Getting an uncaught exception.
conradjohnson (Tue, 22 Oct 2019 13:13:27 GMT):
`2019-10-22 08:11:42.625-05:00 | main | ERROR | Besu | Uncaught exception in thread "main"
java.lang.UnsatisfiedLinkError: /private/var/folders/m6/wvjjl0154g54sl7vr3xgglmr0000gn/T/librocksdbjni4858103180533867075.jnilib: dlopen(/private/var/folders/m6/wvjjl0154g54sl7vr3xgglmr0000gn/T/librocksdbjni4858103180533867075.jnilib, 1): Symbol not found: __ZdlPvSt11align_val_t
Referenced from: /private/var/folders/m6/wvjjl0154g54sl7vr3xgglmr0000gn/T/librocksdbjni4858103180533867075.jnilib (which was built for Mac OS X 10.13)
Expected in: /usr/lib/libc++.1.dylib
in /private/var/folders/m6/wvjjl0154g54sl7vr3xgglmr0000gn/T/librocksdbjni4858103180533867075.jnilib
at java.lang.ClassLoader$NativeLibrary.load0(Native Method) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2440) ~[?:?]
at java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2497) ~[?:?]
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694) ~[?:?]
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627) ~[?:?]
at java.lang.Runtime.load0(Runtime.java:744) ~[?:?]
at java.lang.System.load(System.java:1870) ~[?:?]
at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78) ~[rocksdbjni-5.15.10.jar:?]
at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56) ~[rocksdbjni-5.15.10.jar:?]
at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:64) ~[rocksdbjni-5.15.10.jar:?]
at org.rocksdb.RocksDB.
conradjohnson (Tue, 22 Oct 2019 13:13:41 GMT):
when I try to start the first node
conradjohnson (Tue, 22 Oct 2019 13:13:55 GMT):
using this command:
conradjohnson (Tue, 22 Oct 2019 13:14:04 GMT):
"besu --data-path=data --genesis-file=private-network/privateNetworkGenesis.json --bootnodes --miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-enabled --host-whitelist="*" --rpc-http-cors-origins="all""
conradjohnson (Tue, 22 Oct 2019 13:14:04 GMT):
`besu --data-path=data --genesis-file=private-network/privateNetworkGenesis.json --bootnodes --miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-enabled --host-whitelist="*" --rpc-http-cors-origins="all"`
conradjohnson (Tue, 22 Oct 2019 13:20:05 GMT):
macOS Sierra v 10.12.6
conradjohnson (Tue, 22 Oct 2019 13:29:32 GMT):
ah... I need to update past 10.12 apparently.
eum602 (Tue, 22 Oct 2019 16:40:50 GMT):
Hello everyone, I wonder if is there a way to call the list of validators, in an IBTF2 network, from a smart contract. I appeciate any response. Thanks.
madelinemurray (Tue, 22 Oct 2019 19:45:34 GMT):
hi @pcmola - the network will function but you're correct, 4 validators are needed for the network to be Byzantine fault tolerant.
I'm adding the following note to the tutorial:
This tutorial configures a private network using IBFT 2.0 for educational purposes only. IBFT 2.0 requires 4 validators to be Byzantine fault tolerant.
ajsutton (Tue, 22 Oct 2019 19:48:32 GMT):
No, unfortunately, this information is not available inside the EVM.
madelinemurray (Tue, 22 Oct 2019 19:55:24 GMT):
@pcmola - sorry about the delay on responding to this one. When you start nodes 2, 3, and 4, do you see the `loaded key` line in the log file? It's the 4th line displayed:
`2019-10-23 05:51:58.586+10:00 | main | INFO | KeyPairUtil | Loaded key 0x21ff... from ....`
Or do you see a line indicating a new key was generated?
`2019-10-23 05:54:17.384+10:00 | main | INFO | KeyPairUtil | Generated new key 0xeba... and stored it to ...`
madelinemurray (Tue, 22 Oct 2019 20:03:17 GMT):
hi @yunho.chung - sorry about the delay in reply. What versions of Besu and Orion are you using?
trent.mohay (Tue, 22 Oct 2019 22:01:36 GMT):
Hi @pcmola, as @madelinemurray, we'd recommend you have a minimum of 4 validators in an IBFT2 network - however, any number above that is secure - though performance degrades as you approach ~20 validators. I personally, wouldn't recommend going above 20 - though have no specific metrics to back that up.
arash009 (Wed, 23 Oct 2019 00:26:48 GMT):
Hi all. Besu 1.3.2 has been released! Get your copy here: https://bintray.com/hyperledger-org/besu-repo/besu/1.3.2#files
Changelog available at: https://github.com/hyperledger/besu/releases/tag/1.3.2
raullaprida (Wed, 23 Oct 2019 02:28:16 GMT):
Has joined the channel.
raullaprida (Wed, 23 Oct 2019 02:28:16 GMT):
I have the following question, If a private transaction (off chain, using Orion) is submited, the transaction with the private transaction hash is added to the block everything goes as expected and nodes with the precompiled contract fetch the actual transaction from Orion and the Private Transaction Processor Excecutes it. What would happen if the transaction execution fails in one (or several) of the nodes of the Privacy Group?, but not in all of them, some sucessfully execute the private trx and update their private state.
raullaprida (Wed, 23 Oct 2019 02:31:37 GMT):
I can't just sync my private state with one of the other nodes that belong to the privacy group
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a manual solution is asking all of them and compare the state, and hoping they are not colluding against me.
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a manual solution is either retrying the execution, or asking all of them and compare the state, and hoping they are not colluding against me.
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a manual solution is either quickly retrying the execution, or asking all of them and compare the state, and hoping they are not colluding against me
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a manual solution is either quickly retrying the execution, or asking all of them and compare the state, and hoping they are not colluding against me. But seems cumbersome, specially since it's not the only transaction the node needs to execute
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a manual solution is either quickly retrying the execution, or asking all of them (the privacy group) and compare the state, and hoping they are not colluding against me. But seems cumbersome, specially since it's not the only transaction the node needs to execute
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a possible solution is trying re-processing the proposed block, or quickly retrying the execution of the private tx, or perhaps asking the private state to all of them (the privacy group) and compare them before applying that state, hoping they are not colluding against me ( cumbersome solution)
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a possible solution is trying re-processing the proposed block (if IBFT is being used the proposed block is already final at this stage), or quickly retrying the execution of the private tx, or perhaps asking the private state to all of them (the privacy group) and compare them before applying that state, hoping they are not colluding against me ( cumbersome solution)
raullaprida (Wed, 23 Oct 2019 02:32:54 GMT):
I suppose a possible solution is trying re-processing the proposed block (if IBFT is being used the proposed block is already final at this stage), or quickly retrying the execution of the private tx, or perhaps asking the private state to all of them (the privacy group) and compare them before applying that state, hoping they are not colluding against me ( cumbersome solution). Or, perhaps, sending a message to the other orion nodes of the privacy group to discard the trx?
raullaprida (Wed, 23 Oct 2019 02:33:06 GMT):
but I was wondering if this is already covered in besu
bgravenorst (Wed, 23 Oct 2019 03:52:30 GMT):
Has joined the channel.
lucassaldanha (Wed, 23 Oct 2019 04:28:13 GMT):
The processing of a private transaction starts from a privacy transaction marker (PTM) that exists in the public chain. The PTM is a transaction sent to the privacy precompile, that will process the corresponding private transaction in the nodes that are part of the privacy group id.
In the case of the private transaction processing failing in some of the nodes, the processing of the PTM (a tx in the public chain) will also fail, causing the nodes to end up with a different public state, therefore creating a fork.
However, you should never get to a point where your private transactions are failing for some of the nodes. The usual reason for this to happen is caused by Orion unavailability. Unfortunately, our current implementation expects that Orion nodes are highly available.
I hope this answer your question!
lucassaldanha (Wed, 23 Oct 2019 04:29:09 GMT):
@antonydenyer and @iikirilov can give you more details if you need anything else
pcmola (Wed, 23 Oct 2019 05:17:44 GMT):
I see the loaded key in node 2, 3, 4.
pcmola (Wed, 23 Oct 2019 05:17:52 GMT):
2019-10-23 14:15:38.286+09:00 | main | INFO | KeyPairUtil | Loaded key 0x71f2f210e9701008a6774015b0806467a446e811f25b1797224a49a27a73037eb2b909e7b293c93a42b4740565f237ccd89b1f285ebad7a5ef876cd1c2e56a4c from /Users/pcmola/my/edu/besu/IBFT-Network/Node-2/data/key
pcmola (Wed, 23 Oct 2019 05:19:49 GMT):
2019-10-23 14:15:42.646+09:00 | main | INFO | KeyPairUtil | Loaded key 0x3f5acb72b5a8436318c26b014e45caa3477e70d328d87d5dfefb2149c1406715c547dc2d9f29adc73024e95a164d49d71107e3149105defb943807925f4aea35 from /Users/pcmola/my/edu/besu/IBFT-Network/Node-3/data/key
pcmola (Wed, 23 Oct 2019 05:19:59 GMT):
2019-10-23 14:16:31.297+09:00 | main | INFO | KeyPairUtil | Loaded key 0x4cde66c509327f0bea090aad56748c41a2aa6d33c5b4b7e77088cdd0c93f43876512be86fd0c76efaf9b6994b1a6eb5e0ae182a06c2c5dcdfc3f20a537db6169 from /Users/pcmola/my/edu/besu/IBFT-Network/Node-4/data/key
sanket1211 (Wed, 23 Oct 2019 09:16:24 GMT):
docker run -p 30303:30303 --mount type=bind,source=/
trent.mohay (Wed, 23 Oct 2019 10:07:08 GMT):
HI @pcmola, I've analysed your log files above, and it appears the NodeKeys being used by nodes 2-4 do not align with the validators specified in the ExtraData of the genesis file. That may indicate a failure in our documentation (which I'll go through next) - but I think the simplest way to get you up and running is to replace the "extraData" value in each of your nodes' genesis file with the following:
0xf87ea00000000000000000000000000000000000000000000000000000000000000000f854945d301767ae21d29200661a24d9318d57885316fe94479b3fd753f6d6abf3ca90fb8c958589f1ac76769490412f52131219dc9cbb6bb4086d9fb581415163949ad9392bced25294981a323f167c45e97eba2aba808400000000c0
This will ensure that each of your existing node-keys corresponds to a validator in the network.
trent.mohay (Wed, 23 Oct 2019 10:07:41 GMT):
Which in turn should mean that blocks will get mined at a steady rate.
madelinemurray (Wed, 23 Oct 2019 10:19:50 GMT):
The absolute path to the directory to be mounted as the storage volume
sanket1211 (Wed, 23 Oct 2019 11:30:40 GMT):
could u suggest me a good doc with steps to run besu?
raullaprida (Wed, 23 Oct 2019 12:38:32 GMT):
Thank you!,
Another question, @antonydenyer or @iikirilov, if I may, What kind of public state data is the precompiled contract that calls the private transaction processor actually storing after a successful execution?
Also, is the only one validating the actual private transaction the node submitting it? or in the first stage, when Orion sends the tx to the other orion nodes, then those nodes actually validate the tx before the tx hash is sent back to the actual submitter (and then a block).
Thanks!!
raullaprida (Wed, 23 Oct 2019 12:38:32 GMT):
Thank you!,
Another question, @antonydenyer or @iikirilov, if I may, What kind of public state data is the precompiled contract that calls the private transaction processor actually storing after a successful execution?
Also, is the only one validating the actual private transaction the node submitting it? or in the first stage, when Orion sends the tx to the other orion nodes, then those nodes actually validate the tx before the tx hash is sent back to the actual submitter (and then a block)?.
Thanks!!
raullaprida (Wed, 23 Oct 2019 12:38:32 GMT):
Thank you!,
Another question, @antonydenyer or @iikirilov, if I may, What kind of public state data is the precompiled contract that calls the private transaction processor actually storing after a successful execution?
Also, is the transaction only validated while the PrivacyTransactionProcessor starts the execution of the transaction? or in the first stage, when Orion sends the tx to the other orion nodes, then those nodes actually validate the tx before the tx hash is sent back to the actual submitter (and then a block)?.
Thanks!!
raullaprida (Wed, 23 Oct 2019 12:38:32 GMT):
Thank you!,
Another question, @antonydenyer or @iikirilov, if I may, What kind of public state data is the precompiled contract that calls the private transaction processor (that executes the priv trx) actually storing after a successful execution?
Also, is the transaction only validated while the PrivacyTransactionProcessor starts the execution of the transaction? or in the first stage, when Orion sends the tx to the other orion nodes, then those nodes actually validate the tx before the tx hash is sent back to the actual submitter (and then a block)?.
Thanks!!
raullaprida (Wed, 23 Oct 2019 12:38:32 GMT):
Thank you!,
Another question, @antonydenyer or @iikirilov, if I may, What kind of public state data is the precompiled contract that calls the private transaction processor (that executes the priv trx) actually storing after a successful execution?
Also, is the transaction only validated while the PrivacyTransactionProcessor starts the execution of the transaction? or in the first stage, when Orion sends the tx to the other orion nodes, then those nodes actually validate the tx before the tx hash is calculated and submitted in a transaction (and then added to a block)?.
Thanks!!
heiho1 (Wed, 23 Oct 2019 18:21:11 GMT):
Just a comment that I upgraded my OS X to Catalina and re-installed xcode and now the gradle build is running fine. I also had to re-brew the java11 install but so far 362 tests completed.
lucassaldanha (Wed, 23 Oct 2019 18:46:09 GMT):
Raul, I suggest you to take a look at this diagram that contains the private transaction processing flow: https://besu.hyperledger.org/en/stable/Concepts/Privacy/Private-Transaction-Processing/
Basically, first the node distribute the payload to other participants (other Orion nodes), then Besu will validate and process the transaction (on the private state). If successful, it will create the PTM that will be added to the public chain. When another node sees the PTM, it will try to process the tx.
Things happen in this order:
1. nodeA will distribute the transaction payload to nodeB
2. nodeA will validate and execute the transaction. If successful, a privacy transaction marker will be created.
3. Upon seeing the PTM in the public chain, nodeB will start processing the tx.
If when nnodeA was validating and processing the tx it failed, the node wouldn't have created the PTM.
raullaprida (Wed, 23 Oct 2019 18:50:22 GMT):
right that's what I understood, I wanted to know if the scenario where node maliciously tries to send an invalid private transaction was covered, by pre-validating the actual trx before the hash gets into a block
lucassaldanha (Wed, 23 Oct 2019 18:50:58 GMT):
Cool!
madelinemurray (Wed, 23 Oct 2019 19:50:36 GMT):
Sure can. There's a few different options depending on what you want to do. If you install Besu - https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Install-Binaries/,
this doc describes the CLI options needed for different scenarios:
https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Starting-node/
madelinemurray (Wed, 23 Oct 2019 19:51:58 GMT):
The tutorials describe how to configure a private network of nodes. This one uses the PoW Ethash consensus:
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Network/
madelinemurray (Wed, 23 Oct 2019 19:52:18 GMT):
What is it you're wanting to do with Besu?
pcmola (Thu, 24 Oct 2019 01:06:53 GMT):
Thank you for the advice.
I just changed the extraData in the genesis.json file.
Then I started Besu again after deleting all files in Node-x / data / database. I've seen block creation right away.
pcmola (Thu, 24 Oct 2019 01:07:34 GMT):
But the first question I had on chat-the truffle test didn't work-is still bothering me.
pcmola (Thu, 24 Oct 2019 01:07:54 GMT):
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'quickstartWallet'
> Network id: 2018
> Block gas limit: 0x47b760
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
Error: Error: Error: *** Deployment Failed ***
"Migrations" exceeded the block limit (with a gas value you set).
* Block limit: 0x1fee420
* Gas sent: 6721975
* Try:
+ Sending less gas.
+ Setting a higher network block limit if you are on a
private network or test client (like ganache).
at Object.run (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:96:1)
at process._tickCallback (internal/process/next_tick.js:68:7)
Truffle v5.0.39 (core: 5.0.39)
Node v10.16.3
madelinemurray (Thu, 24 Oct 2019 01:07:59 GMT):
That's great. Let us know if you run into any further issues.
I'm going to be looking at making some doc updates so it's clearer how to avoid/troubleshoot this issue.
madelinemurray (Thu, 24 Oct 2019 01:08:38 GMT):
Will look into the truffle issue now.
pcmola (Thu, 24 Oct 2019 01:14:39 GMT):
Thanks for looking into the truffle issue.
pcmola (Thu, 24 Oct 2019 01:14:39 GMT):
To confirm the problem, I added the source to CliqueExtraData.java
and checked until it came out as follows:
trent.mohay (Thu, 24 Oct 2019 02:36:02 GMT):
@pcmola It appears the contract you're deploying (or at least the truffle migrations part thereof) requires more gas (6,721,975) than the Ethereum block is allowed to contain (4,700,000). As a first attempt, I'd suggest changing "gasLimit" in each of your genesis files to 0x6ACFC0 (7,000,000) - you will need to delete your existing data (again) unfortunately.
shemnon (Thu, 24 Oct 2019 02:50:31 GMT):
Alternatly you could run with `--target-gas-limit=7000000` and wait for the block gas limit to rise. Should take ~ 500 blocks.
shemnon (Thu, 24 Oct 2019 02:51:05 GMT):
About 2 hours for 15 second blocks.
sanket1211 (Thu, 24 Oct 2019 04:39:04 GMT):
wanted to create a private network and deploy smart contract
sanket1211 (Thu, 24 Oct 2019 04:54:18 GMT):
for starting the node there are command for just macos and windows...i want to run it on ubuntu..
podgostar (Thu, 24 Oct 2019 06:24:47 GMT):
Has joined the channel.
podgostar (Thu, 24 Oct 2019 06:24:48 GMT):
Hello! One question. Let's say that we have a consortium (enterprise) blockchain network with Hyperledger Besu (Pantheon). Does it make sense to set up additionaly distributed data storage (ipfs or swarm) network across nodes which already run Pantheon clients fot the data storage purposes? Or it is better to increase the maximum block gas limit and then store data to blockchain?
ajsutton (Thu, 24 Oct 2019 06:29:56 GMT):
The ethereum world state isn't optimised for large blobs of data, but it scales pretty well to having lots of reasonably small data items. So if you're doing a lot of work with files like images, I'd generally assume something like ifs or swarm would be worth the effort. Really the only way to tell is to do some tests with storing the data in the Ethereum world state and see if it works well enough for your specific use cases. If you find you need to raise the block gas limit to extremely high values to store the amount of data you need that would also be a sign that ipfs/swarm would be worthwhile.
podgostar (Thu, 24 Oct 2019 07:10:42 GMT):
As you say.. depends on the use-case.. we will do the research about this. Thank you for your opinion!
antonydenyer (Thu, 24 Oct 2019 07:12:46 GMT):
You could cause a lot of trouble by sending (via orion) different private transactions to different nodes then creating a marker transaction manually. Each node would then have a different private state.
A solution to this would be to include some kind of zk proof of the transaction that could be stored on the public chain.
At the moment it's not on the roadmap for the next 6 months but that's not to say it couldn't be added after that if enough people want it.
Near term we're looking at POW compatibility and on private chain privacy group management.
antonydenyer (Thu, 24 Oct 2019 07:23:40 GMT):
Currently, everyone's orion instance in the privacy group needs to be up for transactions to be submitted. We are looking at ways of improving the situation (like you said call for help etc).
arunog (Thu, 24 Oct 2019 10:45:46 GMT):
Has joined the channel.
SamuelDare (Thu, 24 Oct 2019 14:57:28 GMT):
admin
SamuelDare (Thu, 24 Oct 2019 14:58:45 GMT):
I thought besu didnt implement admin methods... is this new? last time i checked on pantheon it didnt but looking at the latest docs it seems to work
SamuelDare (Thu, 24 Oct 2019 14:58:45 GMT):
I thought besu didnt implement admin methods... is this new? last time i checked on pantheon it didnt but looking at the latest docs it seems to have it
shemnon (Thu, 24 Oct 2019 15:12:11 GMT):
admin_ RPCs are not standardized. But some are shared. we currently have `admin_addPeer`, `admin_nodeInfo` and `admin_peers` which are shared, we also have `admin_removePeer` and `admin_changeLogLevel` are ones we add and that are unique to us.
SamuelDare (Thu, 24 Oct 2019 15:12:46 GMT):
thanks.. when were they introduced?
shemnon (Thu, 24 Oct 2019 15:13:32 GMT):
not entirely sure, CHANGELOG.md should have the info. Each came in one at a time.
madelinemurray (Thu, 24 Oct 2019 19:52:56 GMT):
They were introduced at different times - admin_changeLogLevel is the only one you'd really call new.
carlosalca (Fri, 25 Oct 2019 05:56:15 GMT):
Has joined the channel.
SamuelDare (Fri, 25 Oct 2019 12:04:00 GMT):
I need to create preallocated accounts for my cluster.. is adding them to the genesis file the only way? In addition to this, is there a tool for create ethereum addresses?
SamuelDare (Fri, 25 Oct 2019 13:25:41 GMT):
Here is my genesis file :
```
{
"alloc": {
"d0c4128ac194ccf505469f5ef2ff0cac99939f76": {
"balance": "1000000000000000000000000000"
},
"166758ded5c58a1e0de3db0f0554c8c55a64ff6b": {
"balance": "1000000000000000000000000000"
},
"c5f4a77564b0d7436b7c6b2fb3c4b546411568ea": {
"balance": "1000000000000000000000000000"
},
"32322def41caaa56e5076c24efceefa5262e6f3c": {
"balance": "1000000000000000000000000000"
}
},
"coinbase": "0x0000000000000000000000000000000000000000",
"config": {
"chainId": 7556,
"constantinoplefixblock": 0,
"ibft2": {
"blockperiodseconds": 5,
"epochlength": 30000,
"requesttimeoutseconds": 10
}
},
"difficulty": "0x0",
"extraData": "0xf87ea00000000000000000000000000000000000000000000000000000000000000000f85494d0c4128ac194ccf505469f5ef2ff0cac99939f7694166758ded5c58a1e0de3db0f0554c8c55a64ff6b94c5f4a77564b0d7436b7c6b2fb3c4b546411568ea9432322def41caaa56e5076c24efceefa5262e6f3c808400000000c0",
"gasLimit": "0xE0000000",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"nonce": "0x0",
"timestamp": "0x00"
}
```
SamuelDare (Fri, 25 Oct 2019 13:26:34 GMT):
when i try web.eth.account, it returns an empty array
SamuelDare (Fri, 25 Oct 2019 13:26:42 GMT):
also via RPC
SamuelDare (Fri, 25 Oct 2019 13:26:46 GMT):
what am i doing wrong?
SamuelDare (Fri, 25 Oct 2019 13:31:04 GMT):
is it because the balance isnt in hex?
shemnon (Fri, 25 Oct 2019 13:48:21 GMT):
try `web.eth.getBalance('d0c4128ac194ccf505469f5ef2ff0cac99939f76')`. web.eth.account is for the wallet services that Besu doesn't support. It only would access accounts stored on the node you are connecting to.
shemnon (Fri, 25 Oct 2019 13:48:21 GMT):
try `web.eth.getBalance('d0c4128ac194ccf505469f5ef2ff0cac99939f76')`. `web.eth.account` is for the wallet services that Besu doesn't support. It only would access accounts stored on the node you are connecting to.
shemnon (Fri, 25 Oct 2019 13:49:43 GMT):
And yes, the `genisis.json` file is the only way to pre-seed wallet values. Basically required since IBFT(2) and Clique don't provide miner rewards.
SamuelDare (Fri, 25 Oct 2019 13:57:31 GMT):
so how can i select account in besu?
SamuelDare (Fri, 25 Oct 2019 13:57:55 GMT):
i am trying to access accounts on the nodes and it still doesnt seem to be working
SamuelDare (Fri, 25 Oct 2019 14:01:00 GMT):
```
> web3.eth.getBalance('8b75d09772077021e53b76142bf18cc0ada6b0f2')
1e+27
> web3.eth.accounts
[]
```
SamuelDare (Fri, 25 Oct 2019 14:01:18 GMT):
```
{
"alloc": {
"8b75d09772077021e53b76142bf18cc0ada6b0f2": {
"balance": "1000000000000000000000000000"
},
"b36d9dc8e47795949cc02965acd258919ed255c0": {
"balance": "1000000000000000000000000000"
},
"2f536f9741f1084125d959ac459d90d30f196ebc": {
"balance": "1000000000000000000000000000"
},
"af23fbf499a07c86dfb029f273273b8db06e5053": {
"balance": "1000000000000000000000000000"
}
```
shemnon (Fri, 25 Oct 2019 14:04:15 GMT):
You will need to load the private key in via `web3.eth.wallet.add(
shemnon (Fri, 25 Oct 2019 14:04:15 GMT):
You will need to load the private key in via `web3.eth.wallet.add(
shemnon (Fri, 25 Oct 2019 14:04:15 GMT):
You will need to load the private key in via `web3.eth.wallet.add(
SamuelDare (Fri, 25 Oct 2019 14:06:37 GMT):
is this pantheon specific?
SamuelDare (Fri, 25 Oct 2019 14:06:40 GMT):
*besu?
SamuelDare (Fri, 25 Oct 2019 14:07:33 GMT):
I ask because we are building a tool for benchmarking clients and the other clients return accounts with `web3.eth.accounts`]
SamuelDare (Fri, 25 Oct 2019 14:09:53 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=4bgmXGkyCnuDXWxpj) would this be the node's private key or the private key of each account?
shemnon (Fri, 25 Oct 2019 14:27:55 GMT):
All clients support the wallet add. Under the cover it uses `eth_sendRawTransaction` instead of `eth_sendTransation` which depends on wallet functionality. Not all clients support the `eth_personal` series of RPCs or wallet functionality. For a benchmarking send raw is the common API.
shemnon (Fri, 25 Oct 2019 14:27:55 GMT):
All clients support the RPCs that result from wallet add. Under the cover it uses `eth_sendRawTransaction` instead of `eth_sendTransation` which depends on wallet functionality. Not all clients support the `eth_personal` series of RPCs or wallet functionality. For a benchmarking send raw is the common API.
SamuelDare (Fri, 25 Oct 2019 14:38:40 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=4bgmXGkyCnuDXWxpj) is there an rpc for this? if i understand correclty, once i add this, I would be able to call the accounts with `web3.eth.accounts`
shemnon (Fri, 25 Oct 2019 14:50:28 GMT):
The rpc is `eth_sendRawTransaction` It's web3.js that decides if it calls the raw or the wallet variant basedon whether or not it has the private key. web3.js will sign the transaciton if it can.
SamuelDare (Fri, 25 Oct 2019 15:00:18 GMT):
thats further down the line for me and understand transaction signing. I just need to be able to call the accounts on the node first and blocked right now if i dont have access to `web3.eth.accounts`
shemnon (Fri, 25 Oct 2019 15:54:06 GMT):
You just need to load the private key, eth3 figures it out from there - like this - https://github.com/hyperledger/caliper/blob/master/packages/caliper-ethereum/lib/ethereum.js#L52
shemnon (Fri, 25 Oct 2019 15:54:06 GMT):
You just need to load the private key, web3 figures it out from there - like this - https://github.com/hyperledger/caliper/blob/master/packages/caliper-ethereum/lib/ethereum.js#L52
shemnon (Fri, 25 Oct 2019 15:55:12 GMT):
caliper's transaction logic is steeped in JS and web3.js magic, but the only thing that needed to be added was gas - https://github.com/hyperledger/caliper/blob/master/packages/caliper-ethereum/lib/ethereum.js#L170
arunog (Fri, 25 Oct 2019 20:13:40 GMT):
wonderCan all the communication between nodes and between client and node be SSL enabled for regulatory reasons?
arunog (Fri, 25 Oct 2019 20:22:57 GMT):
Hello everyone, I wonder for regulatory reasons, if there is a way to be all the communication between nodes SSL enabled(P2P communication)? Thanks in advance
ajsutton (Fri, 25 Oct 2019 20:55:23 GMT):
Just for the record, seed accounts are not necessarily required for clique and ibft. You can operate a network without any ETH fine so long as min gas price is zero. In that case you don’t have to pay for gas so don’t need ETH.
SteveMieskoski (Sun, 27 Oct 2019 01:01:19 GMT):
Has joined the channel.
madelinemurray (Sun, 27 Oct 2019 20:14:17 GMT):
@sanket1211 - the difference between the MacOs and Windows besu commands is the backslash/forwardslash so the MacOs commands should work for ubuntu
madelinemurray (Sun, 27 Oct 2019 20:19:35 GMT):
@pcmola - were you able to deploy the contracts with the suggestions aove?
arash009 (Mon, 28 Oct 2019 05:04:30 GMT):
DevP2P uses the RLPx transport protocol which has encryption built in: https://github.com/ethereum/devp2p/blob/master/rlpx.md Is there a reason you are looking at SSL specifically for Besu P2P communication?
benjaminion (Mon, 28 Oct 2019 15:41:08 GMT):
Has joined the channel.
GregTheGreek (Mon, 28 Oct 2019 18:49:45 GMT):
Has joined the channel.
GregTheGreek (Mon, 28 Oct 2019 18:49:46 GMT):
Hey! Finally got in...
GregTheGreek (Mon, 28 Oct 2019 18:50:50 GMT):
We've found some particularly strange behaviour when syncing
GregTheGreek (Mon, 28 Oct 2019 18:59:21 GMT):
ah nvm - please ignore me
GregTheGreek (Mon, 28 Oct 2019 19:02:08 GMT):
So when syncing with ETC (ETC and ETH use the same network id) - when the DAO fork happens Besu aggressively rejects blocks and it reallllly slows down the sync time. Not sure if theres something we can mitigate by also checking the chain id?
shemnon (Mon, 28 Oct 2019 19:03:55 GMT):
Let me dig, there may be multiple places we do dao checking. We als validate peers with `DaoForkPeerValidator` but you wouldn't have peers if that was what the problem was.
shemnon (Mon, 28 Oct 2019 19:04:46 GMT):
I'm thinking ETC support will want the inverse of `DaoForkPeerValidator` to ensure it gets ETC peers.
shemnon (Mon, 28 Oct 2019 19:06:05 GMT):
I bet it's org.hyperledger.besu.ethereum.mainnet.MainnetBlockHeaderValidator#createDaoValidator causing the rejection. You can put a breakpoint and see how it's getting introduced.
shemnon (Mon, 28 Oct 2019 19:06:05 GMT):
I bet it's `org.hyperledger.besu.ethereum.mainnet.MainnetBlockHeaderValidator#createDaoValidator` causing the rejection. You can put a breakpoint and see how it's getting introduced.
shemnon (Mon, 28 Oct 2019 19:08:00 GMT):
Looks like the ProtocolSchedule and the ProtocolSpec do DAO validation.
GregTheGreek (Mon, 28 Oct 2019 19:54:25 GMT):
ok thanks!
GregTheGreek (Mon, 28 Oct 2019 19:54:33 GMT):
yeah we eventually get passed it
GregTheGreek (Mon, 28 Oct 2019 19:54:37 GMT):
but it takes a good amount of time
rjones (Mon, 28 Oct 2019 20:05:45 GMT):
Has left the channel.
jacobsaur (Mon, 28 Oct 2019 20:33:39 GMT):
Hi I'm wondering if anyone has ever experienced truffle tests timing out when running against the clique consensus. I'm walking through the simple quickstart tutorial ( https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Private-Network-Quickstart/ ). Everything works when using the default run.sh, and the truffle tests pass in seconds. However when I try `run.sh -c clique` the truffle tests time out: `"before all" hook: prepare suite: Error: Timeout of 120000ms exceeded.`
Is there anything else I need to do to get clique working? (Note the migrations work, just not the tests). My repo is here: https://github.com/jsaur/besu-playground
shemnon (Mon, 28 Oct 2019 21:26:47 GMT):
So this indicates to me that a ClassicPeerValidator should be written. Either validating the hashes right after the DAO fork or validating the absence of DAO markers.
GregTheGreek (Mon, 28 Oct 2019 21:28:02 GMT):
hmm - interesting ok
GregTheGreek (Mon, 28 Oct 2019 21:28:18 GMT):
That makes sense to me
jacobsaur (Tue, 29 Oct 2019 13:53:07 GMT):
Ok I've discovered two things: (1) The timeout only occurs with solidity based truffle tests, javascript tests don't time out (2) If I lower the clique 'blockperiodseconds' from the default of 15 to 5 or 1, then both solidity and javascript tests pass. My guess is that there is something in the before all hook in the solidity tests that's making multiple blockchain calls, and when the block period is 15s it takes more the 120s to complete them all. Setting a lower block period allows all these tasks to complete. Since tests will be running against a test network, I'll just lower the block period to 1 s.
shemnon (Tue, 29 Oct 2019 14:14:33 GMT):
Besu contributor call in 45 minutes. Agenda - https://wiki.hyperledger.org/display/BESU/2019-10-29+Besu+Contributor+Call
shemnon (Tue, 29 Oct 2019 14:15:40 GMT):
If the truffle tests are waiting for confirmation 15s blocks are a big problem.
NicolasMassart (Tue, 29 Oct 2019 14:38:34 GMT):
You can either lower the blocktime on clique, but it may not be what you want, or lower the number of confirmations required for the tx to be validated. Using web3.js this can be done using the following property: `web3.transactionConfirmationBlocks = 1;`.
We have an example here line 25: https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Transactions/#5-send-ether
mattatkiva (Tue, 29 Oct 2019 14:40:36 GMT):
whats the cause of the delay?
NicolasMassart (Tue, 29 Oct 2019 14:43:41 GMT):
The cause is that Truffle tests are using web3.js library to connect and by default transactions requires too many validations to be validated. So number of validations x the blocktime makes it exceed the timeout. I had that before, I'm trying to find how I solved it and I tell you... I hope I will recover the change to make.
NicolasMassart (Tue, 29 Oct 2019 14:48:53 GMT):
I think it's not the validations on this one, i had another issue too... can you provide your truffle-config.js file where you define the truffle-hdwallet-provider for Besu?
NicolasMassart (Tue, 29 Oct 2019 14:53:39 GMT):
Can you try to see if using q provider qs indicated in truffle-config.js from our tutorial https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Private-Network-Quickstart/#truffle-pet-shop-tutorial helps? The key is to create a new instance of PrivateKeyProvider for each connection.
jacobsaur (Tue, 29 Oct 2019 15:14:46 GMT):
Here's my truffle-config.js, I believe mine is the same as the one in that tutorial: https://github.com/jsaur/besu-playground/blob/master/pet-shop/truffle-config.js
NicolasMassart (Tue, 29 Oct 2019 15:19:30 GMT):
Yes it is. Humm... I will have to dig that.
Can you give use more info on your setup? Besu version, Truffle version, OS and version?
jacobsaur (Tue, 29 Oct 2019 15:33:16 GMT):
I have a simple repo that's just going through quickstart tutorial (https://besu.hyperledger.org/en/latest/Tutorials/Quickstarts/Private-Network-Quickstart/ ), here's the commit where the test is failing: https://github.com/jsaur/besu-playground/commit/91fb96d2609b93c975cbb1f154b02cf94e638b35 (future commits then have changed the block period). Besu is running in docker containers so it's whatever version is in the quickstart repo. Truffle v5.0.41 is running on my Mac OS 10.14.6, but I can also put that in a docker container to make reproducing even easier.
NicolasMassart (Tue, 29 Oct 2019 16:14:24 GMT):
I will have a look with that first and tell you if I need more.
jacobsaur (Tue, 29 Oct 2019 17:16:59 GMT):
I was going to put it into a docker container anyways, here it is, if it's useful: https://github.com/jsaur/besu-playground/tree/test-timeout
NicolasMassart (Wed, 30 Oct 2019 11:44:42 GMT):
I had a look at your repos, but I don't understand why you run two docker compose in your readme? and link them on the same network. What do you do with the first tab one?
NicolasMassart (Wed, 30 Oct 2019 12:21:26 GMT):
It also seems that your node truffle image misses truffle/hdwallet-provider package
jacobsaur (Wed, 30 Oct 2019 12:24:01 GMT):
Question 1: I didn't want to change the besu-quickstart docker compose files too much, but wanted the pet-shop docker container to be able to connect to the besu nodes. The easiest way I could think of was to create a new docker-compose for pet-shop and have it on the same network.
2) I believe it's included here: https://github.com/jsaur/besu-playground/blob/test-timeout/pet-shop/package.json#L22 unless you're referring to something else?
NicolasMassart (Wed, 30 Oct 2019 12:38:58 GMT):
I'm still looking at your issues of course.
jacobsaur (Wed, 30 Oct 2019 12:44:06 GMT):
Thanks, also this isn't urgent, since I found a workaround by setting the blockperiodseconds to 1 (which also makes all around development faster).
NicolasMassart (Wed, 30 Oct 2019 13:31:45 GMT):
Yes, but it should work so I have to digg ;)
NicolasMassart (Wed, 30 Oct 2019 15:47:08 GMT):
I knew I met this issue before... so you may have this succeed: https://ethereum.stackexchange.com/a/47698/405 Because even if you reduce the blocktime, at some point even a 1sec will be too long and will trigger the timeout (if you have more than 120 test tx, on per block, it will reach it). So the solution is to add the mocha section in your truffle config as explained in the StackExchange answer.
syuta-sugawara (Wed, 30 Oct 2019 15:52:07 GMT):
Has joined the channel.
syuta-sugawara (Wed, 30 Oct 2019 15:52:26 GMT):
hi.
I'm software engineer in japan.
Mr.Masa and Mr.Tom introduced me to here.
now, I'm trying to create private chain in aws by using ECS.
i was able to create three besu node in ecs, but i cannot connect them to each other.
Could anyone cooperate with me?
faraggi (Wed, 30 Oct 2019 16:58:34 GMT):
Hi @syuta-sugawara , I'm sure we can help.
What other details can you give us to better understand where the problem is?
What error are you getting?
Did you setup your security groups correctly- with the correct open ports?
eum602 (Wed, 30 Oct 2019 19:44:31 GMT):
Hello, I am updating some nodes that are on pantheon 1.2.0 to besu 1.2.5, in this process I have observed that nodes cannot communicate between both versions. Is it necessary to update all nodes to new version?
eum602 (Wed, 30 Oct 2019 19:54:18 GMT):
I have just observed that only one besu node is connecting to pantheon version, but whole ibft consensus has stopped.
NicolasMassart (Wed, 30 Oct 2019 19:57:05 GMT):
can you update to latest version since you are updating?
eum602 (Wed, 30 Oct 2019 19:58:22 GMT):
why are they not connecting well?, is it necessary to update whole network?
NicolasMassart (Wed, 30 Oct 2019 20:37:33 GMT):
We would need more details about your setup to tell, would you like to switch to PM?
NicolasMassart (Wed, 30 Oct 2019 21:17:17 GMT):
For the record @abdelhamidbakhta , @eum602 seems to experience https://pegasys1.atlassian.net/browse/PAN-3260 but on Google Cloud, except that the admin_addPeer doesn't seem to work. Many things to confirm and he will try a few things on his side, but it may give you new informations on this issue.
ivicaa (Wed, 30 Oct 2019 21:34:46 GMT):
Has joined the channel.
jacobsaur (Thu, 31 Oct 2019 11:48:08 GMT):
Thanks, setting the mocha timeout to around 5min worked for me (with 15s blocks).
eum602 (Thu, 31 Oct 2019 15:34:45 GMT):
After checking in more detail I noticed the problem is related with permissioning in my network.
NicolasMassart (Thu, 31 Oct 2019 15:42:11 GMT):
Did you make it work? Can you tell us more about what you did?
eum602 (Thu, 31 Oct 2019 15:43:17 GMT):
yes Nicolas, I am preparing a more detailed scenario to explain the issue.
arunog (Thu, 31 Oct 2019 16:25:20 GMT):
albert
ivicaa (Fri, 01 Nov 2019 08:24:57 GMT):
In geth clique, under some circumstances (e. g. fast block times, lagging network) a deadlock can happen, where the signers stop signing and infinitely wait for each other. See https://github.com/ethereum/go-ethereum/issues/18402#issuecomment-548704288 — did someone observed this with Besu Clique too?
cstoecker (Fri, 01 Nov 2019 15:05:20 GMT):
Has joined the channel.
donpdonp (Fri, 01 Nov 2019 17:20:08 GMT):
Has joined the channel.
nimagh (Fri, 01 Nov 2019 19:34:33 GMT):
Has joined the channel.
ajsutton (Sat, 02 Nov 2019 00:16:03 GMT):
This is a problem with the Clique protocol itself so does apply to all clients. However, it becomes much more likely when there are a lot of out of turn blocks being produced. That in turn tends to happen if signers are either misbehaving (Geth and Besu both behave well in this regard) or if the time required to propagate blocks across the network is close to the block period time. The one key difference between Geth and Besu which may help this happen less on Besu is that when there are two blocks with equal difficulty Geth will pick one randomly whereas Besu will stick with the first block received. That doesn't eliminate the issue but does mean that if a couple of signers have slower network connectivity and are producing out of turn blocks as a result, the other nodes are likely to have recieved the in-turn blocks first and will stick with them making it more likely the network will continue. It's only a pretty minor difference though.
kziemianek (Sat, 02 Nov 2019 09:22:18 GMT):
Has joined the channel.
pantsme (Mon, 04 Nov 2019 01:37:07 GMT):
Has joined the channel.
Olipotmans (Mon, 04 Nov 2019 16:55:28 GMT):
Has joined the channel.
Olipotmans (Tue, 05 Nov 2019 06:32:58 GMT):
Hello, based on the "Private Network Quickstart" installation, I use the Metamask application to create a new account on the system. by checking on the ethstats-light, I see the created account but when I execute a transfer between this new account and one of the three accounts created during the installation, the transaction is "waiting" and seems frozen. I'm suspecting that this is a problem of key that BESU doesn't have when Metamask creates the account. Could you please help me?
syuta-sugawara (Tue, 05 Nov 2019 10:09:30 GMT):
hi, fraggi.
the problem may be solved.
however, another problem occurs.
syuta-sugawara (Tue, 05 Nov 2019 10:14:11 GMT):
when i try to call besu api, i got this message.
{"message":"Host not authorized."}
this is a command which i used.
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' http://(host id address):8545
syuta-sugawara (Tue, 05 Nov 2019 10:14:34 GMT):
ip address is correct.
syuta-sugawara (Tue, 05 Nov 2019 10:16:41 GMT):
and these are command which i used when run besu.
syuta-sugawara (Tue, 05 Nov 2019 10:16:58 GMT):
"command": ["besu",
"--data-path=data",
"--genesis-file=../genesis.json",
"--p2p-host=0.0.0.0",
"--p2p-port=30303",
"--rpc-http-enabled",
"--rpc-http-api=ETH,NET,IBFT",
"--host-whitelist=\"*\"",
"--rpc-http-cors-origins=\"all\"",
"--rpc-http-host=0.0.0.0",
"--rpc-http-port=8545",
"--min-gas-price=0"] ,
syuta-sugawara (Tue, 05 Nov 2019 10:18:05 GMT):
hi.
when i try to call besu api, i got this message.
{"message":"Host not authorized."}
this is a command which i used.
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' http://(host id address):8545
syuta-sugawara (Tue, 05 Nov 2019 10:18:14 GMT):
ip address is correct.
syuta-sugawara (Tue, 05 Nov 2019 10:18:21 GMT):
and these are command which i used when run besu.
"command": ["besu",
"--data-path=data",
"--genesis-file=../genesis.json",
"--p2p-host=0.0.0.0",
"--p2p-port=30303",
"--rpc-http-enabled",
"--rpc-http-api=ETH,NET,IBFT",
"--host-whitelist=\"*\"",
"--rpc-http-cors-origins=\"all\"",
"--rpc-http-host=0.0.0.0",
"--rpc-http-port=8545",
"--min-gas-price=0"] ,
syuta-sugawara (Tue, 05 Nov 2019 10:18:53 GMT):
Could anyone help me?
syuta-sugawara (Tue, 05 Nov 2019 12:10:14 GMT):
sorry.
i have another question.
i'd like to deploy smart contract to besu node,now.
i saw this tutorial.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
what private key should i use in this line?
const privateKey = "
syuta-sugawara (Tue, 05 Nov 2019 12:11:07 GMT):
is this private-key written in genesis.json ?
NicolasMassart (Tue, 05 Nov 2019 12:18:35 GMT):
Hi, is that something that happens each time, if you stop (./remove.sh) and restart (./run.sh) the quickstart again? Do you reproduce the issue each time?
mackcom (Tue, 05 Nov 2019 19:40:02 GMT):
Has joined the channel.
mackcom (Tue, 05 Nov 2019 19:40:03 GMT):
Hi, I'm trying to commit to a PR (#155) but it's failing DCO, I've done the suggested actions `git commit --amend --signoff` and `git push --force-with-lease origin greg/backport-3` and it still fails. Any suggestions?
Olipotmans (Tue, 05 Nov 2019 20:08:22 GMT):
it works now. But I think that I made a mistake, I imported the private key of the miner account, possible that this was the reason ? thanks ! olivier
oyincode (Tue, 05 Nov 2019 20:10:42 GMT):
Has joined the channel.
shemnon (Tue, 05 Nov 2019 20:32:51 GMT):
The IP address is not part of the host whitelist , the `--host-whitelist` option. By default it is 127.0.0.1 (a more secure default). You can set it to `*` to accept any connection or to the specific host names you are accessing it by.
shemnon (Tue, 05 Nov 2019 21:03:37 GMT):
One option is to do a squash on top of the chain head and then force push that single commit, with the DCO.
shemnon (Tue, 05 Nov 2019 21:04:03 GMT):
DCO re-writes work best for single commits.
RealDeanZhao (Wed, 06 Nov 2019 05:41:28 GMT):
Hi team, is there any tool like quorum maker(https://github.com/synechron-finlabs/quorum-maker) to create besu networks/nodes?
syuta-sugawara (Wed, 06 Nov 2019 06:06:25 GMT):
i know.
i already did it.
syuta-sugawara (Wed, 06 Nov 2019 06:06:53 GMT):
these are command which i used when run besu.
"command": ["besu",
"--data-path=data",
"--genesis-file=../genesis.json",
"--p2p-host=0.0.0.0",
"--p2p-port=30303",
"--rpc-http-enabled",
"--rpc-http-api=ETH,NET,IBFT",
"--host-whitelist=\"*\"",
"--rpc-http-cors-origins=\"all\"",
"--rpc-http-host=0.0.0.0",
"--rpc-http-port=8545",
"--min-gas-price=0"] ,
syuta-sugawara (Wed, 06 Nov 2019 06:07:50 GMT):
i use ecs in aws.
this is written in task definition file.
these commads are correct.
pcmola (Wed, 06 Nov 2019 06:14:12 GMT):
Hi, The following error message appears when practicing Clique.
`BytesValue is of invalid size - i.e. contains unused bytes`
pcmola (Wed, 06 Nov 2019 06:14:12 GMT):
Hi, The following error message appears when practicing Clique.
```BytesValue is of invalid size - i.e. contains unused bytes```
pcmola (Wed, 06 Nov 2019 06:14:12 GMT):
Hi, The following error message appears when practicing Clique.
`BytesValue is of invalid size - i.e. contains unused bytes`
pcmola (Wed, 06 Nov 2019 06:16:25 GMT):
To confirm the problem, I added the source to CliqueExtraData.java
and checked until it came out as follows:
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
`static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
System.out.println("input.size():" + input.size());
System.out.println("EXTRA_VANITY_LENGTH:" + EXTRA_VANITY_LENGTH);
System.out.println("Signature.BYTES_REQUIRED:" + Signature.BYTES_REQUIRED);
System.out.println("validatorByteCount:" + validatorByteCount);
System.out.println("Address.SIZE:" + Address.SIZE);
//End. Added for analiyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20
input.size():161
EXTRA_VANITY_LENGTH:32
Signature.BYTES_REQUIRED:65
validatorByteCount:64
Address.SIZE:20
BytesValue is of invalid size - i.e. contains unused bytes.`
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
~~~static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
~~~
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
System.out.println("input.size():" + input.size());
System.out.println("EXTRA_VANITY_LENGTH:" + EXTRA_VANITY_LENGTH);
System.out.println("Signature.BYTES_REQUIRED:" + Signature.BYTES_REQUIRED);
System.out.println("validatorByteCount:" + validatorByteCount);
System.out.println("Address.SIZE:" + Address.SIZE);
//End. Added for analiyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20
input.size():161
EXTRA_VANITY_LENGTH:32
Signature.BYTES_REQUIRED:65
validatorByteCount:64
Address.SIZE:20
BytesValue is of invalid size - i.e. contains unused bytes.`
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
System.out.println("input.size():" + input.size());
System.out.println("EXTRA_VANITY_LENGTH:" + EXTRA_VANITY_LENGTH);
System.out.println("Signature.BYTES_REQUIRED:" + Signature.BYTES_REQUIRED);
System.out.println("validatorByteCount:" + validatorByteCount);
System.out.println("Address.SIZE:" + Address.SIZE);
//End. Added for analiyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20
input.size():161
EXTRA_VANITY_LENGTH:32
Signature.BYTES_REQUIRED:65
validatorByteCount:64
Address.SIZE:20
BytesValue is of invalid size - i.e. contains unused bytes.`
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
System.out.println("input.size():" + input.size());
System.out.println("EXTRA_VANITY_LENGTH:" + EXTRA_VANITY_LENGTH);
System.out.println("Signature.BYTES_REQUIRED:" + Signature.BYTES_REQUIRED);
System.out.println("validatorByteCount:" + validatorByteCount);
System.out.println("Address.SIZE:" + Address.SIZE);
//End. Added for analiyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
'''2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20'''
input.size():161
EXTRA_VANITY_LENGTH:32
Signature.BYTES_REQUIRED:65
validatorByteCount:64
Address.SIZE:20
BytesValue is of invalid size - i.e. contains unused bytes.`
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
System.out.println("input.size():" + input.size());
System.out.println("EXTRA_VANITY_LENGTH:" + EXTRA_VANITY_LENGTH);
System.out.println("Signature.BYTES_REQUIRED:" + Signature.BYTES_REQUIRED);
System.out.println("validatorByteCount:" + validatorByteCount);
System.out.println("Address.SIZE:" + Address.SIZE);
//End. Added for analiyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20
input.size():161
EXTRA_VANITY_LENGTH:32
Signature.BYTES_REQUIRED:65
validatorByteCount:64
Address.SIZE:20
BytesValue is of invalid size - i.e. contains unused bytes.`
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
System.out.println("input.size():" + input.size());
System.out.println("EXTRA_VANITY_LENGTH:" + EXTRA_VANITY_LENGTH);
System.out.println("Signature.BYTES_REQUIRED:" + Signature.BYTES_REQUIRED);
System.out.println("validatorByteCount:" + validatorByteCount);
System.out.println("Address.SIZE:" + Address.SIZE);
//End. Added for analiyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
```2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20```
input.size():161
EXTRA_VANITY_LENGTH:32
Signature.BYTES_REQUIRED:65
validatorByteCount:64
Address.SIZE:20
BytesValue is of invalid size - i.e. contains unused bytes.`
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
```static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
System.out.println("input.size():" + input.size());
System.out.println("EXTRA_VANITY_LENGTH:" + EXTRA_VANITY_LENGTH);
System.out.println("Signature.BYTES_REQUIRED:" + Signature.BYTES_REQUIRED);
System.out.println("validatorByteCount:" + validatorByteCount);
System.out.println("Address.SIZE:" + Address.SIZE);
//End. Added for analiyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20
input.size():161
EXTRA_VANITY_LENGTH:32
Signature.BYTES_REQUIRED:65
validatorByteCount:64
Address.SIZE:20
BytesValue is of invalid size - i.e. contains unused bytes.```
pcmola (Wed, 06 Nov 2019 06:17:03 GMT):
```static CliqueExtraData decodeRaw(final BlockHeader header) {
final BytesValue input = header.getExtraData();
if (input.size() < EXTRA_VANITY_LENGTH + Signature.BYTES_REQUIRED) {
throw new IllegalArgumentException(
"Invalid BytesValue supplied - too short to produce a valid Clique Extra Data object.");
}
final int validatorByteCount = input.size() - EXTRA_VANITY_LENGTH - Signature.BYTES_REQUIRED;
//Start. Added for analyzing
LOG.info("input.size(): {}", input.size());
LOG.info("EXTRA_VANITY_LENGTH: {}", EXTRA_VANITY_LENGTH);
LOG.info("Signature.BYTES_REQUIRED: {}", Signature.BYTES_REQUIRED);
LOG.info("validatorByteCount: {}", validatorByteCount);
LOG.info("Address.SIZE: {}", Address.SIZE);
//End. Added for analyzing
if ((validatorByteCount % Address.SIZE) != 0) {
throw new IllegalArgumentException(
"BytesValue is of invalid size - i.e. contains unused bytes.");
}
pcmola@wonjongyoon:~/my/edu/besu/Clique-Network/Node-1$ besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ETH,NET,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"
2019-11-06 14:56:36.785+09:00 | main | INFO | RocksDBPlugin | Registering plugin
2019-11-06 14:56:36.789+09:00 | main | INFO | RocksDBPlugin | Plugin registered.
Setting logging level to INFO
2019-11-06 14:56:36.817+09:00 | main | INFO | Besu | Starting Besu version: besu/v1.2.4-dev-9aadbcb9/osx-x86_64/oracle_openjdk-java-12
2019-11-06 14:56:36.835+09:00 | main | INFO | StaticNodesParser | StaticNodes file /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/static-nodes.json does not exist, no static connections will be created.
2019-11-06 14:56:36.836+09:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-06 14:56:37.222+09:00 | main | INFO | KeyPairUtil | Loaded key 0xb315f2afa341dbf851603b38d4fb7608895b23d329cbac67d42054bce4b89ca447fbc3137346786299b90558cfb0e45ba9b6e556053bc0c3d45febcad6b444f8 from /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/key
2019-11-06 14:56:37.293+09:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /Users/pcmola/my/edu/besu/Clique-Network/Node-1/data/database. Version 1
2019-11-06 14:56:37.507+09:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | input.size(): 161
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | EXTRA_VANITY_LENGTH: 32
2019-11-06 14:56:37.550+09:00 | main | INFO | CliqueExtraData | Signature.BYTES_REQUIRED: 65
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | validatorByteCount: 64
2019-11-06 14:56:37.551+09:00 | main | INFO | CliqueExtraData | Address.SIZE: 20
BytesValue is of invalid size - i.e. contains unused bytes.```
pcmola (Wed, 06 Nov 2019 06:18:25 GMT):
I can't analyze more than this. What else can I check?
pcmola (Wed, 06 Nov 2019 06:20:56 GMT):
And I want to know how to get syntax highlighting and tabs applied to source code in this chat.
arash009 (Wed, 06 Nov 2019 07:23:36 GMT):
:besu: Besu 1.3.4 has been released and is available now: https://bintray.com/hyperledger-org/besu-repo/besu/1.3.4
:besu: Change log available at: https://github.com/hyperledger/besu/blob/master/CHANGELOG.md
A bug was found in Besu 1.3.3. Please ensure you use Besu 1.3.4 when upgrading to the latest version.
faraggi (Wed, 06 Nov 2019 09:04:09 GMT):
Hi pcmola.
Code can be sourrounded by tildes \` in-line to show `code` and \``` 3 tildes can
```
make a
code block
```
```
faraggi (Wed, 06 Nov 2019 09:04:09 GMT):
Hi pcmola.
Code can be sourrounded by tildes \` in-line to show `code` and \``` 3 tildes can
```
make a
code block
```
```
faraggi (Wed, 06 Nov 2019 09:04:09 GMT):
Hi pcmola.
Code can be sourrounded by tildes \` in-line to show `code` and \``` 3 tildes can
```make a
code block
```
faraggi (Wed, 06 Nov 2019 09:04:09 GMT):
Hi pcmola.
Code can be sourrounded by tildes \` in-line to show `code` and \`\`\` 3 tildes can
```
make a
code block
```
faraggi (Wed, 06 Nov 2019 09:04:09 GMT):
Hi pcmola.
Code can be sourrounded by tildes \` in-line to show `code` and 3 tildes can
```
make a
code block
```
faraggi (Wed, 06 Nov 2019 09:04:09 GMT):
Hi pcmola.
Code can be surrounded by tildes in-line to show `code` and 3 tildes can
```
make a
code block
```
faraggi (Wed, 06 Nov 2019 09:05:51 GMT):
From what I can tell, there seems to be some extra chars in that private key. Double check that and tell us if the problem persists.
oyincode (Wed, 06 Nov 2019 09:25:38 GMT):
hey guys I'm trying to setup the besu project on my local machine and its giving me this error,
Each time I run the gradlew build or gradlew installDist, i get this in my console.
What went wrong:
Execution failed for task ':buildSrc:compileGroovy'.
BUG! exception in phase 'semantic analysis' in source unit 'C:\Users\onuem\Desktop\besu\buildSrc\src\main\groovy\CheckSpdxHeader.groovy' Unsupported class file major version 57
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 7s
I'm using Java 13.0.1
Please I'd appreciate any help
NicolasMassart (Wed, 06 Nov 2019 09:27:59 GMT):
First, be aware that all the keys we provide in our tutorials are test keys, do not use them for other purpose than tests.
Then, if you imported miner account key in metamask, no issue, you should see the account balance increase in Metamask as blocks are mined and rewards sent to this account. If you don't see the account balance inclrease, it may be a sign that the mining process is not working well. I suggest that you do as you did, restarting the quickstart in this case.
faraggi (Wed, 06 Nov 2019 09:50:25 GMT):
Gradle doesn't support Java 13 (yet).Besu runs fine on Java 13. It just doesn’t currently build on Java 13 because gradle doesn’t support it.
You could revert to Java11 (LTS version).
Alternatively, you can run Besu without building it, by using our binaries here https://bintray.com/hyperledger-org/besu-repo/besu/_latestVersion#files
oyincode (Wed, 06 Nov 2019 09:52:13 GMT):
alright thanks @faraggi
NicolasMassart (Wed, 06 Nov 2019 10:40:38 GMT):
Hi, not yet, we are working on it but we don't have any release date to communicate for the moment. We will keep you posted.
faraggi (Wed, 06 Nov 2019 12:46:05 GMT):
@RealDeanZhao
I'm not sure exactly how much overlap there is, because I don't know maker in detail, but we are currently working with the Ethereum Foundation to help them integrate Besu into a tool that acts somewhat like maker.
https://github.com/ethereum/grid
Its a GUI desktop tool to handle config and deployment of ethereum networks using different clients.
They will be present in our November 26th Contributor call to give updates on the Besu integration.
shemnon (Wed, 06 Nov 2019 14:38:00 GMT):
The extra quoting for `host-whitelist` and `cors-origin` look to be the problem.
```
"command": ["besu",
"--data-path=data",
"--genesis-file=../genesis.json",
"--p2p-host=0.0.0.0",
"--p2p-port=30303",
"--rpc-http-enabled",
"--rpc-http-api=ETH,NET,IBFT",
"--host-whitelist=*",
"--rpc-http-cors-origins=all",
"--rpc-http-host=0.0.0.0",
"--rpc-http-port=8545",
"--min-gas-price=0"] ,
```
eum602 (Wed, 06 Nov 2019 15:12:25 GMT):
The problem comes in the following scenario: I have an ibft2 network which is under onchain permissioning.
At the beggining all works well but if for some reason the network stops validating blocks(eg. some validators >1/3 n;n=#total_validators;go offline) then when trying to start the network again by starting the offline validators then THE NETWORK DOES NOT START VALIDATING BLOCKS.
The way I found to start the network is by restarting validators WITHOUT:
```
--permissions-accounts-contract-enabled
--permissions-accounts-contract-address=0x0000000000000000000000000000000000008888
--permissions-nodes-contract-enabled
--permissions-nodes-contract-address=0x0000000000000000000000000000000000009999
```
Then the network started without permissioning.
Finally I procceded restarting, gradually in order to not to loose connection between validators. But this time each node was started with the permissioning flags.
I consider that if the network fails, then the validators should be able to start again with onchain permissioning without any extra step.
rachidchami (Wed, 06 Nov 2019 15:42:06 GMT):
Has joined the channel.
eum602 (Wed, 06 Nov 2019 17:05:25 GMT):
@NicolasMassart
NicolasMassart (Wed, 06 Nov 2019 17:06:28 GMT):
Sorry, yes I saw your answer, I'm working on it. Will keep you posted.
eum602 (Wed, 06 Nov 2019 17:06:51 GMT):
ok thanks! :)
rachidchami (Wed, 06 Nov 2019 18:02:22 GMT):
Hello,
Im curious about how besu fetches blocks from the network when specifying a network like Rinkeby but i cant seem to find in which portion of the project that happens...
Any help is welcomed
rachidchami (Wed, 06 Nov 2019 18:03:02 GMT):
project = besu code on github
GregTheGreek (Wed, 06 Nov 2019 18:11:04 GMT):
hey all -- sorry for the delay on the ETC stuff. We had no idea you needed to --signoff. Its causing some headaches but I think we've got it all resolved now
NicolasMassart (Wed, 06 Nov 2019 18:13:43 GMT):
It works the same on all networks except that for each of them we have a different genesis file that indicates the required chain id and state. But we also have a predefined list of bootnodes. So when you use the `--network=rinkeby` CLI option, it loads this genesis and bootnodes and connects to the nodes to retrieve blocks using p2p as for any other network. One place you could start having a look to see how it differs is /besu/src/main/java/org/hyperledger/besu/cli/config/EthNetworkConfig.java
rachidchami (Wed, 06 Nov 2019 18:29:30 GMT):
I checked the code over there and i found the part when a new *EthNetworkConfig* gets created but after what i have no clue what happens after neither where do these parameters get parsed.
I guess ill just have to read the code more.
Thank you for your help
NicolasMassart (Wed, 06 Nov 2019 18:33:24 GMT):
You're welcome. Also do you plan on contributing to Besu code? If this sis the case, I think that a more appropriate place to discuss that would be the #besu-contributors channel. You would have more chances to get answers on how the code works.
rachidchami (Wed, 06 Nov 2019 18:35:25 GMT):
Yes i am trying to contribute.
rachidchami (Wed, 06 Nov 2019 18:35:37 GMT):
I will make sure to join that channel,
Thank you so much
peter_somogyvari (Wed, 06 Nov 2019 20:34:52 GMT):
Has joined the channel.
GregTheGreek (Wed, 06 Nov 2019 21:06:08 GMT):
Whats the difference between `--signoff` and signing your commits ?
shemnon (Wed, 06 Nov 2019 21:17:05 GMT):
`--signoff` auto-generates the signoff based on your git config. As far as I know it's the exact same comment you can hand write.
shemnon (Wed, 06 Nov 2019 21:17:45 GMT):
signed commits use actual cryptography to generate a cryptographic signautre. The DCO process doesn't care about these cryptographic signatures.
GregTheGreek (Wed, 06 Nov 2019 21:17:52 GMT):
i see ok
GregTheGreek (Wed, 06 Nov 2019 21:18:09 GMT):
this ought to be one of the most challenging things ive done in the last couple weeks lol
GregTheGreek (Wed, 06 Nov 2019 21:18:24 GMT):
I think we finally have it
ajsutton (Wed, 06 Nov 2019 21:40:14 GMT):
Yes, for a process that looks so simple DCO can be a real pain. :)
shemnon (Wed, 06 Nov 2019 22:15:00 GMT):
Ironically the "fix signoff" is where the DCO bot started complaining again.
GregTheGreek (Wed, 06 Nov 2019 22:16:59 GMT):
*throws computer on the ground*
pcmola (Wed, 06 Nov 2019 23:29:14 GMT):
Thanks for the guide and thanks to your help I updated the code. And I think the tilde is '~'. Perhaps what you intended is '`', a grave accent.
pcmola (Wed, 06 Nov 2019 23:42:03 GMT):
As you pointed out, I confirmed that I entered a different private key. After correcting, Besu confirmed normal operation. Thank you.
pcmola (Wed, 06 Nov 2019 23:42:03 GMT):
As you pointed out, I confirmed that I entered a different private key. After correcting, I confirmed Besu normal operation. Thank you.
pcmola (Wed, 06 Nov 2019 23:42:03 GMT):
As you pointed out, I confirmed that I entered a different private key. Since I corrected, I confirmed that Besu was working fine. Thank you.
pcmola (Wed, 06 Nov 2019 23:42:03 GMT):
As you pointed out, I confirmed that I entered a different node 1address. Since I corrected, I confirmed that Besu was working fine. Thank you.
pcmola (Wed, 06 Nov 2019 23:42:03 GMT):
As you pointed out, I confirmed that I entered a different node 1 address. Since I corrected, I confirmed that Besu was working fine. Thank you.
pcmola (Wed, 06 Nov 2019 23:42:03 GMT):
As you pointed out, I confirmed that I entered a different node 1 address. After I corrected, I confirmed that Besu was working fine. Thank you.
RealDeanZhao (Thu, 07 Nov 2019 02:07:18 GMT):
@faraggi Seems grid is a desktop tool, not a server tool for ops.
RealDeanZhao (Thu, 07 Nov 2019 02:07:18 GMT):
@faraggi Seems grid is a desktop tool, not a server tool for ops and network administrator.
RealDeanZhao (Thu, 07 Nov 2019 02:07:18 GMT):
@faraggi Seems grid is a desktop tool, not a server tool for ops and network administrators.
RealDeanZhao (Thu, 07 Nov 2019 02:07:18 GMT):
@faraggi Seems grid is a desktop tool, not a server tool with GUI for ops and network administrators.
faraggi (Thu, 07 Nov 2019 08:23:18 GMT):
For additional context, this question is in relation to the issues:
(old) https://pegasys1.atlassian.net/browse/PAN-3184
(new) https://jira.hyperledger.org/browse/BESU-65
faraggi (Thu, 07 Nov 2019 08:25:52 GMT):
Yes, that's in fact the main difference. Gris purpose is more for developers trying out different clients and configs.
Nabilel 1 (Thu, 07 Nov 2019 15:12:31 GMT):
Has joined the channel.
tvanepps (Thu, 07 Nov 2019 20:59:20 GMT):
Has joined the channel.
MathiasGlintborg (Fri, 08 Nov 2019 07:26:42 GMT):
Has joined the channel.
MathiasGlintborg (Fri, 08 Nov 2019 07:26:47 GMT):
Hi. Is it possible to use Besu as public consortium interchain?. I want to build a permissioned network where selected nodes can read/write/transact, but also have a token which can be public. This also means that public nodes must be able to read and broadcast transactions to the network.
hiteshjoshi1 (Fri, 08 Nov 2019 07:47:31 GMT):
Has joined the channel.
NicolasMassart (Fri, 08 Nov 2019 09:08:03 GMT):
Hi, can you explain me a few things? What do you mean by interchain? What do you mean by a node having a public token?
GregTheGreek (Fri, 08 Nov 2019 18:03:59 GMT):
https://github.com/hyperledger/besu/pull/176
GregTheGreek (Fri, 08 Nov 2019 18:04:06 GMT):
FINALLY GOT THE DCO
GregTheGreek (Fri, 08 Nov 2019 18:04:06 GMT):
FINALLY GOT THE DCO (sorry for spam)
shemnon (Fri, 08 Nov 2019 18:17:05 GMT):
merged
eum602 (Fri, 08 Nov 2019 22:29:24 GMT):
Hello everyone, we are working with JAVA to deploy private transactions; I wonder if there is a library to do that with private transactions. For example Quorum have an extended library for web3j which allows to deploy private transaction (web3j-quorum)
shemnon (Sat, 09 Nov 2019 00:41:49 GMT):
Have you looked at the Web3J Besu libraries? https://github.com/web3j/web3j/blob/master/besu/src/main/java/org/web3j/protocol/besu/Besu.java
shemnon (Sat, 09 Nov 2019 00:42:15 GMT):
If something is not covered there I bet Web3Labs would like to hear about it.
mojo (Sat, 09 Nov 2019 14:26:35 GMT):
Has joined the channel.
mojo (Sat, 09 Nov 2019 14:26:36 GMT):
Hi! My name is Mohamed and I am one of the cofounders of Blok-Z. I was invited here by Faisal from the PegaSys team. Nice to meet you all!
I've been going through the Besu documentation and the following section made we wonder:
"We do not recommend putting bootnodes behind a load balancer. Put more bootnodes on the network itself."
*See*: https://besu.hyperledger.org/en/latest/HowTo/Deploy/Bootnodes/
What is the rationale behind the recommendation? Is it due to:
1. Issues arising from requests to the bootnode appearing to originate from the load balancer instead of from peers.
2. Or the added hassle to collect request logs from both bootnodes as well as the load balancer
Or some other reason altogether?
Thanks!
mojo (Sat, 09 Nov 2019 14:26:36 GMT):
Hi! My name is Mohamed and I am one of the cofounders of Blok-Z. I was invited here by Faisal from the PegaSys team. Nice to meet you all!
I've been going through the Besu documentation and the following section made we wonder:
"We do not recommend putting bootnodes behind a load balancer. Put more bootnodes on the network itself."
*See*: https://besu.hyperledger.org/en/latest/HowTo/Deploy/Bootnodes/
What is the rationale behind the recommendation? Is it due to:
1. Issues arising from requests to the bootnode appearing to originate from the load balancer instead of from peers.
2. And/Or the added hassle to collect request logs from both bootnodes as well as the load balancer
3. And/Or is it to maximize the number of P2P connections that can be established with the bootnode
Or is it some other reason altogether?
Thanks!
sigma67 (Sat, 09 Nov 2019 21:14:17 GMT):
Has joined the channel.
camilo5972 (Sun, 10 Nov 2019 17:24:36 GMT):
Has joined the channel.
camilo5972 (Sun, 10 Nov 2019 17:24:38 GMT):
Hello everyone, I'm using web3j with Besu protocol (https://github.com/web3j/web3j/blob/master/besu/src/main/java/org/web3j/protocol/besu/Besu.java). I can make a private transaction but I can't get the result of a call in the contract. I'm using this to load the contract: "contract.load(address ..., Besu ..., BesuPrivateTransactionManager ..., BesuPrivacyGasProvider ...)" and for call "contract.myfunction(param).send()" but nothing returns.
camilo5972 (Sun, 10 Nov 2019 17:32:01 GMT):
or if someone has examples of how to use web3j-besu for interaction with smart contracts it would be very helpful. In a context of private transactions.
joshuafernandes (Sun, 10 Nov 2019 20:52:12 GMT):
Hi @mojo Mainly 1. This is because the node's enode is tied to the IP of the bootnode itself so this doesn't quite work when behind a load balancer. For redundancy what we'd recommend is multiple bootnodes and keeping their IP's & keys static so that should they fail for some reason, automation can recover them with the same enode. Logs are fine as is - where possible we'd recommend using a log collation tool to make life easier - eg: ELK, Sumo, Fluentd etc
MohamedAbdulaziz (Sun, 10 Nov 2019 22:48:19 GMT):
Has joined the channel.
sanket1211 (Mon, 11 Nov 2019 06:19:12 GMT):
can anyone tell how besu is different from ethreum client and what was the need to introduce besu when there were ethreum clients..
madelinemurray (Mon, 11 Nov 2019 10:01:27 GMT):
@camilo5972 - it looks like this is probably related to web3j. I see you've already posted over on their gitter - hopefully they can help you out :-)
mojo (Mon, 11 Nov 2019 11:17:20 GMT):
Ahh that makes a lot of sense! So if either the public key, IP or port changes then the bootnode's enode will be different. Therefore, nodes won't be able to connect to that bootnode on startup, right?
Thanks a lot for the explanation and suggestions!
mojo (Mon, 11 Nov 2019 11:34:25 GMT):
Hyperledger Besu is an enterprise-focused Ethereum client. It is designed with permissioning and privacy features out of the gate. It is also written in Java, popularly used in enterprise software, which means that companies will be more willing to try Besu out and contribute.
One other important distinction between other clients such as Geth and Quorum is licensing. Besu is under the Apache 2.0 license while Geth and Quorum fall under GPL. GPL forces derivative work to be open-sourced. This is a big obstacle for most businesses that want to extend Ethereum clients using their own proprietary software.
These are just some of the differences that I know which make Besu a compelling Ethereum client option for enterprise.
Hyperledger Besu is an open source Ethereum client developed under the Apache 2.0 license and written in Java. It can be run on the Ethereum public network or on private permissioned networks, as well as test networks such as Rinkeby, Ropsten, and Görli. Hyperledger Besu includes several consensus algorithms including PoW, PoA, and IBFT, and has comprehensive permissioning schemes designed specifically for uses in a consortium environment.
mojo (Mon, 11 Nov 2019 11:35:42 GMT):
Hyperledger Besu is an enterprise-focused Ethereum client. It is designed with permissioning and privacy features out of the gate. It is also written in Java, popularly used in enterprise software, which means that companies will be more willing to try Besu out and contribute.
One other important distinction between other clients such as Geth and Quorum is licensing. Besu is under the Apache 2.0 license while Geth and Quorum fall under GPL. GPL forces derivative work to be open-sourced. This is a big obstacle for most businesses that want to extend Ethereum clients using their own proprietary software.
These are just some of the differences that I know which make Besu a compelling Ethereum client option for enterprise.
kunju_shihas (Mon, 11 Nov 2019 12:51:24 GMT):
Has joined the channel.
camilo5972 (Mon, 11 Nov 2019 15:42:56 GMT):
I already solved my problem. Apparently it was something in my node configuration. Now I can write and read private transactions using web3j.
camilo5972 (Mon, 11 Nov 2019 19:20:46 GMT):
Anyone know how I can read the events emitted by a private contract with Web3J or directly with JSON-RPC?
shemnon (Mon, 11 Nov 2019 22:00:24 GMT):
We have a Besu Contributor Call today at 0100 UTC (11am Brisbane, 5pm SF, 8pm NY, middle of night Eurooe). Adrian Sutton will be the host. If you have anything to discuss please add it to the agenda: https://wiki.hyperledger.org/display/BESU/2019-11-12+Besu+Contributor+Call
shemnon (Mon, 11 Nov 2019 22:00:24 GMT):
We have a Besu Contributor Call today at 0100 UTC (11am Brisbane, 5pm SF, 8pm NY, middle of night Europe). Adrian Sutton will be the host. If you have anything to discuss please add it to the agenda: https://wiki.hyperledger.org/display/BESU/2019-11-12+Besu+Contributor+Call
eum602 (Mon, 11 Nov 2019 22:27:49 GMT):
Hello Besu team, I am having an issue with a regular node: ```
Context: This node has the rpc port opened to any connection
```
eum602 (Mon, 11 Nov 2019 22:35:15 GMT):
Hello Besu team, I am having an issue with a regular node:
Context: This node has the rpc port opened to any connection.
The problem is the high cpu usage the vm is consuming:
eum602 (Mon, 11 Nov 2019 22:36:22 GMT):
top-monitoring
eum602 (Mon, 11 Nov 2019 22:36:42 GMT):
When checking Logs these show an error periodically(every 15 seconds aproximately):
eum602 (Mon, 11 Nov 2019 22:37:49 GMT):
error-vertx
eum602 (Mon, 11 Nov 2019 22:38:22 GMT):
Please I would like to know how can we deal with this issue. Thanks in advance
EdJoJob (Mon, 11 Nov 2019 22:57:16 GMT):
you are totally correct
ajsutton (Mon, 11 Nov 2019 23:00:02 GMT):
I would strongly recommend against opening the JSON-RPC to any internet traffic. Most likely there are bots spamming it in an attempt to steal funds from any unlocked accounts (besu doesn't include a wallet to avoid this problem but that won't stop them trying). Or they may just be spamming it as a DOS attempt to cause trouble.
eum602 (Mon, 11 Nov 2019 23:18:56 GMT):
In fact I have tested that closing the rpc decreases the cpu resource usage. But I would like to know why this error is appearing and why it is consuming so much cpu?
eum602 (Mon, 11 Nov 2019 23:19:19 GMT):
Clipboard - November 11, 2019 6:19 PM
ajsutton (Mon, 11 Nov 2019 23:20:43 GMT):
Most likely it's using a lot of CPU because someone is executing a lot of requests - probably as fast as they can send them and potentially asking Besu to perform complex tasks like via calls to eth_call. The error indicates that they send the request and disconnect before receiving the response - we should reduce the log level it's printed at.
ajsutton (Mon, 11 Nov 2019 23:21:44 GMT):
It looks very much like someone is performing a deliberate DOS attack on the node.
shemnon (Tue, 12 Nov 2019 00:41:05 GMT):
I can confirm that even on a testnet that snoppers will start port scanning IPs of nodes that are connected and making calls on the RPC designed to attack lax security.
MathiasGlintborg (Tue, 12 Nov 2019 04:30:57 GMT):
Hi @NicolasMassart thank you for the reply. And sorry for the late reply. Let me remulate the question since the last one was a little unclear. I would like to build a consortium chain run by selected participants and with a native token. On top of that I want to deploy a collateral debt position contract for a payment token that can only be used inside the network.
MathiasGlintborg (Tue, 12 Nov 2019 04:31:18 GMT):
The native token will be listed on crypto exchanges
MathiasGlintborg (Tue, 12 Nov 2019 04:32:06 GMT):
I'm wondering if Hyperledger Besu is suitable for this?
syuta-sugawara (Tue, 12 Nov 2019 09:29:17 GMT):
hi,i created free gas private network with besu.
now i cannot send transaction by using web3js.
i created raw transaction like this.
const rawTx = {
nonce: this.web3.utils.numberToHex(tempNonce),
gasPrice: this.web3.utils.toHex(0),
gasLimit: this.web3.utils.toHex(126165),
to: this.contractAddress,
data: functionAbi,
from: address,
};
when i tried to send transaction, i got this error.
Error: Returned error: Invalid params
how can i solve this?
NicolasMassart (Tue, 12 Nov 2019 09:44:34 GMT):
If it's listed on crypto exchange, does it mean available on mainnet? So you need a nodes with a link to mainnet where your public token will be and a private chain with your private token and contract?
syuta-sugawara (Tue, 12 Nov 2019 09:45:36 GMT):
hi, should i use web3.js-eea for sending transaction to besu nodes?
what's the difference between web3.js-eea and web3.js when we send transaction to besu nodes?
NicolasMassart (Tue, 12 Nov 2019 09:50:56 GMT):
Hi, web3.js-eea is only if you need to use Besu privacy features https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/
Otherwise, the regular web3.js is fine (for instance if interacting with public networks like mainnet or public test nets).
syuta-sugawara (Tue, 12 Nov 2019 09:51:39 GMT):
sure. thanks!
syuta-sugawara (Tue, 12 Nov 2019 10:01:01 GMT):
i'd like to send transaction from server side by using node js.
should i use this command when starting besu?
--permissions-accounts-config-file-enabled
NicolasMassart (Tue, 12 Nov 2019 10:06:41 GMT):
It's not related to server side (by the way, server side or client side works the same, you call a JSON-RPC API). The `--permissions-accounts-config-file-enabled` option enables the use of a local configuration file to set the account whitelist: https://besu.hyperledger.org/en/stable/HowTo/Limit-Access/Local-Permissioning/#permissions-configuration-file
syuta-sugawara (Tue, 12 Nov 2019 10:09:23 GMT):
you mean, i don't need to use this command?
--permissions-accounts-config-file-
syuta-sugawara (Tue, 12 Nov 2019 10:09:23 GMT):
you mean, i don't need to use this command?
--permissions-accounts-config-file-enabled
carlosfaria (Tue, 12 Nov 2019 10:44:34 GMT):
Hello, It's possible to run only 1 node with IBFT 2.0 consensus? (only to have a lite environment to run integration tests)
faraggi (Tue, 12 Nov 2019 10:52:02 GMT):
Nope, that command is only related to permissioning configuration.
If you use it or not, would depend on how you configure your node's permissions.
faraggi (Tue, 12 Nov 2019 10:57:03 GMT):
Hi Carlos, see here for minimum requirements for networks: https://besu.hyperledger.org/en/stable/Concepts/Consensus-Protocols/Comparing-PoA/#minimum-number-of-validators
carlosfaria (Tue, 12 Nov 2019 11:01:43 GMT):
Thank you @faraggi
faraggi (Tue, 12 Nov 2019 11:12:08 GMT):
wait, I just tried setting it up with 1 node, and it works.
So I guess for tests, you can do it
faraggi (Tue, 12 Nov 2019 11:12:11 GMT):
```
$ curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' localhost:8545
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x0"
}%
```
carlosfaria (Tue, 12 Nov 2019 11:12:48 GMT):
Yeah, it says on the docs that you sent `Networks with 3 or less validators are able to produce blocks but do not guarantee finality when operating in adversarial environments.`
faraggi (Tue, 12 Nov 2019 11:13:06 GMT):
Jus make sure to modify the `ibftConfigFile` file
faraggi (Tue, 12 Nov 2019 11:13:26 GMT):
```
},
"blockchain": {
"nodes": {
"generate": true,
"count": 4
}
}
}
```
here ^
eum602 (Tue, 12 Nov 2019 15:55:41 GMT):
Hello everyone, we are working on private contracts working with java; we would like to know how if it is possible to FILTER events in private transactions; and also if it is possible to SUBSCRIBE to events related to private transactions. I appreciate all responses. Thanks a lot!
eum602 (Tue, 12 Nov 2019 15:57:50 GMT):
Thanks for both responses!
cam-parra (Tue, 12 Nov 2019 17:23:08 GMT):
How have the persistent data problems been solved on then k8s implementation of Besu? Does any know?
matkt (Tue, 12 Nov 2019 20:55:29 GMT):
Has joined the channel.
syuta-sugawara (Wed, 13 Nov 2019 03:36:57 GMT):
hi.
i set public key in genesis file like this.
fe3b557e8fb62b89f4916b721be55ceb828dbd73
syuta-sugawara (Wed, 13 Nov 2019 03:36:57 GMT):
hi.
i set address in genesis file like this.
0xfe3b557e8fb62b89f4916b721be55ceb828dbd73
but this address is shown when i deploy contract to besu node with truffle.
0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73
which should i use?
ajsutton (Wed, 13 Nov 2019 03:50:40 GMT):
The use of upper and lower case letters doesn't affect the actual resulting address so both are referring to the same account. Truffle is capitalising some letters as a form of checksumming to help detect mistyped addresses. It's common for wallets, including metamask, to verify this checksum and alert the user they may have entered the address incorrectly, but clients like Besu will treat both addresses as the same.
syuta-sugawara (Wed, 13 Nov 2019 05:27:23 GMT):
sure
syuta-sugawara (Wed, 13 Nov 2019 05:27:28 GMT):
thanks
syuta-sugawara (Wed, 13 Nov 2019 05:29:07 GMT):
i'm trying to send transaction to private besu nodes.
should i use ethsigner?
i don't need to use it?
https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/
syuta-sugawara (Wed, 13 Nov 2019 06:12:48 GMT):
hi.
when i send transaction to gas free network,what value should i set gas price and gas limit in raw transaction?
syuta-sugawara (Wed, 13 Nov 2019 06:12:48 GMT):
hi.
when i send transaction to gas free network,what value should i set gas price and gas limit in raw transaction?
i've gotten this error.
Error: Returned error: Intrinsic gas exceeds gas limit
syuta-sugawara (Wed, 13 Nov 2019 09:19:13 GMT):
hello.
I used "ethereumjs-tx": "^2.1.1" and "web3": "^1.2.1" for sending send a signed transaction to besu, however those don't work,
so i changed those versions like this.
"ethereumjs-tx": "^1.3.7",
"web3": "^1.0.0-beta.55"
these worked.
I use besu version v1.3.2.
I'd like to use newer versions. how can I do that?
syuta-sugawara (Wed, 13 Nov 2019 09:19:13 GMT):
sorry to bothering you.
I used "ethereumjs-tx": "^2.1.1" and "web3": "^1.2.1" for sending send a signed transaction to besu, however those don't work,
so i changed those versions like this.
"ethereumjs-tx": "^1.3.7",
"web3": "^1.0.0-beta.55"
these worked.
I use besu version v1.3.2.
I'd like to use newer versions. how can I do that?
coenie (Wed, 13 Nov 2019 10:52:04 GMT):
Has joined the channel.
coenie (Wed, 13 Nov 2019 10:52:05 GMT):
Hi, do you perhaps have any data on time to perform EVM opcodes on besu that you could share?
shemnon (Wed, 13 Nov 2019 15:47:48 GMT):
We don't have low level benchmarks of that yet, and some opcodes (such as SLOAD and SSTORE) vary based on state size. Were you concerned about mainnet performance or consortium performance?
jimjag (Wed, 13 Nov 2019 17:10:54 GMT):
Has joined the channel.
cam-parra (Wed, 13 Nov 2019 18:24:54 GMT):
Does anyone have a copy of the docker file that is used to make this image? https://hub.docker.com/r/hyperledger/besu
shemnon (Wed, 13 Nov 2019 18:26:23 GMT):
Likely this one, or a lightly modified version - https://github.com/hyperledger/besu/blob/master/docker/Dockerfile
cam-parra (Wed, 13 Nov 2019 18:27:14 GMT):
Thank you, Danno!
mojo (Wed, 13 Nov 2019 19:03:22 GMT):
enode
coenie (Wed, 13 Nov 2019 19:54:37 GMT):
Hi, consortium performance. Our smart contracts are quite complex and gas heavy, and some statistics on how that translates into how long a given smart contract function actually takes to execute would be super useful. I know it wouldn't be accurate, but it would help guide certain discussions and decisions we make :)
shemnon (Wed, 13 Nov 2019 19:57:15 GMT):
How much are you working with storage and how much are you doing on-chain calculations (like cryptography)?
EdJoJob (Wed, 13 Nov 2019 20:57:55 GMT):
I can confirm that it is exactly that one
ajsutton (Wed, 13 Nov 2019 21:00:37 GMT):
FYI the Rinkeby testnet recently reached it's Istanbul fork block. Our Besu 1.3.4 node has handled it fine.
shemnon (Wed, 13 Nov 2019 22:11:15 GMT):
I love the "nothingburger" transitions.
lucassaldanha (Thu, 14 Nov 2019 00:48:59 GMT):
Awesome!
coenie (Thu, 14 Nov 2019 06:01:42 GMT):
For the cases which I'm investigating it is primarily storage with few calculations
bobsummerwill (Thu, 14 Nov 2019 15:36:00 GMT):
Has joined the channel.
Radhi (Thu, 14 Nov 2019 15:39:39 GMT):
Has joined the channel.
cam-parra (Thu, 14 Nov 2019 18:27:50 GMT):
Quick question: What ports are exposed on a Besu node? Is that configurable in the genesis or is it a preset?
cam-parra (Thu, 14 Nov 2019 18:27:50 GMT):
Quick question: What ports are exposed on a Besu node? Is that configurable in the genesis or is it a preset? (in indy we expose 2 ports a client and node port, that is set in our genesis)
coenie (Thu, 14 Nov 2019 18:34:40 GMT):
There are several ports exposed, but not configured in genesis though. Here is a starting point: https://besu.hyperledger.org/en/stable/Reference/API-Methods/.
Here are some options that can be specified in the genesis config: https://besu.hyperledger.org/en/stable/Reference/Config-Items/
coenie (Thu, 14 Nov 2019 18:34:40 GMT):
There are several ports exposed, but not configured in genesis (file) though. Here is a starting point: https://besu.hyperledger.org/en/stable/Reference/API-Methods/.
Here are some options that can be specified in the genesis config: https://besu.hyperledger.org/en/stable/Reference/Config-Items/
shemnon (Thu, 14 Nov 2019 18:49:44 GMT):
5 ports right now, only one is "required". All via CLI or a config .toml. Only P2P/Discovery is opened by default.
30303 - P2P/Discovery (tcp and udp) - `--p2p-port`
8545 - JSON-RPC APIs (tcp, optional) - `--rpc-http-port`
8546 - Websockets APIs (tcp, optional) - `--rpc-ws-port`
8547 - Graphql queries (tcp, optional) - `--graphql-port`
9545 - metrics (prometheus format, tcp, optional) `--metrics-port`
shemnon (Thu, 14 Nov 2019 18:51:08 GMT):
all the servers are enabled via `--
mattatkiva (Thu, 14 Nov 2019 19:34:19 GMT):
what about ENS? does that require additional ports?
shemnon (Thu, 14 Nov 2019 19:43:53 GMT):
I believe ENS is resolved via the JSON-RPC apis., so 8545.
eum602 (Thu, 14 Nov 2019 21:11:47 GMT):
Hello, how can I be able to make comments on Jira?, for example here: https://wiki.hyperledger.org/display/BESU/Switchable+Consensus+Parameters
EdJoJob (Thu, 14 Nov 2019 21:50:42 GMT):
Hi @eum602, I believe you should be able to login to that site using the same credentials you used to sign-in here and you should have comment access
eum602 (Thu, 14 Nov 2019 22:00:52 GMT):
thanks.
RealDeanZhao (Fri, 15 Nov 2019 02:53:19 GMT):
For a 4-org consortia, should we use ibftConfigFile to generate the genesis config file? No org want to share his private key with other orgs.
RealDeanZhao (Fri, 15 Nov 2019 02:56:03 GMT):
Another situation, can the first org set up the network with only one node in the genesis file? And then, use the ibft api to add other 3 nodes one by one?
RealDeanZhao (Fri, 15 Nov 2019 02:56:03 GMT):
Another situation, can the first org set up the network with only one node in the genesis file, and then, use the ibft api to add other 3 nodes one by one?
RealDeanZhao (Fri, 15 Nov 2019 03:03:20 GMT):
Or should we wait until there have 4 nodes to start the network.
NicolasMassart (Fri, 15 Nov 2019 12:00:06 GMT):
Yes you can start with one validator and add other validators. The important thing is that you have to vote the new validator (make the addValidator call) on enough validators to reach the consensus. If you have only one node to start with, the consensus (51%) is reached by voting only on this node. Then to add a third node, you have to vote on node 1 and node 2. To ad a 4th node, vote on at least on 2 of the 3 validators nodes, and so on.
AzizMezzi (Fri, 15 Nov 2019 14:10:27 GMT):
Has joined the channel.
faraggi (Fri, 15 Nov 2019 14:12:42 GMT):
In the spirit of improving the way we communicate and the information you receive, we've put together a short survey to gather your feedback. All answers are optional, and we'd love to hear what you have to say:
https://forms.gle/oRZpzHzPU4FPy1qc6
SamuelDare (Fri, 15 Nov 2019 14:47:56 GMT):
does anyone know what the status of this is?
SamuelDare (Fri, 15 Nov 2019 14:47:57 GMT):
https://github.com/ConsenSys/ethereum-dissectors
SamuelDare (Fri, 15 Nov 2019 14:48:33 GMT):
I am trying to chaos test different clients and would like to observe messages over the wire
AzizMezzi (Fri, 15 Nov 2019 14:51:13 GMT):
Hi, we 've setup a 4 besu nodes, all working fine, deployed contracts. But I want to create accounts, like web3.eth.personal.newAccount even with geth command personal.newAccounts , but I can't. It says that ether undefined or the method does not exists. I've tried metamask to relate it with nodes but it's not possible. Can you guys help me, please?
NicolasMassart (Fri, 15 Nov 2019 15:38:39 GMT):
Besu does not provide account management, on purpose for security reasons. https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/
NicolasMassart (Fri, 15 Nov 2019 17:20:18 GMT):
Status of the project seems to be that it's unmaintained but code can probably still be used. It would just require a fork and new maintainers if you want to keep it alive.
shemnon (Fri, 15 Nov 2019 20:30:44 GMT):
They negotiate per-session symmetric keys. It would require the same level of maniulation that watching a SSL connection live would require. If you turn on trace debugging we do spit out a lot of the P2P messages, but it's not in a common format and theres also a bunch of EVM traceing too.
SamuelDare (Sat, 16 Nov 2019 10:06:45 GMT):
|Thanks... think i am going to go with tcpdump and feed it into wireshark so its easier to make like for like comparisons
SamuelDare (Sat, 16 Nov 2019 10:07:57 GMT):
Maintain that? I wouldnt trust any C++ code written by me
eum602 (Sat, 16 Nov 2019 19:39:30 GMT):
Hello everyone, I am using orion and Besu, I have troubles when I try to create a group with createPrivacyGroup:
```
{
"jsonrpc": "2.0",
"method": "priv_findPrivacyGroup",
"params": [
["6v46IAyxnLmuiVNNMykdwlgLyDFDOy8HJSl66eSpwRc=", "2t0IA54d2SaezQVGDfGV9juGMxlQl6OIccVwUgXVOTg="]
],
"id": 1
}```
The group is only created on the node that was involved in the rpc url, but not on the other node.
If I deploy on nodes that are on localhost then all works well, the problem appears when I try to do the same on nodes that are on cloud VM. On VM I have opened the nodeport; the client port only listens on localhost because each orion node is on the same VM with the BESU node.
I would like to receive some suggests about hot to deal with this issue. Thanks!
lucassaldanha (Sun, 17 Nov 2019 20:14:38 GMT):
Hi, could you confirm if your Orion nodes are connected to each other? One way that you could test this is sending a payload using /send and trying to receive it in another node using /receive.
Also, double check your Orion config to ensure that you have configured the nodeurl with an reachable endpoint, as this is the url that Orion will advertise.
It would help if you could share your Orion config file (for the local nodes and the nodes running on cloudVM).
Your problem seems to be related to network config. This is a common issue when using Docker or VMs. Take a look at this repo (https://github.com/lucassaldanha/besu-three-nodes-example). It is a docker config but it might help you to see the required config options.
eum602 (Sun, 17 Nov 2019 21:24:28 GMT):
the config in my pc is :
eum602 (Sun, 17 Nov 2019 21:24:33 GMT):
Clipboard - November 17, 2019 4:24 PM
lucassaldanha (Sun, 17 Nov 2019 21:26:52 GMT):
I believe you need to update your nodeurl property to something that is reachable by the other nodes.
Unless you are running all nodes locally, this nodeurl won't work.
eum602 (Sun, 17 Nov 2019 21:27:27 GMT):
for my cloud config is:
eum602 (Sun, 17 Nov 2019 21:27:31 GMT):
Clipboard - November 17, 2019 4:27 PM
eum602 (Sun, 17 Nov 2019 21:28:06 GMT):
as you mention i have opened the nodeport
lucassaldanha (Sun, 17 Nov 2019 21:28:20 GMT):
I'm not talking about nodeport, I'm talking about nodeurl :)
lucassaldanha (Sun, 17 Nov 2019 21:28:56 GMT):
The ports need to be open, but the url also need to be reachable by external nodes
eum602 (Sun, 17 Nov 2019 21:31:19 GMT):
ok, great, Iwill try it. :)
lucassaldanha (Sun, 17 Nov 2019 21:31:20 GMT):
(similar to what you did in the othernodes, using the external addresses)
lucassaldanha (Sun, 17 Nov 2019 21:31:30 GMT):
Ok! Let me know how it goes!
eum602 (Sun, 17 Nov 2019 21:31:38 GMT):
thanks a lot!
syuta-sugawara (Mon, 18 Nov 2019 01:20:28 GMT):
hello.
sorry so suddenly.
I used "ethereumjs-tx": "^2.1.1" and "web3": "^1.2.1" for sending send a signed transaction to besu, however those don't work,
so i changed those versions like this.
"ethereumjs-tx": "^1.3.7",
"web3": "^1.0.0-beta.55"
these worked.
I use besu version v1.3.2.
I'd like to use newer versions. how can I do that?
MathiasGlintborg (Mon, 18 Nov 2019 01:39:45 GMT):
@NicolasMassart initially it will be issued on Ethereum with ERC-20 and listed on mainstream crypto exchanges. We are currently designing our own blockchain, and yes, once that one runs on MainNet we will migrate from Ethereum to that one. We are currently exploring different blockchain frameworks that accommodate our requirements. We want to build a consortium network with known node participants, the native and public traded token, a CDP contract similar to DAI, and payment tokens that the CDP will create. It's only the native token that will be listed on exchanges.
syuta-sugawara (Mon, 18 Nov 2019 02:15:53 GMT):
hi.
I'd like to confirm this node status.
i deployed besu node on aws. then now I'm watching log.
i created private network with three nodes by using ibft.
does this log show that this node work as a peering node?
syuta-sugawara (Mon, 18 Nov 2019 02:16:00 GMT):
besu.png
trent.mohay (Mon, 18 Nov 2019 03:15:41 GMT):
Hi @syuta-sugawara The lines containing "IbftRound" imply the node producing this log file is acting as a validator in the network and appears to be receiving the expected numbers of prepare/commit messages.
If you require further information, you can turn on DEBUG (or maybe TRACE) logging, which will show you all of the reception/transmission of each prepare/commit messages (but will also produce _a lot_ of noise)
syuta-sugawara (Mon, 18 Nov 2019 03:18:01 GMT):
thank you for your reply.
syuta-sugawara (Mon, 18 Nov 2019 03:20:55 GMT):
does this log show that this node work as a peering node?
so sorry.
i'd like to get simpler answer like, 'yes' or 'no'...
syuta-sugawara (Mon, 18 Nov 2019 05:00:42 GMT):
hi. how to stop besu by using any command?
faraggi (Mon, 18 Nov 2019 08:14:45 GMT):
Hi @syuta-sugawara , if you're running besu with a docker container, you stop it with: `docker stop
faraggi (Mon, 18 Nov 2019 09:07:02 GMT):
Yes. :)
syuta-sugawara (Mon, 18 Nov 2019 09:14:09 GMT):
thanks!
cam-parra (Mon, 18 Nov 2019 16:10:53 GMT):
Is there a command to generate a genesis that includes 4 nodes? Or does the genesis just declare your boot node?
AzizMezzi (Mon, 18 Nov 2019 16:12:44 GMT):
hi,i created free gas private network with besu. now i cannot send transaction by using web3js. i created raw transaction like this
var txObject = {
nonce: web3.utils.numberToHex(txnCount),
gasPrice: web3.utils.numberToHex(1000),
gasLimit: web3.utils.numberToHex(21000),
to: addressTo,
value: web3.utils.numberToHex(web3.utils.toWei(valueInEther.toString(), 'ether'))
};
when i tried to send transaction, i got this error.
Error: Returned error: Invalid params
how can i solve this?
and thank you
NicolasMassart (Mon, 18 Nov 2019 16:23:01 GMT):
Hi, you can find a full example of transaction sending on our doc site at https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Transactions/#5-send-ether
AzizMezzi (Mon, 18 Nov 2019 16:23:44 GMT):
i use this script and i got that error
NicolasMassart (Mon, 18 Nov 2019 16:44:27 GMT):
can you post the full script you used so I can inspect it?
AzizMezzi (Mon, 18 Nov 2019 16:46:14 GMT):
const Web3 = require('web3')
const ethTx = require('ethereumjs-tx').Transaction ;
const readline = require('readline');
async function askQuestion(query) {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
return new Promise(resolve => rl.question(query, ans => {
rl.close();
resolve(ans);
}))
}
const args = process.argv.slice(2);
// web3 initialization - must point to the HTTP JSON-RPC endpoint
var provider = args[0] || 'http://localhost:8545';
console.log("******************************************");
console.log("Using provider : " + provider);
console.log("******************************************");
var web3 = new Web3(new Web3.providers.HttpProvider(provider))
web3.transactionConfirmationBlocks = 1;
// Sender address and private key
// Second acccount in dev.json genesis file
// Exclude 0x at the beginning of the private key
const addressFrom = '0x627306090abaB3A6e1400e9345bC60c78a8BEf57'
const privKey = Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3', 'hex')
// Receiver address and value to transfer
// Third account in dev.json genesis file
const addressTo = '0xf17f52151EbEF6C7334FAD080c5704D77216b732'
const valueInEther = 2
// Get the address transaction count in order to specify the correct nonce
web3.eth.getTransactionCount(addressFrom, "pending").then((txnCount) => {
// Create the transaction object
var txObject = {
nonce: web3.utils.numberToHex(txnCount),
gasPrice: web3.utils.numberToHex(1000),
gasLimit: web3.utils.numberToHex(21000),
to: addressTo,
value: web3.utils.numberToHex(web3.utils.toWei(valueInEther.toString(), 'ether'))
};
// Sign the transaction with the private key
var tx = new ethTx(txObject);
tx.sign(privKey)
//Convert to raw transaction string
var serializedTx = tx.serialize();
var rawTxHex = '0x' + serializedTx.toString('hex');
// log raw transaction data to the console so you can send it manually
console.log("Raw transaction data: " + rawTxHex);
// but also ask you if you want to send this transaction directly using web3
(async() => {
const ans = await askQuestion("******************************************\n\
Do you want to send the signed value transaction now ? (Y/N):");
if("y" == ans || "Y" == ans){
// Send the signed transaction using web3
web3.eth.sendSignedTransaction(rawTxHex)
.on('receipt', receipt => { console.log('Receipt: ', receipt); })
.catch(error => { console.log('Error: ', error.message); });
console.log("******************************************");
console.log("Value transaction sent, waiting for receipt.");
console.log("******************************************");
}else{
console.log("******************************************");
console.log("You can for instance send this transaction manually with the following command:");
console.log("curl -X POST --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_sendRawTransaction\",\"params\":[\"" + rawTxHex + "\"],\"id\":1}'", provider);
}
})();
})
.catch(error => { console.log('Error: ', error.message); });
AzizMezzi (Mon, 18 Nov 2019 16:46:34 GMT):
const Web3 = require('web3')
const ethTx = require('ethereumjs-tx').Transaction ;
const readline = require('readline');
async function askQuestion(query) {
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
return new Promise(resolve => rl.question(query, ans => {
rl.close();
resolve(ans);
}))
}
const args = process.argv.slice(2);
// web3 initialization - must point to the HTTP JSON-RPC endpoint
var provider = args[0] || 'http://localhost:8545';
console.log("******************************************");
console.log("Using provider : " + provider);
console.log("******************************************");
var web3 = new Web3(new Web3.providers.HttpProvider(provider))
web3.transactionConfirmationBlocks = 1;
// Sender address and private key
// Second acccount in dev.json genesis file
// Exclude 0x at the beginning of the private key
const addressFrom = '0x627306090abaB3A6e1400e9345bC60c78a8BEf57'
const privKey = Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3', 'hex')
// Receiver address and value to transfer
// Third account in dev.json genesis file
const addressTo = '0xf17f52151EbEF6C7334FAD080c5704D77216b732'
const valueInEther = 2
// Get the address transaction count in order to specify the correct nonce
web3.eth.getTransactionCount(addressFrom, "pending").then((txnCount) => {
// Create the transaction object
var txObject = {
nonce: web3.utils.numberToHex(txnCount),
gasPrice: web3.utils.numberToHex(1000),
gasLimit: web3.utils.numberToHex(21000),
to: addressTo,
value: web3.utils.numberToHex(web3.utils.toWei(valueInEther.toString(), 'ether'))
};
// Sign the transaction with the private key
var tx = new ethTx(txObject);
tx.sign(privKey)
//Convert to raw transaction string
var serializedTx = tx.serialize();
var rawTxHex = '0x' + serializedTx.toString('hex');
// log raw transaction data to the console so you can send it manually
console.log("Raw transaction data: " + rawTxHex);
// but also ask you if you want to send this transaction directly using web3
(async() => {
const ans = await askQuestion("******************************************\n\
Do you want to send the signed value transaction now ? (Y/N):");
if("y" == ans || "Y" == ans){
// Send the signed transaction using web3
web3.eth.sendSignedTransaction(rawTxHex)
.on('receipt', receipt => { console.log('Receipt: ', receipt); })
.catch(error => { console.log('Error: ', error.message); });
console.log("******************************************");
console.log("Value transaction sent, waiting for receipt.");
console.log("******************************************");
}else{
console.log("******************************************");
console.log("You can for instance send this transaction manually with the following command:");
console.log("curl -X POST --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_sendRawTransaction\",\"params\":[\"" + rawTxHex + "\"],\"id\":1}'", provider);
}
})();
})
.catch(error => { console.log('Error: ', error.message); });
AzizMezzi (Mon, 18 Nov 2019 16:46:43 GMT):
this is my code
NicolasMassart (Mon, 18 Nov 2019 16:47:15 GMT):
I will have a look.
AzizMezzi (Mon, 18 Nov 2019 16:47:54 GMT):
thank you
NicolasMassart (Mon, 18 Nov 2019 16:50:48 GMT):
can you tell me more about the node you are using? What command line did you use to run it?
AzizMezzi (Mon, 18 Nov 2019 16:56:33 GMT):
the command line to run besu besu --data-path=data --genesis-file=../genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all" --metrics-enabled
AzizMezzi (Mon, 18 Nov 2019 16:56:42 GMT):
for the first node
NicolasMassart (Mon, 18 Nov 2019 17:06:52 GMT):
can you send me your genesis file too so that I can reproduce your setup?
NicolasMassart (Mon, 18 Nov 2019 17:29:55 GMT):
And can you tell me what version of Besu you are using? use `besu -v` command to have the exact version
cam-parra (Mon, 18 Nov 2019 19:52:41 GMT):
Another question for enode URL do you use an aws ec2 private IP or public IP?
EdJoJob (Mon, 18 Nov 2019 20:06:44 GMT):
the genesis file only specifies the first block in the network, and the network hardforks. If you are using a Proof of Authority network, that first block will need to include the `extradata` which specifies the validator nodes. Have a look at https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Clique-Network/ or https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/ which has the generation steps
EdJoJob (Mon, 18 Nov 2019 20:08:49 GMT):
The IP in the enode URL needs to be the IP by which the node would normally be accessible by other nodes in the network. If all nodes are in EC2, then the Private IP can work, but if you are joining to a wider network, or wanting to work with any node outside EC2, then you need to use the Public IP.
cam-parra (Mon, 18 Nov 2019 20:10:58 GMT):
This is very helpful! Thanks for taking the time to answer my questions :)
EdJoJob (Mon, 18 Nov 2019 20:12:04 GMT):
No worries. Happy to help
cam-parra (Mon, 18 Nov 2019 20:57:33 GMT):
Was there a change in 1.3.4 that doesn't create `database` directory when running `~/besu-1.3.4/bin/besu --data-path=data public-key export --to=data/pubkey`?
pcmola (Tue, 19 Nov 2019 00:54:59 GMT):
Hi, when I try to restart besu after stopping besu using Ctrl + C, I get the following DB LOCK error message:
`org.rocksdb.RocksDBException: While lock file: /home2/pcmola/besu-1.3.4/database/LOCK: Resource temporarily unavailable`
Is there any other way than deleting the database directory?
AkihiroTanaka (Tue, 19 Nov 2019 02:03:52 GMT):
Has joined the channel.
syuta-sugawara (Tue, 19 Nov 2019 02:18:38 GMT):
hi.
we use nodejs.
we'd like to send a singed transaction by using below codes.
syuta-sugawara (Tue, 19 Nov 2019 02:18:38 GMT):
hi.
we use nodejs.
we'd like to send a singed transaction by using below codes.
const data = contractInstance
.deploy({ data: contractBytecode, arguments: args })
.encodeABI();
const to = null;
const rawTx = await this.getRawTx(
to,
value,
data,
pendingTxCount,
accountAddress,
gasLimit,
);
syuta-sugawara (Tue, 19 Nov 2019 02:18:38 GMT):
hi.
we use nodejs.
we'd like to send a singed transaction by using below codes.
const data = contractInstance
.deploy({ data: contractBytecode, arguments: args })
.encodeABI();
const to = null;
const rawTx = await this.getRawTx(
to,
value,
data,
pendingTxCount,
accountAddress,
gasLimit,
);
however,
we got these error
Error: Transaction has been reverted by the EVM:↵{↵ "blockHash": "0x6bc7f94edb8ff43cb40ac439d134d4c37700f5c4db51fb10298ac92778215589",↵ "blockNumber": 34599,↵ "contractAddress": "0x42699A7612A82f1d9C36148af9C77354759b210b",↵ "cumulativeGasUsed": 1996831,↵ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",↵ "gasUsed": 1996831,↵ "logs": [],↵ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",↵ "status": false,↵ "to": null,↵ "transactionHash": "0xf6ebec42c12a9745e63eba2f1ab561d947ab4f74260129ecc0ef40bc7a868990",↵ "transactionIndex": 0↵}"
could any one help us?
syuta-sugawara (Tue, 19 Nov 2019 02:18:38 GMT):
hi.
we use nodejs.
we'd like to send a singed transaction by using below codes.
const data = contractInstance
.deploy({ data: contractBytecode, arguments: args })
.encodeABI();
const to = null;
const rawTx = await this.getRawTx(
to,
value,
data,
pendingTxCount,
accountAddress,
gasLimit,
);
however,
we got these error
Error: Transaction has been reverted by the EVM:↵{↵ "blockHash": "0x6bc7f94edb8ff43cb40ac439d134d4c37700f5c4db51fb10298ac92778215589",↵ "blockNumber": 34599,↵ "contractAddress": "0x42699A7612A82f1d9C36148af9C77354759b210b",↵ "cumulativeGasUsed": 1996831,↵ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",↵ "gasUsed": 1996831,↵ "logs": [],↵ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",↵ "status": false,↵ "to": null,↵ "transactionHash": "0xf6ebec42c12a9745e63eba2f1ab561d947ab4f74260129ecc0ef40bc7a868990",↵ "transactionIndex": 0↵}"
could any one help us?
actually sending transaction with above codes works in ethreum public and test net.
syuta-sugawara (Tue, 19 Nov 2019 02:18:38 GMT):
hi.
we use nodejs.
we'd like to send a singed transaction to private network with besu by using below codes.
const data = contractInstance
.deploy({ data: contractBytecode, arguments: args })
.encodeABI();
const to = null;
const rawTx = await this.getRawTx(
to,
value,
data,
pendingTxCount,
accountAddress,
gasLimit,
);
however,
we got these error
Error: Transaction has been reverted by the EVM:↵{↵ "blockHash": "0x6bc7f94edb8ff43cb40ac439d134d4c37700f5c4db51fb10298ac92778215589",↵ "blockNumber": 34599,↵ "contractAddress": "0x42699A7612A82f1d9C36148af9C77354759b210b",↵ "cumulativeGasUsed": 1996831,↵ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",↵ "gasUsed": 1996831,↵ "logs": [],↵ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",↵ "status": false,↵ "to": null,↵ "transactionHash": "0xf6ebec42c12a9745e63eba2f1ab561d947ab4f74260129ecc0ef40bc7a868990",↵ "transactionIndex": 0↵}"
could any one help us?
actually sending transaction with above codes works in ethreum public and test net.
bradyjoestar (Tue, 19 Nov 2019 04:05:23 GMT):
Has joined the channel.
bradyjoestar (Tue, 19 Nov 2019 04:05:24 GMT):
hi, could I connect to ethereum mainnet by besu and send a private transaction? Thanks
lucassaldanha (Tue, 19 Nov 2019 04:20:46 GMT):
Hi, the possibility of using privacy with a Mainnet node is under development.
lucassaldanha (Tue, 19 Nov 2019 04:20:46 GMT):
Hi, using privacy with a Mainnet node feature is under development.
lucassaldanha (Tue, 19 Nov 2019 04:20:46 GMT):
Hi, using privacy with a Mainnet node is under development.
bradyjoestar (Tue, 19 Nov 2019 04:41:07 GMT):
thanks a lot!
AkihiroTanaka (Tue, 19 Nov 2019 04:59:52 GMT):
Hi
I'm trying to deploy ERC1400 contract below to besu by truffle, but I can not because of the error, "The contract code couldn't be stored, please check your gas limit..".
(I can deoly it to ganache)
https://github.com/ConsenSys/ERC1400/blob/master/contracts/token/ERC20/ERC1400ERC20.sol
I can deploy ERC20 contract by Openzeppelin to besu.
Are there any limitation of contract size to deploy?
AkihiroTanaka (Tue, 19 Nov 2019 04:59:52 GMT):
I did it but the same problem is still occurred.
AkihiroTanaka (Tue, 19 Nov 2019 04:59:52 GMT):
Hi
I'm trying to deploy ERC1400 contract below by truffle, but I can't not because of the error, "The contract code couldn't be stored, please check your gas limit..".
https://github.com/ConsenSys/ERC1400/blob/master/contracts/token/ERC20/ERC1400ERC20.sol
I can deploy ERC20 contract by Openzeppelin.
Are there any limitation of contract to deploy?
madelinemurray (Tue, 19 Nov 2019 07:57:58 GMT):
There's a `contractSizeLimit` item in the genesis file - https://besu.hyperledger.org/en/stable/Reference/Config-Items/#configuration-items
syuta-sugawara (Tue, 19 Nov 2019 08:24:59 GMT):
i wrote this.
is this correct?
"config" : {
"chainId" : 2018,
"constantinoplefixblock" : 0,
"ibft2" : {
"blockperiodseconds" : 2,
"epochlength" : 30000,
"requesttimeoutseconds" : 10
},
"contractSizeLimit" : 2147483647
},
faraggi (Tue, 19 Nov 2019 08:46:43 GMT):
@syuta-sugawara yes, that would signal the maximum contract size limit
faraggi (Tue, 19 Nov 2019 08:48:59 GMT):
This might help to get more information: `--revert-reason-enabled`
https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Revert-Reason/
AkihiroTanaka (Tue, 19 Nov 2019 09:36:12 GMT):
I did it but the same problem is still occurred.
AkihiroTanaka (Tue, 19 Nov 2019 09:42:43 GMT):
@madelinemurray @faraggi
I did it but the same problem is still occurred.
Do you have any idea for this?
madelinemurray (Tue, 19 Nov 2019 09:53:02 GMT):
Are you using a free gas network? https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
syuta-sugawara (Tue, 19 Nov 2019 12:39:11 GMT):
yes
AkihiroTanaka (Tue, 19 Nov 2019 12:59:05 GMT):
yes!!
AkihiroTanaka (Tue, 19 Nov 2019 12:59:24 GMT):
@madelinemurray yes!!
shemnon (Tue, 19 Nov 2019 15:16:31 GMT):
That particular error message is coming from truffle, not besu - https://github.com/trufflesuite/truffle/issues/825
cam-parra (Tue, 19 Nov 2019 16:59:36 GMT):
Hi all! thanks again for helping me out. Is there a best way to leave a node running in the background?
cam-parra (Tue, 19 Nov 2019 16:59:36 GMT):
Hi all! thanks again for helping me out. Is there a best practice to leave a node running in the background?
cam-parra (Tue, 19 Nov 2019 23:03:34 GMT):
Also if a validator fails to connect to the enode does the validator try to connect to a default enode?
eum602 (Tue, 19 Nov 2019 23:50:48 GMT):
Related to this problem I have found orion runs out of memory:
eum602 (Tue, 19 Nov 2019 23:50:52 GMT):
Clipboard - November 19, 2019 6:50 PM
eum602 (Tue, 19 Nov 2019 23:52:22 GMT):
initially I had 2 cpu and 4 GB RAM ; I increased to 4 CPU and 8GB RAM but the error persist.
eum602 (Tue, 19 Nov 2019 23:55:03 GMT):
With 4GB of RAM communication with other orion nodes wascontinually interruped, by increasing the ram to 8GB the communication is sustained but errors about RUN OUT OF MEMORY persist periodically.
eum602 (Tue, 19 Nov 2019 23:56:05 GMT):
Also I see this message:
eum602 (Tue, 19 Nov 2019 23:56:12 GMT):
Clipboard - November 19, 2019 6:56 PM
lucassaldanha (Tue, 19 Nov 2019 23:58:31 GMT):
Have you increased the available memory to the JVM? Or have you just increased the memory in the instance?
eum602 (Tue, 19 Nov 2019 23:58:52 GMT):
the memory in the VM isntance
eum602 (Tue, 19 Nov 2019 23:59:15 GMT):
the memory in the VM isntance
lucassaldanha (Wed, 20 Nov 2019 00:02:06 GMT):
Interesting, I'm currently running a test network using AWS t3.large instances, each with 8GB of RAM.
I'm running in the same instance Besu and Orion and haven't had any memory issues.
I'll try to get someone to grab more details with you to sort it out.
lucassaldanha (Wed, 20 Nov 2019 00:12:50 GMT):
@NicolasMassart Would you be available to help?
AkihiroTanaka (Wed, 20 Nov 2019 05:12:57 GMT):
I tried to deploy same contract using sendSignedTransaction of web3.js like below link, but I coudn't.
https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Transactions/
AkihiroTanaka (Wed, 20 Nov 2019 05:12:57 GMT):
I tried to deploy same contract using "sendSignedTransaction" of web3.js like below link, but I coudn't.
https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Transactions/
AkihiroTanaka (Wed, 20 Nov 2019 05:13:15 GMT):
I got the error:
AkihiroTanaka (Wed, 20 Nov 2019 05:14:02 GMT):
I got the error:
Error: Transaction has been reverted by the EVM:↵{↵ "blockHash": "0x6bc7f94edb8ff43cb40ac439d134d4c37700f5c4db51fb10298ac92778215589",↵ "blockNumber": 34599,↵ "contractAddress": "0x42699A7612A82f1d9C36148af9C77354759b210b",↵ "cumulativeGasUsed": 1996831,↵ "from": "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73",↵ "gasUsed": 1996831,↵ "logs": [],↵ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",↵ "status": false,↵ "to": null,↵ "transactionHash": "0xf6ebec42c12a9745e63eba2f1ab561d947ab4f74260129ecc0ef40bc7a868990",↵ "transactionIndex": 0↵}"
AkihiroTanaka (Wed, 20 Nov 2019 05:16:17 GMT):
Does anybody can deploy ERC1400 by ConsenSys to besu?
AkihiroTanaka (Wed, 20 Nov 2019 05:16:17 GMT):
@faraggi
This is my truffle config setting.
besu: {
provider: new HDWalletProvider(process.env.MNEMONIC, process.env.RPC_ENDPOINT),
network_id: '*',
gasPrice:0,
gas: '0x1ffffffffffffe'
},
syuta-sugawara (Wed, 20 Nov 2019 05:50:36 GMT):
hello.
sorry, this is the second time for me to ask this question.
I used "ethereumjs-tx": "^2.1.1" and "web3": "^1.2.1" for sending send a signed transaction to besu, however those don't work,
so i changed those versions like this.
"ethereumjs-tx": "^1.3.7",
"web3": "^1.0.0-beta.55"
these worked.
I use besu version v1.3.2.
I'd like to use newer versions. how can I do that?
syuta-sugawara (Wed, 20 Nov 2019 08:25:52 GMT):
@faraggi
do you know how we can solve this problem?
syuta-sugawara (Wed, 20 Nov 2019 08:26:53 GMT):
@faraggi
i work with him
@AkihiroTanaka
faraggi (Wed, 20 Nov 2019 08:41:10 GMT):
Have you tried the truffle configs @shemnon linked to?
https://github.com/trufflesuite/truffle/issues/825#issuecomment-409036963
faraggi (Wed, 20 Nov 2019 08:44:32 GMT):
`"gasUsed": 1996831`
Might be the problem.
syuta-sugawara (Wed, 20 Nov 2019 08:53:25 GMT):
thank you for your reply.
we are using gas free private network.
do you think that is related to our problem?
syuta-sugawara (Wed, 20 Nov 2019 08:53:25 GMT):
@faraggi
thank you for your reply.
we are using gas free private network.
do you think that is related to our problem?
faraggi (Wed, 20 Nov 2019 08:55:03 GMT):
Can you show what config you're using to run your network?
AkihiroTanaka (Wed, 20 Nov 2019 08:55:50 GMT):
@faraggi
This is my truffle config setting.
besu: {
provider: new HDWalletProvider(process.env.MNEMONIC, process.env.RPC_ENDPOINT),
network_id: '*',
gasPrice:0,
gas: '0x1ffffffffffffe'
},
syuta-sugawara (Wed, 20 Nov 2019 09:42:32 GMT):
hi
what is the maximum contract size in genesis file?
this one?
"contractSizeLimit": 2147483647
syuta-sugawara (Wed, 20 Nov 2019 09:43:16 GMT):
@faraggi also
syuta-sugawara (Wed, 20 Nov 2019 09:43:16 GMT):
@faraggi also
this is the genesis.json
{
"config" : {
"chainId" : 2018,
"constantinoplefixblock" : 0,
"ibft2" : {
"blockperiodseconds" : 2,
"epochlength" : 30000,
"requesttimeoutseconds" : 10
},
"contractSizeLimit" : 2147483647
},
"nonce" : "0x0",
"timestamp" : "0x58ee40ba",
"gasLimit" : "0x1fffffffffffff",
"difficulty" : "0x1",
"mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase" : "0x0000000000000000000000000000000000000000",
"alloc" : {
"fe3b557e8fb62b89f4916b721be55ceb828dbd73" : {
"privateKey" : "praivate key",
"comment" : "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance" : "0xad78ebc5ac6200000"
},
"627306090abaB3A6e1400e9345bC60c78a8BEf57" : {
"privateKey" : "praivate key",
"comment" : "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance" : "90000000000000000000000"
}
},
"extraData" : "0xf869a00000000000000000000000000000000000000000000000000000000000000000f83f941fd210803d9fa01634f1d7e1674b4d7fbff1d677949355dbfc02f162071d03a5bc15d172126577442c94e61cb89f8e601c4ada161f73c6e8531f056df69d808400000000c0"
}
NicolasMassart (Wed, 20 Nov 2019 13:45:08 GMT):
Hi, it may not be related but there's at least one issue in your truffle config because the provider should be a closure instead of a new instance. See https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Private-Network-Quickstart/#truffle-pet-shop-tutorial
As shown in the sample, your provider should be `provider: () => new PrivateKeyProvider(privateKey, "
NicolasMassart (Wed, 20 Nov 2019 13:45:08 GMT):
Hi, it may not be related but there's at least one issue in your truffle config because the provider should be a function instead of a new instance. See https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Private-Network-Quickstart/#truffle-pet-shop-tutorial
As shown in the sample, your provider should be `provider: () => new PrivateKeyProvider(privateKey, "
RealDeanZhao (Wed, 20 Nov 2019 14:42:40 GMT):
```curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_proposeValidatorVote","params":["7c8753c2bf4bea06f95cddbed1946c9ba212c3a9aae700c89a24b4588dabf920d9b2d505b22df1665a92bde8c524836b34b0878bf3d69a3e177d74025a9b7c4c",true], "id":1}' http://127.0.0.1:7545
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -32602,
"message" : "Invalid params"
}
}%```
RealDeanZhao (Wed, 20 Nov 2019 14:43:32 GMT):
Could anyone help me solve the above error?
RealDeanZhao (Wed, 20 Nov 2019 14:45:47 GMT):
```{
"config": {
"chainId": 2018,
"constantinoplefixblock": 0,
"ibft2": {
"blockperiodseconds": 5,
"epochlength": 30000,
"requesttimeoutseconds": 10
}
},
"nonce": "0x0",
"timestamp": "0x58ee40ba",
"extraData": "0xf83ea00000000000000000000000000000000000000000000000000000000000000000d5949811ebc35d7b06b3fa8dc5809a1f9c52751e1deb808400000000c0",
"gasLimit": "0x1fffffffffffff",
"contractSizeLimit": 2147483647,
"difficulty": "0x1",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase": "0xF21028A2aDE5727AcA48a9973C5C0008a89D2153",
"alloc": {
"9811ebc35d7b06b3fa8dc5809a1f9c52751e1deb": {
"balance": "0xad78ebc5ac6200000"
}
}
}```
RealDeanZhao (Wed, 20 Nov 2019 14:58:41 GMT):
how to get the node address of a validator
shemnon (Wed, 20 Nov 2019 15:29:29 GMT):
The first parameter "7c87...7c4c" is not an address, it looks like a public or private key. Addresses are 20 bytes or 40 hex numbers long.
RealDeanZhao (Wed, 20 Nov 2019 15:30:53 GMT):
Thanks, i tried to use /opt/besu/bin/besu public-key export-address to get the correct address just now.
shemnon (Wed, 20 Nov 2019 15:30:58 GMT):
On the node itself this script should work - https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Clique-Network/#2-get-address-for-node-1
RealDeanZhao (Wed, 20 Nov 2019 15:31:29 GMT):
Why not make this as a default step when starting a besu node? The terminal only print the enode on the screen.
shemnon (Wed, 20 Nov 2019 15:31:56 GMT):
Good feedback. I'll open a Jira Issue to add it.
shemnon (Wed, 20 Nov 2019 15:33:57 GMT):
BESU-124
RealDeanZhao (Wed, 20 Nov 2019 15:46:38 GMT):
thanks a lot
RealDeanZhao (Wed, 20 Nov 2019 16:16:36 GMT):
I send a proposeValidatorVote to the first node. how can i approve the propose?
RealDeanZhao (Wed, 20 Nov 2019 16:16:36 GMT):
I send a proposeValidatorVote to the first node(only one node in the network). how can i approve the propose?
RealDeanZhao (Wed, 20 Nov 2019 16:17:00 GMT):
```{
"jsonrpc" : "2.0",
"id" : 1,
"result" : {
"0x208e1fdea2e06187227f1acd200e19c6200a35dd" : true
}
}%```this is the pending proposal
cam-parra (Wed, 20 Nov 2019 17:18:04 GMT):
Has anyone setup a network on EC2 and does anyone have documentation they can share on that process? Our team is currently stuck on trying to do this. We are not to sure how to start and leave a node running (if there is a command to do that) and we also have validators defaulting to the default enode address and not the one specified
shemnon (Wed, 20 Nov 2019 18:02:34 GMT):
`nuhup
shemnon (Wed, 20 Nov 2019 18:02:34 GMT):
`nohup
cam-parra (Wed, 20 Nov 2019 18:46:42 GMT):
Ooops totally forgot about nohup. I also get ```2019-11-20 18:44:19.581+00:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://1b01f66ef6893c1592f98009bcf22114dd152fff6772cf21e39320daaddc72b3071808e7fb504d9b0d32eb2c1f36f6973f29f5df8909b065040e3b9142794458@127.0.0.1:30303``` when I start the enode. Is this normal output?
shemnon (Wed, 20 Nov 2019 19:00:42 GMT):
IS this in a docker? is your 30303 port mapped?
shemnon (Wed, 20 Nov 2019 19:03:05 GMT):
If you are in docker I would recommend `--p2p-host=
shemnon (Wed, 20 Nov 2019 19:03:05 GMT):
If you are in docker I would recommend `--p2p-host=
cam-parra (Wed, 20 Nov 2019 19:04:25 GMT):
Would you do the same if this is an ec2 instance running ubuntu 18.04?
shemnon (Wed, 20 Nov 2019 19:04:43 GMT):
no, I'd jsut do the --p2p-host option
shemnon (Wed, 20 Nov 2019 19:04:43 GMT):
no, I'd jsut do the `--p2p-host` option
shemnon (Wed, 20 Nov 2019 19:19:35 GMT):
`--p2p-host=0.0.0.0` will take whatever the external address is.
cam-parra (Wed, 20 Nov 2019 20:36:59 GMT):
great! That changed the output! So to connect the other validators would I specify the enodes ip?
cam-parra (Wed, 20 Nov 2019 20:37:18 GMT):
replacing the 0.0.0.0 with the ip ?
shemnon (Wed, 20 Nov 2019 21:52:12 GMT):
If you want to be explicit about your IP replace 0.0.0.0 with the IP. If you want to advertise what the networking stack advertisis as your external address, use 0.0.0.0 But for AWS IIRC you will need the actual external address. I think we got some magic scripts to extract it in our setup from AWS calls.
cam-parra (Wed, 20 Nov 2019 23:27:32 GMT):
If you could share those scripts that be great!
joshuafernandes (Wed, 20 Nov 2019 23:40:49 GMT):
Hello @cam-parra We run an ansible script that sets things up for us
joshuafernandes (Wed, 20 Nov 2019 23:40:49 GMT):
Hello @cam-parra We run an ansible galaxy role that sets things up for us
joshuafernandes (Wed, 20 Nov 2019 23:41:31 GMT):
https://galaxy.ansible.com/pegasyseng/hyperledger_besu
joshuafernandes (Wed, 20 Nov 2019 23:42:06 GMT):
Absolutely, agnostic of linux distro - only requirement is systemd
joshuafernandes (Wed, 20 Nov 2019 23:42:06 GMT):
Its agnostic of linux distro - only requirement is systemd
joshuafernandes (Wed, 20 Nov 2019 23:43:01 GMT):
Our process is install jdk11 or greater, then provisioning/updating etc is done via this role
cam-parra (Wed, 20 Nov 2019 23:46:13 GMT):
Nice! I am not too familiar with ansible so I will have to look into this.
joshuafernandes (Wed, 20 Nov 2019 23:46:49 GMT):
Give us a yell if you need a hand, happy to help
joshuafernandes (Wed, 20 Nov 2019 23:48:25 GMT):
Give us a yell if you need a hand, happy to help
cam-parra (Wed, 20 Nov 2019 23:48:46 GMT):
Thanks! All of you have been super helpful :)
RealDeanZhao (Thu, 21 Nov 2019 02:00:54 GMT):
Anyone help me on this?
syuta-sugawara (Thu, 21 Nov 2019 02:52:55 GMT):
hi.
what is the maximum evmStackSize in genesis.json?
syuta-sugawara (Thu, 21 Nov 2019 02:56:00 GMT):
and i wrote genesis.json.
is this correct?
{
"config" : {
"chainId" : 2018,
"constantinoplefixblock" : 0,
"ibft2" : {
"blockperiodseconds" : 2,
"epochlength" : 30000,
"requesttimeoutseconds" : 10
},
"contractSizeLimit" : 2147483647,
"evmStackSize":4096
},
"nonce" : "0x0",
"timestamp" : "0x58ee40ba",
"gasLimit" : "0x1fffffffffffff",
"difficulty" : "0x1",
"mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"coinbase" : "0x0000000000000000000000000000000000000000",
"alloc" : {
},
"extraData" : "0xf869a00000000000000000000000000000000000000000000000000000000000000000f83f941fd210803d9fa01634f1d7e1674b4d7fbff1d677949355dbfc02f162071d03a5bc15d172126577442c94e61cb89f8e601c4ada161f73c6e8531f056df69d808400000000c0"
}
AkihiroTanaka (Thu, 21 Nov 2019 03:00:12 GMT):
@NicolasMassart Thanks for your reply!!
I did it but error is still occurred...
RealDeanZhao (Thu, 21 Nov 2019 03:46:57 GMT):
Hi, I have created one node network of ibft2 on a machine using docker. And i want to the second node to the network. I tried to send the ibft_proposeValidatorVote request first and the vote was pending forever. What's the right way to add the second node to the ibft network?
RealDeanZhao (Thu, 21 Nov 2019 03:46:57 GMT):
Hi, I have created one node network of ibft2 on a machine using docker. And i wanted create the second node to the network. I tried to send the ibft_proposeValidatorVote request first and the vote was pending forever. What's the right way to add the second node to the ibft network?
RealDeanZhao (Thu, 21 Nov 2019 03:46:57 GMT):
Hi, I have created one node network of ibft2 on a machine using docker. And i wanted to add the second node to the network. I tried to send the ibft_proposeValidatorVote request first and the vote was pending forever. What's the right way to add the second node to the ibft network?
RealDeanZhao (Thu, 21 Nov 2019 03:46:57 GMT):
Hi, I have created one node network of ibft2 on a machine using docker. And i wanted to add the second node to the network. I tried to send the ibft_proposeValidatorVote request first and the vote was pending forever. What's the right way to add the second node to the ibft network?
RealDeanZhao (Thu, 21 Nov 2019 03:46:57 GMT):
Hi, I have created one node network of ibft2 on a machine using docker. And i wanted to add the second node to the network. I tried to send the ibft_proposeValidatorVote request first and the vote was pending forever. What's the right way to add the second node to the ibft network?
The extra data was generated by the first node address.
trent.mohay (Thu, 21 Nov 2019 05:36:33 GMT):
Hi @RealDeanZhao, When dealing with IBFT2, there 2 ways to be considered "in the network". The first, is standard Ethereum peering - i.e. are all the nodes in the network communicating using standard Ethereum protocols (i.e. discovering and sharing blocks etc). The second way it needs to be considered is "now that my node is part of the network, how do I make it a validator (i.e. one of the authorised mining nodes)".
shemnon (Thu, 21 Nov 2019 05:38:29 GMT):
A java int, 2^31-1, so 2 Billion. In practice there are other rules to keep this from mattering, like the "all but 1/64th" rule on CALL operations.
trent.mohay (Thu, 21 Nov 2019 05:39:03 GMT):
So there's a few things to work out first:
1. What validators are specified in your Genesis file (encoded in the extra data)
2. Are your nodes connected at a network level?
3. Are blocks being mined (can be determined using the Json RPC documented here https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_blocknumber)
trent.mohay (Thu, 21 Nov 2019 05:40:40 GMT):
So there's a few things to work out first:
1. What validators are specified in your Genesis file (encoded in the extra data)
2. Are your nodes connected at a network level?
3. Are blocks being mined (can be determined using the Json RPC documented here https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_blocknumber)
shemnon (Thu, 21 Nov 2019 05:42:18 GMT):
Seems accurate, it's hard to tell without runnning it. However you have no ether allocations so your nodes will have to run with `--min-gas-price=0` and you won't be able to use gas to limit transactions. I would add some so you at least have the option of turning it on later.
RealDeanZhao (Thu, 21 Nov 2019 05:55:25 GMT):
2019-11-21 05:55:15.051+00:00 | pool-10-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=4, Round=0}, hash=0x849d56129726cfdc6b1cab6a822498e27557e577b3e5cc11623bd0ac648d25f3
RealDeanZhao (Thu, 21 Nov 2019 05:55:32 GMT):
I think the first node is mining
trent.mohay (Thu, 21 Nov 2019 05:56:18 GMT):
I think you're right, that looks really positive - so I take it you've created a Genesis file with just a single validator in the ExtraData?
RealDeanZhao (Thu, 21 Nov 2019 05:56:45 GMT):
yes, single validator
RealDeanZhao (Thu, 21 Nov 2019 05:56:55 GMT):
```docker run -p 7555:8545 \
-p 7556:8545 \
-p 30313:30313 \
-v $PWD/lib/besu:/var/lib/besu \
-v $PWD/besu-data:/besu-data \
-v $PWD/../genesis.json:/genesis.json \
hyperledger/besu:1.3.4 \
--data-path=/besu-data \
--p2p-host=10.244.200.77 \
--p2p-interface=0.0.0.0 \
--p2p-port=30313 \
--rpc-ws-enabled \
--rpc-http-enabled \
--rpc-http-api=ETH,NET,IBFT \
--host-whitelist="*" \
--rpc-http-cors-origins="all" \
--genesis-file=/genesis.json \
--miner-coinbase=0x0000000000000000000000000000000000000000 \
--miner-enabled \
--min-gas-price=0 \
--bootnodes=enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@10.244.200.77:30303
```
trent.mohay (Thu, 21 Nov 2019 05:57:04 GMT):
next question - can your two nodes communicate with each other? I.e. when you start the second docker container, do you see it discovering and connecting to the first node?
RealDeanZhao (Thu, 21 Nov 2019 05:57:12 GMT):
I use the command to start a second validator
trent.mohay (Thu, 21 Nov 2019 05:57:27 GMT):
you can confirm this with the admin_peers Json RPC (curl -X POST --data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' http://127.0.0.1:8545)
RealDeanZhao (Thu, 21 Nov 2019 05:59:04 GMT):
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getPendingVotes","params":[], "id":1}' http://10.244.200.77:7545
RealDeanZhao (Thu, 21 Nov 2019 05:59:04 GMT):
curl -X POST --data '{"jsonrpc":"2.0","method":"admin_peers","params":[], "id":1}' http://10.244.200.77:7545
RealDeanZhao (Thu, 21 Nov 2019 05:59:10 GMT):
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : { }
}#
trent.mohay (Thu, 21 Nov 2019 06:00:59 GMT):
just to confirm Is "node-1" on http://10.244.200.77:7545?
trent.mohay (Thu, 21 Nov 2019 06:02:02 GMT):
ok - so that _looks_ like your two nodes are not able to "find" each other over the network
RealDeanZhao (Thu, 21 Nov 2019 06:02:51 GMT):
yes, it is. I use the docker command to start the first node exposing 7545:8645
RealDeanZhao (Thu, 21 Nov 2019 06:02:51 GMT):
yes, it is. I use the docker command to start the first node exposing 7545:8545
RealDeanZhao (Thu, 21 Nov 2019 06:03:20 GMT):
the log from the second node: FullSyncTargetManager | No sync target, wait for peers.
RealDeanZhao (Thu, 21 Nov 2019 06:05:39 GMT):
These two nodes are running on my local machine. I can successfully start a ibft network use besu-quick-start repo. But i cannot start it manually one by one.
trent.mohay (Thu, 21 Nov 2019 06:05:41 GMT):
Right - so we just need to make sure your second docker container has the right bootnode enode to find the first container
RealDeanZhao (Thu, 21 Nov 2019 06:05:59 GMT):
--bootnodes=enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@10.244.200.77:30303
trent.mohay (Thu, 21 Nov 2019 06:07:02 GMT):
Is the config above your first or second node?
RealDeanZhao (Thu, 21 Nov 2019 06:07:27 GMT):
the second
trent.mohay (Thu, 21 Nov 2019 06:08:30 GMT):
unfortunately, Docker networking is _not_ my strength - let me see if we've got some docker people around :)
RealDeanZhao (Thu, 21 Nov 2019 06:08:45 GMT):
second node docker command```#/bin/bash
docker run -p 7555:8545 \
-p 7556:8545 \
-p 30313:30313 \
-v $PWD/lib/besu:/var/lib/besu \
-v $PWD/besu-data:/besu-data \
-v $PWD/../genesis.json:/genesis.json \
hyperledger/besu:1.3.4 \
--data-path=/besu-data \
--p2p-host=10.244.200.77 \
--p2p-interface=0.0.0.0 \
--p2p-port=30313 \
--rpc-ws-enabled \
--rpc-http-enabled \
--rpc-http-api=ETH,NET,IBFT \
--host-whitelist="*" \
--rpc-http-cors-origins="all" \
--genesis-file=/genesis.json \
--miner-coinbase=0x0000000000000000000000000000000000000000 \
--miner-enabled \
--min-gas-price=0 \
--bootnodes=enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@10.244.200.77:30303
```
RealDeanZhao (Thu, 21 Nov 2019 06:09:01 GMT):
first node docker command ```docker run -p 7545:8545 \
-p 7546:8545 \
-p 30303:30303 \
-v $PWD/lib/besu:/var/lib/besu \
-v $PWD/besu-data:/besu-data \
-v $PWD/../genesis.json:/genesis.json \
hyperledger/besu:1.3.4 \
--data-path=/besu-data \
--p2p-host=10.244.200.77 \
--p2p-interface=0.0.0.0 \
--p2p-port=30303 \
--rpc-ws-enabled \
--rpc-http-enabled \
--rpc-http-api=ETH,NET,IBFT,ADMIN \
--host-whitelist="*" \
--rpc-http-cors-origins="all" \
--genesis-file=/genesis.json \
--miner-coinbase=0x0000000000000000000000000000000000000000 \
--miner-enabled \
--min-gas-price=0
```
trent.mohay (Thu, 21 Nov 2019 06:09:09 GMT):
fantastic - thanks for that
RealDeanZhao (Thu, 21 Nov 2019 06:09:52 GMT):
np. hope this will be solved soon.
trent.mohay (Thu, 21 Nov 2019 06:16:49 GMT):
what platform are you running on?
trent.mohay (Thu, 21 Nov 2019 06:16:49 GMT):
what operating system are you running on?
RealDeanZhao (Thu, 21 Nov 2019 06:17:06 GMT):
macos
trent.mohay (Thu, 21 Nov 2019 06:17:26 GMT):
:thumbsup:
trent.mohay (Thu, 21 Nov 2019 06:21:09 GMT):
and confirming 10.244.200.77 is the IP of the host?
trent.mohay (Thu, 21 Nov 2019 06:21:26 GMT):
(i.e. its not on a docker network, it is literally the IP address of your mac)
RealDeanZhao (Thu, 21 Nov 2019 06:22:40 GMT):
yes, it's the ip of my mac
trent.mohay (Thu, 21 Nov 2019 06:24:19 GMT):
My suspicion is that may not work - you may be required to construct a "docker network" for the two containers to be able to communicate...
RealDeanZhao (Thu, 21 Nov 2019 06:27:23 GMT):
it's a lan ip of my mac. I will try to ping the ip inside the container.
robertosaltini (Thu, 21 Nov 2019 06:37:52 GMT):
Has joined the channel.
joshuafernandes (Thu, 21 Nov 2019 06:38:28 GMT):
Hi @RealDeanZhao you'd need to bind this to your host network
joshuafernandes (Thu, 21 Nov 2019 06:38:53 GMT):
so stop the first node and add `--net=host` as an option to every container
joshuafernandes (Thu, 21 Nov 2019 06:39:17 GMT):
that will bind them to your host interface and you can use 10.244.200.77
joshuafernandes (Thu, 21 Nov 2019 06:42:16 GMT):
start node1 like so: `docker run -p 7555:8545 -p 7556:8545 -p 30313:30313 --net=host -v $PWD/lib/besu:/var/lib/besu -v $PWD/besu-data:/besu-data -v $PWD/../genesis.json:/genesis.json hyperledger:besu.........`
joshuafernandes (Thu, 21 Nov 2019 06:42:16 GMT):
start node1 like so: `docker run -p 7555:8545 -p 7556:8546 -p 30313:30313 --net=host -v $PWD/lib/besu:/var/lib/besu -v $PWD/besu-data:/besu-data -v $PWD/../genesis.json:/genesis.json hyperledger:besu.........`
joshuafernandes (Thu, 21 Nov 2019 06:42:52 GMT):
the easier alternative to this is using a docker-compose file and starting one up at a time where you can see whats happening
RealDeanZhao (Thu, 21 Nov 2019 06:47:06 GMT):
I used docker-compose to start the network successfully. Now I want to use docker to start nodes on different machines.
joshuafernandes (Thu, 21 Nov 2019 06:47:45 GMT):
could you explain different machines please?
joshuafernandes (Thu, 21 Nov 2019 06:48:27 GMT):
you have n machines and you're trying to start besu on each to form the network?
RealDeanZhao (Thu, 21 Nov 2019 06:48:54 GMT):
yes, that's what i mean
RealDeanZhao (Thu, 21 Nov 2019 06:49:17 GMT):
i don't want to install besu binary on every machine
joshuafernandes (Thu, 21 Nov 2019 06:49:44 GMT):
right, so besu via docker on each machine?
joshuafernandes (Thu, 21 Nov 2019 06:50:22 GMT):
if so this makes things a lot simpler
RealDeanZhao (Thu, 21 Nov 2019 06:50:33 GMT):
I haven't tried yet. I tried to start the besu docker on my local machine with exposing different port for different node.
joshuafernandes (Thu, 21 Nov 2019 06:51:07 GMT):
ok so we have 2 setups to examine:
joshuafernandes (Thu, 21 Nov 2019 06:51:30 GMT):
1. the use case of docker on local machine exposing different ports
joshuafernandes (Thu, 21 Nov 2019 06:53:01 GMT):
so this setup requires you to bind each container to the host network interface. When you fire up each container add `--net=host` and the appropriate port maps and that should work.
joshuafernandes (Thu, 21 Nov 2019 06:53:29 GMT):
An alternative is to setup a docker network and set each container to use that network.
joshuafernandes (Thu, 21 Nov 2019 06:53:56 GMT):
2. The distributed setup with n machines is simpler
joshuafernandes (Thu, 21 Nov 2019 06:54:32 GMT):
But if you use docker you will have to bind to the host network otherwise there wont be any comms across machines.
joshuafernandes (Thu, 21 Nov 2019 06:54:46 GMT):
So start each container up like so:
joshuafernandes (Thu, 21 Nov 2019 06:55:46 GMT):
`docker run -p 8545:8545 -p 8546:8546 -p 30303:30303 --net=host -v $PWD/lib/besu:/var/lib/besu -v $PWD/besu-data:/besu-data -v $PWD/../genesis.json:/genesis.json hyperledger:besu .... `
joshuafernandes (Thu, 21 Nov 2019 06:55:46 GMT):
```docker run -p 8545:8545 -p 8546:8546 -p 30303:30303 --net=host -v $PWD/lib/besu:/var/lib/besu -v $PWD/besu-data:/besu-data -v $PWD/../genesis.json:/genesis.json hyperledger:besu .... ```
joshuafernandes (Thu, 21 Nov 2019 06:58:30 GMT):
and set the ` --p2p-port=30303` for all of the containers
joshuafernandes (Thu, 21 Nov 2019 06:59:44 GMT):
Also I think there is a typo in the command to start containers up port `7556 should bind to 8546` I think?
joshuafernandes (Thu, 21 Nov 2019 07:00:51 GMT):
Does that sound about right for what you're attempting to do?
joshuafernandes (Thu, 21 Nov 2019 07:01:07 GMT):
Also I think there is a typo in the command to start containers up port `7556 should bind to 8546` I think?
joshuafernandes (Thu, 21 Nov 2019 07:01:07 GMT):
Does that sound like I;ve understood what you're doing?
RealDeanZhao (Thu, 21 Nov 2019 07:02:03 GMT):
first node```docker run \
--net=host \
-v $PWD/lib/besu:/var/lib/besu \
-v $PWD/besu-data:/besu-data \
-v $PWD/../genesis.json:/genesis.json \
hyperledger/besu:1.3.4 \
--data-path=/besu-data \
--p2p-host=10.244.200.77 \
--p2p-interface=0.0.0.0 \
--p2p-port=30303 \
--rpc-http-port=7545 \
--rpc-ws-port=7546 \
--rpc-ws-enabled \
--rpc-http-enabled \
--rpc-http-api=ETH,NET,IBFT,ADMIN \
--host-whitelist="*" \
--rpc-http-cors-origins="all" \
--genesis-file=/genesis.json \
--miner-coinbase=0x0000000000000000000000000000000000000000 \
--miner-enabled \
--min-gas-price=0
```
RealDeanZhao (Thu, 21 Nov 2019 07:02:24 GMT):
second node ```#/bin/bash
docker run \
--net=host \
-v $PWD/lib/besu:/var/lib/bsesu \
-v $PWD/besu-data:/besu-data \
-v $PWD/../genesis.json:/genesis.json \
hyperledger/besu:1.3.4 \
--data-path=/besu-data \
--p2p-host=10.244.200.77 \
--p2p-interface=0.0.0.0 \
--p2p-port=30313 \
--rpc-http-port=7555 \
--rpc-ws-port=7556 \
--rpc-ws-enabled \
--rpc-http-enabled \
--rpc-http-api=ETH,NET,IBFT \
--host-whitelist="*" \
--rpc-http-cors-origins="all" \
--genesis-file=/genesis.json \
--miner-coinbase=0x0000000000000000000000000000000000000000 \
--miner-enabled \
--min-gas-price=0 \
--bootnodes=enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@10.244.200.77:30303
```
RealDeanZhao (Thu, 21 Nov 2019 07:02:50 GMT):
It still show no sync target
joshuafernandes (Thu, 21 Nov 2019 07:03:17 GMT):
is this on your single machine?
RealDeanZhao (Thu, 21 Nov 2019 07:03:35 GMT):
yes, it is
joshuafernandes (Thu, 21 Nov 2019 07:04:08 GMT):
alright, lets start one node and confirm you can make rpc calls to it
RealDeanZhao (Thu, 21 Nov 2019 07:08:45 GMT):
when i use --net=host, i cannot make the rpc call
joshuafernandes (Thu, 21 Nov 2019 07:08:47 GMT):
```#/bin/bash
docker run \
-p 7555:8545 -p 7556:8546 -p 30313:30303 \
--net=host \
-v $PWD/lib/besu:/var/lib/besu \
-v $PWD/besu-data:/besu-data \
-v $PWD/../genesis.json:/genesis.json \
hyperledger/besu:1.3.4 \
--data-path=/besu-data \
--p2p-host=10.244.200.77 \
--p2p-interface=0.0.0.0 \
--rpc-ws-enabled \
--rpc-http-enabled \
--rpc-http-api=ETH,NET,IBFT \
--host-whitelist="*" \
--rpc-http-cors-origins="all" \
--genesis-file=/genesis.json \
--min-gas-price=0 \
--bootnodes=enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@10.244.200.77:30303
```
joshuafernandes (Thu, 21 Nov 2019 07:09:33 GMT):
when the node fires up can you confirm that the enode is correct? Im not sure where your keys are being stored
joshuafernandes (Thu, 21 Nov 2019 07:12:49 GMT):
and does the http rpc call work? ```curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' http://10.244.200.77:7555
```
RealDeanZhao (Thu, 21 Nov 2019 07:13:10 GMT):
no, it not working even from the first node.
RealDeanZhao (Thu, 21 Nov 2019 07:13:19 GMT):
if i remove the --net=host, it will work
joshuafernandes (Thu, 21 Nov 2019 07:13:49 GMT):
ok if you remove the --net=host and start it up what is the response you get
RealDeanZhao (Thu, 21 Nov 2019 07:14:15 GMT):
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x0"
}%
joshuafernandes (Thu, 21 Nov 2019 07:14:37 GMT):
:thumbsup:
joshuafernandes (Thu, 21 Nov 2019 07:14:49 GMT):
so lets do node#2 now with this command
joshuafernandes (Thu, 21 Nov 2019 07:15:34 GMT):
and the logs when it fired up matched the enode for the bootnode?
RealDeanZhao (Thu, 21 Nov 2019 07:15:49 GMT):
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x0"
}%
joshuafernandes (Thu, 21 Nov 2019 07:16:19 GMT):
yup, the container logs when a node starts should display its enode
RealDeanZhao (Thu, 21 Nov 2019 07:16:24 GMT):
```Setting logging level to INFO
2019-11-21 07:15:23.812+00:00 | main | INFO | Besu | Starting Besu version: besu/v1.3.4/linux-x86_64/oracle_openjdk-java-11
2019-11-21 07:15:23.921+00:00 | main | INFO | StaticNodesParser | StaticNodes file /besu-data/static-nodes.json does not exist, no static connections will be created.
2019-11-21 07:15:23.921+00:00 | main | INFO | Besu | Connecting to 0 static nodes.
2019-11-21 07:15:25.073+00:00 | main | INFO | KeyPairUtil | Loaded key 0x1cb670cce617dfb478b898ffed54047701323fea3ec3e3ed617cbc3ff9723fc96ecba1fd29927ad9be5d5abe821245019e72bb4abebc5620f3c8315d799dc35b from /besu-data/key
2019-11-21 07:15:25.173+00:00 | main | INFO | DatabaseMetadata | Lookup database metadata file in data directory: /besu-data
2019-11-21 07:15:25.267+00:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /besu-data. Version 1
2019-11-21 07:15:25.825+00:00 | main | INFO | ProtocolScheduleBuilder | Protocol schedule created with milestones: [ConstantinopleFix: 0]
2019-11-21 07:15:26.473+00:00 | main | INFO | Runner | Starting Ethereum main loop ...
2019-11-21 07:15:26.482+00:00 | main | INFO | NetworkRunner | Starting Network.
2019-11-21 07:15:26.637+00:00 | nioEventLoopGroup-2-1 | INFO | RlpxAgent | P2P RLPx agent started and listening on /0.0.0.0:30313.
2019-11-21 07:15:26.639+00:00 | main | INFO | PeerDiscoveryAgent | Starting peer discovery agent on host=0.0.0.0, port=30313
2019-11-21 07:15:26.737+00:00 | vert.x-eventloop-thread-2 | INFO | VertxPeerDiscoveryAgent | Started peer discovery agent successfully, on effective host=0.0.0.0 and port=30313
2019-11-21 07:15:26.739+00:00 | vert.x-eventloop-thread-2 | INFO | PeerDiscoveryAgent | P2P peer discovery agent started and listening on /0.0.0.0:30313
2019-11-21 07:15:26.835+00:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://1cb670cce617dfb478b898ffed54047701323fea3ec3e3ed617cbc3ff9723fc96ecba1fd29927ad9be5d5abe821245019e72bb4abebc5620f3c8315d799dc35b@10.244.200.77:30313```
RealDeanZhao (Thu, 21 Nov 2019 07:16:42 GMT):
this is the log from second node
joshuafernandes (Thu, 21 Nov 2019 07:17:07 GMT):
right what about the first node?
RealDeanZhao (Thu, 21 Nov 2019 07:17:08 GMT):
This is the log from first node```Enode URL enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@0.0.0.0:30303```
joshuafernandes (Thu, 21 Nov 2019 07:17:19 GMT):
:thumbsup:
RealDeanZhao (Thu, 21 Nov 2019 07:17:29 GMT):
this is the args pass to besu ``` --bootnodes=enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@10.244.200.77:30303
```
RealDeanZhao (Thu, 21 Nov 2019 07:17:47 GMT):
they match
joshuafernandes (Thu, 21 Nov 2019 07:18:26 GMT):
nice, just what we want
joshuafernandes (Thu, 21 Nov 2019 07:18:28 GMT):
```
docker run \
-p 10555:8545 -p 10556:8546 -p 31313:30303 \
--net=host \
-v $PWD/lib/besu:/var/lib/besu \
-v $PWD/besu-data:/besu-data \
-v $PWD/../genesis.json:/genesis.json \
hyperledger/besu:1.3.4 \
--data-path=/besu-data \
--p2p-host=10.244.200.77 \
--p2p-interface=0.0.0.0 \
--rpc-ws-enabled \
--rpc-http-enabled \
--rpc-http-api=ETH,NET,IBFT \
--host-whitelist="*" \
--rpc-http-cors-origins="all" \
--genesis-file=/genesis.json \
--min-gas-price=0 \
--bootnodes=enode://8ea51c5159b8d187c65f632e25d3961826cafd84b9544c673f09efd9bfef06965378bee8d0ceaf23f831c496a515dd93ea4f655550a69650e57412c6ffd01020@10.244.200.77:30313```
joshuafernandes (Thu, 21 Nov 2019 07:18:49 GMT):
start your second node with that
joshuafernandes (Thu, 21 Nov 2019 07:19:38 GMT):
you may need to check the data paths so node2 has a differnt directory to node1
RealDeanZhao (Thu, 21 Nov 2019 07:21:24 GMT):
No sync target, wait for peers.
RealDeanZhao (Thu, 21 Nov 2019 07:21:38 GMT):
curl: (7) Failed to connect to 10.244.200.77 port 10555: Connection refused
joshuafernandes (Thu, 21 Nov 2019 07:22:51 GMT):
any firewall setup enabled on your mac?
RealDeanZhao (Thu, 21 Nov 2019 07:23:23 GMT):
no, if i remove the --net=host, it works
RealDeanZhao (Thu, 21 Nov 2019 07:23:39 GMT):
But it still cannot sync
RealDeanZhao (Thu, 21 Nov 2019 07:23:40 GMT):
FullSyncTargetManager | No sync target, wait for peers.
joshuafernandes (Thu, 21 Nov 2019 07:23:44 GMT):
sorry, remove that --net=host i copied and pasted from the previous one
joshuafernandes (Thu, 21 Nov 2019 07:23:53 GMT):
ok, what does this return
RealDeanZhao (Thu, 21 Nov 2019 07:24:03 GMT):
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x0"
}%
joshuafernandes (Thu, 21 Nov 2019 07:24:03 GMT):
curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' http://10.244.200.77:7555
RealDeanZhao (Thu, 21 Nov 2019 07:25:17 GMT):
still this {
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x0"
}%
joshuafernandes (Thu, 21 Nov 2019 07:25:32 GMT):
so no connectivity between the two
RealDeanZhao (Thu, 21 Nov 2019 07:25:51 GMT):
how to see the log of p2p?
joshuafernandes (Thu, 21 Nov 2019 07:25:51 GMT):
i'll see if i can find someone here who has a mac that we can try your setup on
joshuafernandes (Thu, 21 Nov 2019 07:26:18 GMT):
what os version are you on? and docker version?
RealDeanZhao (Thu, 21 Nov 2019 07:26:29 GMT):
i also tried to use another centos machine to connect the first node, it fails
joshuafernandes (Thu, 21 Nov 2019 07:26:55 GMT):
yep, mac does docker networking different to standard linux
RealDeanZhao (Thu, 21 Nov 2019 07:27:08 GMT):
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_proposeValidatorVote","params":["0xde43abcd451266b715069b452d2ec3c244aac08c",true], "id":1}' http://127.0.0.1:7545
RealDeanZhao (Thu, 21 Nov 2019 07:27:21 GMT):
I tried to send a validator proposal
joshuafernandes (Thu, 21 Nov 2019 07:27:23 GMT):
on linux you'd normally do --net=host and and you'd bind it to the host interface
RealDeanZhao (Thu, 21 Nov 2019 07:27:29 GMT):
the vote keeps pending
joshuafernandes (Thu, 21 Nov 2019 07:27:46 GMT):
yup the network interface is different
RealDeanZhao (Thu, 21 Nov 2019 07:28:10 GMT):
ok, let me try setup with two linux machine
joshuafernandes (Thu, 21 Nov 2019 07:28:15 GMT):
:thumbsup:
joshuafernandes (Thu, 21 Nov 2019 07:28:50 GMT):
i run a linux setup locally and can confirm that `--net=host ` works
RealDeanZhao (Thu, 21 Nov 2019 07:29:15 GMT):
yes, i will also try that
joshuafernandes (Thu, 21 Nov 2019 07:29:17 GMT):
let us know if that doesnt - and i'll see if we have a mac user that can replicate your setup
RealDeanZhao (Thu, 21 Nov 2019 07:34:28 GMT):
1. Do the same without --net=host on one linux machine, it doesn't work. Next, i will try --net option
RealDeanZhao (Thu, 21 Nov 2019 07:37:08 GMT):
2. With --net=host on one linux machine, it works...
RealDeanZhao (Thu, 21 Nov 2019 07:37:57 GMT):
@joshuafernandes thanks.
joshuafernandes (Thu, 21 Nov 2019 07:38:35 GMT):
nw
joshuafernandes (Thu, 21 Nov 2019 07:39:08 GMT):
any nix machine will work just fine with that and you wont need the port maps unless you run multiple containers on the same machine
RealDeanZhao (Thu, 21 Nov 2019 07:41:00 GMT):
@joshuafernandes I only use the first node to generate the extra data. Why the second node can join successfully even i dont propose it to be a validator.
joshuafernandes (Thu, 21 Nov 2019 07:41:40 GMT):
lost me
RealDeanZhao (Thu, 21 Nov 2019 07:41:41 GMT):
In this situation, the first node is the bootnode and validator node but the second node is the only rpc node not a validator node?
joshuafernandes (Thu, 21 Nov 2019 07:42:17 GMT):
any node can join the network once you have the first (bootnode) up, however only certain nodes (validators) can create blocks
joshuafernandes (Thu, 21 Nov 2019 07:42:42 GMT):
in the extra data you specify which they are so it knows what to expect
joshuafernandes (Thu, 21 Nov 2019 07:43:24 GMT):
and that config generally lives in the genesis file when you get the rest of the network nodes up, after that you vote validators in /out
RealDeanZhao (Thu, 21 Nov 2019 07:43:45 GMT):
I proposed the second node to be a validator, but the vote is still pending.
RealDeanZhao (Thu, 21 Nov 2019 07:43:58 GMT):
curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getPendingVotes","params":[], "id":1}' http://127.0.0.1:7545
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : {
"0xdc1a506ec0a6565697f13d464c09df20e9f18110" : true
}
}#
joshuafernandes (Thu, 21 Nov 2019 07:44:28 GMT):
when you created the genesis file how many validators did you specify ?
RealDeanZhao (Thu, 21 Nov 2019 07:44:34 GMT):
just one
joshuafernandes (Thu, 21 Nov 2019 07:47:15 GMT):
right i see, from what i can see the second node has joined as a normal node ie it cant validate - once the first node accepts it (second) can act as a validtor
joshuafernandes (Thu, 21 Nov 2019 07:47:30 GMT):
is that right @NicolasMassart
RealDeanZhao (Thu, 21 Nov 2019 08:02:07 GMT):
@joshuafernandes I just tried to add the 3 node. Before i propose it, it only show log _BlockPropagationManager | Imported #721 / 0 tx / 0 om / 0 (0.0%) gas / (0xced6b2._ After i propose it show log _| IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=849, Round=0}, hash=0xdf64_.
RealDeanZhao (Thu, 21 Nov 2019 08:02:39 GMT):
The ibft api won't help discarding the vote automatically. I have to manually discarding it
ppoliani (Thu, 21 Nov 2019 12:12:46 GMT):
Has joined the channel.
ppoliani (Thu, 21 Nov 2019 12:13:10 GMT):
Hi everyone :wave:
NicolasMassart (Thu, 21 Nov 2019 12:14:06 GMT):
hi
ppoliani (Thu, 21 Nov 2019 12:15:15 GMT):
I've got a question regarding private transactions. Is there a way to create a private transaction that can be accessed only by the members of the transaction? i.e. if I transfer some ERC20 to another address then only me and the other address would be able to view the details of the transaction
ppoliani (Thu, 21 Nov 2019 12:15:45 GMT):
I've read the docs and I can find these of restrictions at the orion nodes level
NicolasMassart (Thu, 21 Nov 2019 12:36:55 GMT):
That's exactly what private tx are made for IMO.
ppoliani (Thu, 21 Nov 2019 13:03:36 GMT):
ok thanks. Can you please confirm if my understanding of the privacy feature is correct? Imaging the following scenario.
- We have two privacy groups (Node1, Node2) and (Node 1, Node 3)
- We have the following account whitelisting on each node
Node 1 Whitelist = [AccountA, AccountB]
Node 2 Whitelist = [AccountB]
Node 3 whitelist = [AccountC]
Imagine AccountA sends 10 ERC20 tokens to AccountB via Node 1. Then
1) The balance of AccountA on Node 1 and Node 2 will be 10.
2) The balance of AccountA on Node 3 will 0 because it rejected the transaction
ppoliani (Thu, 21 Nov 2019 13:04:08 GMT):
is my understanding accurate?
NicolasMassart (Thu, 21 Nov 2019 13:11:01 GMT):
Let me ask some help on that, to be sure ;)
ppoliani (Thu, 21 Nov 2019 13:41:38 GMT):
thanks mate :)
antonydenyer (Thu, 21 Nov 2019 14:30:40 GMT):
Slightly different. The transaction isn't rejected it just doesn't exist on Node 3.
ppoliani (Thu, 21 Nov 2019 14:33:52 GMT):
oh ok. So basically Node 3 will receive the transaction but it will simply ignore it
antonydenyer (Thu, 21 Nov 2019 14:35:08 GMT):
Sort of, it will receive the marker transaction but will never have the private payload of. In this sense the privacy model is 'restricted' as in the data payload is only set to a restricted set of parties.
antonydenyer (Thu, 21 Nov 2019 14:35:08 GMT):
Sort of, it will receive the marker transaction but will never have the private payload of that transaction. In this sense the privacy model is 'restricted' as in the data payload is only set to a restricted set of parties.
ppoliani (Thu, 21 Nov 2019 14:46:41 GMT):
I think I'm getting it now. So the `privateFor` will decide who Node 1 (or more accurately it's orion node) will send the full private transaction to. I assume the marker transaction contains the minimum data possible for the private transaction
antonydenyer (Thu, 21 Nov 2019 14:47:04 GMT):
exactly.
ppoliani (Thu, 21 Nov 2019 14:50:44 GMT):
fantastic! Thank you guys this was very helpful
ppoliani (Thu, 21 Nov 2019 14:51:17 GMT):
one last thing, which I know might sound silly but I'll ask it anyway :rolling_on_the_floor_laughing:
antonydenyer (Thu, 21 Nov 2019 14:51:31 GMT):
sure
ppoliani (Thu, 21 Nov 2019 14:52:15 GMT):
is there any way when sending a transaction decide which other addresses will be able to read it. Basically privacy at the account level rather than node level
antonydenyer (Thu, 21 Nov 2019 14:52:38 GMT):
Do you mean ethereum address?
ppoliani (Thu, 21 Nov 2019 14:53:39 GMT):
correct
antonydenyer (Thu, 21 Nov 2019 14:57:11 GMT):
Each privacy group has it's own state root. Which means that only people inside that group will be able to read that state. If you have deployed a contract to group1 it will not exist in group2 (or more accurately it will be empty).
Perhaps a use case might make it clearer what you are trying to achieve?
ppoliani (Thu, 21 Nov 2019 15:00:47 GMT):
from what I understood, privacy groups are formed of Orion public addresses rather that individual Ethereum address.
ppoliani (Thu, 21 Nov 2019 15:08:27 GMT):
Imagine Node 1, Node 2 and Node 3 being controlled by three distinct organisations. We can apply privacy groups for the organizations, as we pretty much discussed above. However, what if within the same organisation I would like to hide the transactions amongst different departments each of which is connected and sending transaction to the node via the JSON-RPC API.
ppoliani (Thu, 21 Nov 2019 15:09:13 GMT):
I would like to apologise beforehand if the example sounds a bit weird :laughing:
CezarVatafu (Thu, 21 Nov 2019 15:18:23 GMT):
Has joined the channel.
CezarVatafu (Thu, 21 Nov 2019 15:18:53 GMT):
CezarVatafu - Thu Nov 21 2019 17:18:26 GMT+0200 (Eastern European Standard Time).txt
CezarVatafu (Thu, 21 Nov 2019 15:19:22 GMT):
Hello, new here so have mercy; I am trying to Install Besu in AWS(ubuntu) building it from source with gradlew. Unfortunately I get an error which I don't know how to interpret
CezarVatafu (Thu, 21 Nov 2019 15:20:36 GMT):
Are there any restrictions that are you aware on Ubuntu AWS , or maybe from System Reqs ? Thank you !
antonydenyer (Thu, 21 Nov 2019 15:35:41 GMT):
Basically you need to do something else to encrypt the payload. You'd need to look at zkproofs. Or you could do something at the application.
antonydenyer (Thu, 21 Nov 2019 15:37:14 GMT):
but no, there's nothing out of the box that I know about
NicolasMassart (Thu, 21 Nov 2019 15:38:28 GMT):
Or have each department have its own Orion node
ppoliani (Thu, 21 Nov 2019 15:43:30 GMT):
yes guys this is pretty much what I thought as well. I was looking into the aztec protocol to support such ZK scenario. Also the solution with separate Orion nodes is quite viable
ppoliani (Thu, 21 Nov 2019 15:43:49 GMT):
cheers gentlemen, this was very helpful
ppoliani (Thu, 21 Nov 2019 15:43:51 GMT):
thanks :)
shemnon (Thu, 21 Nov 2019 17:01:02 GMT):
When gradle fails it can be quite terse sometimes. Can you try again with "--stacktrace --info" as gradle options?
shemnon (Thu, 21 Nov 2019 17:03:07 GMT):
As an alternative to building, would using a pre-built binary be acceptable? https://bintray.com/beta/#/hyperledger-org/besu-repo/besu/1.3.5?tab=files
carlosfaria (Fri, 22 Nov 2019 10:49:11 GMT):
Hi guys! I want to learn more in depth how Besu works, so that I can collaborate. But I only get this general architecture of the implementation: http://besu.hyperledger.org/en/latest/Concepts/ArchitectureOverview/
For instance, what's the role of `Account` and `DefaultEVMAccount` or `StateTrieAccountValue` ? I know they are part of different stages of a transaction execution, but it's difficult to have a clear picture of the implementation.
Do you guys have any diagram with more detail that can help?
Thanks
carlosfaria (Fri, 22 Nov 2019 10:49:11 GMT):
Hi guys! I want to learn more in depth how Besu works, so that I can collaborate. But I only get this general architecture of the implementation: http://besu.hyperledger.org/en/latest/Concepts/ArchitectureOverview/
For instance, what's the role of `Account` and `DefaultEVMAccount` or `StateTrieAccountValue` ? I know they are part of different stages of a transaction execution, but it's difficult to have a clear picture of the implementation for the different stages.
Do you guys have any diagram with more detail that can help?
Thanks
faraggi (Fri, 22 Nov 2019 14:34:16 GMT):
Hi Carlos, I'm glad to know you want to help and contribute.
AFAIK, there isn't a more in-depth architecture diagram.
Now that you've mentioned it though, it might make sense for us to spend some time and make one, or possibly a video walkthrough of our code base.
In the meanwhile, `Account` and `StateTrieAccountValue` are implementations of core ethereum concepts that you can find in `besu/ethereum/core`
I'm not sure what `DefaultEVMAccount` is though.
earizon (Fri, 22 Nov 2019 18:54:44 GMT):
Has joined the channel.
earizon (Fri, 22 Nov 2019 18:54:51 GMT):
Hi, I just setup my first 4-nodes IBFT2 test network. I'm able to publish new contract and invoke transactions calling public methods.
My problem comes when trying to retrieve generated contract event/logs. If a call a method than triggers and event and I'm "fast enough" to retrieve the logs, I can see them for a while.
A moment later the log looks to "hide for ever". The contract state is modified as expected, that warrants that the TX has not been rolled back, but no hint about how to retrieve the "hidden" logs. Any idea? (I'm using web3j that limits to setup a filter and call eth_getFilterChanges periodically )
Looks like if the network were always in "fast-sync" mode, even when I force "--sync-mode=FULL". (I can see a generated data/fastsync directory in the bootstrap node).
The problem persists when using docker-compose example from https://github.com/PegaSysEng/besu-quickstart
If I replace the besu network by a local ganache-cli things works as expected and I can retrieve "old" events.
Any idea?
earizon (Fri, 22 Nov 2019 18:57:03 GMT):
(Besu version 1.3.0)
earizon (Fri, 22 Nov 2019 19:13:15 GMT):
Answering myself, the problem looks to be fixed updating to 1.3.5 ¿?
lucassaldanha (Sun, 24 Nov 2019 21:54:42 GMT):
Hi! Could you confirm what is the command that you are using to start the nodes? If using fast sync, could you try adding `--pruning-enabled=false` to the start command (or the config file).
madelinemurray (Sun, 24 Nov 2019 21:56:24 GMT):
@carlosfaria - I'm following up on this. Sorry about the delay in reply.
AkihiroTanaka (Mon, 25 Nov 2019 00:34:50 GMT):
I solved the problem!!
It was gas problem you said and I missunderstood how to deploy ERC1400 by Consensys.
Thank you for you help!!
madelinemurray (Mon, 25 Nov 2019 00:47:24 GMT):
@carlosfaria - this is a meetup talk about the Besu architecture (still named Pantheon at the time of recording) - https://www.youtube.com/watch?v=P0ZNyVu_-oU&t=12s
The talk starts at about 18 minutes into the recording.
Our Besu contributor calls (the next one is tomorrow - https://wiki.hyperledger.org/display/BESU/2019-11-26+Besu+Contributor+Call) are also a great place to ask specific questions about the architecture.
shemnon (Mon, 25 Nov 2019 01:42:39 GMT):
This tuesday we have a Besu contributor/community call in EMEA/AMER friendly times - https://wiki.hyperledger.org/display/BESU/2019-11-26+Besu+Contributor+Call
syuta-sugawara (Mon, 25 Nov 2019 01:44:22 GMT):
Hi.
i’m getting into difficulties.
i created private gas free network with besu 3 days ago.
at that time, that worked.
but, today, i realized a bootnode doesn't work.
this is the log.
looks like thread blocked.
but i don't know what happen and what i should do.
i'm not familier with java.
syuta-sugawara (Mon, 25 Nov 2019 01:44:22 GMT):
Hi.
i’m getting into difficulties.
i created private gas free network with besu 3 days ago.
at that time, that worked.
but, today, i realized a bootnode doesn't work.
this is the log.
looks like thread blocked.
but i don't know what happen and what i should do.
i'm not familier with java.
could anyone help me?
syuta-sugawara (Mon, 25 Nov 2019 01:44:23 GMT):
log.png
syuta-sugawara (Mon, 25 Nov 2019 01:44:23 GMT):
log.png
syuta-sugawara (Mon, 25 Nov 2019 01:44:23 GMT):
log.png
syuta-sugawara (Mon, 25 Nov 2019 01:44:23 GMT):
log.png
shemnon (Mon, 25 Nov 2019 01:48:24 GMT):
The thread block is likely unrelated to the bootnode being down and could be a noisy confiuration in Besu. However we would need more of the log to be sure. Do you have more of the stack trace available?
syuta-sugawara (Mon, 25 Nov 2019 01:49:46 GMT):
thanks for your reply!
i'll send you.
shemnon (Mon, 25 Nov 2019 01:50:17 GMT):
Also, what version of Besu, there is a chance it was addressed in the last month.
syuta-sugawara (Mon, 25 Nov 2019 01:50:43 GMT):
it is v1.3.2!
shemnon (Mon, 25 Nov 2019 01:51:00 GMT):
Definatly upgrade, the fix I'm thinking of went in in 1.3.3
syuta-sugawara (Mon, 25 Nov 2019 01:52:43 GMT):
you mean i should use 1.3.3?
shemnon (Mon, 25 Nov 2019 01:53:13 GMT):
Actually, the most current is 1.3.5. Use a version >= 1.3.3
syuta-sugawara (Mon, 25 Nov 2019 01:54:28 GMT):
i saw the release note.
what is the best choice?
v1.3.5?
shemnon (Mon, 25 Nov 2019 01:54:35 GMT):
Yes, 1.3.5
syuta-sugawara (Mon, 25 Nov 2019 03:47:57 GMT):
okay,I'll try! thanks!
NicolasMassart (Mon, 25 Nov 2019 08:27:43 GMT):
test
faraggi (Mon, 25 Nov 2019 08:31:42 GMT):
Hi @earizon . I'm curious to know if this did, in fact, fix the issue?
faraggi (Mon, 25 Nov 2019 08:32:47 GMT):
Hi Syuata, do you have an update on this? are you still facing the same issue?
faraggi (Mon, 25 Nov 2019 08:32:47 GMT):
Hi Syuta, do you have an update on this? are you still facing the same issue?
faraggi (Mon, 25 Nov 2019 10:23:41 GMT):
Hi again Carlos.
In addition to Madeline's comment, do you mind expanding more on what it is you're trying to achieve?
Maybe we can help you with something specific?
carlosfaria (Mon, 25 Nov 2019 13:43:58 GMT):
Thank you for the response @madelinemurray @faraggi
I will take a look
hesusruiz (Mon, 25 Nov 2019 14:51:16 GMT):
Has joined the channel.
mandlamag (Tue, 26 Nov 2019 08:58:55 GMT):
Has joined the channel.
RealDeanZhao (Tue, 26 Nov 2019 09:09:13 GMT):
Hi, I set up an ibft network and call the deployed contract using web3j, it took almost 20 seconds to get the transaction receipt. Why does this take so long?
RealDeanZhao (Tue, 26 Nov 2019 09:09:13 GMT):
Hi, I set up an ibft network and call the deployed contract using web3j, it took almost 20 seconds to get the transaction receipt. Why does this take so long? FYI, it is a 4-node ibft network set up using docker. the client is deployed on the same server where the first node is. Besu version is 1.3.4.
RealDeanZhao (Tue, 26 Nov 2019 09:09:13 GMT):
Hi, I set up an ibft network and call the deployed contract using web3j, it took almost 15 seconds for every contract method call to get the transaction receipt. It is very fast if a deploy the contract to local ganache dev node. FYI, it is a 4-node ibft network set up using docker. the client is deployed on the same server where the first node is. Besu version is 1.3.4.
RealDeanZhao (Tue, 26 Nov 2019 09:09:27 GMT):
```"ibft2": {
"blockperiodseconds": 2,
"epochlength": 30000,
"requesttimeoutseconds": 10
}```
faraggi (Tue, 26 Nov 2019 09:32:49 GMT):
Not sure this is the problem, but I would still recommend upgrading to 1.3.5.
RealDeanZhao (Tue, 26 Nov 2019 09:42:37 GMT):
Ok I will try update
RealDeanZhao (Tue, 26 Nov 2019 09:48:13 GMT):
Tried with 1.3.5, it still took 15 seconds.
RealDeanZhao (Tue, 26 Nov 2019 09:55:06 GMT):
I tried to send the request using Web3JS just now, it was very fast to get the transaction receipt. Maybe there is something wrong with Web3J?
ajsutton (Tue, 26 Nov 2019 09:57:33 GMT):
The default poll time for Web3J is quite long - something like 15 seconds from memory...
ajsutton (Tue, 26 Nov 2019 09:58:26 GMT):
There's a version of `Web3j.build` which allows you to specify the polling interval so you can make it shorter.
RealDeanZhao (Tue, 26 Nov 2019 09:58:40 GMT):
How can I set the poll time?
ajsutton (Tue, 26 Nov 2019 09:59:32 GMT):
I think messages crossed - the `Web3j.build` which takes three arguments will let you set poll time.
RealDeanZhao (Tue, 26 Nov 2019 10:00:14 GMT):
Got it, i will try.
RealDeanZhao (Tue, 26 Nov 2019 10:07:46 GMT):
I tried to set the polling time, it still took 15 seconds.
RealDeanZhao (Tue, 26 Nov 2019 10:07:54 GMT):
Clipboard - November 26, 2019 6:07 PM
faraggi (Tue, 26 Nov 2019 10:10:03 GMT):
In that case, this might be the best place to ask: https://gitter.im/web3j/web3j
faraggi (Tue, 26 Nov 2019 10:10:03 GMT):
In that case, this might be the best place to ask the question: https://gitter.im/web3j/web3j
faraggi (Tue, 26 Nov 2019 10:10:03 GMT):
In that case, this might be the best place to ask that question: https://gitter.im/web3j/web3j
RealDeanZhao (Tue, 26 Nov 2019 10:10:48 GMT):
Ok, i will
RealDeanZhao (Tue, 26 Nov 2019 10:42:59 GMT):
After reading web3j code, I found the solution that we need to load the contract with the custom transaction manager ``` final TransactionManager txManager = new RawTransactionManager(this.web3j,
this.credentials, -1L, 10, 1000L);```
RealDeanZhao (Tue, 26 Nov 2019 10:42:59 GMT):
After reading web3j code, I found the solution that we need to load the contract with the custom transaction manager, give it a shorter sleep time``` final TransactionManager txManager = new RawTransactionManager(this.web3j,
this.credentials, -1L, 10, 1000L);```
faraggi (Tue, 26 Nov 2019 10:55:21 GMT):
Glad to know it worked.
RealDeanZhao (Tue, 26 Nov 2019 10:55:43 GMT):
:smile:
helderjnpinto (Tue, 26 Nov 2019 14:42:00 GMT):
Hi, i have a question for case of call a contract with options defined on contract instantiation, like this config https://web3js.readthedocs.io/en/v1.2.0/web3-eth-contract.html#id2
with options gasPrice and gasLimit web3-eth-contract in all eth_calls like balanceOf of ERC20 give this error UnhandledPromiseRejectionWarning: Error: Returned error: Upfront cost exceeds account balance, because the account that i use not have balance, in other clients like geth i tested my script with infura to ethereum mainnet and not get this error, the balance return 0 is correct. Why besu have this warning ?
helderjnpinto (Tue, 26 Nov 2019 14:42:00 GMT):
Hi, i have a question for case of call a contract with options defined on contract instantiation, like this config https://web3js.readthedocs.io/en/v1.2.0/web3-eth-contract.html#id2
with options gasPrice and gasLimit web3-eth-contract in all eth_calls like balanceOf of ERC20 give this error UnhandledPromiseRejectionWarning: Error: Returned error: Upfront cost exceeds account balance, because the account that i use not have balance, in other clients like geth i tested my script with infura to ethereum mainnet and not get this error, the balance return 0 is correct. Why besu have this error?
helderjnpinto (Tue, 26 Nov 2019 14:42:00 GMT):
Hi, i have a question for case of call a contract with options defined on contract instantiation, like this config https://web3js.readthedocs.io/en/v1.2.0/web3-eth-contract.html#id2
with options gasPrice and gasLimit web3-eth-contract in all eth_calls like balanceOf of ERC20 give this error UnhandledPromiseRejectionWarning: Error: Returned error: Upfront cost exceeds account balance, because the account that i use not have balance, in other clients like geth i tested my script with infura to ethereum mainnet and not get this error, the balance return 0 is correct. Why besu have this error for eth_call ?
faraggi (Tue, 26 Nov 2019 14:50:50 GMT):
Reminder that the bi-weekly Besu Contributor call is going to be held in 10 minutes: https://consensys.zoom.us/j/725448960
Agenda can be found here: https://wiki.hyperledger.org/display/BESU/2019-11-26+Besu+Contributor+Call
shemnon (Tue, 26 Nov 2019 20:47:28 GMT):
Besu does not store or propogate transactions that cannot be immediatly committed. I can't say for sure what other clients do in this regard as I haven't become familiar with those sections of code. It is concievable that the tx would stay in the mem pool until some other tx funds it, but our miner logic does not support that currently. This may be worth posting a jira issue to jira.hyperledger.org so we don't forget about it but I cannot promise any timely delivery of a change.
ajsutton (Tue, 26 Nov 2019 20:59:11 GMT):
I suspect our implementation of `eth_call` is just being too strict here. It is very accurately saying what would happen if you submitted that as a transaction but since it's intended as a simulation is probably should skip the balance checks and jump straight into EVM execution.
Raising a ticket would be very useful so we can ensure we're compatible with other clients.
helderjnpinto (Wed, 27 Nov 2019 10:49:15 GMT):
Yes, I think `eth_call` and maybe `eth_estimategas` probably do not need balance verification, beacause is simulation mode "read operation".
helderjnpinto (Wed, 27 Nov 2019 10:49:15 GMT):
Yes, I think `eth_call` and maybe `eth_estimategas` probably do not need balance verification, beacause is simulation mode "read operation". So please create a ticket for this. :+1: thanks
bobsummerwill (Thu, 28 Nov 2019 16:55:40 GMT):
Hey everyone!
Is there a planned release date for the next point release?
1.3.5 contained ETC Atlantis support, so works on ETC mainline.
But this next point release would also include ETC Agharta support.
https://ecips.ethereumclassic.org/ECIPs/ecip-1056
Targeting 15 Jan 2020.
shemnon (Thu, 28 Nov 2019 18:02:50 GMT):
NExt tuesday. Agharta is merged.
shemnon (Thu, 28 Nov 2019 18:02:50 GMT):
Next tuesday. Agharta is merged.
bobsummerwill (Thu, 28 Nov 2019 19:33:05 GMT):
:bomb:
bobsummerwill (Thu, 28 Nov 2019 19:33:11 GMT):
:thumbsup:
eum602 (Thu, 28 Nov 2019 22:58:49 GMT):
Hello eveeryone, please I am running orion and besu on the same instance, I have memory problems, can someone tell me how can I tune jvm for both in order to avoid memory errors? , I appreciate all responses
helderjnpinto (Fri, 29 Nov 2019 12:23:45 GMT):
Hi @ajsutton just a reminder to add the jira ticket :D, i think i cannot do that.
eum602 (Fri, 29 Nov 2019 15:53:27 GMT):
Hello, we would like to run both orion and besu on the same instance; currently we have some problems with orion which shows the following:
eum602 (Fri, 29 Nov 2019 15:53:57 GMT):
Clipboard - November 29, 2019 10:53 AM
eum602 (Fri, 29 Nov 2019 15:55:25 GMT):
please I would like some suggestion how to tune the jvm in order to avoid these errors; I have tried to tune it with no success.
ajsutton (Fri, 29 Nov 2019 21:07:16 GMT):
You should be able to create the ticket yourself and then you can be notified when it's done. You just need to login to JIRA with your Linux Foundation ID (which you've probably used to login to RocketChat too)
lnbryan (Sat, 30 Nov 2019 02:12:06 GMT):
Has joined the channel.
lnbryan (Sat, 30 Nov 2019 02:12:06 GMT):
hello. please how can i start synching with BESU mainnet on my windows
edisinovcic (Sun, 01 Dec 2019 12:14:46 GMT):
Has joined the channel.
edisinovcic (Sun, 01 Dec 2019 12:14:48 GMT):
Hi, is anybody maintaining this repository?
https://github.com/PegaSysEng/besu-kubernetes/pull/18
shemnon (Sun, 01 Dec 2019 15:13:12 GMT):
Like all other ethereum mainnet clients you will need a SSD with 250-500GB free.
To do this directly on windows:
* Download Java 11 or later
* add it to your PATH
* Download the latest version of the besu zip (1.3.5) from here - https://bintray.com/beta/#/hyperledger-org/besu-repo/besu?tab=files
* Extract the zip to your SSD
* inside the extracted directory run `bin/besu --sync-mode=FAST`
* Downloading all 400 million state nodes will take a couple of days, and then you will be synced to the current block of the blockchain.
It may be easier to run it in docker.
joshuafernandes (Sun, 01 Dec 2019 20:54:55 GMT):
Hi @edisinovcic Thanks for that PR, have approved and merged. Apologies for the delay in getting back to you
EdJoJob (Sun, 01 Dec 2019 21:05:06 GMT):
Docker is unsupported on Windows, as the images we publish do not work with RocksDB being mounted on a Windows drive
SamB (Mon, 02 Dec 2019 04:39:30 GMT):
Has joined the channel.
helderjnpinto (Mon, 02 Dec 2019 11:59:38 GMT):
Yes you are rigth, i created the ticket https://jira.hyperledger.org/browse/BESU-137
syuta-sugawara (Mon, 02 Dec 2019 12:54:59 GMT):
hi.
I created private network with besu in aws ECS.
i'd like to store data to cloud file storage which is Elastic file system in AWS.
by using besu , which directory is the blockchain data stored in?
sloops77 (Mon, 02 Dec 2019 12:57:54 GMT):
Has joined the channel.
shemnon (Mon, 02 Dec 2019 15:43:14 GMT):
Wherever in the `database` directory of wherever '--data-path' points to, which defaults to the directory you extracted toe tar.gz to. If you run `--help` the default locaiton of `--data-path` will be listed. It is likely easiest to just point `--data-path` to wherever your ECS mount is.
eum602 (Mon, 02 Dec 2019 16:41:53 GMT):
I have created an issue to cover this : https://jira.hyperledger.org/browse/BESU-138
ajsutton (Mon, 02 Dec 2019 20:28:05 GMT):
Thank you, much appreciated.
lnbryan (Mon, 02 Dec 2019 21:41:35 GMT):
thanks for the help @shemnon that was really really helpful
jcarpenter (Mon, 02 Dec 2019 22:43:02 GMT):
Has joined the channel.
Hendobox (Mon, 02 Dec 2019 23:17:15 GMT):
Has joined the channel.
edisinovcic (Tue, 03 Dec 2019 09:17:23 GMT):
np, was just curious if it's maintained as it's still under pegasys org.
faraggi (Tue, 03 Dec 2019 09:50:04 GMT):
@edisinovcic , as a more general reply to that last comment, the pegasys github org still exists and contains some internal pegasys repos we use (most of which are open source).
syuta-sugawara (Tue, 03 Dec 2019 10:00:29 GMT):
i see. thanks.
syuta-sugawara (Tue, 03 Dec 2019 10:03:51 GMT):
hi.
I created private network with besu by using IBFT 2.0.
when i use ibft 2.0, should i set 4 nodes?
now our private network includes only 3 nodes.
my client required us to use only 3 nodes.
faraggi (Tue, 03 Dec 2019 10:04:56 GMT):
Yes,
> IBFT 2.0 requires 4 validators to be Byzantine fault tolerant.
faraggi (Tue, 03 Dec 2019 10:05:03 GMT):
https://besu.hyperledger.org/en/stable/Concepts/Consensus-Protocols/Comparing-PoA/#minimum-number-of-validators
syuta-sugawara (Tue, 03 Dec 2019 10:06:05 GMT):
will there be any problem?
faraggi (Tue, 03 Dec 2019 10:06:50 GMT):
This is a requirement on behalf of the actual _consensus mechanism_.
faraggi (Tue, 03 Dec 2019 10:07:12 GMT):
The network won't be able to produce finality without 4+ nodes.
syuta-sugawara (Tue, 03 Dec 2019 10:09:33 GMT):
now looks like our private network is working.
and this is for proof of concept.
cam-parra (Tue, 03 Dec 2019 18:08:52 GMT):
I am trying to run a private clique network using ansible. My playbook looks like this ```---
- hosts: localhost
connection: local
force_handlers: True
roles:
- role: ansible-role-besu
vars:
besu_version: 1.3.5
besu_network: custom
besu_genesis_path: "/opt/besu/genesis-test-net.json"
besu_rpc_http_api: [ETH,NET,CLIQUE]
besu_p2p_port: 30304
besu_bootnodes: [enode://
cam-parra (Tue, 03 Dec 2019 18:09:19 GMT):
but I don't seem to be able to connect to my enode... in the logs it goes to a defauly enode url
cam-parra (Tue, 03 Dec 2019 18:09:19 GMT):
but I don't seem to be able to connect to my enode... in the logs it goes to a default enode url
cam-parra (Tue, 03 Dec 2019 18:10:19 GMT):
the log looks like this
cam-parra (Tue, 03 Dec 2019 18:10:59 GMT):
```2019-12-03 18:04:11.312+00:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://
cam-parra (Tue, 03 Dec 2019 18:29:54 GMT):
Has anyone else experienced this?
ajsutton (Tue, 03 Dec 2019 19:54:07 GMT):
Just to clarify, the network can reach consensus with even 1 node, but can not handle any faulty or malicious nodes unless there are at least 4 validators (at which point one node can be faulty without breaking the network).
faraggi (Wed, 04 Dec 2019 08:06:06 GMT):
@joshuafernandes You might be able to give some light on this issue.
coenie (Wed, 04 Dec 2019 08:29:28 GMT):
Hi, has anyone here done a comparison on the number of validator nodes IBFT2 (besu) vs Tendermint (autonity) can run?
joshuafernandes (Wed, 04 Dec 2019 09:40:39 GMT):
Hi @cam-parra is this still an issue or resolved now mate?
kamposter (Wed, 04 Dec 2019 14:15:13 GMT):
Has joined the channel.
faraggi (Wed, 04 Dec 2019 14:55:43 GMT):
I don't think I've ever heard of that specific comparison made, but I'll be glad to hear anyone's experiences.
cam-parra (Wed, 04 Dec 2019 17:30:12 GMT):
@joshuafernandes has done an awesome job and now I have everything up and running thanks for all the help :)
eum602 (Wed, 04 Dec 2019 19:32:07 GMT):
Hello, I have a doubt, where are the events emited, by the private smart contracts, stored?
lucassaldanha (Wed, 04 Dec 2019 20:07:09 GMT):
Events emitted from private contracts generate logs that can be retrieved from the private transaction receipt that originated the event. You can get the receipt of a private tx using priv_getTransactionReceipt method (https://besu.hyperledger.org/en/latest/Reference/API-Methods/#priv_gettransactionreceipt)
syuta-sugawara (Thu, 05 Dec 2019 04:16:29 GMT):
hi.
i have a quesion.
now I'm trying to create private network with three nodes.
but I cannot.
i think enode url's id is not correct.
i thouht enode url is like this.
enode://
syuta-sugawara (Thu, 05 Dec 2019 04:16:29 GMT):
hi.
i have a quesion.
now I'm trying to create private network with three nodes.
but I cannot.
i think enode url's id is not correct.
i thouht enode url is like this.
enode://
syuta-sugawara (Thu, 05 Dec 2019 04:21:29 GMT):
bootnode's log.png
syuta-sugawara (Thu, 05 Dec 2019 04:21:42 GMT):
could anyone help me?
lucassaldanha (Thu, 05 Dec 2019 04:25:47 GMT):
Hi! Have you set the p2p-host and p2p-port properties? These are the properties that you can use to specify your externally reachable address and port.
lucassaldanha (Thu, 05 Dec 2019 04:26:46 GMT):
Try setting p2p-host to your public IP address and p2p-port to the port that is open (default is 30303)
syuta-sugawara (Thu, 05 Dec 2019 04:27:07 GMT):
yes, i did it correctly.
syuta-sugawara (Thu, 05 Dec 2019 04:27:27 GMT):
thanks for your reply anyway.
syuta-sugawara (Thu, 05 Dec 2019 04:28:02 GMT):
i use besu v1.3.5.
lucassaldanha (Thu, 05 Dec 2019 04:28:32 GMT):
Can you share your config so I can take a look? (if needed send me in a DM)
lucassaldanha (Thu, 05 Dec 2019 04:30:21 GMT):
Also, in your msg you said that you are using this property `--bootnodes=enode://0ac3d4e8b81a5650cd61fcd62bb27bc2d34a6fe8141de51be35731dd0dba289bcfc623f5a236365e825e61eeb5700fe2997472c5821c6582c9c230c031871661`
It is missing the bootnode url and port
lucassaldanha (Thu, 05 Dec 2019 04:30:53 GMT):
I'm not sure it this was a typo or if you missed this in the config :)
syuta-sugawara (Thu, 05 Dec 2019 04:32:25 GMT):
acutually, i worte host and port.
but this is a puclic channel so i did't show it.
syuta-sugawara (Thu, 05 Dec 2019 04:32:39 GMT):
i'll send dm!
lucassaldanha (Thu, 05 Dec 2019 04:32:42 GMT):
Cool!
madelinemurray (Thu, 05 Dec 2019 04:40:19 GMT):
Besu v1.3.6 has been released. Download from https://pegasys.tech/solutions/hyperledger-besu/#downloads
Changelog https://github.com/hyperledger/besu/blob/master/CHANGELOG.md
macfarla (Thu, 05 Dec 2019 05:37:28 GMT):
@pcmola do you still have this issue? I've tried but I can't reproduce it :) If you do still have it, can you provide further information about your setup? Orion version etc. Thanks!
carlosfaria (Thu, 05 Dec 2019 10:24:53 GMT):
Hey guys, How can I use the `IbftProtocolSchedule` to leverage a change in `blockPeriod` on a certain block number, defined on genesis forks?
NicolasMassart (Thu, 05 Dec 2019 11:09:20 GMT):
I cross posted in #besu-contributors , you may have more chances
carlosfaria (Thu, 05 Dec 2019 11:11:26 GMT):
Thanks @NicolasMassart
kamposter (Thu, 05 Dec 2019 15:31:41 GMT):
Dear Besu folks, I’m just started to research/explore this system.
Might I ask some noob questions that mostly based on the architecture of the other dlt systems I know.
1. Do “Orion-based” transactions are off-chain or on-chain… or can be both?
2. Is there any best-practice guidelines of implementing “oracles” with Besu?
3. As I correctly understood, it is recommended (by the philosophy of IBFT2.0) to force client (apps) to send Tx to several nodes?
Thanks
kamposter (Thu, 05 Dec 2019 15:31:41 GMT):
Dear Besu folks, I’m just started to research/explore this system.
Might I ask some noob questions that mostly based on the architecture of the other dlt systems I know.
1. Do “Orion-based” transactions are off-chain or on-chain… or can be both?
2. Is there any best-practice guidelines of implementing “oracles” with Besu?
3. As I correctly understood, it is recommended (by the philosophy of IBFT2.0) to force client (apps) to send Tx to several nodes?
Thanks!
faraggi (Thu, 05 Dec 2019 16:46:33 GMT):
1. Orion based TX are off-chain but have markers added to the public chain.
2. Not that I know of, lets see if anyone else wants to pitch in with more info on that. But Oracles and clients are very different beasts
3. the client will take care of propagation for you. can you link to what you mean by that philosophy?
kamposter (Thu, 05 Dec 2019 17:11:50 GMT):
1. Would be super if you can add some details about this process.
3. Based on Besu IBFT2.0 white paper, look 1.2 (page 2 - our contribution). So, I made assumption that Besu going to recommend to sent TX proposals to several nodes simultaneously. (like in Fabric).
kamposter (Thu, 05 Dec 2019 17:11:50 GMT):
3. Based on Besu IBFT2.0 white paper, look 1.2 (page 2 - our contribution). So, I made assumption that Besu going to recommend to sent TX proposals to several nodes simultaneously. (like in Fabric).
Radhi (Fri, 06 Dec 2019 10:03:32 GMT):
alethio
faraggi (Fri, 06 Dec 2019 13:27:38 GMT):
You know what? how about we call the actual author? :) @robertosaltini
faraggi (Fri, 06 Dec 2019 13:27:38 GMT):
You know what? how about we call the actual authors? :) @robertosaltini
faraggi (Fri, 06 Dec 2019 13:27:38 GMT):
You know what? how about we call the actual authors? :)
faraggi (Fri, 06 Dec 2019 13:27:59 GMT):
@dphhyland
faraggi (Fri, 06 Dec 2019 13:27:59 GMT):
@dphhyland @robertosaltini
Sam_Devs (Fri, 06 Dec 2019 14:46:46 GMT):
Has joined the channel.
robertosaltini (Fri, 06 Dec 2019 23:27:33 GMT):
The paper analyses the IBFT2 protocol without making any assumption on how the network layer is implemented. We just assume that there is a point in time after which the transmission latency is bounded.
This is is to make the protocol as generic as possible and not dependent on a specific implementation.
However, Beau as all (or most) Ethereum clients, implements the network layer via gossiping in which case if you send your tx to an honest nodes, then this node will propagate the transaction to all other nodes.
Having said this, a very strong adversary may be able to mount an eclipse attack on an honest node, so sending the tx to more than one node increases the possibility that the transaction will be eventually received by all honest nodes.
In conclusion, in most scenario sending a tx to only one node (if you know that that node is honest) will suffice, but if you are in an environment with high risk of attack I would suggest sending the tx to more than one node. This applies not only to IBFT2, but to all protocols running on top of a gossiping protocol.
edisinovcic (Tue, 10 Dec 2019 08:31:22 GMT):
@faraggi Tnx for the clarification :)
RealDeanZhao (Wed, 11 Dec 2019 02:43:18 GMT):
Clipboard - December 11, 2019 10:43 AM
RealDeanZhao (Wed, 11 Dec 2019 02:44:25 GMT):
Hi, I've setup a 4 node ibft network using docker on one machine. The network is working but sometimes some of the nodes restarts. How can i see the log of the node in the container?
RealDeanZhao (Wed, 11 Dec 2019 02:45:06 GMT):
Does besu write the logs to a file?
ajsutton (Wed, 11 Dec 2019 02:51:00 GMT):
You can use `docker logs
RealDeanZhao (Wed, 11 Dec 2019 02:51:31 GMT):
I can only see the latest log, how can i see the logs when the node stopped?
RealDeanZhao (Wed, 11 Dec 2019 02:51:31 GMT):
I can only see the latest log, how can i see the logs when the node stoped?
RealDeanZhao (Wed, 11 Dec 2019 02:51:52 GMT):
I can only see the latest log, how can i see the logs when the node stoped?
ajsutton (Wed, 11 Dec 2019 02:52:19 GMT):
If the whole docker container stopped then you'd need to use `docker container ls -a` to find the stopped container ID and the `docker logs`
RealDeanZhao (Wed, 11 Dec 2019 02:54:03 GMT):
I ran the container using --restart=always.
ajsutton (Wed, 11 Dec 2019 02:54:58 GMT):
hmm, that's beyond my docker expertise I'm afraid.
RealDeanZhao (Wed, 11 Dec 2019 02:55:48 GMT):
the container will restart when it stops. How can i configure the node to write the log to a file?
ajsutton (Wed, 11 Dec 2019 02:56:39 GMT):
Besu always outputs logs to stdout and you can then redirect that however you need. I'm very surprised that docker loses the logs when it restarts a container.
RealDeanZhao (Wed, 11 Dec 2019 02:59:40 GMT):
the log is not lost. I can only find one warning message:
RealDeanZhao (Wed, 11 Dec 2019 02:59:47 GMT):
docker logs c476ec930904 |grep WARN
2019-12-09 18:07:47.517+00:00 | vertx-blocked-thread-checker | WARN | BlockedThreadChecker | Thread Thread[vert.x-eventloop-thread-2,5,main]=Thread[vert.x-eventloop-thread-2,5,main] has been blocked for 6590 ms, time limit is 2000 ms
RealDeanZhao (Wed, 11 Dec 2019 03:00:33 GMT):
There are no logs for ERROR.
joshuafernandes (Wed, 11 Dec 2019 03:01:45 GMT):
`docker ps -a` gives you all the containers that ran (including stopped/failed etc)
joshuafernandes (Wed, 11 Dec 2019 03:02:04 GMT):
you can then do `docker logs
ajsutton (Wed, 11 Dec 2019 03:02:31 GMT):
That warning suggests that either besu was under heavy load (probably lots of JSON-RPC requests) or potentially that it was running low on memory which was significantly impacting performance.
If it was tight on memory it may have been suddenly killed by the system out of memory killer - you'd have to check it's logs (whereever your OS puts them) to determine if that's what happened or not.
The lack of any logs does sound a lot like something external very abruptly killed Besu or the container.
joshuafernandes (Wed, 11 Dec 2019 03:03:16 GMT):
`docker ps -a` gives you all the containers that ran (including stopped/failed etc)
you can then do `docker logs
joshuafernandes (Wed, 11 Dec 2019 03:03:16 GMT):
`docker ps -a` gives you all the containers that ran (including stopped/failed etc) and you get an indication of when it ran & stopped via the timestamps
you can then do `docker logs
joshuafernandes (Wed, 11 Dec 2019 03:04:09 GMT):
you can alternatively mount a volume and a log file and write to your local file system like so: https://github.com/PegaSysEng/besu-quickstart/blob/master/docker-compose.yml#L13
joshuafernandes (Wed, 11 Dec 2019 03:05:28 GMT):
specify an appender and pass that in to besu, and then mount a volume to that path (line18) and you should see log files that persist
RealDeanZhao (Wed, 11 Dec 2019 03:05:47 GMT):
I will try that
RealDeanZhao (Wed, 11 Dec 2019 03:18:31 GMT):
I used dmesg to see the kernel log:
RealDeanZhao (Wed, 11 Dec 2019 03:18:33 GMT):
[Tue Dec 10 17:41:14 2019] Out of memory: Kill process 32242 (java) score 201 or sacrifice child
[Tue Dec 10 17:41:14 2019] Killed process 32242 (java) total-vm:7065980kB, anon-rss:895300kB, file-rss:0kB, shmem-rss:0kB
RealDeanZhao (Wed, 11 Dec 2019 03:19:02 GMT):
Yes, something out of memory happened at that time.
faraggi (Wed, 11 Dec 2019 11:03:28 GMT):
@NicolasMassart You mentioned something of this sort recently. Does this problem ring a bell?
@RealDeanZhao what are your hardware specs on that machine?
NicolasMassart (Wed, 11 Dec 2019 21:19:48 GMT):
Yes we had something similar and it was related to a log query that was too huge and making the system fail badly. @shemnon worked on a PR to fix that by having a distinct indexing of logs, that should be shipped in next release. @RealDeanZhao what tools do you have that make queries on your node? We experienced the issue with Eventeum specifically as the chain was big enough for the initial log retrieval to lock the system. But any other tool could behave like that as the issue is that during first start it requested logs for the whole database. So if it's only a few hundred thousand blocs it's ok, but as it get over multiple millions, it started to be hard to keep up with the requests. Now with the log index it should be fine.
EdJoJob (Wed, 11 Dec 2019 21:31:03 GMT):
Also if the machine in question is a Mac, please ensure that you have given enough memory to the Docker for Mac process. ~4G rather than the default 2G
Silona (Wed, 11 Dec 2019 21:44:34 GMT):
Hello everyone -
Do you know of a developer event that we would like to get some Hyperledger representation at?
Please submit it here. The marketing committee will review them all as we go thru our budget for 2020
Thank you! - Silona
Silona (Wed, 11 Dec 2019 22:01:04 GMT):
https://wiki.hyperledger.org/display/Marketing/Developer+Events
adrien_del (Thu, 12 Dec 2019 14:58:46 GMT):
Has joined the channel.
adrien_del (Thu, 12 Dec 2019 14:58:47 GMT):
Hello, I've a question around the statement:
"Caution
If a receiving Orion is available when the private transaction is distributed but is unavailable when the privacy marker transaction is processed, the private transaction is not executed by the receiving Besu node. The private states in the Besu nodes are then inconsistent."
coming from the documentation : https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/
In Quorum, the private transaction is not distributed if the node recipient is not avialable, and I'm wondering why BESU is not doing the same ?
adrien_del (Thu, 12 Dec 2019 14:59:00 GMT):
image.png
adrien_del (Thu, 12 Dec 2019 14:59:08 GMT):
seems to contradict the above statement as well ?
NicolasMassart (Thu, 12 Dec 2019 15:04:54 GMT):
@madelinemurray ?
antonydenyer (Thu, 12 Dec 2019 16:22:39 GMT):
There's a period of time between when the transaction is submitted and when it is processed. Say Alice submits a private transaction with Bob and Charlie as recipients. If they are all online the marker transaction will end up on chain. When Bobs besu node sees that marker transaction, some time later, he will need to go and fetch the private payload for that transaction from Orion. If Orion is down at that point in time Bobs besu node will think it doesn't have access to it and will not process it. Consequently it will not update it's local private world state for that privacy group.
antonydenyer (Thu, 12 Dec 2019 16:23:12 GMT):
We're looking at changing it so that Bobs besu node will stop processing transactions if the enclave is down.
adrien_del (Thu, 12 Dec 2019 16:37:28 GMT):
ok I understand, so this is in the roadmap of BESU? do we have an ETA ?
adrien_del (Thu, 12 Dec 2019 16:37:48 GMT):
because for now, if I want my private states to stay synchronized, I better use Quorum?
antonydenyer (Thu, 12 Dec 2019 16:38:22 GMT):
it's the same problem in Quorum
adrien_del (Thu, 12 Dec 2019 16:38:42 GMT):
ah ok, I didn't know
adrien_del (Thu, 12 Dec 2019 16:38:45 GMT):
thanks :)
antonydenyer (Thu, 12 Dec 2019 16:39:08 GMT):
I think they handle it better, but if the enclave is down you have problems
adrien_del (Thu, 12 Dec 2019 16:41:41 GMT):
but in reality, it shouldn't be complicated to say that when the enclave is back up again, you execute the private transaction that is anchored on chain (the famous merker)
adrien_del (Thu, 12 Dec 2019 16:42:11 GMT):
so the node can't really lie and say he didn't receive it
antonydenyer (Thu, 12 Dec 2019 16:43:04 GMT):
it's this guy https://github.com/hyperledger/besu/blob/master/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/precompiles/privacy/PrivacyPrecompiledContract.java#L96
adrien_del (Thu, 12 Dec 2019 16:43:07 GMT):
as long as the enclave is not back up again, you don't trust this node
antonydenyer (Thu, 12 Dec 2019 16:43:43 GMT):
we need to only catch things like 4xx from the enclave
antonydenyer (Thu, 12 Dec 2019 16:43:43 GMT):
we should only catch things like 4xx from the enclave
syuta-sugawara (Fri, 13 Dec 2019 06:22:30 GMT):
hi.
no suitable image found. Did find:
/private/var/folders/1x/8j0s24710yz4s4gxwlqlnjbw0000gn/T/librocksdbjni8804614879769700996.jnilib
we got above error when i try to start bootnode with this below command.
besu --data-path=data --genesis-file=../genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-whitelist="*" --rpc-http-cors-origins="all"
syuta-sugawara (Fri, 13 Dec 2019 06:22:38 GMT):
what happend?
faraggi (Fri, 13 Dec 2019 13:57:25 GMT):
Hi Silona, I'll be glad to help with HL representtion. I'll be attending and speaking at several of these events and others throughout the year.
I've added the events I believe are important (and will personally attend) as well.
faraggi (Fri, 13 Dec 2019 13:58:04 GMT):
Hi Silona, I'll be glad to help with HL representtion. I'll be attending and speaking at several of these events and others throughout the year.
I've added the events I believe are important (and will personally attend) as well.
NicolasMassart (Fri, 13 Dec 2019 14:32:56 GMT):
Hi, is that a new fresh Besu install?
juancc (Sun, 15 Dec 2019 16:49:50 GMT):
Has joined the channel.
juancc (Sun, 15 Dec 2019 16:49:50 GMT):
Hi everyone :wave: I am new to this chat
juancc (Sun, 15 Dec 2019 16:53:03 GMT):
I was following ethernodes.org to check Istanbul network synchronisation. I saw Besu on the list trying to sync, but I can't find it anymore on the list. Does anybody know why it was removed? Any compatibility issue with Istanbul reported? Thanks!
faraggi (Mon, 16 Dec 2019 08:44:20 GMT):
Hi @juancc , this was due to the 1.3.7 consensus issue fix released we released on Friday (https://github.com/hyperledger/besu/releases).
We'll publish more information on this in some hours.
madelinemurray (Mon, 16 Dec 2019 08:45:47 GMT):
@adrien_del - this PR is in progress to stop processing private txns when the enclave is unavailable - https://github.com/hyperledger/besu/pull/253
timbeiko (Mon, 16 Dec 2019 19:09:16 GMT):
*IMPORTANT: * Besu experienced a mainnet consensus issue on Friday. 1.3.7 was promptly released to address it. More information about the issue and mitigation for both public and private networks is now available at: https://wiki.hyperledger.org/display/BESU/Mainnet+Consensus+Bug+Identified+and+Resolved+in+Hyperledger+Besu
atoulme (Mon, 16 Dec 2019 21:23:37 GMT):
Has joined the channel.
juancc (Mon, 16 Dec 2019 22:47:34 GMT):
Hi @juancc , this was due to the 1.3.7 consensus issue fix released we released on Friday (https://github.com/hyperledger/besu/releases).
W
dhuseby (Mon, 16 Dec 2019 22:51:11 GMT):
besu-audit
juancc (Mon, 16 Dec 2019 23:00:37 GMT):
Thanks a lot for your prompt reply @faraggi ! :thumbsup:
EThomas 1 (Tue, 17 Dec 2019 11:36:22 GMT):
Has joined the channel.
EThomas 1 (Tue, 17 Dec 2019 11:36:24 GMT):
I am doing a project on hyperledger besu IBFT Proof of authority . I dont know how to write codes in managing the reputation of the validators according to the validations or transactions they perform . Can some one help me how to write codes to manage the reputations of the validators in hyperledger besu network .
EThomas 1 (Tue, 17 Dec 2019 11:36:42 GMT):
I am new to blockchain concepts
EThomas 1 (Tue, 17 Dec 2019 11:36:52 GMT):
thanks in advance
bobsummerwill (Tue, 17 Dec 2019 18:04:23 GMT):
I assume that the Contributor meeting on 24th Dec is NOT proceeding?
shemnon (Tue, 17 Dec 2019 18:22:43 GMT):
The next contributor call is 7 Jan in EMEA/AMER times. - https://wiki.hyperledger.org/display/BESU/2020-01-07+Besu+Contributor+Call (as noted in the 10 DEc meeting notes)
shemnon (Tue, 17 Dec 2019 18:22:43 GMT):
The next contributor call is 7 Jan in EMEA/AMER times. - https://wiki.hyperledger.org/display/BESU/2020-01-07+Besu+Contributor+Call (as noted in the 10 Dec meeting notes)
bobsummerwill (Tue, 17 Dec 2019 18:45:16 GMT):
Thanks for the confirmation.
MatiasGallardo (Wed, 18 Dec 2019 12:42:46 GMT):
Has joined the channel.
MatiasGallardo (Wed, 18 Dec 2019 12:42:47 GMT):
Hello!! I have a pantheon node with 1.1.1 in a private network running quite a lot, is it safe to upgrade to latest?
MatiasGallardo (Wed, 18 Dec 2019 12:44:17 GMT):
how would you recommend to do the upgrade?
NicolasMassart (Wed, 18 Dec 2019 19:06:30 GMT):
Yes it's safe and recommended. Stop your node, make a backup of the database forlder, the node key and the genesis file. Update to Besu latest version (currently 1.3.7) and run your node again.
Depending on the command line parameters you used, some options may have changed.
Can you paste your command line here for me to tell you if you have to change anything?
MatiasGallardo (Wed, 18 Dec 2019 19:53:31 GMT):
--data-path=/home/ubuntu/data/pantheon-1.0.2/network/node-1/data --genesis-file=/home/ubuntu/data/pantheon-1.0.2/network/ibftGenesis.json --rpc-http-enabled --rpc-http-api=ADMIN,ETH,NET,IBFT,WEB3,DEBUG --host-whitelist=* --rpc-http-cors-origins="all" --rpc-http-port=8545 --min-gas-price=0 --rpc-ws-enabled --rpc-ws-api=ADMIN,NET,ETH,IBFT,WEB3,DEBUG --rpc-ws-port=4444 --rpc-ws-host=0.0.0.0 --rpc-http-host=0.0.0.0
mmani99 (Thu, 19 Dec 2019 12:34:09 GMT):
Has joined the channel.
NicolasMassart (Thu, 19 Dec 2019 13:21:49 GMT):
yes it looks safe, nothing in conflict with the new version for what I can see. But of course, make a test on a non critical node prior to updating all your network.
Dion (Thu, 19 Dec 2019 15:45:01 GMT):
Has joined the channel.
MatiasGallardo (Thu, 19 Dec 2019 17:29:16 GMT):
ok thanks
magooster (Fri, 20 Dec 2019 01:17:55 GMT):
Has joined the channel.
juancc (Fri, 20 Dec 2019 08:47:22 GMT):
Hi all, using BESU permissioning: Can I limit a subset of addresses to be the only ones able to deploy smart contracts? Thx!
NicolasMassart (Fri, 20 Dec 2019 10:08:50 GMT):
Not for the moment. The onchain permission rules are about an account being able to send a tx or not. It would require a finer grained system that can handle regular tx and smart contract creation tx. You can have a look at https://github.com/PegaSysEng/permissioning-smart-contracts/ for more details on what the permissions smart contracts do.
juancc (Fri, 20 Dec 2019 10:10:13 GMT):
Thanks a lot @NicolasMassart :thumbsup:
faraggi (Fri, 20 Dec 2019 14:17:52 GMT):
*PSA: Besu 1.3.8 has been released*
https://github.com/hyperledger/besu/releases/tag/1.3.8
b1001 (Sat, 21 Dec 2019 09:13:42 GMT):
Has joined the channel.
b1001 (Sat, 21 Dec 2019 09:24:45 GMT):
Hi I am referencing the verbiage in https://pegasys.tech/enterprise/. I have a question about "scalable" client solution. Can anyone elaborate a bit more that in a technical point of view?
b1001 (Sat, 21 Dec 2019 09:26:49 GMT):
My limited understanding is Besu is not a sidechain technology like Plasma
marlow (Sat, 21 Dec 2019 14:00:25 GMT):
Has joined the channel.
marlow (Sat, 21 Dec 2019 14:00:25 GMT):
Hi, I have a question regarding the besu-quickstart. There are two docker-compose files: one for a PoA network, and one for a privacy PoW network. I tried playing with the --genesis-file flag and the volumes. I get to the point where the chain is up but the nodes are not producing blocks. My question is: Is it possible to get a PoA (clique or ibft2) working with privacy enabled? Thanks!
marlow (Sat, 21 Dec 2019 14:00:25 GMT):
Hi, I have a question regarding the besu-quickstart. There are two docker-compose files: one for a PoA network, and one for a privacy PoW network. I tried playing with the --genesis-file flag and the volumes. I get to the point where the chain is up but the nodes are not producing blocks. My question is: Is it possible to get a private PoA (clique or ibft2) working with privacy enabled? Thanks!
marlow (Sat, 21 Dec 2019 14:00:25 GMT):
Hi, I have a question regarding the besu-quickstart. There are two docker-compose files: one for a PoA network, and one for a privacy PoW network. I tried playing with the --genesis-file flag and the volumes. I get to the point where the chain is up but the nodes are not producing blocks. My question is: Is it possible to get a private PoA (clique or ibft2) working with privacy enabled? As the docker-compose_privacy.yml uses the --network dev flag, which is a PoW chain
marlow (Sat, 21 Dec 2019 14:00:25 GMT):
Hi, I have a question regarding the besu-quickstart. There are two docker-compose files: one for a PoA network, and one for a privacy PoW network. My question is: Is it possible to get a private PoA (clique or ibft2) working with privacy enabled? As the docker-compose_privacy.yml uses the --network dev flag, which is a PoW chain I tried playing with the --genesis-file flag and the volumes. I get to the point where the chain is up but the nodes are not producing blocks.
MatiasGallardo (Sat, 21 Dec 2019 16:26:29 GMT):
Hi all!! How can I increase the block size gas limit in a running private network?
juancc (Sat, 21 Dec 2019 22:17:17 GMT):
Hi, what is the recommended heartbeat for a BESU POA network? 15 secs? Thx!
shemnon (Sun, 22 Dec 2019 19:44:17 GMT):
CLI flag `--target-gas-limit=` and it will require a node restart on each node you apply it to in the validator set.
joshuafernandes (Sun, 22 Dec 2019 21:30:11 GMT):
Hello @marlow Privacy for PoA works in much the same manner. I'd recommend taking the existing poa compose file and making sure it you can get blocks being created, then add the orion nodes to it (tie them to three besu nodes of your choice) with
``` "--privacy-enabled=true",
"--privacy-url=http://orion1:8888",
"--privacy-public-key-file=/config/orion/orion.pub"] ```
joshuafernandes (Sun, 22 Dec 2019 21:30:11 GMT):
Hello @marlow Privacy for PoA works in much the same manner. I'd recommend taking the existing poa compose file and making sure you can get blocks being created, then add the orion nodes to it (tie them to three besu nodes of your choice) with
``` "--privacy-enabled=true",
"--privacy-url=http://orion1:8888",
"--privacy-public-key-file=/config/orion/orion.pub"] ```
joshuafernandes (Sun, 22 Dec 2019 21:31:00 GMT):
And mount one extra volume to each of those containers with: ``` - ./config/orion/networkFiles/orion1/nodeKey.pub:/config/orion/orion.pub```
joshuafernandes (Sun, 22 Dec 2019 21:32:49 GMT):
and then follow the last few steps of the readme to deploy contracts /DApps
mikiasda (Mon, 23 Dec 2019 09:22:14 GMT):
Has joined the channel.
mikiasda (Mon, 23 Dec 2019 09:22:14 GMT):
Hi, im facing a problem when creating my own besu private network using the besu docker image
Its runs perfectly but It get stuck trying to connect to more nodes and do not start creating blocks (idk why)
any idea? I am sure the extradata field of genesis is right, derived from only one account, which is accesible for the node. I am using IBT btw
mikiasda (Mon, 23 Dec 2019 09:23:06 GMT):
Suspicious thing: my node address is 0xcc... and the eth.coinbase points to 0xfff could be this right? Or the eth.coinbase should be equal to the validator account?
faraggi (Mon, 23 Dec 2019 09:43:48 GMT):
Hi @b1001 , Keep in mind that this is the Hyperledger Besu chat and not a Pegasys chat, even though there are several Pegasys members (including me) that spend time on here.
Having said that, Besu's scalability benefits really depend on what solution we're talking about. For example, Besu tooling makes it scalable regarding deployment (with integrated tools for this), monitoring (like graphana and prometheus), and infrastructure (ie multi-tenancy).
faraggi (Mon, 23 Dec 2019 09:43:48 GMT):
Hi @b1001 , Keep in mind that this is the Hyperledger Besu chat and not a Pegasys chat, even though there are several Pegasys members (including me) that spend time on here.
Having said that, Besu's scalability benefits really depend on what solution we're talking about. For example, Besu tooling makes it scalable regarding deployment (with integrated tools for this), monitoring (graphana and prometheus), and infrastructure (ie multi-tenancy).
faraggi (Mon, 23 Dec 2019 09:43:48 GMT):
Hi @b1001 , Keep in mind that this is the Hyperledger Besu chat and not a Pegasys chat, even though there are several Pegasys members (including me) that spend time on here.
Having said that, Besu's scalability benefits really depend on what solution we're talking about. For example, Besu tooling makes it scalable regarding deployment (with integrated tools for this), monitoring (graphana and prometheus), and infrastructure (ie multi-tenancy), etc...
faraggi (Mon, 23 Dec 2019 09:45:00 GMT):
> Besu is not a sidechain technology
Correct. It's a full Ethereum client. We do, however, have some very interesting R&D projects having to do with sidechains ATM.
faraggi (Mon, 23 Dec 2019 09:48:00 GMT):
I don't think there is a recommended generic setting. I've seen networks as low as 2 seconds that work just fine.
Really depends on your setup.
faraggi (Mon, 23 Dec 2019 09:51:27 GMT):
Hi @mikis Are you following this? https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Privacy-Quickstart/
faraggi (Mon, 23 Dec 2019 09:51:27 GMT):
Hi @mikiasda Are you following this? https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Privacy-Quickstart/
mikiasda (Mon, 23 Dec 2019 09:56:33 GMT):
yep, this tutorial among others
mikiasda (Mon, 23 Dec 2019 09:57:14 GMT):
wait, no, I am following this one: https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
mikiasda (Mon, 23 Dec 2019 09:57:19 GMT):
with docker-compose
mikiasda (Mon, 23 Dec 2019 09:57:47 GMT):
I am getting this log continuosly: ```2019-12-23 08:37:58.917+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
2019-12-23 08:37:58.918+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2019-12-23 08:38:03.918+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
2019-12-23 08:38:03.918+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2019-12-23 08:38:08.919+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
2019-12-23 08:38:08.919+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
```
mikiasda (Mon, 23 Dec 2019 09:58:28 GMT):
and this error from netty: (idk if its realted)
```
java.lang.UnsupportedOperationException: Reflective setAccessible(true) disabled
at io.netty.util.internal.ReflectionUtil.trySetAccessible(ReflectionUtil.java:31) ~[netty-common-4.1.34.Final.jar:4.1.34.Final]
at io.netty.util.internal.PlatformDependent0$4.run(PlatformDependent0.java:224) ~[netty-common-4.1.34.Final.jar:4.1.34.Final]
at java.security.AccessController.doPrivileged(Native Method) ~[?:?]
at io.netty.util.internal.PlatformDependent0.
KGiou (Mon, 23 Dec 2019 11:21:56 GMT):
Has joined the channel.
marlow (Mon, 23 Dec 2019 11:40:33 GMT):
Thanks for the response @joshuafernandes ! I started with the poa compose file and just included the orion nodes in the file. At this point the chain is producing blocks. But when I add the volume and edit the nodes to enable privacy then it stops producing blocks.
marlow (Mon, 23 Dec 2019 11:42:17 GMT):
docker-compose_poa.txt
marlow (Mon, 23 Dec 2019 11:43:39 GMT):
This is the custom docker compose i'm trying. Maybe you see something I miss in this config?
faraggi (Mon, 23 Dec 2019 12:45:59 GMT):
Just so we're clear, are you running each of the nods in a different terminal in parallel?
faraggi (Mon, 23 Dec 2019 12:48:33 GMT):
Just so we're clear, are you running each of the nodes in a different terminal?
faraggi (Mon, 23 Dec 2019 12:48:39 GMT):
It should look something like this: https://i.imgur.com/NPvG93B.png
faraggi (Mon, 23 Dec 2019 12:49:14 GMT):
Also, the syncing will take some seconds, maybe a minute to start, after you get the `No sync target, wait for peers.` message
marlow (Mon, 23 Dec 2019 13:20:19 GMT):
@joshuafernandes Nevermind, got it working! Had to make an small adjustment in the ./run.sh and combined your answer with looking at the privacy compose. You think this is worth a pull request? It's a working PoA chain with privacy enabled example, maybe it can help other people aswell?
marlow (Mon, 23 Dec 2019 13:20:19 GMT):
@joshuafernandes Nevermind, got it working! Had to make a small adjustment in the ./run.sh and combined your answer with looking at the privacy compose. You think this is worth a pull request? It's a working PoA chain with privacy enabled example, maybe it can help other people aswell?
faraggi (Mon, 23 Dec 2019 13:40:15 GMT):
I definitely think its worth a PR! :muscle:
marlow (Mon, 23 Dec 2019 14:38:52 GMT):
Cool, I have it ready. But I don't have permissions to push a branch and make a pull request afterwards!
faraggi (Mon, 23 Dec 2019 14:49:09 GMT):
Can you link it here? I'll make sure to show it to a maintainer.
Only they can merge PRs.
faraggi (Mon, 23 Dec 2019 14:49:43 GMT):
BTW, anyone can become a maintainer so long as you make 5 meaningful PRs.
See here for more into: https://github.com/hyperledger/besu/blob/master/MAINTAINERS.md#becoming-a-maintainer
marlow (Mon, 23 Dec 2019 15:07:48 GMT):
Forked it and made a pull request: https://github.com/PegaSysEng/besu-quickstart/pull/48
marlow (Mon, 23 Dec 2019 15:08:08 GMT):
@faraggi Thanks for the maintainer tip didn't know that!
adityasingh177 (Mon, 23 Dec 2019 15:31:36 GMT):
Has joined the channel.
faraggi (Mon, 23 Dec 2019 15:32:36 GMT):
Thanks @marlow , just don't expect it to get merged before the new year. :)
adityasingh177 (Mon, 23 Dec 2019 15:38:22 GMT):
Hello , i am new to hyperledger besu , i am trying to understand how privacy is maintained using ethereum ?
joshuafernandes (Mon, 23 Dec 2019 20:11:42 GMT):
Very nice @marlow, 100% agree with @faraggi !
RealDeanZhao (Tue, 24 Dec 2019 04:43:50 GMT):
Hello, I tried to sendRawTransaction use web3j to besu network. ` "jsonrpc" : "2.0",
"id" : 21,
"error" : {
"code" : -32602,
"message" : "Invalid params"
}
}`
RealDeanZhao (Tue, 24 Dec 2019 04:43:50 GMT):
Hello, I tried to sendRawTransaction use web3j to besu network. `org.web3j.protocol.exceptions.ClientConnectionException: Invalid response received: 400; {
"jsonrpc" : "2.0",
"id" : 21,
"error" : {
"code" : -32602,
"message" : "Invalid params"
}
}`
RealDeanZhao (Tue, 24 Dec 2019 04:43:50 GMT):
Hello, I tried to sendRawTransaction use web3j to besu network. ` org.web3j.protocol.exceptions.ClientConnectionException: Invalid response received: 400; {
"jsonrpc" : "2.0",
"id" : 21,
"error" : {
"code" : -32602,
"message" : "Invalid params"
}
} `
RealDeanZhao (Tue, 24 Dec 2019 04:43:50 GMT):
Hello, I used web3j to send a raw transaction to besu network. ` org.web3j.protocol.exceptions.ClientConnectionException: Invalid response received: 400; {
"jsonrpc" : "2.0",
"id" : 21,
"error" : {
"code" : -32602,
"message" : "Invalid params"
}
} `
RealDeanZhao (Tue, 24 Dec 2019 04:44:28 GMT):
It worked to send the raw transaction to ganache.
adityasingh177 (Tue, 24 Dec 2019 06:06:06 GMT):
Hello, i am looking for more details on https://jira.hyperledger.org/browse/BESU-52
RealDeanZhao (Tue, 24 Dec 2019 07:19:41 GMT):
how to sign the transaciton with EthereumJS for the ibft network?
RealDeanZhao (Tue, 24 Dec 2019 07:20:03 GMT):
The transaction signature generated by EthereumJS is different with web3js.
RealDeanZhao (Tue, 24 Dec 2019 07:33:50 GMT):
I find the solution, I need to specify the ethereumjs-common options for the transaction: `const customCommon = Common.forCustomChain(
"mainnet",
{
chainId: 6174
},
"istanbul"
);
`
mikiasda (Tue, 24 Dec 2019 09:13:14 GMT):
it does not work the sign method from web3?
RealDeanZhao (Tue, 24 Dec 2019 09:13:59 GMT):
web3js works because web3js will automatically help get the chain id from the network.
mikiasda (Tue, 24 Dec 2019 09:15:04 GMT):
I am running the network using docker-compose. A question, the coinbase accounts should be equal to the validator account?
mikiasda (Tue, 24 Dec 2019 09:15:13 GMT):
oh, nice
faraggi (Tue, 24 Dec 2019 09:16:26 GMT):
That's great information, we might consider adding it to the documentation.
mikiasda (Tue, 24 Dec 2019 18:43:39 GMT):
The latter was the problem. Both should be equal. If not there is a problem with the nodekey... Could be a great idea to add tip on the doc about this. "If you want to validate if everything is correct, you should check both validator address and eth.coinbase are equal"
Radhi (Wed, 25 Dec 2019 12:46:18 GMT):
Hi, I want to know when I use this configuration(--bootnodes=enode://
mikiasda (Wed, 25 Dec 2019 18:09:01 GMT):
Hi, I am following this tutorial: https://besu.hyperledger.org/en/latest/Tutorials/Privacy/eeajs-Multinode-example/ and getting an error when deploying contract. Everything looks fine but I can see in logs this message: `ERROR | PrivacyPrecompiledContract | Failed to process the private transaction: private transaction nonce 13 does not match sender account nonce 14.`
mikiasda (Wed, 25 Dec 2019 18:09:01 GMT):
Hi, I am following this tutorial: https://besu.hyperledger.org/en/latest/Tutorials/Privacy/eeajs-Multinode-example/ and getting an error when deploying contract. Everything looks fine but I can see in logs this message from besu: `ERROR | PrivacyPrecompiledContract | Failed to process the private transaction: private transaction nonce 13 does not match sender account nonce 14.`
mikiasda (Wed, 25 Dec 2019 23:33:51 GMT):
and I am getting in orion of nodes 1 and 2 this error: `[ERROR] [DefaultDispatcher-worker-1] 12-25-2019 22:33:08 n.c.o.h.s.v.HttpErrorHandler - null failed HttpError{error='EnclavePayloadNotFound'}
net.consensys.orion.exception.OrionException: null`
mikiasda (Wed, 25 Dec 2019 23:33:51 GMT):
and I am getting in orion of nodes 1 and 2 this error: ```[ERROR] [DefaultDispatcher-worker-1] 12-25-2019 22:33:08 n.c.o.h.s.v.HttpErrorHandler - null failed HttpError{error='EnclavePayloadNotFound'}
net.consensys.orion.exception.OrionException: null```
faraggi (Thu, 26 Dec 2019 08:26:46 GMT):
Let me take a look a it and I'll get back to you
faraggi (Thu, 26 Dec 2019 08:27:03 GMT):
Let me take a look a it and I'll get back to you
faraggi (Thu, 26 Dec 2019 08:33:40 GMT):
Hi @Radhi , bootndes will help you discover other peers. Once they are discovered and added to the peer discovery table, they will persist (so long as no restarts happen). Synchronisation is then done by all nodes in the network, not only bootnodes.
faraggi (Thu, 26 Dec 2019 08:42:56 GMT):
If one bootnode is faulty, you will still have the fallback for _peer discovery_. However, AFAIK, the web3js provider will depend on it being accesible.
Yazanator (Thu, 26 Dec 2019 20:04:55 GMT):
Has joined the channel.
StefanPingel (Fri, 27 Dec 2019 02:40:45 GMT):
Has joined the channel.
lucassaldanha (Sat, 28 Dec 2019 20:26:21 GMT):
@mikiasda I have tried the tutorial with the latest version of Besu (1.3.8) and the snapshot version of Orion (1.5.0-SNAPSHOT) and everything seems to be working fine. Maybe you missed something when following the tutorial? I have uploaded my setup here so you can take a look! I hope it helps!
https://www.dropbox.com/s/eun6o895pccgaou/IBFT-Network.zip
mikiasda (Sun, 29 Dec 2019 17:10:56 GMT):
Thanks a lot @lucassaldanha ! I wil take a look. I also tried the docker setup included in web3 eea code repository and works fine... I would like to know why I get that error if my setup looks ok... any hint from your side?
madelinemurray (Sun, 29 Dec 2019 21:40:20 GMT):
@adityasingh177 - sorry about the delay in reply. Did you see the additional comments from Tim on https://jira.hyperledger.org/browse/BESU-52?
Basically the API method does the same thing as the `--target-gas-limit` option but you can change the target gas limit while Besu is running using the API method. The CLI option doc is here: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#target-gas-limit
This is similar to the relationship between the `--logging`CLI option and `admin_changeLogLevel` API method.
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#logging
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#admin_changeloglevel
Does that give you enough information or do you have something more specific you wanted to know?
madelinemurray (Sun, 29 Dec 2019 21:42:11 GMT):
@adityasingh177 - this doc describes how privacy works in Besu:
https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/
https://besu.hyperledger.org/en/stable/Concepts/Privacy/Private-Transaction-Processing/
ShaileshGhanekar (Tue, 31 Dec 2019 10:27:06 GMT):
Has joined the channel.
ShaileshGhanekar (Tue, 31 Dec 2019 10:27:09 GMT):
```
```
ShaileshGhanekar (Tue, 31 Dec 2019 10:27:29 GMT):
```
```
ShaileshGhanekar (Tue, 31 Dec 2019 10:28:05 GMT):
```
2019-12-31 04:07:42.492+00:00 | vert.x-worker-thread-11 | DEBUG | PrivateTransactionHandler | Getting privacy group for A1aVtMxLCUHmBVHXoZzzBgPbW/wj5axDpW9X8l91SGo=
```
ShaileshGhanekar (Tue, 31 Dec 2019 10:28:24 GMT):
2019-12-31 04:07:42.492+00:00 | vert.x-worker-thread-11 | DEBUG | PrivateTransactionHandler | Getting privacy group for A1aVtMxLCUHmBVHXoZzzBgPbW/wj5axDpW9X8l91SGo=
MysticRyuujin (Wed, 01 Jan 2020 00:39:37 GMT):
Has joined the channel.
MysticRyuujin (Wed, 01 Jan 2020 00:39:37 GMT):
Hello. Does besu have a config option to contribute to EthStats.net directly or do I need to also figure out the Alethio app? I can't tell from the documentation if that's required just to contribute to the main site.
shemnon (Wed, 01 Jan 2020 02:53:39 GMT):
For ethstats net we use the standard script form https://github.com/cubedro/eth-net-intelligence-api.
For ethstats.io we use the ethestats cli (https://github.com/Alethio/ethstats-cli) and it looks to be a fairly simple setup just get this running via your favorite method -
```
node \
ethstats-cli/bin/ethstats-cli.js \
--net "mainnet" \
--register \
--node-name "
shemnon (Wed, 01 Jan 2020 02:53:39 GMT):
For ethstats.net we use the standard script form https://github.com/cubedro/eth-net-intelligence-api.
For ethstats.io we use the ethestats cli (https://github.com/Alethio/ethstats-cli) and it looks to be a fairly simple setup just get this running via your favorite method -
```bash
node \
ethstats-cli/bin/ethstats-cli.js \
--net "mainnet" \
--register \
--node-name "
MysticRyuujin (Wed, 01 Jan 2020 04:55:45 GMT):
Alright, thanks for the info. It would be cool if you had native support like Geth and Nethermind. Setting that up is annoying. Do you guys track feature requests? I see there's no "Issues" on the GitHub.
shemnon (Wed, 01 Jan 2020 15:56:21 GMT):
Our issues are JIRA based - https://jira.hyperledger.org/projects/BESU/summary
b1001 (Thu, 02 Jan 2020 03:17:20 GMT):
Thanks for the explanation
bobsummerwill (Thu, 02 Jan 2020 07:07:08 GMT):
Greetings! Building on macOS. Is this EXPECTED?
"Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0"
faraggi (Thu, 02 Jan 2020 11:01:19 GMT):
All issues and contributions are welcome. Feel free to add any feature request you'd like to see in Besu.
shemnon (Thu, 02 Jan 2020 18:56:32 GMT):
Standard gradle noise. Ignorable.
ShaileshGhanekar (Fri, 03 Jan 2020 08:49:13 GMT):
Hi, I'm using docker-compose created by @marlow to run privacy PoA network (using IBFT 2.0). I was able to deploy private contract and make private transactions - https://github.com/PegaSysEng/web3js-eea/tree/master/example But, I am getting an error while deploying normal SimpleStorage contract using truffle - https://github.com/katopz/truffle-simple-storage-example What am I missing?
atoulme (Fri, 03 Jan 2020 22:12:49 GMT):
gradle complains a lot
atoulme (Fri, 03 Jan 2020 22:13:06 GMT):
Feel free to open an issue Bob. Sounds like something that can be fixed by a contributor.
coenie (Mon, 06 Jan 2020 11:18:13 GMT):
Hi! I'm looking for any documentation (or perhaps someone here can answer my questions) regarding timestamps in Besu + IBFT2.
As far as I can tell, IBFT2 doesn't make any modifications to how timestamps are checked compared to the mainnet consensus algo, is this true?
If that is the case, then do the usual "pool.ntp.org +/- 10s" rule get checked? In the case of a IBFT2 network, what do validators reject a block proposed block that doesn't adhere to this rule? Thanks!
coenie (Mon, 06 Jan 2020 11:18:13 GMT):
Hi! I'm looking for any documentation (or perhaps someone here can answer my questions) regarding timestamps in Besu + IBFT2.
As far as I can tell, IBFT2 doesn't make any modifications to how timestamps are checked compared to the mainnet consensus algo, is this true?
If that is the case, then does the usual "pool.ntp.org +/- 10s" rule get checked? In the case of a IBFT2 network, what do validators reject a block proposed block that doesn't adhere to this rule? Thanks!
coenie (Mon, 06 Jan 2020 11:18:13 GMT):
Hi! I'm looking for any documentation (or perhaps someone here can answer my questions) regarding timestamps in Besu + IBFT2.
As far as I can tell, IBFT2 doesn't make any modifications to how timestamps are checked compared to the mainnet consensus algo, is this true?
If that is the case, then does the usual "pool.ntp.org +/- 10s" rule get checked? In the case of an IBFT2 network, what do validators reject a block proposed block that doesn't adhere to this rule? Thanks!
coenie (Mon, 06 Jan 2020 11:18:13 GMT):
Hi! I'm looking for any documentation (or perhaps someone here can answer my questions) regarding timestamps in Besu + IBFT2.
As far as I can tell, IBFT2 doesn't make any modifications to how timestamps are checked compared to the mainnet consensus algo, is this true?
If that is the case, then does the usual "pool.ntp.org +/- 10s" rule get checked? In the case of an IBFT2 network, do validators reject a block proposed block that doesn't adhere to this rule? Thanks!
coenie (Mon, 06 Jan 2020 11:18:13 GMT):
Hi! I'm looking for any documentation (or perhaps someone here can answer my questions) regarding timestamps in Besu + IBFT2.
As far as I can tell, IBFT2 doesn't make any modifications to how timestamps are checked compared to the mainnet consensus algo, is this true?
If that is the case, then does the usual "pool.ntp.org +/- 10s" rule get checked? In the case of an IBFT2 network, do validators reject a proposed block that doesn't adhere to this rule? Thanks!
faraggi (Mon, 06 Jan 2020 14:52:49 GMT):
*PSA: Reminder that tomorrow is the EMEA/AMER Contributor call*
https://wiki.hyperledger.org/display/BESU/2020-01-07+Besu+Contributor+Call
@channel
faraggi (Mon, 06 Jan 2020 14:52:49 GMT):
*PSA: Reminder that tomorrow is the EMEA/AMER Contributor call*
https://wiki.hyperledger.org/display/BESU/2020-01-07+Besu+Contributor+Call
faraggi (Mon, 06 Jan 2020 14:52:49 GMT):
*PSA: Reminder that tomorrow is the EMEA/AMER Contributor call*
https://wiki.hyperledger.org/display/BESU/2020-01-07+Besu+Contributor+Call
:mega:
coenie (Tue, 07 Jan 2020 06:37:50 GMT):
Hi, just following up on my above question :)
faraggi (Tue, 07 Jan 2020 10:40:37 GMT):
I'm not sure of the answer but I forwarded it to the team. still waiting for an answer, will update with more info once I get that.
ShaileshGhanekar (Tue, 07 Jan 2020 12:50:24 GMT):
Hi, I'm using docker-compose created by @marlow (https://chat.hyperledger.org/channel/besu?msg=xmA422kWtCGwXMdop) to run privacy PoA network (using IBFT 2.0). I was able to deploy private contract and make private transactions - https://github.com/PegaSysEng/web3js-eea/tree/master/example But, I am getting an error while deploying normal SimpleStorage contract using truffle - https://github.com/katopz/truffle-simple-storage-example What am I missing?
marlow (Tue, 07 Jan 2020 13:36:32 GMT):
@ShaileshGhanekar Hi! To which node are you trying to deploy the contract? Does this also happen when you run the PoW privacy chain?
marlow (Tue, 07 Jan 2020 13:36:32 GMT):
@ShaileshGhanekar this the error `Returned error: The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu..` ?
marlow (Tue, 07 Jan 2020 13:36:32 GMT):
@ShaileshGhanekar Hi! is this the error `Returned error: The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu..` ?
coenie (Tue, 07 Jan 2020 14:01:22 GMT):
awesome, thanks!
faraggi (Tue, 07 Jan 2020 15:00:40 GMT):
Contributor call starting now.
Agenda:
https://wiki.hyperledger.org/display/BESU/2020-01-07+Besu+Contributor+Call
Zoom:
https://consensys.zoom.us/j/725448960
eum602 (Tue, 07 Jan 2020 15:08:59 GMT):
Hello everyone, from time to time I experience messages like this in my nodes:
eum602 (Tue, 07 Jan 2020 15:09:06 GMT):
Clipboard - January 7, 2020 10:08 AM
eum602 (Tue, 07 Jan 2020 15:11:56 GMT):
When it happens the node is not allowed to sync. The network is under IBFT2.0, please can you Pegasys guys help me with this?. Thanks a lot.
faraggi (Tue, 07 Jan 2020 16:29:42 GMT):
If the error you are getting is the one cited by @marlow, then you have to first sign the transaction with Ethsigner or another signing software.
faraggi (Tue, 07 Jan 2020 16:31:13 GMT):
Hi @eum602
First thing I would recommend is upgrade from 1.2.5 to 1.3.8 :)
mattatkiva (Tue, 07 Jan 2020 16:40:22 GMT):
Has left the channel.
aldoborrero (Tue, 07 Jan 2020 19:25:24 GMT):
Has joined the channel.
aldoborrero (Tue, 07 Jan 2020 19:25:25 GMT):
Hi guys! I've noticed that on https://dl.bintray.com/hyperledger-org/besu-repo/org/hyperledger/besu/internal/rocksdb/ there's no published jars for rocksdb module since version 1.3.1-SNAPSHOT while for the rest of other modules is not the case. Should be updated?
aldoborrero (Tue, 07 Jan 2020 19:26:05 GMT):
I discovered today while I was updating my plugin from version 1.2.4 to 1.3.8
aldoborrero (Tue, 07 Jan 2020 19:26:05 GMT):
I discovered it today while I was updating my plugin from version 1.2.4 to 1.3.8
aldoborrero (Tue, 07 Jan 2020 21:06:29 GMT):
Glups, my bad, the artifact was renamed to plugins-rocksdb!
shemnon (Wed, 08 Jan 2020 02:15:41 GMT):
Yea, there are actually two jars with rocksdb in the name, we had to rename them because of maven collisions so instead of picking one to just be rocksdb we did it to both. There are a couple of others that this happend to as well irrc.
ShaileshGhanekar (Wed, 08 Jan 2020 06:41:38 GMT):
Thanks for your quick reply @marlow. To answer your question, no that's not the error I'm getting.
Here's truffle log:
```
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'development'
> Network id: 2018
> Block gas limit: 0x47b760
1_initial_migration.js
======================
Replacing 'Migrations'
----------------------
Error: *** Deployment Failed ***
"Migrations" -- Internal error.
at /usr/lib/node_modules/truffle/build/webpack:/packages/deployer/src/deployment.js:364:1
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at Migration._deploy (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:70:1)
at Migration._load (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:57:1)
at Migration.run (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/migration.js:167:1)
at Object.runMigrations (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:148:1)
at Object.runFrom (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:110:1)
at Object.run (/usr/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:87:1)
at runMigrations (/usr/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:253:1)
at /usr/lib/node_modules/truffle/build/webpack:/packages/core/lib/commands/migrate.js:218:1
Truffle v5.1.6 (core: 5.1.6)
Node v12.13.1
```
and this is the log from rpcnode docker container:
```
2020-01-08 05:54:34.282+00:00 | vert.x-worker-thread-19 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eth_blockNumber
2020-01-08 05:54:34.283+00:00 | vert.x-worker-thread-19 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eth_getBlockByNumber
2020-01-08 05:54:34.293+00:00 | vert.x-worker-thread-14 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eth_getTransactionCount
2020-01-08 05:54:34.301+00:00 | vert.x-worker-thread-17 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eth_sendRawTransaction
2020-01-08 05:54:34.310+00:00 | vert.x-worker-thread-6 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eth_call
2020-01-08 05:54:34.310+00:00 | vert.x-worker-thread-6 | DEBUG | JsonRpcHttpService | Invalid Params
org.hyperledger.besu.ethereum.api.jsonrpc.internal.exception.InvalidJsonRpcParameters: Missing "to" field in call arguments
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthCall.validateAndGetCallParams(EthCall.java:84) ~[besu-api-1.3.8.jar:1.3.8]
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthCall.resultByBlockNumber(EthCall.java:53) ~[besu-api-1.3.8.jar:1.3.8]
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.AbstractBlockParameterMethod.latestResult(AbstractBlockParameterMethod.java:55) ~[besu-api-1.3.8.jar:1.3.8]
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.AbstractBlockParameterMethod.findResultByParamType(AbstractBlockParameterMethod.java:66) ~[besu-api-1.3.8.jar:1.3.8]
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthCall.response(EthCall.java:78) ~[besu-api-1.3.8.jar:1.3.8]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:497) ~[besu-api-1.3.8.jar:1.3.8]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$6(JsonRpcHttpService.java:375) ~[besu-api-1.3.8.jar:1.3.8]
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.0.jar:3.8.0]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
```
marlow (Wed, 08 Jan 2020 09:44:36 GMT):
@ShaileshGhanekar Hmm, haven't seen that one before. I can point you to the `eth_call` docs https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_call where the `Missing "to" field in call arguments` is probably coming from. Don't know if it is of use for you, otherwise someone else from the Besu team can help you better than I can!
ShaileshGhanekar (Wed, 08 Jan 2020 09:47:11 GMT):
@marlow thanks I'll take a look!
juancc (Wed, 08 Jan 2020 11:46:29 GMT):
Hi all! Do you know if it's possible to use a Token supply as gas instead of native blockchain coin? I am using Besu on a private POA network. Thank you! :pray:
juancc (Wed, 08 Jan 2020 11:46:29 GMT):
Hi all! Do you know if it's possible to use a Token supply as gas instead of native blockchain coin? I am using Besu on a private POA network. Thank you! 🙏
juancc (Wed, 08 Jan 2020 11:46:29 GMT):
Hi all! Do you know if it's possible to use a Token supply as gas instead of native blockchain coin? I am using Besu on a private POA network. I know it's a weird scenario but any hint, link, doc you could share would be highly appreciated. Thank you! 🙏
niliakis (Wed, 08 Jan 2020 11:54:42 GMT):
Has joined the channel.
faraggi (Wed, 08 Jan 2020 12:00:03 GMT):
Hi @coenie . I got the following answer from the team:
> IBFT2 has an allowable clock drift of 1 second, so if a block is proposed 1+ seconds ahead than your node system clock, it will reject it.
faraggi (Wed, 08 Jan 2020 13:19:02 GMT):
> To my knowledge it's not possible, however using the usual Ether/gas mechanism and having a contract that can mint tokens if you send it some Ether and send you Ether if you send it tokens might do the trick depending on the need.
Cody_Accenture (Wed, 08 Jan 2020 13:49:50 GMT):
Has joined the channel.
Cody_Accenture (Wed, 08 Jan 2020 13:59:45 GMT):
Hi team! We are working on a project on eth mainnet and our dev team has some questions with standing up our besu node. Who is the best person that we can sync with?
hmijail (Wed, 08 Jan 2020 13:59:58 GMT):
There is an EIP about doing just that, so no, I don't think you can do it just yet... https://github.com/ethereum/EIPs/issues/865
juancc (Wed, 08 Jan 2020 14:40:02 GMT):
Thank you both guys! :thumbsup:
coenie (Wed, 08 Jan 2020 16:24:31 GMT):
Thanks for that! Do you know if this this documented anywhere?
Some more questions about this, what happens if the validator nodes' system clocks are more than 1s apart? What happens if a validator node sets their system clock to 1h in the future and then submit a block with a timestamp 1h in the future? Do the other validators reject that block?
E.alcazar (Wed, 08 Jan 2020 16:24:50 GMT):
Has joined the channel.
E.alcazar (Wed, 08 Jan 2020 16:24:52 GMT):
You can do this right now on any evm based blockchain including mainnnet ethereum.
The gist of it is segregating the transactions from the broadcast and having some tokens paid for the gas they consume in tokens.
The standard is not approved just yet but openzeppeling has a popular implementation for the solidity side:
https://github.com/OpenZeppelin/openzeppelin-contracts/pull/741/commits/67ca9e7a4249184e642ac097b41be08a958fd302
And
E.alcazar (Wed, 08 Jan 2020 16:27:45 GMT):
Here you have another example implementation which works in the same way but doesn´t require your users to use gas at all
https://gsn.openzeppelin.com/
Also, if you still want to keep track of a token for your users, if you are running a private POA network the easiest solution would be to rename ether to whatever name you want and force a control of the emission and fees
eum602 (Wed, 08 Jan 2020 16:39:46 GMT):
Hello everyone, I have an IBFT2 network with onchain permissioning, the network works well if the bootnode is also a validator. BUT if I restart the network and all validator points to a boonode that is not a validator then the network never starts validating blocks. I wonder if it is the designed behaviour or there is something else I am missing? . Please help me clarify this. Thanks.
eum602 (Wed, 08 Jan 2020 16:39:46 GMT):
Hello everyone, I have an IBFT2 network with onchain permissioning, the network works well if the bootnode is also a validator. BUT if I restart the network and all validator points to a boonode that is not a validator then the network never starts validating blocks. I wonder if it is the designed behaviour when private network works with onchain permissioning or there is something else I am missing? . Please help me clarify this. Thanks.
juancc (Wed, 08 Jan 2020 17:12:30 GMT):
Hi @eum602 , how many nodes you have in your network? Keep in mind that if you use your bootnode as validator it's added in the consensus and if you don't reach majority then it'll stop creating blocks. For example: 2 validator + 1 bootnode/validator = 3 validators. If you remove the bootnode, then the other 2 don't reach majority and it gets stuck. I hope that helps! :thumbsup:
eum602 (Wed, 08 Jan 2020 17:14:27 GMT):
Thanks Juan, I have 4 validators and one bootnode.
eum602 (Wed, 08 Jan 2020 17:17:52 GMT):
I think that the problem is not related with the number of validators in the network, because this behavior only appears when I have onchain on my nodes.
juancc (Wed, 08 Jan 2020 17:28:43 GMT):
Check this link: https://github.com/PegaSysEng/besu-kubernetes/tree/master/helmfile/private-network-ibft-automated
"Minimum Number of Validators IBFT 2.0 requires 4 validators to be Byzantine fault tolerant."
juancc (Wed, 08 Jan 2020 17:30:57 GMT):
Is one of those 4 validators also bootnode?
juancc (Wed, 08 Jan 2020 17:31:14 GMT):
or you have 5 total
juancc (Wed, 08 Jan 2020 17:32:55 GMT):
_"Minimum Number of Validators IBFT 2.0 requires 4 validators to be Byzantine fault tolerant."_
eum602 (Wed, 08 Jan 2020 18:39:15 GMT):
5 in total
eum602 (Wed, 08 Jan 2020 18:41:14 GMT):
4 validators and one bootnode(not validator)
juancc (Wed, 08 Jan 2020 21:40:00 GMT):
Thanks a lot @E.alcazar !! I'll check this out and let you know if it works. Thank you :pray:
GregTheGreek (Wed, 08 Jan 2020 22:12:07 GMT):
hey guys i have a docker question
GregTheGreek (Wed, 08 Jan 2020 22:12:36 GMT):
in the `--mount` what exactly is the `source=/
GregTheGreek (Wed, 08 Jan 2020 22:12:56 GMT):
Is that assuming I have a local datadir?
GregTheGreek (Wed, 08 Jan 2020 22:38:20 GMT):
nvm
eum602 (Wed, 08 Jan 2020 23:05:22 GMT):
So, finally, is it a normal behaviour that under onchain in ibft2 a bootnode must be a validator ?
eum602 (Wed, 08 Jan 2020 23:05:22 GMT):
So, finally, is it a normal behavior that under onchain in ibft2 a bootnode must be a validator ?
EdJoJob (Wed, 08 Jan 2020 23:19:52 GMT):
is the bootnode in the onchain whitelist?
eum602 (Wed, 08 Jan 2020 23:20:46 GMT):
I have tested both cases when the bootnode is and when not, in both cases it does not allow validators to connect
eum602 (Wed, 08 Jan 2020 23:22:29 GMT):
let me share you mi configuration: let me share you mi configuration: https://github.com/eum602/PANTHEON-CONFIG/tree/master/permissioned-network-onchain
eum602 (Wed, 08 Jan 2020 23:22:29 GMT):
let me share you mi configuration: https://github.com/eum602/PANTHEON-CONFIG/tree/master/permissioned-network-onchain
eum602 (Wed, 08 Jan 2020 23:23:45 GMT):
It only happens under onchain.
faraggi (Thu, 09 Jan 2020 10:10:55 GMT):
Hi @enu Let me try to reproduce this behavior and I'll get back to you
faraggi (Thu, 09 Jan 2020 10:10:55 GMT):
Hi @eum602 Let me try to reproduce this behavior and I'll get back to you
jorikito (Thu, 09 Jan 2020 10:47:50 GMT):
Has joined the channel.
jorikito (Thu, 09 Jan 2020 10:47:55 GMT):
Good morning/afternoon/evening all, my team and I are working on a proof of concept on besu, where we are doing transfering of assets between contracts in different privacy groups.
Now we want to be able to search through the past events on a private contract, like you can in normal Web3. I know you can get the events from the private transaction receipt that originated the event. But is there a way of getting all the past events from a private contract and filter through them, like https://web3js.readthedocs.io/en/v1.2.0/web3-eth.html#getpastlogs ?
eum602 (Thu, 09 Jan 2020 14:19:36 GMT):
thanks @faraggi !
E.alcazar (Thu, 09 Jan 2020 14:32:07 GMT):
Hello everyone! I found a bug in the user nonce calculation, it can get transactions stuck in Besu and not in Geth or Parity.
I have several tests, and a tool to reproduce the bug, how should I proceed?
E.alcazar (Thu, 09 Jan 2020 14:35:11 GMT):
Also, question about the sync process.
1. I´m trying to sync the mainnet, and I´m topping up 16gb of memory, is memory the bottleneck? it´s around 10 times slower than Geth´s full sync
2. About Besu´s fast sync mode, how does it work? is it like Geth´s fast sync, Parity´s wrap sync, a light node sync? or something else?
faraggi (Thu, 09 Jan 2020 14:43:47 GMT):
Please raise an issue on the Jira board: jira.hyperledger.org/projects/BESU/issues
Although, FYI, nonce calculation on Besu is done differently than on Geth or Parity.
faraggi (Thu, 09 Jan 2020 14:47:39 GMT):
1 is definitely related to 2. Geth uses fast-sync by default whereas Besu doens't. So it shouldn't be 10 times slower with the same flags, I recommend using that flag.
Besu's fast sync is similar to geth's where the chain state is downloaded and then process and verify it.
E.alcazar (Thu, 09 Jan 2020 14:52:03 GMT):
So the result of running Besu with fast flag is still a full node with all history info cool!
I didn´t test fast sync Besu vs fast sync Geth.
But in full sync Besu vs full sync Geth, Besu is around 10 times slower bottlenecked by memory (16gb) where as Geth is bottlenecked by CPU
E.alcazar (Thu, 09 Jan 2020 14:52:03 GMT):
So the result of running Besu with fast flag is still a full node with all history info cool!
I didn´t test fast sync Besu vs fast sync Geth.
But in full sync Besu vs full sync Geth, Besu is around 10 times slower bottlenecked by memory (16gb) where as Geth is bottlenecked by CPU
GregTheGreek (Thu, 09 Jan 2020 15:06:15 GMT):
Clique question:
Do I need to pass any specific flag to validate or will it occur automatically?
GregTheGreek (Thu, 09 Jan 2020 15:06:59 GMT):
(assumign my pubkey is a valid validator)
GregTheGreek (Thu, 09 Jan 2020 15:06:59 GMT):
(assuming my pubkey is a valid validator)
shemnon (Thu, 09 Jan 2020 15:07:14 GMT):
If Besu notices it's enode is in the validator set it will produce blocks w/o any special CLI flags
shemnon (Thu, 09 Jan 2020 15:07:20 GMT):
My experiences profiling the sync is that
shemnon (Thu, 09 Jan 2020 15:08:58 GMT):
My experience in profiling the sync is that the native database is the bottleneck for Besu. The most CPU time is locked up in there, single threaded. Besu does grow to full memory size to accomidate the DB cached but even in higher memory systems the DB is the biggest limiter.
shemnon (Thu, 09 Jan 2020 15:08:58 GMT):
My experience in profiling the sync is that the native database is the bottleneck for Besu. The most CPU time is locked up in there, single threaded. Besu does grow to full memory size to accomidate the DB cache but even in higher memory systems the DB is the biggest limiter.
GregTheGreek (Thu, 09 Jan 2020 15:10:28 GMT):
wicked!
E.alcazar (Thu, 09 Jan 2020 15:59:21 GMT):
In full sync limit is the DB as well? I understand why this would be the case in fast sync due to the state discovery process. Disk usage is at around 20%, maybe I´m reading the disk usage wrong.
Then adding more memory/swap shouldn´t increase sync speed too much right?
Thanks!!
shemnon (Thu, 09 Jan 2020 16:02:24 GMT):
RocksDB has lower performance writing large data as opposed to the go based leveldb impl geth has. There was some specific tweaking in leveldb-go to address this in Geth's most recent update.
jorikito (Thu, 09 Jan 2020 16:23:58 GMT):
https://chat.hyperledger.org/channel/besu?msg=Xhvt5FWLn9bWHMMTQ
jorikito (Thu, 09 Jan 2020 16:24:11 GMT):
Am i correct in stating that this is not doable as of now?
ShaileshGhanekar (Thu, 09 Jan 2020 17:28:10 GMT):
Hi, I'm trying to setup file based permissioned network (both account and node permissioning) using docker. I'm modifying the docker-compose_poa.yml in besu-quickstart repo to spin the network containing 1 bootnode, 1 rpcnode, and 4 validators.
Do I have to enable permissioning for all the nodes or doing it just for validators is enough?....please share your thoughts.
faraggi (Thu, 09 Jan 2020 17:43:34 GMT):
> At the moment there's no easy way to do this like. With the things that are in place at the moment it's a case of finding all privacy marker transactions then interrogating the privacy endpoints for those transactions.
FelixS4 (Thu, 09 Jan 2020 17:50:15 GMT):
Has joined the channel.
arash009 (Thu, 09 Jan 2020 22:35:47 GMT):
It depends on what behaviour you want to happen on the network. If you want to ensure all those nodes communicate only with each other and not anyone else, you will need to setup permissioning on each of them.
lucassaldanha (Thu, 09 Jan 2020 23:14:14 GMT):
If your nodes are gonna share the same set of permissions, I'd recommend using onchain permissioning.
https://besu.hyperledger.org/en/latest/Concepts/Permissioning/Onchain-Permissioning/
lucassaldanha (Thu, 09 Jan 2020 23:15:42 GMT):
We have in our backlog a JI to implement priv_getLogs. This will make logs generated by private transactions available. It is planned for Q1/Q2 2020.
jorikito (Thu, 09 Jan 2020 23:36:59 GMT):
awesome, thank you for answering!
arash009 (Fri, 10 Jan 2020 00:23:38 GMT):
Hey @eum602 . To clarify, the validators are not peering with the bootnode? If you look up the peers of the bootnode, do you see any that are connected to it?
Looking at your configuration, the add_nodes_to_whitelist.sh only adds 4 nodes, are these the 4 validators? How are you adding the bootnode to the whitelist? Also noticed in add_node_as_peer.sh that node3 is not peering with node4
GuillermoDLCO (Fri, 10 Jan 2020 00:38:12 GMT):
Has joined the channel.
GuillermoDLCO (Fri, 10 Jan 2020 00:42:35 GMT):
Clipboard - January 9, 2020 7:42 PM
GuillermoDLCO (Fri, 10 Jan 2020 00:42:39 GMT):
Hello, I have a doubt, according to the documentation when connecting to a public network such as the mainnet or rinkeby I should receive this message from sycing. However, I always get the answer false, so I don't know how I can synchronize my node to get the balance of my account in rinkeby. Could someone please help me, I'm starting with besu.
GuillermoDLCO (Fri, 10 Jan 2020 00:43:07 GMT):
Clipboard - January 9, 2020 7:43 PM
eum602 (Fri, 10 Jan 2020 01:53:24 GMT):
Hello @arash009. Let me answer your questions:
1. The validators peers with the bootnode, so at the end I can see that the bootnode has connection with the four validators (Node-1,Node-2,Node-3 and Node-4). Neverthless each validator only peers with the bootnode.
2. I am not using add_nodes_to_whitelist.sh script. I am only using permissioning through the smart contracts.
3. The bootnode is added to the permissioning through the Dapp (where I have the four validators and the bootnode).
4. add_node_as_peer.sh. I am not using this script.
Finally, what I would like to know is if you have tested that communication in onchain permissioning is possible through a Bootnode that is not a validator.
I have tested that when a bootnode is also a validator then all works well.
arash009 (Fri, 10 Jan 2020 02:00:32 GMT):
I see, so the validators are peered with the bootnode but not with each other, is that right? We have specific rules in the permissioning logic that allows nodes still to connect to the bootnode if they are not in sync to recieve the latest chain data, so there might be something in there... But we had definately previously tested onchain permissioning in an IBFT2.0 network without any issues
arash009 (Fri, 10 Jan 2020 02:01:25 GMT):
Let us try and replicate the issue
eum602 (Fri, 10 Jan 2020 02:37:24 GMT):
so the validators are peered with the bootnode but not with each other, is that right? ==> yes.
eum602 (Fri, 10 Jan 2020 02:38:15 GMT):
Thanks a lot @arash009
arash009 (Fri, 10 Jan 2020 03:21:40 GMT):
We think we have an idea of whats going on in the setup, let me try and explain:
If you are starting your network fresh with the bootnode NOT being a validator, and only nodes 1-4 as validators, we have specific rules that allows nodes to talk to bootnodes as they are not aware of the permissioning rules. When you then try to add a node to the whitelist contracts, those blocks must be mined through the 2/3 of the validators accepting the blocks, because those validators arent on the whitelist, they cant talk to each other and therefore the whitelist never updated. So there are two ways around this that I can think of:
1. Start the network with permissioning disabled, but the contracts still deployed. Add the nodes 1-4 to the whitelist (with permissioning disabled they will peer and validate the blocks). Then bring down all the nodes, turn permissioning on, and bring them back on.
2. Start the network with permissioning on, with the Bootnode ALSO as a validator. Update the whitelist to include all the nodes, then use the IBFT remove validator APIs to remove the bootnode.
faraggi (Fri, 10 Jan 2020 08:07:05 GMT):
The Jira issue Lucas is referring to: https://jira.hyperledger.org/browse/BESU-79
coenie (Fri, 10 Jan 2020 08:37:21 GMT):
@faraggi any update?
faraggi (Fri, 10 Jan 2020 09:15:29 GMT):
Hi @GuillermoDLCO , I'm not able to reproduce the same error you are getting.
faraggi (Fri, 10 Jan 2020 09:15:49 GMT):
I've tried both on mainnet and rinkeby and I get the expected return message.
faraggi (Fri, 10 Jan 2020 09:16:22 GMT):
Can I see what cli arguments you are passing Besu to start?
E.alcazar (Fri, 10 Jan 2020 09:40:43 GMT):
That message is returned when you are not syncing which can mean that either you haven´t started, you have stopped or you are done.
Try getBlock, if you see something else than 0x0 you are probably done syncing
Try getPeers, if you don´t see any you probably have connectivity issues and haven´t started
If you think the syncing has stopped half way through share the logs so we can take a look!
jorikito (Fri, 10 Jan 2020 09:49:14 GMT):
Thank you
eum602 (Fri, 10 Jan 2020 14:33:13 GMT):
@arash009 I made sure that all validators(Node-1,2,3,4) and bootnode are in the nodes-contract. Let me share you a screenshot:
eum602 (Fri, 10 Jan 2020 14:33:56 GMT):
Clipboard - January 10, 2020 9:33 AM
eum602 (Fri, 10 Jan 2020 14:35:55 GMT):
But even in that case I am not able to make connections between validators through that bootnode(regular node)
eum602 (Fri, 10 Jan 2020 14:36:57 GMT):
Clipboard - January 10, 2020 9:36 AM
GuillermoDLCO (Fri, 10 Jan 2020 14:44:44 GMT):
Thanks to replying, I use this command "besu --data-path=/home/dev/Documents/besu-rinkeby/data --rpc-http-enabled --rpc-http-api=ETH,NET,EEA,ADMIN".
I want to get my balance when the sycing fisihed. I was deploy contract and send private transation with test account on chainId 2018, now i want to use my account in rinkeby.
@E.alcazar I tried getBlock and i got 0x0. With getPeers i got 0x0. I just start 1 node but when i start my privacy network with other node connected with my bootnode i can see the number of nodes conected.
GuillermoDLCO (Fri, 10 Jan 2020 14:44:44 GMT):
Thanks for replying, I used this command "besu --data-path = / home / dev / Documents / besu-rinkeby / data --rpc-http-enabled --rpc-http-api = ETH, NET, EEA, ADMIN" .
I want to recover my balance when the synchronization ends. I implemented a contract and sent a private transaction with a test account in chainId 2018, now I want to use my account in rinkeby.
@ E.alcazar I tried getBlock and got 0x0. With getPeers I got 0x0. I just started 1 node, but when I start my privacy network with another node connected to my boot node, I can see the number of connected nodes.
GuillermoDLCO (Fri, 10 Jan 2020 14:45:11 GMT):
Here is my log: https://github.com/GuillermoDLCO/besu-test/blob/master/rinkeby/conection-log
shemnon (Fri, 10 Jan 2020 15:12:58 GMT):
You are not getting any peers. You are listening on 127.0.0.1. Are you in docker? If so set `--p2p-host` to the external IP address and `--p2p-interface=0.0.0.0`, if not in a container set `--p2p-host=0.0.0.0` or the actual IP of your machine.
shemnon (Fri, 10 Jan 2020 15:14:03 GMT):
also, add `--sync-mode=fast` unless you want an archival node.
shemnon (Fri, 10 Jan 2020 15:14:03 GMT):
Are you runningwith VirtualBox? can an external computer send a tcp and upd packet on 30303 to your virtualbox instance?
GuillermoDLCO (Fri, 10 Jan 2020 15:43:23 GMT):
I tried ' ✘ ⚙ dev@dev-VirtualBox ~/Documents/besu-rinkeby/data besu --network=rinkeby --data-path=/home/dev/Documents/besu-rinkeby/data --rpc-http-enabled --rpc-http-api=ETH,NET,ADMIN --p2p-host=0.0.0.0 --sync-mode=fast'
https://github.com/GuillermoDLCO/besu-test/blob/master/rinkeby/conection-log2.
GuillermoDLCO (Fri, 10 Jan 2020 15:43:23 GMT):
I tried ' besu --network=rinkeby --data-path=/home/dev/Documents/besu-rinkeby/data --rpc-http-enabled --rpc-http-api=ETH,NET,ADMIN --p2p-host=0.0.0.0 --sync-mode=fast'
https://github.com/GuillermoDLCO/besu-test/blob/master/rinkeby/conection-log2.
Following documentation just
GuillermoDLCO (Fri, 10 Jan 2020 15:45:05 GMT):
Following the documentation I should only be able to connect to a basic configuration
GuillermoDLCO (Fri, 10 Jan 2020 15:48:52 GMT):
I still can't sync it, I'm still getting the same rpc responses
shemnon (Fri, 10 Jan 2020 15:50:12 GMT):
Based on your hostname I gather you are running inside of VirtualBox. Running in VirtualBox is not something we typically expect.
Networking appears to be the issue and there are many ways to do it in VirtualBox that I am not conversant in.
`--p2p-host` should be the IP address that external clients can send inbound messages to your VirtualBox instance. in this case set `--p2p-interface=0.0.0.0` as well.
shemnon (Fri, 10 Jan 2020 15:50:40 GMT):
Are you runningwith VirtualBox? can an external computer send a tcp and upd packet on 30303 to your virtualbox instance?
GuillermoDLCO (Fri, 10 Jan 2020 15:52:58 GMT):
Yes, I am in virtual box, I will verify what you tell me. Thank you very much for answering :D
GuillermoDLCO (Fri, 10 Jan 2020 17:34:26 GMT):
thanks now I can synchronize with my virtualized node. I had to add this change --rpc-http-host = 0.0.0.0 --host-whitelist = "*" and open the specific ports
lucassaldanha (Sun, 12 Jan 2020 20:17:52 GMT):
A good way to debug permissioning is enabling TRACE log level for `org.hyperledger.besu.ethereum.permissioning`. If the nodes aren't connecting due to permissioning, you should see some messages about it in the logs.
lucassaldanha (Sun, 12 Jan 2020 20:19:32 GMT):
Also, it might be worth double checking that the enode URL of each node matches the permissioning rules stored in the contracts (nodeID, IP, port).
eum602 (Sun, 12 Jan 2020 23:33:48 GMT):
Hello Lucas, I have checked that the bootnode works without permissioning(allowing communication between validators) ==> the configuration is ok. Also checked that the bootnode is in the smart contract.
eum602 (Sun, 12 Jan 2020 23:35:15 GMT):
I think you can simply reproduce this by using the example in the besu docs but adding a new node (not validator) as a bootnode.
lucassaldanha (Sun, 12 Jan 2020 23:38:22 GMT):
Have you tried the trace logs to check the permissioning rule that is blocking the node connection?
eum602 (Sun, 12 Jan 2020 23:40:50 GMT):
yes, bootnode shares other validators enode to some validator but for some reason those are rejected.
eum602 (Sun, 12 Jan 2020 23:41:06 GMT):
yes, bootnode shares other validators enode to some validator but for some reason those are rejected.
lucassaldanha (Sun, 12 Jan 2020 23:42:48 GMT):
I'm asking about the log trace messages. It would be helpful if you could share the logs showing the permissioning rules rejecting the connection.
You can enable TRACE log level for org.hyperledger.besu.ethereum.permissioning (https://besu.hyperledger.org/en/latest/HowTo/Monitor/Logging/#advanced-custom-logging)
eum602 (Sun, 12 Jan 2020 23:44:45 GMT):
I simply used this, when starting the node: --logging=ALL
lucassaldanha (Sun, 12 Jan 2020 23:45:11 GMT):
That works. But it will generate too much logging that is not related to the problem.
lucassaldanha (Sun, 12 Jan 2020 23:45:20 GMT):
Anyway, can you share the log?
eum602 (Sun, 12 Jan 2020 23:45:37 GMT):
ok, I will
lucassaldanha (Sun, 12 Jan 2020 23:45:40 GMT):
Thanks!
eum602 (Sun, 12 Jan 2020 23:46:00 GMT):
--logging=TRACE will be enough
Jemal (Mon, 13 Jan 2020 05:34:33 GMT):
Has joined the channel.
Jemal (Mon, 13 Jan 2020 05:35:41 GMT):
```
How to Monitor Performance for Multiple Nodes?
```
Jemal (Mon, 13 Jan 2020 05:35:41 GMT):
```
\textcolor{blue}{How to Monitor Performance for Multiple Nodes? }
```
Jemal (Mon, 13 Jan 2020 05:35:41 GMT):
How to Monitor Performance for Multiple Nodes?
```
Jemal (Mon, 13 Jan 2020 05:35:41 GMT):
How to Monitor Performance for Multiple Nodes?
Jemal (Mon, 13 Jan 2020 05:35:41 GMT):
\color{blue} How to Monitor Performance for Multiple Nodes?
Jemal (Mon, 13 Jan 2020 05:35:41 GMT):
*How to Monitor Performance for Multiple Nodes?*
Jemal (Mon, 13 Jan 2020 05:35:46 GMT):
I am using Hyperledger Besu for my research. I was able to start a network of around 10 nodes on a single computer. I am running some application on the network.
I was interested to measure the performance of the network using different metrics such as:
Transaction latency
Transaction Throughtput
Disk, memory and CPU usage
What is the best way to do that?
Is there a tool to do that?
If not, is it possible to insert my own code inside Besu project to monitor these metrics? If yes, where exactly?
bobsummerwill (Mon, 13 Jan 2020 06:54:42 GMT):
@atoulme I had a quick look at where the warnings were coming from and they seemed to be related to packages which Besu was dependent on, so this is probably something I would have to chase all the way up the chain.
It reminds me of warnings-as-errors discipline which I was trying to get going on the FIFA team at EA. That was not helped at all by the fact that the system headers which Microsoft were shipping themselves did not compile with -W4 or -Wall.
Might be the case here, eh? That the "broken windows" of ignoring Gradle warnings (because there are always noisy gradle warnings) means everybody always ignores gradle warnings.
faraggi (Mon, 13 Jan 2020 10:32:23 GMT):
This hyperledger project might interest you:
https://www.hyperledger.org/projects/caliper
*docs*: https://hyperledger.github.io/caliper/vLatest/installing-caliper/
*chat*: https://chat.hyperledger.org/channel/caliper
However, it isn't fully besu-ready yet so you might have to tweak it or contribute to the project :) in order for it to do exactly what you listed.
faraggi (Mon, 13 Jan 2020 10:37:44 GMT):
Yes, @eum602 I believe that'd be enough.
richzhao (Mon, 13 Jan 2020 10:57:41 GMT):
Has joined the channel.
marlow (Mon, 13 Jan 2020 15:19:08 GMT):
Hi, Is there a recommended way to deploy a privacy enabled private network with 5 nodes? I'm currently running into stability issues with the orion nodes. Currently I try to host the besu-quickstart in a Digital Ocean droplet. It is running fine for like 6-7 hours. After that time i'm getting back errors from the orion nodes: `{“jsonrpc”:“2.0",“id”:1,“error”:{“code”:-50100,“message”:“Error communicating with enclave”}}` and `NODE_PUSHING_TO_PEER`
marlow (Mon, 13 Jan 2020 15:19:08 GMT):
Hi, Is there a recommended way to deploy a privacy enabled private network with 5 nodes? I'm currently running into stability issues with the orion nodes. Running `./run_privacy.sh -c ibft2` Currently I try to host the besu-quickstart in a Digital Ocean droplet. It is running fine for like 6-7 hours. After that time i'm getting back errors from the orion nodes: `{“jsonrpc”:“2.0",“id”:1,“error”:{“code”:-50100,“message”:“Error communicating with enclave”}}` and `NODE_PUSHING_TO_PEER`
marlow (Mon, 13 Jan 2020 15:19:08 GMT):
Hi, Is there a recommended way to deploy a privacy enabled private network with 5 nodes? I'm currently running into stability issues with the orion nodes. Currently I try to host the besu-quickstart in a Digital Ocean droplet. It is running fine for like 6-7 hours. Running `./run_privacy.sh -c ibft2` After that time i'm getting back errors from the orion nodes: `{“jsonrpc”:“2.0",“id”:1,“error”:{“code”:-50100,“message”:“Error communicating with enclave”}}` and `NODE_PUSHING_TO_PEER`
lucassaldanha (Mon, 13 Jan 2020 19:49:30 GMT):
The recommended deployment for production is running each service in its own instance. Here you can find the system requirements for Besu: https://besu.hyperledger.org/en/stable/HowTo/Get-Started/System-Requirements/
lucassaldanha (Mon, 13 Jan 2020 19:50:24 GMT):
I'm not familiar with Digital Ocean offer, what droplet configuration are you using?
atoulme (Mon, 13 Jan 2020 19:58:21 GMT):
test
atoulme (Mon, 13 Jan 2020 19:59:39 GMT):
@bobsummerwill the chat won't let me answer in thread, it's painful. I believe Danno just fixed the gradle warnings in a PR. I haven't had a chance to try.
marlow (Mon, 13 Jan 2020 20:14:21 GMT):
@lucassaldanha Using a Ubuntu 18.04, 6vCPU, 16 GB RAM, 320GB Disk dropplet on Digital Ocean. Saw that it was recommended to deploy each service seperate. My current setup isn't as it is running all nodes (besu-quickstart with 5 nodes) on the same dropplet(instance). Which probably can be the reason for the stability issues I guess.
marlow (Mon, 13 Jan 2020 20:15:06 GMT):
Guess a switch to kubernetes will be a better option, as it will deploy seperate services. I could try to use something like Kompose to generate k8s files from the `./docker-compose_privacy` and try to make a privacy enabled config for kubernetes?
lucassaldanha (Mon, 13 Jan 2020 20:41:12 GMT):
We have a reference implementation that you could use as a starting point: https://github.com/PegaSysEng/besu-kubernetes
If you get into trouble give us a shout and hopefully somene that knows kubernetes better than I do will be able to help! :)
eum602 (Mon, 13 Jan 2020 21:38:37 GMT):
bootnode-logs.zip
eum602 (Mon, 13 Jan 2020 21:39:31 GMT):
valiator3-logs.zip
eum602 (Mon, 13 Jan 2020 21:40:04 GMT):
Ok @lucassaldanha I hope these logs help to find the issue.
Jemal (Tue, 14 Jan 2020 00:46:27 GMT):
@faraggi thank you. I knew caliper. I have gone through the documentation. It looks promising for the future. But it is not yet ready for now as you said.
Jemal (Tue, 14 Jan 2020 00:58:36 GMT):
@faraggi Also i found caliper a bit inflexible. It doesn't even allow you to run different transactions depending on your application. I was wondering if i can add some code inside Besu project itself. I believe that is more flexible than using caliper. I am already running Besu source code on Intellij. But i couldn't easily figure out where i should insert my code. Can you help on that? Just a hint
arash009 (Tue, 14 Jan 2020 01:22:12 GMT):
Awesome, thanks @eum602 We'll take a look and see what we can find out
marlow (Tue, 14 Jan 2020 06:19:47 GMT):
Will use that as a starting point indeed. If I can't figure it out, I'll send another message. But I'll try first!
marlow (Tue, 14 Jan 2020 06:19:47 GMT):
Will use that as a starting point indeed. If I can't figure it out, I'll send another message. But I'll try first, any other tips on how to do this are always welcome!
marlow (Tue, 14 Jan 2020 06:56:20 GMT):
Will use that as a starting point indeed. If I can't figure it out, I'll send another message. But I'll try first, any other tips on how to do this are always welcome!
marlow (Tue, 14 Jan 2020 09:55:00 GMT):
I'm trying to deploy a orion node in kubernetes with this yaml file:
`
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: orion1
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
io.kompose.service: orion1
spec:
containers:
- args:
- /config/orion/orion.conf
env:
- name: LOG4J_CONFIGURATION_FILE
value: /config/log-config.xml
image: pegasyseng/orion:develop
name: orion1
resources: {}
volumeMounts:
- mountPath: /config/
name: log-config
- mountPath: /config/orion/
name: orion-config
- mountPath: /var/log/
name: log
restartPolicy: Always
volumes:
- name: orion-config
configMap:
name: besu-configmap
items:
- key: orion.conf
path: orion.conf
- name: log-config
configMap:
name: besu-configmap
items:
- key: log-config.xml
path: log-config.xml
- name: log
status: {}
`
I get this far, and then I don't know where the following error comes from:
`
{"timestamp":"2020-01-14T09:48:57,132","level":"INFO","thread":"main","class":"Orion","message":"starting orion","short_message":""}
{"timestamp":"2020-01-14T09:48:57,228","level":"INFO","thread":"main","class":"Orion","message":"using /config/orion/orion.conf provided config file","short_message":""}
{"timestamp":"2020-01-14T09:48:57,352","level":"ERROR","thread":"main","class":"Orion","message":"Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)","short_message":""}
Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)
marlow (Tue, 14 Jan 2020 09:55:00 GMT):
I'm trying to deploy a orion node in kubernetes with this yaml file:
`
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: orion1
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
io.kompose.service: orion1
spec:
containers:
- args:
- /config/orion/orion.conf
env:
- name: LOG4J_CONFIGURATION_FILE
value: /config/log-config.xml
image: pegasyseng/orion:develop
name: orion1
resources: {}
volumeMounts:
- mountPath: /config/
name: log-config
- mountPath: /config/orion/
name: orion-config
- mountPath: /var/log/
name: log
restartPolicy: Always
volumes:
- name: orion-config
configMap:
name: besu-configmap
items:
- key: orion.conf
path: orion.conf
- name: log-config
configMap:
name: besu-configmap
items:
- key: log-config.xml
path: log-config.xml
- name: log
status: {}
`
I get this far, and then I don't know where the following error comes from:
`{"timestamp":"2020-01-14T09:48:57,132","level":"INFO","thread":"main","class":"Orion","message":"starting orion","short_message":""}
{"timestamp":"2020-01-14T09:48:57,228","level":"INFO","thread":"main","class":"Orion","message":"using /config/orion/orion.conf provided config file","short_message":""}
{"timestamp":"2020-01-14T09:48:57,352","level":"ERROR","thread":"main","class":"Orion","message":"Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)","short_message":""}
Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)`
marlow (Tue, 14 Jan 2020 09:55:00 GMT):
I'm trying to deploy a orion node in kubernetes with this yaml file:
`apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: orion1
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
io.kompose.service: orion1
spec:
containers:
- args:
- /config/orion/orion.conf
env:
- name: LOG4J_CONFIGURATION_FILE
value: /config/log-config.xml
image: pegasyseng/orion:develop
name: orion1
resources: {}
volumeMounts:
- mountPath: /config/
name: log-config
- mountPath: /config/orion/
name: orion-config
- mountPath: /var/log/
name: log
restartPolicy: Always
volumes:
- name: orion-config
configMap:
name: besu-configmap
items:
- key: orion.conf
path: orion.conf
- name: log-config
configMap:
name: besu-configmap
items:
- key: log-config.xml
path: log-config.xml
- name: log
status: {}
`
I get this far, and then I don't know where the following error comes from:
`{"timestamp":"2020-01-14T09:48:57,132","level":"INFO","thread":"main","class":"Orion","message":"starting orion","short_message":""}
{"timestamp":"2020-01-14T09:48:57,228","level":"INFO","thread":"main","class":"Orion","message":"using /config/orion/orion.conf provided config file","short_message":""}
{"timestamp":"2020-01-14T09:48:57,352","level":"ERROR","thread":"main","class":"Orion","message":"Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)","short_message":""}
Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)`
marlow (Tue, 14 Jan 2020 09:55:00 GMT):
I'm trying to deploy a orion node in kubernetes with this yaml file:
I get this far, and then I don't know where the following error comes from:
`{"timestamp":"2020-01-14T09:48:57,132","level":"INFO","thread":"main","class":"Orion","message":"starting orion","short_message":""}
{"timestamp":"2020-01-14T09:48:57,228","level":"INFO","thread":"main","class":"Orion","message":"using /config/orion/orion.conf provided config file","short_message":""}
{"timestamp":"2020-01-14T09:48:57,352","level":"ERROR","thread":"main","class":"Orion","message":"Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)","short_message":""}
Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)`
marlow (Tue, 14 Jan 2020 09:55:00 GMT):
I'm trying to deploy a orion node in kubernetes with this yaml file:
https://www.codepile.net/pile/Bx1bgLn5
I get this far, and then I don't know where the following error comes from:
`{"timestamp":"2020-01-14T09:48:57,132","level":"INFO","thread":"main","class":"Orion","message":"starting orion","short_message":""}
{"timestamp":"2020-01-14T09:48:57,228","level":"INFO","thread":"main","class":"Orion","message":"using /config/orion/orion.conf provided config file","short_message":""}
{"timestamp":"2020-01-14T09:48:57,352","level":"ERROR","thread":"main","class":"Orion","message":"Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)","short_message":""}
Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)`
marlow (Tue, 14 Jan 2020 09:55:00 GMT):
I'm trying to deploy a orion node in kubernetes with this yaml file:
https://www.codepile.net/pile/Bx1bgLn5
I get this far, and then I don't know where the following error comes from:
`{"timestamp":"2020-01-14T09:48:57,352","level":"ERROR","thread":"main","class":"Orion","message":"Unexpected 'd', expected ], a comma, or a newline (line 8, column 19)","short_message":""}`
marlow (Tue, 14 Jan 2020 16:07:44 GMT):
@lucassaldanha Managed to get it almost working I think! This is the fork i'm working on: https://github.com/marlowl/besu-kubernetes Still getting the following error from the orion pod `Orion failed to start: Cannot assign requested address`
marlow (Tue, 14 Jan 2020 16:07:44 GMT):
@lucassaldanha Managed to get it almost working I think! This is the fork i'm working on: https://github.com/marlowl/besu-kubernetes Still getting the following error from the orion pod `Orion failed to start: Cannot assign requested address` . It is coming from the `orion.conf`, when I use `http://127.0.0.1:8080/` the orion node starts. When I use `http://orion1:8080/` then the error appears
Silona (Tue, 14 Jan 2020 16:49:06 GMT):
Help Us Help you! Attend the Developer Relationship Meeting with Myself and our Marketing Dept. tomorrow at 9:00am Pacific Time.
For the agenda and Dial in info
https://wiki.hyperledger.org/display/Marketing/2020-01-15+Meeting+notes
Silona (Tue, 14 Jan 2020 17:01:01 GMT):
Calling all Projects! We will have a special Kiosk setup at Hyperledger Global Forum for Projects. We are asking that all projects sign up to do 10 minute presentations. https://wiki.hyperledger.org/display/HGF/Projects+Kiosk We will close this page on Feb 28 for printing reasons.
Silona (Tue, 14 Jan 2020 17:02:29 GMT):
Calling all Projects, SIG, and WG!!! We will have a Video recording Studio setup at HGF (Hyperledger Global Forum). We are asking that all projects and groups help us create a 5 minute video about your group so that we can promote it afterward. Sign up Here!
Silona (Tue, 14 Jan 2020 17:03:43 GMT):
https://wiki.hyperledger.org/display/HGF/Video+Recording+Schedule
fermabd (Tue, 14 Jan 2020 17:16:00 GMT):
Has joined the channel.
fermabd (Tue, 14 Jan 2020 17:16:02 GMT):
hi guys! We try to deploy a private network with IBFT2, using different VMs, located in different data centers, but we encounter a problem with bootnodes. If we try to add peers manually it works, but if we try to connect via bootnodes doesn't work. Does anybody encounter the same issue?
fermabd (Tue, 14 Jan 2020 17:16:40 GMT):
we use docker
VipinB (Tue, 14 Jan 2020 17:49:20 GMT):
I am proposing to the Capital Markets SIG (CMSIG) to workshop a simple Token using TTF (Token Taxonomy Framework) towards implementation in Besu.
The CMSIG is the ideal venue for this, since we have a mix of participants, both business and technical (including attorneys, traders, developers.)-we may be able to attract more since we are completely open. The actual effort can be housed in Hyperledger labs.
Would be good to know whether there are any comparable initiatives out there.
We can rapidly bootstrap a basic token definition and make plans for a BESU implementation.
Our meeting is tomorrow (Jan 15) at 10 am EST (15 UTC) join us at https://zoom.us/my/hyperledger.community.backup
https://wiki.hyperledger.org/display/CMSIG/2020-01-15
VipinB (Tue, 14 Jan 2020 17:49:20 GMT):
I am proposing to the Capital Markets SIG (CMSIG) to workshop a simple Token using TTF (Token Taxonomy Framework) towards implementation in Besu. This is at the suggestion of Mani Pillai CEO of swapshub. It would be great to have some participation from the Besu community.
The TTF has active membership from Accenture, IBM and others who are prominent in Hyperledger.
The CMSIG is the ideal venue for this, since we have a mix of members, both business and technical -we may be able to attract more since we are completely open. The actual effort can be housed in Hyperledger labs.
Would be good to know whether there are any comparable initiatives out there.
We can rapidly bootstrap a basic token definition and make plans for a BESU implementation.
Our meeting is tomorrow (Jan 15) at 10 am EST (15 UTC) join us at https://zoom.us/my/hyperledger.community.backup
https://wiki.hyperledger.org/display/CMSIG/2020-01-15
VipinB (Tue, 14 Jan 2020 17:49:20 GMT):
We are creating a proposal in the Capital Markets SIG (CMSIG) to workshop a simple Token using TTF (Token Taxonomy Framework) towards implementation in Besu. This is at the suggestion of Mani Pillai CEO of swapshub. It would be great to have some participation from the Besu community.
The TTF has active membership from Accenture, IBM and others who are prominent in Hyperledger.
The CMSIG is the ideal venue for this, since we have a mix of members, both business and technical -we may be able to attract more since we are completely open. The actual effort can be housed in Hyperledger labs.
Would be good to know whether there are any comparable initiatives out there.
We can rapidly bootstrap a basic token definition and make plans for a BESU implementation.
Our meeting is tomorrow (Jan 15) at 10 am EST (15 UTC) join us at https://zoom.us/my/hyperledger.community.backup
https://wiki.hyperledger.org/display/CMSIG/2020-01-15
VipinB (Tue, 14 Jan 2020 17:49:20 GMT):
We are creating a proposal in the Capital Markets SIG (CMSIG) to workshop a simple Token using TTF (Token Taxonomy Framework) towards implementation in Besu. This is at the suggestion of Mani Pillai CEO of swapshub. It would be great to have some participation from the Besu community.
The TTF has active membership from Accenture, IBM and others who are prominent in Hyperledger.
The CMSIG is the ideal venue for this, since we have a mix of members, both business and technical -we may be able to attract more since we are completely open. The actual effort can be housed in Hyperledger labs.
Would be good to know whether there are any comparable initiatives out there.
We can rapidly bootstrap a basic token definition and make plans for a BESU implementation.
Our meeting is tomorrow (Jan 15) at 10 am EST (15 UTC) join us at https://zoom.us/my/hyperledger.community.backup The agenda is here
https://wiki.hyperledger.org/display/CMSIG/2020-01-15
lucassaldanha (Tue, 14 Jan 2020 22:37:42 GMT):
Double check your network config to ensure peer discovery protocol can run successfully. This link should give you a clear list of the ports required.
https://besu.hyperledger.org/en/latest/HowTo/Find-and-Connect/Configuring-Ports/
lucassaldanha (Tue, 14 Jan 2020 22:37:58 GMT):
Let us know if it helps!
reddy (Tue, 14 Jan 2020 23:32:42 GMT):
Has joined the channel.
hmijail (Tue, 14 Jan 2020 23:40:58 GMT):
@Jemal , if you say what kind of code you want to add or are looking for we can try guiding you. Unfortunately there is no real documentation about the architecture of Besu, but there are a few talks recorded about it which might be a good starting point: https://www.youtube.com/channel/UC2iGGbbKzS2hYwcZ9xBS-6A/videos
hmijail (Tue, 14 Jan 2020 23:48:45 GMT):
Also, regarding running 10 nodes on a single computer: there is a facility to run Besu as a thread, which should help you with the overhead of the JVMs. The acceptance tests use this by setting the system property acctests.runBesuAsProcess
hmijail (Tue, 14 Jan 2020 23:50:01 GMT):
though I hope you are careful about any measurements taken in such environment, threaded or not :)
Jemal (Wed, 15 Jan 2020 00:06:15 GMT):
Hi hmijal.
Thank you very much. That was an important info. Can you explain more about "acctests.runBesuAsProcess"?
The code i wanted to add is:
1. *For transaction latency*: I want to track the total time it takes for a transaction from the time it is submitted to the network by a client until it is commited to the Blockchain. I want to calculate the average latency for the network at different load.
2. *For throughtput:* i want to monitor the number of transactions commited to the network per second
3. Third, i want to measure the average resource consumption (Memory, Cpu, or Disk) by nodes
hmijail (Wed, 15 Jan 2020 00:22:01 GMT):
Are you sure you could trust latency or throughput measurements taken for 10 nodes in a single computer?
Jemal (Wed, 15 Jan 2020 00:24:35 GMT):
Why did you ask that? Are you afraid that the latency will be low compared to the real network latency?
Jemal (Wed, 15 Jan 2020 00:26:10 GMT):
because of low propagation time
Jemal (Wed, 15 Jan 2020 00:26:10 GMT):
i mean because of fast propagation time
hmijail (Wed, 15 Jan 2020 00:26:42 GMT):
I would guess that your measurements will be skewed/dominated by the multitasking capabilities of your OS...
Jemal (Wed, 15 Jan 2020 00:27:26 GMT):
I see
Jemal (Wed, 15 Jan 2020 00:30:46 GMT):
I got it. Thanks. Currently, I this is the only resource i have. So what do you suggest me? If not to avoid at least to reduce the effect?
hmijail (Wed, 15 Jan 2020 00:33:06 GMT):
use as few nodes as possible. Ensure that there are more CPUs than nodes, and that virtual memory is not used. If you wanted to be as realistic as possible, inject some delay in the network connections with some network capability in your OS.
hmijail (Wed, 15 Jan 2020 00:33:06 GMT):
use as few nodes as possible. Ensure that the number of nodes is not greater than the number of CPUs, and that virtual memory is not used. If you wanted to be as realistic as possible, inject some delay in the network connections with some network capability in your OS.
Jemal (Wed, 15 Jan 2020 00:42:04 GMT):
That was very nice info thanks.
Jemal (Wed, 15 Jan 2020 00:43:58 GMT):
One last question: How can i inject some delay in the network connections ? Do you mean adding some delay in Besu nodes communication?
Jemal (Wed, 15 Jan 2020 00:43:58 GMT):
@hmijail Thank you very much. I will check it. I am glad that there are people like you out there who are dedicated to help other people
hmijail (Wed, 15 Jan 2020 00:57:17 GMT):
I would do it at the OS level, so it depends on your OS... https://stackoverflow.com/questions/130354/how-do-i-simulate-a-low-bandwidth-high-latency-environment
hmijail (Wed, 15 Jan 2020 01:03:08 GMT):
(and while we're talking about this: when checking the CPU vs node numbers, ensure that the nodes run on full cores, not "hardware thread" ones (HyperThreading, etc))
Jemal (Wed, 15 Jan 2020 01:03:54 GMT):
Okay Thanks
jinnyeon (Wed, 15 Jan 2020 02:17:29 GMT):
Has joined the channel.
jinnyeon (Wed, 15 Jan 2020 02:17:29 GMT):
keymanagement
jinnyeon (Wed, 15 Jan 2020 02:34:15 GMT):
Hi guys. It's a question about the Besu 1.4 version. Do you know anything about Advanced key managemet? I want to know what features they provide and how they differ from EthSigner.
arash009 (Wed, 15 Jan 2020 02:59:46 GMT):
Hi @jinnyeon This around additional capabilities that we are building into Ethsigner. Ethsigner now supports the ability to have multiple keys used both locally as well as with external vaults and signers. We are also building in TLS capabilities for more security which will be included with the 1.4 release.
arash009 (Wed, 15 Jan 2020 03:22:27 GMT):
You may also want to use some of our metrics APIs to plug into Prometheus and Graphana for visuals. https://besu.hyperledger.org/en/stable/HowTo/Monitor/Metrics/
Jemal (Wed, 15 Jan 2020 03:26:48 GMT):
@arash009 Thanks. Does Prometheus support monitoring things like transaction accepted time or commited time?
arash009 (Wed, 15 Jan 2020 03:33:16 GMT):
No, unfortunately not. Its more around the hardware performance (CPU, Disk usage), but also chain syncronization and block production, but not tx throughput
Jemal (Wed, 15 Jan 2020 03:36:18 GMT):
I see. So I am running 10 nodes on one PC. If i use Prometheus to monitor CPU, Disk usage).., does it give me the result for each node separately or just the average for all nodes?
jinnyeon (Wed, 15 Jan 2020 04:32:54 GMT):
Thanks for the reply.
In addition to the question, EthSigner seems to have an advantage in keeping keys secure. However, when recovering after losing a key, Ripple uses a regular key pair and Bitcoin's Hierarchical Deterministic Key. Is there a similar function in Besu?
faraggi (Wed, 15 Jan 2020 08:34:16 GMT):
Hello @VipinB . I'll forward this to the team. Its a bit short notice, but I hope someone from Besu can make it.
faraggi (Wed, 15 Jan 2020 08:35:14 GMT):
@shemnon had this same problem recently. I believe he solved it by hard refreshing the tab.
niliakis (Wed, 15 Jan 2020 09:06:02 GMT):
Hi guys! I'm trying to setup a private network using ansible. I set up the first node ok, but in the second, when I pass the enode of the first one in the main.yml and run "ansible-playbook requiremets.yml" I get this error "Invalid TOML configuration: Unexpected 'u', expected ], ', ", ''', """, a number, a boolean, a date/time, an array, a table, or a newline (line 40, column 12)%nUnexpected ']', ex
pected ], a comma, or a newline (line 40, column 173)%nUnexpected end of input, expected ] or a newline (line 41, column 1)". Any ideas?
tvila (Wed, 15 Jan 2020 09:47:22 GMT):
Has joined the channel.
E.alcazar (Wed, 15 Jan 2020 11:41:30 GMT):
Are there any plans to add AWS´s KMS/HSM support for EthSigner? I may start working on it soonish. Should I make a PR if I make it myself?
faraggi (Wed, 15 Jan 2020 14:47:06 GMT):
ATM, the solutions it supports are Hashicorp and Azure KM, but depending on user demand, AWS support can be added.
https://docs.ethsigner.pegasys.tech/en/stable/HowTo/Store-Keys/Use-Hashicorp/
https://docs.ethsigner.pegasys.tech/en/stable/HowTo/Store-Keys/Use-Azure/
faraggi (Wed, 15 Jan 2020 14:47:31 GMT):
Looks to me like a un-escaped char problem.
faraggi (Wed, 15 Jan 2020 14:47:58 GMT):
Can you send me the toml here or in PMs to take a look?
faraggi (Wed, 15 Jan 2020 14:58:11 GMT):
*PSA*: For those who haven't, please remember to answer our Community survey to better understand how to improve Besu:
https://forms.gle/GnLQDndJVJWPRMib9
faraggi (Wed, 15 Jan 2020 14:58:16 GMT):
:mega:
shemnon (Wed, 15 Jan 2020 15:56:23 GMT):
I never solved it, it was a problem with that thread only.
VipinB (Wed, 15 Jan 2020 17:31:14 GMT):
@shemnon showed up. The call was ending, but we did update him on the plans.
shemnon (Wed, 15 Jan 2020 17:32:00 GMT):
I had been up late the night before for a business call and mis-read the invitation as 10am PST and thought it was after the develoepr/marketing call.
lucassaldanha (Wed, 15 Jan 2020 19:15:24 GMT):
Let us know if you'll give it a shot @E.alcazar !
For any EthSigner specific questions please use EthSigner Gitter (https://gitter.im/PegaSysEng/EthSigner)
arash009 (Wed, 15 Jan 2020 23:09:15 GMT):
You should get the results of each individual node as each node will produce its own metrics. If you want it averaged you have to collate all of that data and average them seperately.
Jemal (Wed, 15 Jan 2020 23:20:02 GMT):
@arash009 thanks bro
ajsutton (Wed, 15 Jan 2020 23:23:29 GMT):
If you have one Prometheus instance pulling in the metrics from all the different besu instances, the query language it provides makes it incredibly easy to aggregate and analyse the data in many ways. Grafana will make it even easier to create dashboards to visualise the metrics across all the instances. We provide a Grafana dashboard as a starting point at https://grafana.com/grafana/dashboards/10273
Jemal (Wed, 15 Jan 2020 23:24:52 GMT):
@ajsutton Thanks i will check that
timbeiko (Thu, 16 Jan 2020 01:49:05 GMT):
Besu’s 1.4 Beta is out 🥳
It includes support for EIP-2124, some permissioned network privacy improvements and support the Tuweni bytes handling library!
Get it here: https://github.com/hyperledger/besu/releases/tag/1.4.0-beta1
faraggi (Thu, 16 Jan 2020 10:28:16 GMT):
> Do you know if this this documented anywhere?
No, this specific behavior isn't documented.
> what happens if the validator nodes' system clocks are more than 1s apart?
There will be sync problems between the validator nodes. Whichever node is ahead will always have his blocks rejected.
> What happens if a validator node sets their system clock to 1h in the future and then submit a block with a timestamp 1h in the future? Do the other validators reject that block?
if a validator is 1h in the future, the other validators will reject any blocks it proposes - however IT will think that all blocks from the other validators are fine. Thus, we will hit a round-change every 4th block (when the future-validator is proposing)
coenie (Thu, 16 Jan 2020 11:22:17 GMT):
okay thanks for the details!
adityasingh177 (Thu, 16 Jan 2020 17:57:54 GMT):
Hello Everyone @faraggi Any docs available regarding Mui Glacier Hard Fork implementation for besu?
adityasingh177 (Thu, 16 Jan 2020 18:22:03 GMT):
is besu available on EEA testnet ? https://entethalliance.org/enterprise-ethereum-alliance-testnet-offers-global-businesses-a-way-to-collaborate-to-advance-real-world-blockchain-platforms/
adityasingh177 (Thu, 16 Jan 2020 18:24:32 GMT):
Also Looking out for some process flow diagrams for json rpc methods , thanks everyone !!
JoshFodale (Thu, 16 Jan 2020 20:03:06 GMT):
Has joined the channel.
atoulme (Thu, 16 Jan 2020 21:23:43 GMT):
hello Aditya, we're working on making besu available on the EEA testnet. Thank you for your interest - you can contact us over at whiteblock.io/eea for any further inquiry. Please note the EEA testnet is reserved to EEA members.
Jemal (Thu, 16 Jan 2020 23:45:45 GMT):
Does Besu/Ethereum work with Caliper? I tried to connect both Besu and Ethereum to Caliper. I am gettting "not supported error" in both cases:
Jemal (Thu, 16 Jan 2020 23:46:09 GMT):
Clipboard - January 17, 2020 10:46 AM
shemnon (Fri, 17 Jan 2020 00:25:00 GMT):
Caliper 0.2.0 is the needed version.
Jemal (Fri, 17 Jan 2020 00:45:42 GMT):
@shemnon yea i the version i installed is also caliper version 0.2.0 but didn't work
Jemal (Fri, 17 Jan 2020 00:47:34 GMT):
Did i make miss something ?
Jemal (Fri, 17 Jan 2020 00:47:34 GMT):
Did i miss something ?
shemnon (Fri, 17 Jan 2020 01:11:39 GMT):
The config.yaml that is part of 0.2.0 lists them here - https://github.com/hyperledger/caliper/blob/b236ce37959c84a8f5ffd7fe9e85e6941cab2169/packages/caliper-cli/lib/bind/config.yaml - either it's not shipping that with 0.2.0 or something is misconfigured.
Jemal (Fri, 17 Jan 2020 01:41:57 GMT):
@shemnon thanks. I moved one step now. But facing another error .
Jemal (Fri, 17 Jan 2020 01:42:01 GMT):
Clipboard - January 17, 2020 12:41 PM
shemnon (Fri, 17 Jan 2020 03:00:00 GMT):
That looks like some node.js issues, #caliper is more familir with those issues than I am.
adityasingh177 (Fri, 17 Jan 2020 06:45:58 GMT):
Thanks @atoulme
adityasingh177 (Fri, 17 Jan 2020 06:45:58 GMT):
Thas @atoulme
faraggi (Fri, 17 Jan 2020 08:58:21 GMT):
> The main implementation is here: https://github.com/hyperledger/besu/commit/fc7338fba75619f7033655d4f06126a53b0ee070#diff-120dc8e311d0c767f94b11a2b9e3c39f - most of the other stuff in the PR is plumbing to map the numbers to the difficulty calculation.
faraggi (Fri, 17 Jan 2020 09:11:56 GMT):
Hi All, quick reminder next week is the Contributor Call. If you have any topics for discussion please update the agenda:
https://wiki.hyperledger.org/display/BESU/2020-01-21+Contributor+Call
faraggi (Fri, 17 Jan 2020 09:11:59 GMT):
:mega:
niliakis (Fri, 17 Jan 2020 12:55:39 GMT):
Καταγραφή.PNG
niliakis (Fri, 17 Jan 2020 12:56:22 GMT):
it adds an exta u in the array
adityasingh177 (Fri, 17 Jan 2020 14:10:34 GMT):
Thanks
adityasingh177 (Fri, 17 Jan 2020 14:12:30 GMT):
Thanks @faraggi
faraggi (Fri, 17 Jan 2020 14:39:12 GMT):
Yes, I got that much from the error message.
This is typical from unicode/utf-8 encoding errors.
Amanullah68 (Sat, 18 Jan 2020 08:02:55 GMT):
Has joined the channel.
Amanullah68 (Sat, 18 Jan 2020 08:17:13 GMT):
Hello, please mentioned the steps to follow
Amanullah68 (Sat, 18 Jan 2020 08:33:11 GMT):
java.lang.IllegalArgumentException: Output directory must be empty.
Amanullah68 (Sat, 18 Jan 2020 08:47:24 GMT):
I run the nodes succesfully but nothing can see on 127.0.0.1:8546
Amanullah68 (Sat, 18 Jan 2020 15:58:47 GMT):
Hey, anyone here to help me?
Amanullah68 (Sat, 18 Jan 2020 15:58:55 GMT):
contract is not deploying
Amanullah68 (Sat, 18 Jan 2020 15:59:01 GMT):
Error: Invalid JSON RPC response: "
DougKing (Sun, 19 Jan 2020 02:34:10 GMT):
Has joined the channel.
shemnon (Sun, 19 Jan 2020 06:17:44 GMT):
What were you trying to do before each of the two steps? What tools? What commands? We need to know what you did to cause the error not just the error.
shemnon (Sun, 19 Jan 2020 06:18:40 GMT):
Is websockets enabled? (CLI flag `--rpc-ws-enabled`)
shemnon (Sun, 19 Jan 2020 06:20:46 GMT):
Were you using the CLI command `besu operator generate-blockchain-config` and was the `--to` directory empty? The 'to' directory must be empty.
Amanullah68 (Sun, 19 Jan 2020 13:10:36 GMT):
I'm following a document of Besu, where I'm creating a private network using IBFT 2.0 (POA) but here nodes are running perfectly. I'm following documentation through out and following the commands given in the document. I didn't enabled websockets as it is not in the command. I didn't check --to directory. When I'm trying to deploying my contract on my IBFT-Network , I get this error.
Amanullah68 (Sun, 19 Jan 2020 14:46:00 GMT):
Now I got this error when deploying contract on private network
Amanullah68 (Sun, 19 Jan 2020 14:46:05 GMT):
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
/home/aman/.nvm/versions/node/v12.13.0/lib/node_modules/truffle/build/webpack:/packages/provider/index.js:56
throw new Error(errorMessage);
^
Error: There was a timeout while attempting to connect to the network.
Check to see that your provider is valid.
If you have a slow internet connection, try configuring a longer timeout in your Truffle config. Use the networks[networkName].networkCheckTimeout property to do this.
at Timeout._onTimeout (/home/aman/.nvm/versions/node/v12.13.0/lib/node_modules/truffle/build/webpack:/packages/provider/index.js:56:1)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7)
lucassaldanha (Sun, 19 Jan 2020 20:49:22 GMT):
Hi, could you share your truffle config file so we can take a look?
Amanullah68 (Mon, 20 Jan 2020 10:12:33 GMT):
Hello everyone, I have a Question, kindly clear me
Amanullah68 (Mon, 20 Jan 2020 10:15:39 GMT):
How Besu works with ethereum public network?? Is it still achieve privacy like a tx between two nodes can't be seen by others??
Amanullah68 (Mon, 20 Jan 2020 10:24:21 GMT):
const HDWalletProvider = require("@truffle/hdwallet-provider");
const privateKey = "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63";
module.exports = {
// See
faraggi (Mon, 20 Jan 2020 11:13:49 GMT):
Hello,
Besu is fully compatible with public mainnet. That doesn't mean all of Besu's additional features (and other projects like Orion) work on mainnet.
The private transactions you are referring to above are not supported by public mainnet.
However, research has been done on public private transactions using ZK proofs, and others. These are currently available but do not rely on Orion.
You can find lots of info on this on google.
jorikito (Mon, 20 Jan 2020 12:39:33 GMT):
Hey guys, hope you're doing well. I had a quick question; am I correct in saying that signing private transactions to the orion nodes using Metamask is not yet implemented? And how would you say is the best way to make users sign their private transactions from, say, a mobile app?
Thanks in advance
Amanullah68 (Mon, 20 Jan 2020 12:52:57 GMT):
Can we use public accounts(like main net nodes) in our private network??
faraggi (Mon, 20 Jan 2020 12:59:54 GMT):
Can you expand on the question. I'm pretty sure you might be mixing up some terminology...
jorikito (Mon, 20 Jan 2020 13:05:39 GMT):
With public accounts don't you mean addresses?
faraggi (Mon, 20 Jan 2020 13:15:01 GMT):
Hi @jorikito , in order to send a transaction on to the orion network, you have to publish it with payload and other data in the data field. Metmask's current version doens't allow that. So no.
Also, orion has its own gitter channel, which you're welcome to use: https://gitter.im/PegaSysEng/orion
jorikito (Mon, 20 Jan 2020 13:17:42 GMT):
I see, thanks for your quick response. Thanks for the link, I didn't realize there were seperate channels!
faraggi (Mon, 20 Jan 2020 13:18:08 GMT):
edit: wait a second. I might have been wrong
jorikito (Mon, 20 Jan 2020 13:18:34 GMT):
I was currently trying this but with custom data fields: https://metamask.github.io/metamask-docs/Main_Concepts/Sending_Transactions#sending-transactions
jorikito (Mon, 20 Jan 2020 13:25:26 GMT):
I havent made it work yet though
faraggi (Mon, 20 Jan 2020 13:38:50 GMT):
Thank you to our lastest open contributors!
@SteveMieskoski @matkt
And of course, thanks to those that contribute daily to the codebase and to this Rocket chat!
faraggi (Mon, 20 Jan 2020 13:38:50 GMT):
Thank you to our lastest open contributors!
@SteveMieskoski @matkt @marlow
And of course, thanks to those that contribute daily to the codebase and to this Rocket chat!
faraggi (Mon, 20 Jan 2020 13:38:56 GMT):
:thanks:
faraggi (Mon, 20 Jan 2020 13:48:54 GMT):
:mega:
faraggi (Mon, 20 Jan 2020 13:49:07 GMT):
Want some Besu Stickers?! featuring Peggy, our pegasus mascot, answer our community survey and we'll send them over to you.
Just make sure to add your full postal address in the survey.
(Also, anyone who has already answered, let me know can I send them too.)
faraggi (Mon, 20 Jan 2020 13:49:07 GMT):
*Want some Besu Stickers?!* featuring Peggy, our pegasus mascot, answer our community survey and we'll send them over to you.
Just make sure to add your full postal address in the survey.
(Also, anyone who has already answered, let me know can I send them too.)
jorikito (Mon, 20 Jan 2020 13:51:34 GMT):
Heck yeah, where can I find this survey
faraggi (Mon, 20 Jan 2020 14:08:14 GMT):
https://forms.gle/QLL6ANoGrQAhvLTw9
^^ Survey Link ^^
faraggi (Mon, 20 Jan 2020 14:08:36 GMT):
Posted now. :)
jorikito (Mon, 20 Jan 2020 14:14:53 GMT):
Cool, filled it in
faraggi (Mon, 20 Jan 2020 15:06:13 GMT):
You could sign a transaction in MM. But you would need to send the private data (in)directly to orion first (through besu).
Hi jorikito , in order to send a transaction on to the orion network, you have to publish it with payload and other data in the data field. Metmask's current *UI* version doens't allow that.
However, you could use metamask to sign the TX, and then use the signed TX and call `eea_sendRawTransaction` to send to Orion and Besu.
I haven't done this and don't know of anyone who has, but if you succeed, please let me know!
Also, orion has its own gitter channel, which you're welcome to use: https://gitter.im/PegaSysEng/orion
jorikito (Mon, 20 Jan 2020 15:10:38 GMT):
Thanks, we'll try this soon!
jorikito (Mon, 20 Jan 2020 15:10:50 GMT):
If I can make it work I'll make sure to share it here
adityasingh177 (Mon, 20 Jan 2020 16:11:50 GMT):
yes
arash009 (Tue, 21 Jan 2020 02:02:30 GMT):
Hyperledger Besu v1.4.0-beta2 has been released!
This is a follow up of our beta1 release last week where we discovered a bug once we were up on mainnet. If you have a copy of v1.4.0-beta1, please make sure to upgrade. If you havent, please grab the latest release and let us know if you hit any issues.
Get it at: https://github.com/hyperledger/besu/releases or https://bintray.com/hyperledger-org/besu-repo/besu/1.4.0-beta2
Amanullah68 (Tue, 21 Jan 2020 04:09:34 GMT):
yeah, I mean addresses
Amanullah68 (Tue, 21 Jan 2020 04:20:24 GMT):
Okay, I'm trying to deploying a smart contract on my private network like I shared a code with you but it's I'm facing a timeout error
Amanullah68 (Tue, 21 Jan 2020 04:21:11 GMT):
I'm using besu-1.3.8 for creating private network
Amanullah68 (Tue, 21 Jan 2020 04:22:38 GMT):
If we can't maintain privacy over mainnet then why we use Besu??
lucassaldanha (Tue, 21 Jan 2020 08:00:58 GMT):
There are plenty of use cases to use privacy on consortium or private networks. This is available to be used in our current stable release.
The support for private transactions on Mainnet is under development.
If you want to understand a bit more about private transactions, I suggest that you read our docs (https://besu.hyperledger.org/en/latest/Concepts/Privacy/Private-Transaction-Processing/).
About the timeout error, could you please post the error so we can take a look and try to help you?
Amanullah68 (Tue, 21 Jan 2020 08:21:49 GMT):
const HDWalletProvider = require("@truffle/hdwallet-provider");
const privateKey = "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63";
module.exports = {
// See
Amanullah68 (Tue, 21 Jan 2020 08:23:01 GMT):
one more issue I'm facing when I'm creating a privacy
Amanullah68 (Tue, 21 Jan 2020 08:23:09 GMT):
in the network
Amanullah68 (Tue, 21 Jan 2020 08:25:04 GMT):
I've created a directory of data and Orion within Nodes
Amanullah68 (Tue, 21 Jan 2020 08:25:35 GMT):
In step 2: Create a Password Files
Amanullah68 (Tue, 21 Jan 2020 08:25:54 GMT):
I created a file with no extension like passwordFile
Amanullah68 (Tue, 21 Jan 2020 08:26:43 GMT):
In step 3: In orion directory I'm using this command orion -g nodeKey
Amanullah68 (Tue, 21 Jan 2020 08:27:02 GMT):
In passwordFile I'm entering 12 as password
Amanullah68 (Tue, 21 Jan 2020 08:28:13 GMT):
In the terminal I enter 12
Amanullah68 (Tue, 21 Jan 2020 08:29:01 GMT):
But no public/private keypair generated
lucassaldanha (Tue, 21 Jan 2020 09:43:33 GMT):
So you are saying that you can't generate the Orion keypair usinng the -g command? Could you please let me knonw the version of Orion that you are using?
Amanullah68 (Tue, 21 Jan 2020 09:44:50 GMT):
version: 1.5.0-SNAPSHOT
Amanullah68 (Tue, 21 Jan 2020 10:43:21 GMT):
thanks, I solve it
Amanullah68 (Tue, 21 Jan 2020 10:43:37 GMT):
Now just help me in deploying smart contract
Amanullah68 (Tue, 21 Jan 2020 10:43:45 GMT):
I shared the code above
faraggi (Tue, 21 Jan 2020 12:50:31 GMT):
Hello again @Amanullah68 , In order to help you, you'll have to try and be more descriptive and verbose when describing your errors and what you've done up till that point.
We detail this in here: https://github.com/hyperledger/besu/blob/master/CONTRIBUTING.md#reporting-bugs
faraggi (Tue, 21 Jan 2020 12:51:13 GMT):
Also, I'd like to know how you solved the previous problem so that others having the same problem can be directed to the solution. Do you mind sharing it?
raedbensaid (Tue, 21 Jan 2020 13:12:45 GMT):
Has joined the channel.
bmg (Wed, 22 Jan 2020 14:54:53 GMT):
Has joined the channel.
jframe (Thu, 23 Jan 2020 01:17:48 GMT):
Have had a look at your logs and unfortunately it seems you have found a bug with how on-chain permissioning interacts with bootnodes and IBFT/POA networks. I've raised a bug https://jira.hyperledger.org/browse/BESU-181 for this issue. The workaround is what you have already done which is to make sure your bootnode is also a validator.
jframe (Thu, 23 Jan 2020 01:17:48 GMT):
Have had a look at your logs @eum602 and unfortunately it seems you have found a bug with how on-chain permissioning interacts with bootnodes and IBFT/POA networks. I've raised a bug https://jira.hyperledger.org/browse/BESU-181 for this issue. The workaround is what you have already done which is to make sure your bootnode is also a validator.
rajashekarkodi (Thu, 23 Jan 2020 10:36:51 GMT):
Has joined the channel.
lionelronaldo (Fri, 24 Jan 2020 11:18:07 GMT):
Has joined the channel.
faraggi (Fri, 24 Jan 2020 14:12:28 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=grHH2aepi8REM7qmJ)
@eum602 goes without saying that we REALLY appreciate the work done on your end and help raising this bug.
I'll be sending you some Besu sticker for helping build Besu.
GabrieleOcyan (Fri, 24 Jan 2020 16:33:30 GMT):
Has joined the channel.
GabrieleOcyan (Fri, 24 Jan 2020 19:49:15 GMT):
Hi everyone, I am Gabriele from Ocyan. Following our recent partnership (https://twitter.com/ocyan_cloud/status/1219971897447895042) I am working towards integrating our platforms and I started from https://github.com/PegaSysEng/besu-kubernetes
I noticed that the appVersion is 1.2.4 while the latest stable is 1.3.8 (1.4.0 is in beta). Is there any major change we should be aware of if we want to upgrade?
ldoyle (Fri, 24 Jan 2020 22:04:46 GMT):
Has joined the channel.
ldoyle (Fri, 24 Jan 2020 23:58:08 GMT):
hey all! I'm trying to build some components on Besu 1.3.8, which I downloaded as a .zip from github, but IntelliJ is telling me that I'm missing the .git folder. I looked for it in the extracted files and could not find it. Is this an error with the .zip package?
shemnon (Sat, 25 Jan 2020 02:49:58 GMT):
It's a build problem. There is code for development verisoning that depends on the .git folder. If you check it out from Github it will work.
ppoliani (Sat, 25 Jan 2020 09:36:46 GMT):
Hi everyone, quick question; I'm running Besu on a Kubernetes cluster and I would like to know if there is a way to read the JSON-RPC Api logs
ppoliani (Sat, 25 Jan 2020 09:37:58 GMT):
The thing is that I'm using web3 to connect to a websocket endpoint and I pass the bearer token correctly, however I still get an unauthorized response. I tested the same bearer token using the http endpoint and everything works smoothly
ppoliani (Sat, 25 Jan 2020 10:08:49 GMT):
digging into the logs I can see the following
```
2020-01-25 10:05:46.560+00:00 | vert.x-eventloop-thread-1 | TRACE | WebSocketService | Websocket authentication token eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJwZXJtaXNzaW9ucyI6WyJldGg6KiIsIm5ldDoqIl0sInVzZXJuYW1lIjoib1M4NEUzeXpVRG9uZyIsImlhdCI6MTU3OTk0NjcwMywiZXhwIjoxNTc5OTQ3MDAzfQ.MLqIzi5Si_NoqGXfFUugkBAt-Cx5ragbxB147RR-mc59WsuE-4oxo5Mr8cwBTxqEW5-ElHxDJLQFMSJpXxW1O-pgZReHYGY7nX0wXmGkzkS6jhI2o01CRmJLFISSKfeQARSHzOjm1Fh3ce_vk-XtJH3YmV6qgS17XPbr472iOA4kBfR3hHXMJ0hE6v1ilk3UWmz9Fxb1E8nTcQ2Yop5ULnetfVSe4JAvTklDgeIcNmltwHFi9xDTNU6P-Xcpv_thXT2jzhzbvhxLNC5tdqfZO9VXXRFiFsjc-0f-KazlGy918j3YfIyJC_ttLW-5lLUsYQZ3kn9TuvOnkS3jUa7UHA
2020-01-25 10:05:46.560+00:00 | vert.x-eventloop-thread-1 | DEBUG | WebSocketService | Websocket Connected (host=167.71.75.88, port=33894)
2020-01-25 10:05:46.560+00:00 | vert.x-eventloop-thread-1 | DEBUG | WebSocketServerHandshaker | [id: 0x8e42ea34, L:/10.42.0.135:8546 - R:/167.71.75.88:33894] WebSocket version V13 server handshake
2020-01-25 10:05:46.563+00:00 | vert.x-eventloop-thread-1 | DEBUG | WebSocketServerHandshaker | WebSocket version 13 server handshake key: FzYOBNpnSufWEA/2BDHhUg==, response: Fy0t+d65Fl6JKa3vqO3YMhPxfRY=
2020-01-25 10:05:46.649+00:00 | vert.x-eventloop-thread-1 | DEBUG | WebSocket08FrameDecoder | Decoding WebSocket Frame opCode=1
2020-01-25 10:05:46.650+00:00 | vert.x-eventloop-thread-1 | DEBUG | WebSocket08FrameDecoder | Decoding WebSocket Frame length=82
2020-01-25 10:05:46.659+00:00 | vert.x-eventloop-thread-1 | DEBUG | WebSocketService | Received Websocket request {"jsonrpc":"2.0","id":0,"method":"eth_getBlockByNumber","params":["latest",false]} (host=167.71.75.88, port=33894)
2020-01-25 10:05:46.661+00:00 | vert.x-eventloop-thread-1 | DEBUG | AuthenticationUtils | Invalid JWT token
```
ppoliani (Sat, 25 Jan 2020 10:09:14 GMT):
I used the same token with the http endpoint for the same rpc method and it worked fine
ppoliani (Sat, 25 Jan 2020 10:43:11 GMT):
Sotty guys, my bad. It's clearly written in the docs
> To obtain an authentication token, make a request to the /login endpoint with your username and password. Specify the HTTP port or the WS port to obtain a token to authenticate over HTTP or WS respectively. A different token is required for HTTP and WS.
ppoliani (Sat, 25 Jan 2020 10:43:37 GMT):
I was using the http token for ws
shemnon (Sat, 25 Jan 2020 20:56:10 GMT):
This PR should fix it. It won't show up until beta 3.
shemnon (Sat, 25 Jan 2020 20:56:13 GMT):
https://github.com/hyperledger/besu/pull/327
shemnon (Sat, 25 Jan 2020 21:01:02 GMT):
The changelog has all the details - https://github.com/hyperledger/besu/blob/master/CHANGELOG.md - but the only breaking change would be if you had comments in your genesis.json file. Any IDE would complain about it so the odds it hits users is low. The fix is to remove the comments.
shemnon (Sat, 25 Jan 2020 21:01:41 GMT):
Mostly it's new feature adds, such as Istanbul fork support, ETC support, and some plugin APIs opened up. All are opt in.
GabrieleOcyan (Sun, 26 Jan 2020 11:50:24 GMT):
@shemm
GabrieleOcyan (Sun, 26 Jan 2020 11:50:24 GMT):
@shemnon thanks for the answer. I am mostly talking about the helm charts, do you think it's gonna be difficult to upgrade? Do you have any updated chart/documentation for it?
leo5th (Sun, 26 Jan 2020 13:57:40 GMT):
Has joined the channel.
shemnon (Sun, 26 Jan 2020 19:42:13 GMT):
K8s is outside of my expertese. But CLI wise the only changes have been additions, so I would expect current helm charts to just work.
Silona (Mon, 27 Jan 2020 22:25:39 GMT):
The Linux Foundation’s CommunityBridge engineers are working on a tool to measure the health of critical open source projects and one of the key areas identified is QA Testing. They request that our communities provide honest and detailed information on testing tools and methodologies you use in your projects for us to come up with a detailed analysis, which they will share with all respondents and projects. https://www.surveymonkey.com/r/9H5G2GV. It’s only 5 questions long.
ldoyle (Mon, 27 Jan 2020 22:37:08 GMT):
I pulled from GitHub and it does work. Thanks for the info!
joshuafernandes (Tue, 28 Jan 2020 01:09:22 GMT):
@GabrieleOcyan the code in the besu-kubernetes repo are reference implementations. We are working on creating an official helm chart and will keep you posted when we release that.
joshuafernandes (Tue, 28 Jan 2020 01:12:21 GMT):
I will update the appVersion in the chart.yaml. We currently set the values, overrides in the values.yml or as overrides in the cli based on frequency of updates eg: keys are static but versions of Besu or the like change
joshuafernandes (Tue, 28 Jan 2020 01:12:21 GMT):
I will update the appVersion & version in the chart.yaml. We currently set the values, overrides etc either in the values.yml or as overrides in the cli based on frequency of updates eg: keys are static but versions of Besu or the like change
joshuafernandes (Tue, 28 Jan 2020 01:24:55 GMT):
In the examples in the repo we use tag `develop`so that people get the newest available to test things out, I'd suggest locking that to a fixed version such as `1.3.8` and upwards if you would like to use the `1.4.0 betas`
Amanullah68 (Tue, 28 Jan 2020 12:31:48 GMT):
I had created Private, Permissioned and Privacy enabled networks
Amanullah68 (Tue, 28 Jan 2020 12:32:20 GMT):
Now I want to use it in production like I wanted to use it in my project
Amanullah68 (Tue, 28 Jan 2020 12:32:47 GMT):
What I can do?? Create my own network or use Besu-QuickStart??
Amanullah68 (Tue, 28 Jan 2020 12:33:11 GMT):
Which network is used in Besu-QuickStart ??
Amanullah68 (Tue, 28 Jan 2020 12:33:23 GMT):
I need quick help, thanks in advance
Amanullah68 (Tue, 28 Jan 2020 12:37:17 GMT):
I'm not adding bin/ in orion
Amanullah68 (Tue, 28 Jan 2020 12:37:47 GMT):
more simply we have to move into bin directory to use orion commands
Amanullah68 (Tue, 28 Jan 2020 12:54:04 GMT):
In Permissioned network , I'm not able to send ethers from Node-1 to Node-2 and same Node-2 to Node-1. Transaction goes into pending. Node-3 transaction is failed immediately as it is not in white list.
grace.hartley (Tue, 28 Jan 2020 20:22:20 GMT):
@cjhare can you reply on behalf of besu?
DFeichtinger (Tue, 28 Jan 2020 22:20:47 GMT):
Has joined the channel.
cjhare (Tue, 28 Jan 2020 23:20:26 GMT):
@Silona @grace.hartley will do :thumbsup:
Silona (Tue, 28 Jan 2020 23:23:06 GMT):
THX!
arash009 (Tue, 28 Jan 2020 23:28:50 GMT):
It depends on your needs and deployment model. The quickstart uses a development network, you can either change the configuration provided to connect to an appropriate network or start from scratch.
arash009 (Tue, 28 Jan 2020 23:31:25 GMT):
Can you provide more details please? With On-chain account permissioning, you can create rules for what accounts are allowed to transact on the network. Have all the accounts been added to the whitelist? Are the nodes peered with one another?
Amanullah68 (Wed, 29 Jan 2020 04:28:19 GMT):
Yes, all the accounts are on white list and peered with one another.
Amanullah68 (Wed, 29 Jan 2020 04:29:25 GMT):
Transaction remains in pending
arash009 (Wed, 29 Jan 2020 04:46:54 GMT):
How are you submitting the transaction?
Amanullah68 (Wed, 29 Jan 2020 05:02:42 GMT):
I have created my own CUSTOM RPC in metamask and import accounts provided in the documentation
Amanullah68 (Wed, 29 Jan 2020 05:05:15 GMT):
I successfully started nodes but in mining it shows no peer sync.
Amanullah68 (Wed, 29 Jan 2020 05:07:44 GMT):
@arash009 I'm online now, please give me sometime as I've to create a private network for my project.
adityasingh177 (Wed, 29 Jan 2020 05:19:32 GMT):
Hello , Does Besu support for Ethereum Plasma ?
Piyush.Sharma (Wed, 29 Jan 2020 05:45:14 GMT):
Has joined the channel.
Piyush.Sharma (Wed, 29 Jan 2020 05:45:15 GMT):
Hello everyone, I am Piyush Sharma , 2nd yr ECE student, would like to be a part of Hyperledger internship program 2020. I have a sound knowledge of Solidity, Java, C , C++ and blockchain as well. I am new to this eco-system , so any helping hand to get me this internship will be very beneficial .
podgostar (Wed, 29 Jan 2020 06:53:39 GMT):
Has left the channel.
faraggi (Wed, 29 Jan 2020 08:16:06 GMT):
You can also request that info quite simply through the API: https://besu.hyperledger.org/en/stable/Reference/API-Methods/#net-methods
Amanullah68 (Wed, 29 Jan 2020 08:18:38 GMT):
I have created a permissioned network.
faraggi (Wed, 29 Jan 2020 08:19:30 GMT):
Hi Piyush. I don't know the answers to your internship questions. In general though, I would recommend making some contributions in order to get more experience and get noticed by organisms looking for interns: https://wiki.hyperledger.org/display/BESU/How+to+Contribute
Amanullah68 (Wed, 29 Jan 2020 08:20:30 GMT):
I started my nodes successfully and put first 2 nodes in whiteList a wel
Amanullah68 (Wed, 29 Jan 2020 08:22:10 GMT):
I created a Custom RPC in metamask over my JSON RPC port 8545
Amanullah68 (Wed, 29 Jan 2020 08:22:32 GMT):
I also import accounts
Amanullah68 (Wed, 29 Jan 2020 08:23:27 GMT):
Node 3 in not in whiltelist so tranasaction failed as I'm trying to send it, I understand it
Amanullah68 (Wed, 29 Jan 2020 08:24:11 GMT):
but for other nodes when I'm trying to send transaction it goes into pending
Amanullah68 (Wed, 29 Jan 2020 08:24:42 GMT):
Neither failed nor success
Amanullah68 (Wed, 29 Jan 2020 08:25:25 GMT):
That's a result I get when I start my nodes
Amanullah68 (Wed, 29 Jan 2020 08:25:28 GMT):
2020-01-29 13:24:53.393+05:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
Amanullah68 (Wed, 29 Jan 2020 08:26:13 GMT):
What I do now??
Amanullah68 (Wed, 29 Jan 2020 08:27:59 GMT):
@faraggi you got my point?
faraggi (Wed, 29 Jan 2020 08:31:51 GMT):
Can you point to the specific tutorial you are following?
and the step at which it isn't working?
Amanullah68 (Wed, 29 Jan 2020 08:32:15 GMT):
https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network/
Amanullah68 (Wed, 29 Jan 2020 08:32:29 GMT):
I follwed this completely
Amanullah68 (Wed, 29 Jan 2020 08:33:08 GMT):
followed*
Amanullah68 (Wed, 29 Jan 2020 08:33:49 GMT):
I use CLIQUE genesis file as given in this doc
faraggi (Wed, 29 Jan 2020 08:36:15 GMT):
what's the result of step 10?
Amanullah68 (Wed, 29 Jan 2020 08:36:35 GMT):
Screenshot from 2020-01-29 13-35-58.png
Amanullah68 (Wed, 29 Jan 2020 08:37:47 GMT):
Screenshot from 2020-01-29 13-37-20.png
Amanullah68 (Wed, 29 Jan 2020 08:38:06 GMT):
same as in doc
Amanullah68 (Wed, 29 Jan 2020 08:41:17 GMT):
Screenshot from 2020-01-29 13-40-29.png
Amanullah68 (Wed, 29 Jan 2020 08:47:02 GMT):
@faraggi you got my point??
Radhi (Wed, 29 Jan 2020 09:33:21 GMT):
Hello everyone, I want to understand when using the Privacy network (with Orion) how to execute a private transaction between end users (account, address), ie create a private group between end users (address, account) not between the nodes
Amanullah68 (Wed, 29 Jan 2020 09:44:59 GMT):
how to validate tranasaction from nodes??
Amanullah68 (Wed, 29 Jan 2020 11:53:47 GMT):
I'm sending a tranasaction from Node-1 to Node-2, both are in white list. I'm using clique . How to vote or sign for the validation of tranasaction??
jorikito (Wed, 29 Jan 2020 13:50:55 GMT):
If I understand correctly, one user needs to have a besu/web3 node and an Orion node. Private transactions are sent and stored between orion nodes, targeting orion public addresses, or a privacy group generated with those addresses. You can still make a transaction between normal web3 addresses, you just have to send the transaction with the EEAClient targeting orion public keys
Dan (Wed, 29 Jan 2020 14:34:37 GMT):
Has joined the channel.
Dan (Wed, 29 Jan 2020 14:34:38 GMT):
Hi Everyone, We are hoping to hear from everyone as we assess the health of our open source community. Please take 2 minutes to respond here: https://www.surveymonkey.com/r/DCIWGsurvey
adityasingh177 (Wed, 29 Jan 2020 17:34:05 GMT):
any desktop/mobile app coming sooner or later for hyperledger @Dan ?
adityasingh177 (Wed, 29 Jan 2020 17:34:05 GMT):
any desktop/mobile app coming sooner or later @Dan ?
arash009 (Wed, 29 Jan 2020 20:54:16 GMT):
Can you show a screenshot of the accounts on the whitelist please.
Amanullah68 (Thu, 30 Jan 2020 08:02:40 GMT):
There are some major issues in stable version. I put my nodes and accounts in whitelist but still transactions are not performed. Nodes can't sync. I've test it few times but still my problem isn't solved. headache
Amanullah68 (Thu, 30 Jan 2020 10:52:17 GMT):
kindly help me on ONCHAIN permissioning.
Amanullah68 (Thu, 30 Jan 2020 10:52:32 GMT):
I can't understand it well
Amanullah68 (Thu, 30 Jan 2020 10:56:05 GMT):
I have to continue my permissioned network and then made changes in it while following onchain permissioning.
ShaileshGhanekar (Thu, 30 Jan 2020 12:42:26 GMT):
Hi, I need some help. I'm trying to set up privacy enabled network along with account permissioning.
According to the documentation, in this case I have to specify privacy marker transactions signing key and also add it in accounts whitelist.
But, if I understand it correctly, accounts whitelist is just the list of account addresses so how can I add signing key (private key) in there? Or am I missing something?
Thanks in advance.
akuanti (Thu, 30 Jan 2020 14:39:28 GMT):
Has joined the channel.
ppoliani (Thu, 30 Jan 2020 14:51:50 GMT):
Hi guys, I have been digging into the logs and I came across something interesting. I gave created a Clique network and I added "gasLimit": "0x1fffffffffffff" to the genesis file.
Now looking into the logs I founds the following lines:
```
2020-01-30 14:42:43.339+00:00 | vert.x-worker-thread-11 | TRACE | AuthenticationUtils | user io.vertx.ext.auth.jwt.impl.JWTUser@20ed0ebb authorized : eth_estimateGas via permission eth:*
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Starting execution of ContractCreation{nonce=23, gasPrice=0, gasLimit=9007199254740991, value=0, sig=SECP256K1.Signature{r=57896044618658097711785492504343953926418782139537452191302581570759080747168, s=57896044618658097711785492504343953926418782139537452191302581570759080747168, recId=0}, payload=0x608060405234801561001057600080fd5b506103ca806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063759f785d146100515780637641e6f3146100895780638129fc1c14610138578063f586403114610140575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b0316610148565b60408051918252519081900360200190f35b6101366004803603604081101561009f57600080fd5b813591908101906040810160208201356401000000008111156100c157600080fd5b8201836020820111156100d357600080fd5b803590602001918460018302840111640100000000831117156100f557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061015a945050505050565b005b610136610253565b6100776102fa565b60346020526000908152604090205481565b60335461016d908363ffffffff61030016565b60335533600090815260346020526040902054610190908363ffffffff61030016565b336000818152603460209081526040808320949094558351838152808201879052606094810185815286519582019590955285517f47e772fda56eb54ab211642ce5421882c49fc2b7033455982af14588ae4207ff9588948894919260808501928601918190849084905b838110156102135781810151838201526020016101fb565b50505050905090810190601f1680156102405780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600054610100900460ff168061026c575061026c610361565b8061027a575060005460ff16155b6102b55760405162461bcd60e51b815260040180806020018281038252602e815260200180610368602e913960400191505060405180910390fd5b600054610100900460ff161580156102e0576000805460ff1961ff0019909116610100171660011790555b600060335580156102f7576000805461ff00191690555b50565b60335481565b6000828201838110
1561035a576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b303b159056fe436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a6564a265627a7a723158200089711e3c5a92830bfee483ca8ee8f8f9d2c860e0774e9e3692c7e64c69e75364736f6c634300050d0032}
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Incremented sender 0xf7b547f3e46effb3480eee2c486ae760734b135c nonce (23 -> 24)
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Deducted sender 0xf7b547f3e46effb3480eee2c486ae760734b135c upfront gas cost 0 (200000000000000000000 -> 200000000000000000000)
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Gas available for execution 9007199254623695 = 9007199254740991 - 117296 (limit - intrinsic)
```
I'm trying to get my head around the 117296 figure, which is the intrinsic gas. Can someone explain what that is?
In this document https://pegasys.tech/ethereum-explained-gas-payment-and-mining It says
> When validating a transaction, the node multiplies the gasPrice by the gasLimit to calculate the intrinsic cost of the transaction
That is a bit strange because the gas price is configured to be 0 (min-gas-price=0)
ppoliani (Thu, 30 Jan 2020 14:51:50 GMT):
Hi guys, I have been digging into the logs and I came across something interesting. I gave created a Clique network and I added "gasLimit": "0x1fffffffffffff" to the genesis file.
Now looking into the logs I founds the following lines:
```
2020-01-30 14:42:43.339+00:00 | vert.x-worker-thread-11 | TRACE | AuthenticationUtils | user io.vertx.ext.auth.jwt.impl.JWTUser@20ed0ebb authorized : eth_estimateGas via permission eth:*
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Starting execution of ContractCreation{nonce=23, gasPrice=0, gasLimit=9007199254740991, value=0, sig=SECP256K1.Signature{r=57896044618658097711785492504343953926418782139537452191302581570759080747168, s=57896044618658097711785492504343953926418782139537452191302581570759080747168, recId=0}, payload=0x608060405234801561001057600080fd5b506103ca806100206000396000f3fe608...}
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Incremented sender 0xf7b547f3e46effb3480eee2c486ae760734b135c nonce (23 -> 24)
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Deducted sender 0xf7b547f3e46effb3480eee2c486ae760734b135c upfront gas cost 0 (200000000000000000000 -> 200000000000000000000)
2020-01-30 14:42:43.344+00:00 | vert.x-worker-thread-11 | TRACE | MainnetTransactionProcessor | Gas available for execution 9007199254623695 = 9007199254740991 - 117296 (limit - intrinsic)
```
I'm trying to get my head around the 117296 figure, which is the intrinsic gas. Can someone explain what that is?
In this document https://pegasys.tech/ethereum-explained-gas-payment-and-mining It says
> When validating a transaction, the node multiplies the gasPrice by the gasLimit to calculate the intrinsic cost of the transaction
That is a bit strange because the gas price is configured to be 0 (min-gas-price=0)
shemnon (Thu, 30 Jan 2020 15:27:43 GMT):
Intrinsic Gas Cost comes from the size of the transaction. 21,000 just for being a transaction, and 16 gas per non-zero byte in the TX (and 4 per zero byte) This TX looks to be on the order of 16kb.
eum602 (Thu, 30 Jan 2020 15:33:39 GMT):
Hello everyone, I have a node that is behind a NAT, is it possible to make it work in a p2p besu network?.
ppoliani (Thu, 30 Jan 2020 15:51:03 GMT):
shouldn't that be calculated by the `eth_estimateGas`. The problem I has with some transaction is that I would add gas limit based on the result of the eth_estimateGas, but the tx would fail because of insufficient gas
shemnon (Thu, 30 Jan 2020 15:53:15 GMT):
That can be added to the calculation for sure, post a jira at https://jira.hyperledger.org/projects/BESU so we don't forget.
shemnon (Thu, 30 Jan 2020 15:54:24 GMT):
The other issue is the 63/64the rule is not factored intot he gas limit. Any transaction that does a CALL or DELEGATECALL generally needs a higher gas limit than is actaully consumed. It's a network-wide DOS policy.
shemnon (Thu, 30 Jan 2020 15:54:55 GMT):
One common approach I've seen in most DAPPs is to take the estimate and add 10%
ppoliani (Thu, 30 Jan 2020 15:55:41 GMT):
thanks for the explanation.
ppoliani (Thu, 30 Jan 2020 15:56:25 GMT):
with regards to the calculation; how should I to perform it? Do I need to serialize the signed transaction and then check it's size?
ppoliani (Thu, 30 Jan 2020 15:56:41 GMT):
is there a suggested way I could do that in my application?
shemnon (Thu, 30 Jan 2020 15:57:16 GMT):
Yep. then multiply it by 16 and add 21K. The real intrinsic TX will be lower because of zero bytes, but it likely isn't worth walking the array searching.
ppoliani (Thu, 30 Jan 2020 15:57:32 GMT):
good point
ppoliani (Thu, 30 Jan 2020 15:57:41 GMT):
cheers mate; I''' give it a go
eum602 (Thu, 30 Jan 2020 15:59:37 GMT):
I have tried the UPNP method that is in the documentation but the node is not working, when the node only imports all the data but after that the node keeps waiting for peers.
ppoliani (Thu, 30 Jan 2020 16:00:31 GMT):
sorry actually what said earlier won't work; I can't serialize the tx because the gas limit is part of the tx params. I guess I need to calculate it earlier
shemnon (Thu, 30 Jan 2020 16:01:03 GMT):
Try the 10% fudge, I think the all but 1/64th rule is what's getting you.
ppoliani (Thu, 30 Jan 2020 16:01:54 GMT):
thanks @shemnon I will try that out
mackcom (Thu, 30 Jan 2020 19:28:28 GMT):
Hi all, I'm trying to deploy a contract using besu and I'm getting `Transaction has been reverted by the EVM` errors. I'm following example create_contract_raw_transaction.js from https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Use-web3js/. It works when I use the bytecode in the example script, however when I use other bytecode I get the error. It seems any contract that has the calldatacopy op code is causing deployment to fail. I've been trying with the remix ballot.sol example.
Here is the output when trying to deploy into goerli testnet:
```
emack@ed-Oryx-Pro:~/projects/chainsafe/aztlan-test/scripts$ node create_contract_raw_kotti.js
******************************************
Using provider : http://localhost:8545
******************************************
txCount 3
******************************************
Do you want to send the signed contract creation transaction now ? (Y/N):y
******************************************
Contract transaction sent, waiting for receipt.
******************************************
Error: Transaction has been reverted by the EVM:
{
"blockHash": "0xcad0c063c7286774b45cb55ff9b054eb9cf984f84cae7575ff0e5c765c60ad36",
"blockNumber": 2090940,
"contractAddress": "0xF9eBbFF4ABD48f05FeEB20BF367Bc31E3B47Afef",
"cumulativeGasUsed": 8000000,
"from": "0xb737d61e742f6c31a1d84e80cf7d8c98813322fe",
"gasUsed": 8000000,
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"status": false,
"to": null,
"transactionHash": "0x3867d3744ed098a874bed3e17b3b2734eefd5e0f600e4236d771a2481fea0d46",
"transactionIndex": 0
}
emack@ed-Oryx-Pro:~/projects/chainsafe/aztlan-test/scripts$
```
I don't know why this won't deploy, any ideas?
GregTheGreek (Thu, 30 Jan 2020 19:40:13 GMT):
It looks like callDataCopy isn't working as expected
ShaileshGhanekar (Fri, 31 Jan 2020 00:09:59 GMT):
Any updates?
faraggi (Fri, 31 Jan 2020 08:48:07 GMT):
Hey @ShaileshGhanekar , can you give me more background on this question. Point me to the docs page and section you are referring to
ShaileshGhanekar (Fri, 31 Jan 2020 08:57:00 GMT):
I'm using file based local permissions and here's the section where I found the note: https://besu.hyperledger.org/en/stable/HowTo/Limit-Access/Local-Permissioning/#account-whitelisting
ShaileshGhanekar (Fri, 31 Jan 2020 08:57:00 GMT):
Hi @faraggi I'm using file based local permissions and here's the section where I found the note: https://besu.hyperledger.org/en/stable/HowTo/Limit-Access/Local-Permissioning/#account-whitelisting
faraggi (Fri, 31 Jan 2020 10:19:34 GMT):
Oh, I see what you mean/
faraggi (Fri, 31 Jan 2020 10:19:34 GMT):
Oh, I see what you mean
faraggi (Fri, 31 Jan 2020 10:20:05 GMT):
In this case, you must specify the signing key using the `--privacy-marker-transaction-signing-key-file` command line option
faraggi (Fri, 31 Jan 2020 10:20:15 GMT):
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#privacy-marker-transaction-signing-key-file
faraggi (Fri, 31 Jan 2020 10:21:07 GMT):
And include the public key in the whitelist
faraggi (Fri, 31 Jan 2020 10:21:33 GMT):
TBH, That part of the doc should be improved.
Amanullah68 (Fri, 31 Jan 2020 10:27:53 GMT):
can someone help in onchain permissioning network?? I can't understand what actually we have to do.
Amanullah68 (Fri, 31 Jan 2020 10:28:34 GMT):
I solved my permissioned network error, now transactions are performing successfully....
faraggi (Fri, 31 Jan 2020 10:33:34 GMT):
I'm not sure I understand what the problem is. You following message says you solved the problem.
BTW, what was the problem and how did you solve it?
abdelhamidbakhta (Fri, 31 Jan 2020 10:36:04 GMT):
Has joined the channel.
abdelhamidbakhta (Fri, 31 Jan 2020 10:36:05 GMT):
What command did you use exactly please ?
Amanullah68 (Fri, 31 Jan 2020 10:39:59 GMT):
I solved permissioned network where my transaction not performing like I'm sending ether from account 1 to account 2, it goes into pending. All nodes are in whitelist and account 1& account 2 as well.
Amanullah68 (Fri, 31 Jan 2020 10:41:05 GMT):
Now I'm facing issue in onchain, how I start it the document isn't that clear. It's confusing
faraggi (Fri, 31 Jan 2020 10:42:08 GMT):
What is confusing about it? which part exactly?
Amanullah68 (Fri, 31 Jan 2020 10:42:13 GMT):
What's the first step in onchain permissioning after pre-req's.
faraggi (Fri, 31 Jan 2020 10:42:44 GMT):
> 2. Add the ingress contracts to the genesis file
faraggi (Fri, 31 Jan 2020 10:43:02 GMT):
that means, going here:
faraggi (Fri, 31 Jan 2020 10:43:03 GMT):
https://github.com/PegaSysEng/permissioning-smart-contracts/blob/master/genesis.json
faraggi (Fri, 31 Jan 2020 10:43:36 GMT):
and adding the `0x0000000000000000000000000000000000009999` and `0x0000000000000000000000000000000000008888`
faraggi (Fri, 31 Jan 2020 10:43:41 GMT):
parts to your genesis file
Amanullah68 (Fri, 31 Jan 2020 10:43:47 GMT):
Can I replace this whole with my genesis file??
faraggi (Fri, 31 Jan 2020 10:45:40 GMT):
Have you tried doing that?
How about you try it and let us know how it goes? ;)
Amanullah68 (Fri, 31 Jan 2020 10:45:56 GMT):
Replace my whole genesis file with this contract??
Amanullah68 (Fri, 31 Jan 2020 10:47:14 GMT):
we have to set ENVIRONMENT Variables in toml file??
Amanullah68 (Fri, 31 Jan 2020 10:47:42 GMT):
BESU_NODE_PERM_ACCOUNT = public key??
faraggi (Fri, 31 Jan 2020 10:47:54 GMT):
Are you on linux/windows/mac?
Amanullah68 (Fri, 31 Jan 2020 10:48:00 GMT):
linux
faraggi (Fri, 31 Jan 2020 10:48:22 GMT):
https://linuxize.com/post/how-to-set-and-list-environment-variables-in-linux/
Amanullah68 (Fri, 31 Jan 2020 10:51:03 GMT):
https://besu.hyperledger.org/en/stable/HowTo/Configure/Using-Configuration-File/
Amanullah68 (Fri, 31 Jan 2020 10:51:12 GMT):
what about that??
Amanullah68 (Fri, 31 Jan 2020 10:52:55 GMT):
this part of doc badly need improvements, it's really a confusing for new ones.
faraggi (Fri, 31 Jan 2020 10:56:21 GMT):
That's the beauty of open source, you can suggest all the improvements you'd like! :)
https://wiki.hyperledger.org/display/BESU/How+to+Contribute
matkt (Fri, 31 Jan 2020 10:58:41 GMT):
do you have a firewall that could prevent the node from working?
Amanullah68 (Fri, 31 Jan 2020 11:00:22 GMT):
yeah
Amanullah68 (Fri, 31 Jan 2020 11:04:52 GMT):
what's the real life use cases of blockchain??
faraggi (Fri, 31 Jan 2020 11:12:24 GMT):
Many potential usecase. MANY more are being invented everyday.
faraggi (Fri, 31 Jan 2020 11:12:24 GMT):
Many potential usecases. MANY more are being invented everyday.
Amanullah68 (Fri, 31 Jan 2020 11:16:44 GMT):
please share few ones, so that I get better idea
faraggi (Fri, 31 Jan 2020 11:19:57 GMT):
This isn't the best forum to ask that question. You can surely find better information on https://ethereum.org/ or other websites.
This chat if for Besu- your previous questions were perfectly in line with what we are capable of answering here.
Amanullah68 (Fri, 31 Jan 2020 11:21:30 GMT):
okay sure, thanks
faraggi (Fri, 31 Jan 2020 16:44:44 GMT):
We did some tests internally, and it works so this might be coming from your end. @matkt 's question is obvs very pertinent
eum602 (Fri, 31 Jan 2020 18:40:38 GMT):
@faraggi I don know why I cannot comment on the original thread, but related to the NAT question, let me explain the following : Basically, I have a node "n" whose outgoing traffic is through a NAT (lets say public IP "A"), on the other hand incoming traffic is been received on another IP (lets say public IP "B" where it is listening on port 30303(tcp/udp)).
I have noticed that the node "n" connects to other public nodes in the network in order pull blocks. Once the node has syncronized with the network the node loose ESTABLISHED connections with other nodes.
What I think is that other nodes tries to connect to node "n" by using the IP "B" in the 30303 port (since it is the IP where the node "n" established request to other nodes). But because this IP "B" is not listening on port 30303 then other nodes cannot make request to node "n".
I tried to configure p2p-host="ip A" , with that the node "n" is still able to synchronize but after that connections to other nodes are broken.
So, based on that, I would like to know if it is mandatory that IP "A" = IP "B" in order to establish p2p connections?.
And also will it work if I make the port forwarding from the external IP to the internal where the node resides?
eum602 (Fri, 31 Jan 2020 18:40:38 GMT):
@faraggi I don know why I cannot comment on the original thread, but related to the NAT question, let me explain the following :
Basically, I have a node "n" whose outgoing traffic is through a NAT (lets say public IP "A"), on the other hand incoming traffic is been received on another IP (lets say public IP "B" where it is listening on port 30303(tcp/udp)).
I have noticed that the node "n" connects to other public nodes in the network in order pull blocks. Once the node has syncronized with the network the node loose ESTABLISHED connections with other nodes.
What I think is that other nodes tries to connect to node "n" by using the IP "B" in the 30303 port (since it is the IP where the node "n" established request to other nodes). But because this IP "B" is not listening on port 30303 then other nodes cannot make request to node "n".
I tried to configure p2p-host="ip A" , with that the node "n" is still able to synchronize but after that connections to other nodes are broken.
So, based on that, I would like to know if it is mandatory that IP "A" = IP "B" in order to establish p2p connections?.
And also will it work if I make the port forwarding from the external IP to the internal where the node resides?
faraggi (Fri, 31 Jan 2020 19:15:15 GMT):
Thanks for all that background info @eum602 !
This is how you ask a question! :)
I'll update as soon as I can.
atoulme (Fri, 31 Jan 2020 20:02:28 GMT):
hey folks, just checking - is this the proper way to run ethstats with besu? https://besu.hyperledger.org/en/stable/HowTo/Deploy/Lite-Network-Monitor/ is there a lighter way without running a sidecar alongside besu?
shemnon (Sat, 01 Feb 2020 01:45:47 GMT):
not right now. There was a reuest earlier for integrated estatas reporting but whoever requested it never opened up a jira bug.
atoulme (Sat, 01 Feb 2020 02:00:45 GMT):
got it
atoulme (Sat, 01 Feb 2020 02:08:05 GMT):
that's not a bad filter :D
atoulme (Sat, 01 Feb 2020 02:32:56 GMT):
well I took the time to file it here: https://jira.hyperledger.org/browse/BESU-191 please review at leisure
mano10 (Sun, 02 Feb 2020 09:12:51 GMT):
Has joined the channel.
mano10 (Sun, 02 Feb 2020 09:12:53 GMT):
Hi Everyone, I am trying to get the Besu client to connect to the Ethereum mainnet but its stuck at bock no. 9387845 and I see the following error msg repeated many times: 2020-02-02 09:10:26.799+00:00 | vert.x-eventloop-thread-2 | WARN | PeerDiscoveryAgent | Sending to peer DiscoveryPeer{status=bonded, enode=enode://c51e464381e3fae74d07eaeb56501384d5e7905987195f8e50cbabd731c84ddff4a09c3cbf66b0e615b8b5be9ddb6840b2574eed228f81955a042024c699f1f0@10.255.0.2:31063, firstDiscovered=1580634585407, lastContacted=1580634585418, lastSeen=1580634585407} failed, packet: 0x3576f60d0d7fe69ccc1a7b37015fb0eae9d42b49e83751e445f86c26a05d19359abf90c0d8fd87fb77a8ae6b5c45b138d89f19fccf5c365cb421407a89db81e97ae0246682037ff30779d720908e826b5f41838f27e9aeab08d1d710c8afd5930003f849b84060c4b3bafc5dbc32afba333a1830cfee2beb31c6fa6f626287815bb07ce9244b6b7613272263fef10e1276d58c9f8076402ac8c8b48cb02ab50b1b827072f91b860170052b454b
besu_mainnet_node.1.qwxy24gavk7y@imbox | java.net.SocketException: Operation not permitted
besu_mainnet_node.1.qwxy24gavk7y@imbox | at sun.nio.ch.DatagramChannelImpl.send0(Native Method) ~[?:?]
besu_mainnet_node.1.qwxy24gavk7y@imbox | at sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramCh
mano10 (Sun, 02 Feb 2020 09:12:53 GMT):
Hi Everyone, I am trying to get the Besu client to connect to the Ethereum mainnet but its stuck at bock no. 9387845 and I see the following error msg repeated many times:
2020-02-02 09:10:26.799+00:00 | vert.x-eventloop-thread-2 | WARN | PeerDiscoveryAgent | Sending to peer DiscoveryPeer{status=bonded, enode=enode://c51e464381e3fae74d07eaeb56501384d5e7905987195f8e50cbabd731c84ddff4a09c3cbf66b0e615b8b5be9ddb6840b2574eed228f81955a042024c699f1f0@10.255.0.2:31063, firstDiscovered=1580634585407, lastContacted=1580634585418, lastSeen=1580634585407} failed, packet: 0x3576f60d0d7fe69ccc1a7b37015fb0eae9d42b49e83751e445f86c26a05d19359abf90c0d8fd87fb77a8ae6b5c45b138d89f19fccf5c365cb421407a89db81e97ae0246682037ff30779d720908e826b5f41838f27e9aeab08d1d710c8afd5930003f849b84060c4b3bafc5dbc32afba333a1830cfee2beb31c6fa6f626287815bb07ce9244b6b7613272263fef10e1276d58c9f8076402ac8c8b48cb02ab50b1b827072f91b860170052b454b
besu_mainnet_node.1.qwxy24gavk7y@imbox | java.net.SocketException: Operation not permitted
besu_mainnet_node.1.qwxy24gavk7y@imbox | at sun.nio.ch.DatagramChannelImpl.send0(Native Method) ~[?:?]
besu_mainnet_node.1.qwxy24gavk7y@imbox | at sun.nio.ch.DatagramChannelImpl.sendFromNativeBuffer(DatagramCh
mano10 (Sun, 02 Feb 2020 09:13:39 GMT):
any ideas what I am doing wrong?
faraggi (Sun, 02 Feb 2020 10:54:27 GMT):
possibly a version issue? what besu version are you running?
faraggi (Sun, 02 Feb 2020 10:54:27 GMT):
possibly a version/fork issue? what Besu version are you running?
faraggi (Sun, 02 Feb 2020 12:31:58 GMT):
:mega:
*Want some Besu Stickers?!* Answer our community survey and we'll send them over to you.
Just make sure to add your full postal address in the survey.
https://forms.gle/QLL6ANoGrQAhvLTw9
:mega:
adityasingh177 (Sun, 02 Feb 2020 12:42:56 GMT):
@faraggi
faraggi (Sun, 02 Feb 2020 12:46:33 GMT):
Thanks for following up @adityasingh177
Let me get back to you.
adityasingh177 (Sun, 02 Feb 2020 12:55:14 GMT):
Hello Everyone , How can i deploy besu using kubernetes ?
mano10 (Sun, 02 Feb 2020 13:03:15 GMT):
i tried 1.3 and 1.4beta with the same results.
shemnon (Mon, 03 Feb 2020 05:56:44 GMT):
The stuck node and datagram error may be unrelated. Initially it smells like a peer starvation issue, and the datagram send issue feels like something the netwking stack is rejecting, maybe because of firewall?
shemnon (Mon, 03 Feb 2020 05:59:03 GMT):
Can you turn on the ADMIN endpoints (`--rpc-http-api=ADMIN`) and see if you ahve peers by sending a admin_peers call? (https://besu.hyperledger.org/en/stable/Reference/API-Methods/#admin_peers)
shemnon (Mon, 03 Feb 2020 06:00:11 GMT):
you can manually add peers - here's a good list that gets updated regularly - https://gist.github.com/rfikki/a2ccdc1a31ff24884106da7b9e6a7453
faraggi (Mon, 03 Feb 2020 08:42:20 GMT):
Not sure you saw this: https://besu.hyperledger.org/en/stable/HowTo/Deploy/Kubernetes/
Does that help?
adityasingh177 (Mon, 03 Feb 2020 12:07:32 GMT):
Hi all , i had questions regarding fast sync benchmarking , and then how security could be a concern in fast sync mode and how to overcome that
ppoliani (Mon, 03 Feb 2020 13:02:06 GMT):
@adityasingh177 you can have a look into this repo as well for quick examples. https://github.com/PegaSysEng/besu-kubernetes
faraggi (Mon, 03 Feb 2020 13:45:41 GMT):
Plasma should be supported, o long as its a compatible with standard protocol level ethereum, Besu should support it.
lucianosilva44 (Mon, 03 Feb 2020 14:01:01 GMT):
Has joined the channel.
faraggi (Mon, 03 Feb 2020 14:53:10 GMT):
@adityasingh177 https://ethereum.stackexchange.com/a/79560/12153 regarding plasma
faraggi (Mon, 03 Feb 2020 14:53:10 GMT):
@adityasingh177 https://ethereum.stackexchange.com/a/79560/12153 regarding plasma. looks like a nice answer to your question
adityasingh177 (Mon, 03 Feb 2020 14:53:46 GMT):
Thanks @faraggi
adityasingh177 (Mon, 03 Feb 2020 14:58:28 GMT):
ok , will try with that @faraggi @ppoliani
ppoliani (Mon, 03 Feb 2020 19:52:58 GMT):
I'm facing a weird issue with authentication; I can successfully login and get the access token but I can't use for an json-rpc call. It simply says `Signature verification failed`. In the past I had a similar issue but that was due to getting an access token from the http server and trying to use it in the ws server. However this time I'm using the http server in both cases.
```
2020-02-03 19:47:53.152+00:00 | vert.x-eventloop-thread-1 | DEBUG | AuthenticationUtils | Invalid JWT token
java.lang.RuntimeException: Signature verification failed
at io.vertx.ext.jwt.JWT.decode(JWT.java:299) ~[vertx-jwt-3.8.0.jar:3.8.0]
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:122) ~[vertx-auth-jwt-3.8.0.jar:3.8.0]
at org.hyperledger.besu.ethereum.api.jsonrpc.authentication.AuthenticationUtils.getUser(AuthenticationUtils.java:80) ~[besu-api-1.3.8.jar:1.3.8]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.handleJsonRPCRequest(JsonRpcHttpService.java:340) ~[besu-api-1.3.8.jar:1.3.8]
```
ppoliani (Mon, 03 Feb 2020 19:54:04 GMT):
to give you a bit more info; I have a k8s deployment with two replicas
ppoliani (Mon, 03 Feb 2020 19:56:15 GMT):
I have checked the logs and I can verify that the `/login` endpoint is invoked
```
2020-02-03 19:54:20.528+00:00 | vert.x-eventloop-thread-1 | TRACE | RouterImpl | Router: 1865300901 accepting request POST
ppoliani (Mon, 03 Feb 2020 19:57:28 GMT):
```
2020-02-03 19:54:20.528+00:00 | vert.x-eventloop-thread-1 | TRACE | RouterImpl | Router: 1865300901 accepting request POST
ppoliani (Mon, 03 Feb 2020 19:57:58 GMT):
this is the logs when I login and get an access token
ppoliani (Mon, 03 Feb 2020 19:58:29 GMT):
also I used the creds.toml file in a previous deployment and it worked fine
ppoliani (Mon, 03 Feb 2020 20:08:08 GMT):
I think the issue is with the fact that I had two pods (on different machines) that were load balanced under the same url.
ppoliani (Mon, 03 Feb 2020 20:08:45 GMT):
how would we support authentication in such an HA scenario? Shall I go with the second auth method JWT Public Key Authentication>
shemnon (Mon, 03 Feb 2020 22:09:33 GMT):
Besu contributor call tomorrow/today at 1500 UTC - https://consensys.zoom.us/j/199741148
Add your agenda items here - https://wiki.hyperledger.org/display/BESU/2020-02-04+Besu+Contributor+Call
mateo_ventures (Tue, 04 Feb 2020 01:05:02 GMT):
Has joined the channel.
faraggi (Tue, 04 Feb 2020 09:09:02 GMT):
:mega:
faraggi (Tue, 04 Feb 2020 09:09:03 GMT):
^ Reminder that our bi-weekly contributor call is today ^
Agenda and its comments are open for updates, and propositions at the above link.
faraggi (Tue, 04 Feb 2020 10:52:14 GMT):
We have a couple of new GOOD FIRST ISSUES for grabs:
https://jira.hyperledger.org/browse/BESU-193
https://jira.hyperledger.org/browse/BESU-194
:100:
Amanullah68 (Tue, 04 Feb 2020 11:02:47 GMT):
node example/eventEmitter.js
{ Error: connect ECONNREFUSED 127.0.0.1:20000
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 20000,
config:
{ adapter: [Function: httpAdapter],
transformRequest: { '0': [Function: transformRequest] },
transformResponse: { '0': [Function: transformResponse] },
timeout: 0,
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus],
headers:
{ Accept: 'application/json, text/plain, */*',
'Content-Type': 'application/json;charset=utf-8',
'User-Agent': 'axios/0.18.1',
'Content-Length': 163 },
method: 'post',
url: 'http://localhost:20000',
data:
'{"jsonrpc":"2.0","method":"priv_getTransactionCount","params":["0xfe3b557e8fb62b89f4916b721be55ceb828dbd73","DyAOiF/ynpc+JXa2YAGB0bCitSlOMNm+ShmB/7M6C4w="],"id":1}' },
request:
Writable {
_writableState:
WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
destroyed: false,
decodeStrings: true,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: true,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: null,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
emitClose: true,
autoDestroy: false,
bufferedRequestCount: 0,
corkedRequestsFree: [Object] },
writable: true,
_events:
[Object: null prototype] {
response: [Function: handleResponse],
error: [Function: handleRequestError] },
_eventsCount: 2,
_maxListeners: undefined,
_options:
{ protocol: 'http:',
maxRedirects: 21,
maxBodyLength: 10485760,
path: '/',
method: 'post',
headers: [Object],
agent: undefined,
auth: undefined,
hostname: 'localhost',
port: '20000',
nativeProtocols: [Object],
pathname: '/' },
_redirectCount: 0,
_redirects: [],
_requestBodyLength: 163,
_requestBodyBuffers: [ [Object] ],
_onNativeResponse: [Function],
_currentRequest:
ClientRequest {
_events: [Object],
_eventsCount: 6,
_maxListeners: undefined,
output: [],
outputEncodings: [],
outputCallbacks: [],
outputSize: 0,
writable: true,
_last: true,
chunkedEncoding: false,
shouldKeepAlive: false,
useChunkedEncodingByDefault: true,
sendDate: false,
_removedConnection: false,
_removedContLen: false,
_removedTE: false,
_contentLength: null,
_hasBody: true,
_trailer: '',
finished: false,
_headerSent: true,
socket: [Socket],
connection: [Socket],
_header:
'POST / HTTP/1.1\r\nAccept: application/json, text/plain, */*\r\nContent-Type: application/json;charset=utf-8\r\nUser-Agent: axios/0.18.1\r\nContent-Length: 163\r\nHost: localhost:20000\r\nConnection: close\r\n\r\n',
_onPendingData: [Function: noopPendingOutput],
agent: [Agent],
socketPath: undefined,
timeout: undefined,
method: 'POST',
path: '/',
_ended: false,
res: null,
aborted: undefined,
timeoutCb: null,
upgradeOrConnect: false,
parser: null,
maxHeadersCount: null,
_redirectable: [Circular],
[Symbol(isCorked)]: false,
[Symbol(outHeadersKey)]: [Object] },
_currentUrl: 'http://localhost:20000/' },
response: undefined }
Amanullah68 (Tue, 04 Feb 2020 11:03:11 GMT):
go this error when running this command
Amanullah68 (Tue, 04 Feb 2020 11:03:27 GMT):
node example/eventEmitter.js
Amanullah68 (Tue, 04 Feb 2020 11:03:49 GMT):
In the besu-quicknetwork
Amanullah68 (Tue, 04 Feb 2020 11:04:31 GMT):
I enabled privacy using ./run-privacy.sh
Amanullah68 (Tue, 04 Feb 2020 11:07:01 GMT):
Screenshot from 2020-02-04 16-06-02.png
Amanullah68 (Tue, 04 Feb 2020 12:26:49 GMT):
I solve this issue. Just a little mistake from my side
Amanullah68 (Tue, 04 Feb 2020 12:27:09 GMT):
How I create privacy groups??
faraggi (Tue, 04 Feb 2020 12:45:24 GMT):
https://docs.orion.pegasys.tech/en/stable/Getting-Started/Quickstart/
https://docs.orion.pegasys.tech/en/stable/Reference/API-Methods/#createprivacygroup
Amanullah68 (Tue, 04 Feb 2020 12:46:10 GMT):
thanks :-)
faraggi (Tue, 04 Feb 2020 12:46:17 GMT):
Keep in mind that Orion has a separate repo, docs and is a different project from Besu. Although, also made by some of the same people.
faraggi (Tue, 04 Feb 2020 12:47:03 GMT):
And this HL rocket chat is for discussing Besu :)
Amanullah68 (Tue, 04 Feb 2020 12:48:05 GMT):
oh I think it was developed by same
Amanullah68 (Tue, 04 Feb 2020 12:48:51 GMT):
what to use for private transactions in main net??
faraggi (Tue, 04 Feb 2020 12:49:12 GMT):
Pegasys develops Orion commercially, and many pegasys developers maintain and develop Besu. But Besu is an open source project under Hyperlegder.
faraggi (Tue, 04 Feb 2020 12:49:12 GMT):
Pegasys develops Orion, and manyPegasys developers maintain and develop Besu. But Besu is an open source project under Hyperlegder.
Amanullah68 (Tue, 04 Feb 2020 12:50:58 GMT):
good to know, thanks again
Amanullah68 (Tue, 04 Feb 2020 12:51:22 GMT):
Is there any other way for enabling privacy??
faraggi (Tue, 04 Feb 2020 12:54:11 GMT):
> Is there any other way for enabling privacy??
What do you mean with that question?
Amanullah68 (Tue, 04 Feb 2020 12:54:35 GMT):
other then Orion
faraggi (Tue, 04 Feb 2020 12:57:11 GMT):
Thats a long answer, privacy is not binary I/O. Its a spectrum that goes from fully public to completely private.
So yes, there are other ways to do Privacy on Etherum.
Amanullah68 (Tue, 04 Feb 2020 12:58:08 GMT):
thanks :-)
Radhi (Tue, 04 Feb 2020 13:02:36 GMT):
Hello, you can suggest some one please @faraggi ?
faraggi (Tue, 04 Feb 2020 13:03:04 GMT):
@Radhi you mean, suggest a privacy solution?
Radhi (Tue, 04 Feb 2020 13:03:15 GMT):
Yes
faraggi (Tue, 04 Feb 2020 13:04:00 GMT):
Aztec for example: https://docs.aztecprotocol.com/#/SDK/Getting%20started
But keep in mind, this isn't at all the same thing Orion does.
It really depends on what you are building.
faraggi (Tue, 04 Feb 2020 13:04:00 GMT):
Aztec for example: https://docs.aztecprotocol.com/#/SDK/Getting%20started
But keep in mind, this isn't at all the same thing Orion does.
Choosing the right tool really depends on what you are building.
Radhi (Tue, 04 Feb 2020 13:06:13 GMT):
can this help me to make private transactions between end users (accounts, address)?
faraggi (Tue, 04 Feb 2020 13:08:42 GMT):
I believe, so, but I'm not an expert on Aztec and this isn't a forum for those kind of questions, really.
Radhi (Tue, 04 Feb 2020 13:11:16 GMT):
Ok, Thanks :slight_smile:
ppoliani (Tue, 04 Feb 2020 13:16:53 GMT):
If anyone comes across this issue, I fixed it by using sticky session at the load balancer level.
shemnon (Tue, 04 Feb 2020 14:57:52 GMT):
Please use this link for today's contributor call - https://consensys.zoom.us/j/199741148?status=success
adityasingh177 (Tue, 04 Feb 2020 15:22:10 GMT):
Thanks @ppoliani
adityasingh177 (Tue, 04 Feb 2020 15:25:18 GMT):
How did you maintained Sticky session at LB level , where are you using besu , on the cloud ?
rjones (Tue, 04 Feb 2020 17:39:37 GMT):
faraggi
rjones (Tue, 04 Feb 2020 17:39:42 GMT):
shemnon
niliakis (Wed, 05 Feb 2020 08:23:42 GMT):
If i set up a private blockchain, with zero gas fee, do I have to make the users of my app to use a wallet? How can I convert my dapp into app?
rajashekarkodi (Wed, 05 Feb 2020 12:14:14 GMT):
Has left the channel.
timbeiko (Wed, 05 Feb 2020 14:06:41 GMT):
As mentioned on yesterday's contributor call, I've added a template to the Besu Wiki for feature proposals. Feel free to discuss any ideas for Besu here informally, but if you want to submit a more fleshed out proposal, you can use this template to add it to the Wiki: https://wiki.hyperledger.org/display/BESU/Feature+Proposal+Template
adityasingh177 (Wed, 05 Feb 2020 14:58:47 GMT):
Thanks @timbeiko
faraggi (Wed, 05 Feb 2020 16:13:53 GMT):
two questions in there.
>with zero gas fee, do I have to make the users of my app to use a wallet?
'wallets' might still be used to handle transaction handling, depending on how your dapp is setup.
>How can I convert my dapp into app?
Not sure what you mean by this. The difference between a dapp and an app is the decentralization part. Lets loosely say that if it uses web3 tech, its a dapp.
adityasingh177 (Wed, 05 Feb 2020 16:41:22 GMT):
Hi everyone , i am looking for some scaling solutions using hyperledger besu
adityasingh177 (Wed, 05 Feb 2020 16:41:49 GMT):
Which can be applied using besu
faraggi (Wed, 05 Feb 2020 16:58:24 GMT):
Really depends on what you're looking for. For example, if what you want is to get better TPS, you should know that private networks can go higher than what's available in mainnet.
If you want scalability in terms of deployment solutions and infrastructure on top of Besu, Orchestrate and tools like it do a great job.
If you want protocol level scaling using Besu, any of the solutions out there will work with Besu because, if its supported by the protocol, Besu can handle it.
adityasingh177 (Wed, 05 Feb 2020 16:59:18 GMT):
In the same context , what is the block time achieved in besu ?
faraggi (Wed, 05 Feb 2020 17:28:43 GMT):
Similarly, blocktimes in mainnet are defined by the eth network (~15 seconds per block).
However, in permissioned networks, this can be tweaked in the genesis file
https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#block-time
with the `blockperiodseconds` variable.
Some live, production networks that are using Besu have chosen 2 second block times.
Note though that having such a small block time isn't necessary for many projects.
adityasingh177 (Wed, 05 Feb 2020 17:35:11 GMT):
https://wiki.hyperledger.org/display/BESU/2020-02-18+Besu+Contributor+Call
adityasingh177 (Wed, 05 Feb 2020 17:35:35 GMT):
added topic for security in fast sync
jvrock (Thu, 06 Feb 2020 00:17:26 GMT):
Has joined the channel.
jvrock (Thu, 06 Feb 2020 00:17:28 GMT):
Hi All! I've been testing out Besu/Orion, specifically around the privacy features and I had a general question about a scenario I was playing with.
I was envisaging a scenario of minting a token with a new private smart contract, to a defined privacy group - but then having private transactions with this token with a smaller subset of participants having visibility than the broader privacy group.
I understand that Orion (by design) doesn't allow making private transactions to a subset of the original privacy group, so would the general advice be to use Besu + something like AZTEC due to its ZKP features for this kind of use case? Or would the Cross privacy group communication features that are in the roadmap provide a way to tackle this with Orion in the future?
niliakis (Thu, 06 Feb 2020 07:41:24 GMT):
By saying dapp into app, I meant tha for the users it would be like an app, without interacting with a wallet. Can I handle the transactions for them in the background, somehow?
faraggi (Thu, 06 Feb 2020 08:19:32 GMT):
Sure, thats doable. Appliciations can have server-running code that do the business logic and sign the TXs.
The 'decentralized' aspect of it is arguable, but I personally think it still is valuable, depending on the implementation.
In these cases, its important to note that the users won't be using their own private keys to sign transactions.
Amanullah68 (Thu, 06 Feb 2020 11:43:45 GMT):
How to enable privacy in besu private network??
Amanullah68 (Thu, 06 Feb 2020 11:43:55 GMT):
document isn't helpful
raedbensaid (Thu, 06 Feb 2020 13:45:16 GMT):
Hello guys, can you help me with the implementtion of besu + orion ? i'm following this ( https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-ibft-and-orion ) and step 5 is not clear! what updates should i do ? i which file ? because i found the orion1.conf to orion4.conf sections in the configmap/configmap.yaml and not in configmap/orion-configmap.yaml
raedbensaid (Thu, 06 Feb 2020 13:45:16 GMT):
Hello guys, can you help me with the implementation of besu + orion ? i'm following this ( https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-ibft-and-orion ) and step 5 is not clear! what updates should i do ? i which file ? because i found the orion1.conf to orion4.conf sections in the configmap/configmap.yaml and not in configmap/orion-configmap.yaml
raedbensaid (Thu, 06 Feb 2020 13:45:16 GMT):
Hello guys, can you help me with the implementation of besu + orion ? i'm following this ( https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-ibft-and-orion ) and step 5 is not clear! what updates should i do ? in which file ? because i found the orion1.conf to orion4.conf sections in the configmap/configmap.yaml and not in configmap/orion-configmap.yaml @faraggi
adityasingh177 (Thu, 06 Feb 2020 14:03:56 GMT):
Hi All , @faraggi ,Does besu has muti-tenancy features ?
ArvsIndrarys (Thu, 06 Feb 2020 14:05:10 GMT):
Has joined the channel.
faraggi (Thu, 06 Feb 2020 14:26:57 GMT):
Hi Amanullah68, Your question has to be more precise. Hard to help with so little information.
faraggi (Thu, 06 Feb 2020 14:31:20 GMT):
Multi Tenancy is being released in the next 1.4 aimed for RC on 13 Feb 2020, full release on 27 Feb 2020.
adityasingh177 (Thu, 06 Feb 2020 14:34:13 GMT):
Ok Thanks , how can it be implemented , is it same a multi-party ?
adityasingh177 (Thu, 06 Feb 2020 14:34:13 GMT):
Ok Thanks , how can it be implemented and is it same aa multi-party computations?
adityasingh177 (Thu, 06 Feb 2020 14:34:13 GMT):
Ok Thanks , how can it be implemented and is it same as multi-party computations?
adityasingh177 (Thu, 06 Feb 2020 14:34:13 GMT):
Ok Thanks , how can it be implemented and is it same as multi-party computation?
ppoliani (Thu, 06 Feb 2020 18:25:10 GMT):
Hello everyone :wave:
ppoliani (Thu, 06 Feb 2020 18:28:01 GMT):
I have deployed a CLIQUE network (5 node in total) on my kubernetes cluster and I've noticed an interesting thing; at some random times all five node restart. DIging into the logs of each node (before they restarted) and I can see the following lines
```
2020-02-06 01:46:57.782+00:00 | nioEventLoopGroup-3-1 | INFO | BlockPropagationManager | Saving announced block 115492 (0x4c08c7f2305dab80ea9e0544321cbb4e62c8a243fa52efb9901d13e62a266a07) for future import
2020-02-06 01:46:58.634+00:00 | pool-9-thread-588 | INFO | BlockMiner | Produced and imported block #115,491 / 0 tx / 0 om / 0 (0.0%) gas / (0xb1b50da660fce3bb5ec6bcfd73109ed35759d1b06cee9a7019c5fc854e91fc6a) in 8.633s
2020-02-06 01:47:08.426+00:00 | nioEventLoopGroup-3-1 | INFO | BlockPropagationManager | Saving announced block 115493 (0x4a1b1404e5d54fc41f69aa6850d994ffe31b1b47734b6659044dd2295ad8a37a) for future import
```
ppoliani (Thu, 06 Feb 2020 19:04:13 GMT):
Ok, the reason it failed with `OOMKilled` which based on https://kubernetes.io/docs/tasks/administer-cluster/out-of-resource/#node-oom-behavior is due to memory limit contraint
ppoliani (Thu, 06 Feb 2020 19:07:30 GMT):
I used this deployment https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-clique/deployments and it sets the limit to
```
limits:
cpu: 500m
memory: 512Mi
```
I assume the issue is with my Digital Ocean node, but it would be nice to see if anyone else had that issue before
ppoliani (Thu, 06 Feb 2020 19:07:50 GMT):
I used this deployment https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-clique/deployments and it sets the limit to
limits:
cpu: 500m
memory: 512Mi
I assume the issue is with my Digital Ocean node, but it would be nice to see if anyone else had that issue before
shemnon (Thu, 06 Feb 2020 19:09:37 GMT):
How much memory does each node have?
ppoliani (Thu, 06 Feb 2020 19:11:25 GMT):
Screenshot 2020-02-06 at 19.10.29.png
ppoliani (Thu, 06 Feb 2020 19:11:38 GMT):
it looks fine to me; the validators consume reasonable amount of memory; so probably some other processes (irrelevant to besu) are draining the memory
shemnon (Thu, 06 Feb 2020 19:14:41 GMT):
We list 4G as the mimimum. This behavior isn't suprising when they are trying to work with 5% of that. I think for smaller chains that less memory is needed, but that number is based on enterprise stability needs.
shemnon (Thu, 06 Feb 2020 19:14:41 GMT):
We list 4GiB as the mimimum. This behavior isn't suprising when they are trying to work with 5% of that. I think for smaller chains that less memory is needed, but that number is based on enterprise stability needs.
shemnon (Thu, 06 Feb 2020 19:14:44 GMT):
https://besu.hyperledger.org/en/stable/HowTo/Get-Started/System-Requirements/
ppoliani (Thu, 06 Feb 2020 19:22:07 GMT):
I use a droplet of 4GiB that runs a couple of nodes + kubelet + etcd so I assume this is not enough
ppoliani (Thu, 06 Feb 2020 19:22:54 GMT):
but I assume the reason it fails is because the limits defined in k8s deployment file is low. Should I set those limits to the suggested one i.e. 4Gib?
shemnon (Thu, 06 Feb 2020 19:23:25 GMT):
each JVM may need up to 4GiB. You may be fine with 1GiB or less but stability and TPS will suffer.
ppoliani (Thu, 06 Feb 2020 19:24:47 GMT):
that makes sense; do you happen to have some stats from existing users that could suggest what limits would be good enough for a production deployment?
shemnon (Thu, 06 Feb 2020 19:25:22 GMT):
not off hand, I'm just a coder. @faraggi may know where to get that info
ppoliani (Thu, 06 Feb 2020 19:30:28 GMT):
@shemnon cheers mate. That was helpful
jframe (Thu, 06 Feb 2020 22:15:33 GMT):
The multi-tenancy feature being released in Besu 1.4 is specific to private transactions. It will allow a single Besu and Orion to be handle private transactions for many users in a secure way.
adityasingh177 (Fri, 07 Feb 2020 05:17:12 GMT):
What is meant by many users ? are they not part of the same private network ?
adityasingh177 (Fri, 07 Feb 2020 05:17:12 GMT):
Ok thanks but i am a little confused here by what is meant by many users ? are they not part of the same private network ?
adityasingh177 (Fri, 07 Feb 2020 05:17:12 GMT):
Ok thanks but i am a little confused here by what is meant by 'many users' ? are they not part of the same private network ?
raedbensaid (Fri, 07 Feb 2020 08:14:22 GMT):
Hey guys, i have a problem with besu + orion ? i'm following this https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-ibft-and-orion and step 5 is not clear! what updates should i do ? in which file ? ps : i found the orion1.conf to orion4.conf sections in the configmap/configmap.yaml and not in configmap/orion-configmap.yaml is that ok ? @shemnon @faraggi :)
faraggi (Fri, 07 Feb 2020 09:02:14 GMT):
Unfortunately, we don't have that data now, but there are several different groups working on getting more user data and we'll possibly update the docs with approximate data in the future.
No specific dates or timelines, so I'd recommend increasing the MEM until the network seems stable. :/
UnboxedType (Fri, 07 Feb 2020 10:10:58 GMT):
Has joined the channel.
UnboxedType (Fri, 07 Feb 2020 10:10:59 GMT):
Hi! Does Besu allow me to change max.transaction size / gas limit per transaction? What are the default values?
shemnon (Fri, 07 Feb 2020 12:36:16 GMT):
`--target-gas-limit` CLI flag sets it. There is a issue to add it to RPC (https://jira.hyperledger.org/browse/BESU-52), but I'm not sure how much work has been done on it.
antoniosngular (Fri, 07 Feb 2020 15:06:50 GMT):
Hi, friends!
We are experiencing some problems with the Orion installation. When using the pegasysEng/orion:1.5.0-SNAPSHOT container, with docker-compose, when orion can't connect to another node specified in the othernodes flag in the configuration file, the process increases memory consumption until it throws with a java.lang.OutOfMemoryError error, even with logging turned off.
In the documentation we see you recommend we must place Orion and Besu in separate instances, but when the process throws there's plenty of memory left. We suspect there may be a memory leak somewhere. Nevertheless, we would like to know the recommended memory needed to run Orion.
Thanks in advance!
marlow (Fri, 07 Feb 2020 15:40:57 GMT):
Hello @raedbensaid ! Your right, that's a small mistake in the readme, and I agree with you that step 5 is not very clear!
marlow (Fri, 07 Feb 2020 15:42:33 GMT):
In `configmap/configmap.yaml` are the configs of the orion nodes orion1.conf-orion4.conf. What I think `suit to your requirements` means in this context is that you can update the secret keys of the orion nodes located in secrets/orion-keys.secret.yaml. So you can have your own set of public-private keys instead of the keys in the given example
marlow (Fri, 07 Feb 2020 15:42:33 GMT):
In `configmap/configmap.yaml` are the configs of the orion nodes. What I think `suit to your requirements` means in this context is that you can update the secret keys of the orion nodes located in secrets/orion-keys.secret.yaml. So you can have your own set of public-private keys instead of the keys in the given example
marlow (Fri, 07 Feb 2020 15:44:46 GMT):
Hope that clears some things out for you!
faraggi (Fri, 07 Feb 2020 16:00:21 GMT):
Thanks Marlow, couldn't have said it better!
I'll invite either of you (or anyone else) to clear that step up in the readme if you have some time. :)
Contributions are welcome!
faraggi (Fri, 07 Feb 2020 16:02:30 GMT):
Hello friend! :)
Let me get back to you on this.
raedbensaid (Fri, 07 Feb 2020 16:12:48 GMT):
@marlow thank you for the explanation. I moved the section of the orion nodes into configmap/orion-configmap.yaml and i modified their public / private keys and the validators keys as well. But still not working i only have 2 validators working ( pod created )! shoud i change anything in the configmap file ? maybe the path of the keys' files ?
adityasingh177 (Fri, 07 Feb 2020 16:16:23 GMT):
Thanks @jframe
marlow (Fri, 07 Feb 2020 16:21:08 GMT):
@raedbensaid If you are in the `private-network-ibft-and-orion` folder and just run `./deploy.sh`. That will automatically start a working example in kubernetes for you. You don't have to change anything
marlow (Fri, 07 Feb 2020 17:17:25 GMT):
@faraggi https://github.com/PegaSysEng/besu-kubernetes/pull/25
faraggi (Fri, 07 Feb 2020 17:29:17 GMT):
@marlow
> Merged NicolasMassart merged 2 commits into PegaSysEng:master from marlowl:master 30 seconds ago
marlow (Fri, 07 Feb 2020 17:38:15 GMT):
@faraggi Quick response for friday afternoon haha!:grinning:
faraggi (Fri, 07 Feb 2020 17:54:53 GMT):
Right before signing off for the weekend. Have a nice one
adityasingh177 (Fri, 07 Feb 2020 18:33:32 GMT):
Hi Danno , This is my first issue , i have been spending time on understanding besu , will take on the issue in the near future if its not related to an upcoming release.
adityasingh177 (Fri, 07 Feb 2020 18:33:32 GMT):
Hi Danno , This is my first issue , i have been spending time on understanding besu , work is in progress
adityasingh177 (Fri, 07 Feb 2020 18:33:32 GMT):
Hi Danno , This is my first issue and i have been spending time on understanding besu , work is in progress
adityasingh177 (Fri, 07 Feb 2020 18:34:05 GMT):
Thanks
antoniosngular (Fri, 07 Feb 2020 20:53:40 GMT):
Grar
antoniosngular (Fri, 07 Feb 2020 20:54:08 GMT):
Great! Thanks, Felipe!
joshuafernandes (Fri, 07 Feb 2020 21:22:31 GMT):
Thanks @faraggi and @marlow :)
madelinemurray (Fri, 07 Feb 2020 22:36:30 GMT):
hi @antoniosngular -
madelinemurray (Fri, 07 Feb 2020 22:37:50 GMT):
I'm following up on this to get a specific number but Orion shouldn't require a huge amount of memory. To confirm, you are running Orion in a sperate instance?
antoniosngular (Fri, 07 Feb 2020 23:17:09 GMT):
No, in this moment we are running Besu + Orion in the same instance
Logi (Sat, 08 Feb 2020 13:51:57 GMT):
Has joined the channel.
Logi (Sat, 08 Feb 2020 13:51:58 GMT):
Hello All - I am new to Besu, but experienced in Hyperledger Fabric!.. wanted to start with Besu, and see it's potential for enterprise level blockchain. As a newbee to this, any suggestions/guidance to get start with?
adityasingh177 (Sat, 08 Feb 2020 14:35:47 GMT):
Hello @Logi , you can refer the docs here to get started with besu https://besu.hyperledger.org/en/stable/HowTo/Get-Started/
adityasingh177 (Sat, 08 Feb 2020 14:35:47 GMT):
Hello @Logi , Welcome , you can refer the docs here to get started with besu https://besu.hyperledger.org/en/stable/HowTo/Get-Started/
adityasingh177 (Sat, 08 Feb 2020 14:35:47 GMT):
Hello @Logi , Welcome , you can refer the docs here to get started with besu https://besu.hyperledger.org/en/stable/
Logi (Sat, 08 Feb 2020 14:36:18 GMT):
thank you!
adityasingh177 (Sat, 08 Feb 2020 14:41:26 GMT):
For starting a private network refer here https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Private-Network-Quickstart/
adityasingh177 (Sat, 08 Feb 2020 14:41:26 GMT):
For starting a private network please refer here https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Private-Network-Quickstart/
Logi (Sat, 08 Feb 2020 14:42:37 GMT):
this helps alot!.. thanks Aditya
adityasingh177 (Sat, 08 Feb 2020 14:42:59 GMT):
Here is the High level Architecture of Besu : - https://besu.hyperledger.org/en/stable/Concepts/ArchitectureOverview/
adityasingh177 (Sat, 08 Feb 2020 14:42:59 GMT):
Besu High level Architecture - https://besu.hyperledger.org/en/stable/Concepts/ArchitectureOverview/
madelinemurray (Sat, 08 Feb 2020 22:08:22 GMT):
OK. The reason we recommend separate instances for Besu and Orion is that if they're in the same instance, Besu and Orion fight for the same resources and Orion ends up missing out.
To keep them in the same instance and avoid this, you'll need to configure the JVM to prevent this resouce conflict. We recommend running them in seperate instances to avoid this.
adityasingh177 (Sun, 09 Feb 2020 10:08:58 GMT):
Hi everyone , @antoniosngular i want to correct myself here , by instance means diff vm instances ?
adityasingh177 (Sun, 09 Feb 2020 10:08:58 GMT):
Hi everyone , @antoniosngular i may want to correct myself here , by instance means diff vm instances ?
adityasingh177 (Sun, 09 Feb 2020 10:08:58 GMT):
Hi everyone , @antoniosngular @madelinemurray i may want to correct myself here , by instance means diff vm instances ?
adityasingh177 (Sun, 09 Feb 2020 11:26:45 GMT):
Hello Everyone , after starting the private network and running node example/eventEmitter.js i am facing the below issues
adityasingh177 (Sun, 09 Feb 2020 11:26:45 GMT):
Hello Everyone , I am trying to start a simple private network , after starting the private network and running node example/eventEmitter.js i am facing the below issue :-
adityasingh177 (Sun, 09 Feb 2020 11:26:45 GMT):
Hello Everyone , I am trying to start a simple private network with all 3 nodes and Orion Docker Containers are up and running , after starting the private network and running node example/eventEmitter.js i am facing the below issue :-
adityasingh177 (Sun, 09 Feb 2020 11:27:22 GMT):
{"jsonrpc":"2.0","id":1,"error":{"code":-50100,"message":"Error communicating with enclave"}}
antoniosngular (Sun, 09 Feb 2020 18:17:47 GMT):
Hi, @adityasingh177 . Yes, by "instance" I mean that Besu & Orion are installed in the same AWS EC2 instance.
madelinemurray (Sun, 09 Feb 2020 21:57:58 GMT):
@antoniosngular - on our test networks we're using 2 core and 2GB RAM machines for Orion and haven't run into any issues.
Jemal (Sun, 09 Feb 2020 23:32:05 GMT):
Hi Guys. I am trying to run Besu using Ethash consensus protocol. I have question regarding difficulty setting in the genesis file, As you can see on the snapshot below, it mentions difficulty in two places. "Fixed Difficulty:1000" and "Difficulty: 0X10000". What I understand is that if i set fixed difficulty to 1000, then the difficulty will always be 1000. So why do i need to to set "0x10000" again?
Jemal (Sun, 09 Feb 2020 23:32:17 GMT):
Clipboard - February 10, 2020 10:32 AM
arash009 (Mon, 10 Feb 2020 02:08:50 GMT):
Hi all, we have been receiving some feedback over the past little while around ease of use of Jira vs Github for raising issues. The community response points to Github being a more familiar tool, as well as general access being already available, making it a lower barrier to entry to log issues, view progress of work, and engage with other contributors to the project. Based on this, we are considering switching the repository of Besu tickets from Jira to Github. Are there other considerations or other feedback that we should think about? This topic will also be tabled at the next few Besu contributor calls for discussion as well.
ajsutton (Mon, 10 Feb 2020 02:14:04 GMT):
The "difficulty" field specifies the difficulty of the genesis block. When using fixed difficulty I think it has to be the same, but if you were using "real" ethash the difficulty would gradually adjust with each block to keep block times roughly consistent as available hash power changes. In that case you'd want to ensure the initial difficulty is set to something reasonable for the amount of hash power you have - too high and you won't be able to mine new blocks, too low and it may take too long to adjust to a sensible value for that amount of hash power.
shemnon (Mon, 10 Feb 2020 02:22:44 GMT):
I would advise against fixed difficulty in anything other than a test environment. Simply remove that line and difficulty will float as a function of time between blocks. Constant hash will eventually find an equlibrium. But try and get that first difficulty correct, eventaully can be a long time if set too low or too high.
Jemal (Mon, 10 Feb 2020 02:25:09 GMT):
Thank you @shemnon and @ajsutton yes i am using it in test environment. So if i use both fields together, does it mean that the "Fixed difficulty" will overwrite the "difficulty" field.
ajsutton (Mon, 10 Feb 2020 02:26:11 GMT):
I suspect the genesis block will always get the "difficulty" value and all created blocks will get the "fixed difficulty" value. Since we never validate the genesis block that should work out fine even if the two values are different.
shemnon (Mon, 10 Feb 2020 02:26:13 GMT):
Fixed difficulty will trump.
Jemal (Mon, 10 Feb 2020 02:26:45 GMT):
Okay i got it thanks
shemnon (Mon, 10 Feb 2020 02:26:55 GMT):
https://github.com/hyperledger/besu/blob/master/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetProtocolSchedule.java#L49
Jemal (Mon, 10 Feb 2020 02:27:25 GMT):
It would be good to add some more explanation regarding this in the documentation.
madelinemurray (Mon, 10 Feb 2020 02:39:05 GMT):
Have raised https://github.com/hyperledger/besu-docs/issues/149 so we can update the doc to be clearer on this
Jemal (Mon, 10 Feb 2020 02:54:14 GMT):
@madelinemurray Thank you
Jemal (Mon, 10 Feb 2020 02:54:14 GMT):
Hi guys, i am trying to compare the performance of Blockchain consensus protocols for some kind of application. I was able to test PoW and PoW (Clique and IBFT). But I want to test my application on Proof of Stake also. Does besu support Proof of Stake? If not, is it possible to plug in Proof of Stake protocol into Besu?
Jemal (Mon, 10 Feb 2020 02:54:14 GMT):
Hi guys, i am trying to compare the performance of Blockchain consensus protocols for some kind of application. I was able to test PoW and PoA (Clique and IBFT). But I want to test my application on Proof of Stake also. Does besu support Proof of Stake? If not, is it possible to plug in Proof of Stake protocol into Besu?
antoniosngular (Mon, 10 Feb 2020 08:43:50 GMT):
Thanks, @madelinemurray . Are you using Docker as we are?
antoniosngular (Mon, 10 Feb 2020 08:49:53 GMT):
We are using pegasyseng/orion:1.5.0-SNAPSHOT
lucas.sanz (Mon, 10 Feb 2020 09:43:24 GMT):
Has joined the channel.
raedbensaid (Mon, 10 Feb 2020 09:51:28 GMT):
hello guys, i think i have the same problem ( orion nodes are down ) is there any tuto to implement orion nodes and besu nodes in separate instances ?
raedbensaid (Mon, 10 Feb 2020 09:52:01 GMT):
i'm following this https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-ibft-and-orion
Radhi (Mon, 10 Feb 2020 10:20:01 GMT):
:slight_smile:
raedbensaid (Mon, 10 Feb 2020 10:20:26 GMT):
gff
joshuafernandes (Mon, 10 Feb 2020 10:45:02 GMT):
Hello @raedbensaid what is your env like? cloud or on prem?
joshuafernandes (Mon, 10 Feb 2020 10:45:52 GMT):
Once you have your Besu nodes up you provision a second instance for Orion in the same way (jdk11)
joshuafernandes (Mon, 10 Feb 2020 10:47:49 GMT):
Steps to provision an orion node would then be:
joshuafernandes (Mon, 10 Feb 2020 10:54:04 GMT):
1. generate keys for the orion node https://docs.orion.pegasys.tech/en/stable/Getting-Started/Quickstart/
2. save the keys to a fixed location say /etc/orion/
3. create a config file for orion like so: https://github.com/PegaSysEng/besu-quickstart/blob/master/config/orion/networkFiles/orion1/orion.conf
4. start orion up
5. open up the ports you picked (default 8888 & 8080) in your security group / firewall
6. copy the public key to the besu node you're pairing it to and save it to the same location to make it consistent ie /etc/orion/
7. Add these options to your besu node:
joshuafernandes (Mon, 10 Feb 2020 10:54:04 GMT):
1. generate keys for the orion node https://docs.orion.pegasys.tech/en/stable/Getting-Started/Quickstart/
2. save the keys to a fixed location say /etc/orion/
3. create a config file for orion like so: https://github.com/PegaSysEng/besu-quickstart/blob/master/config/orion/networkFiles/orion1/orion.conf
4. start orion up
5. open up the ports you picked (default 8888 & 8080) in your security group / firewall
6. copy the public key to the besu node you're pairing it to and save it to the same location to make it consistent ie /etc/orion/
7. Add these options to your besu node:
```
"--privacy-enabled=true",
"--privacy-url=http://
joshuafernandes (Mon, 10 Feb 2020 10:54:04 GMT):
1. generate keys for the orion node https://docs.orion.pegasys.tech/en/stable/Getting-Started/Quickstart/
2. save the keys to a fixed location say /etc/orion/
3. create a config file for orion like so: https://github.com/PegaSysEng/besu-quickstart/blob/master/config/orion/networkFiles/orion1/orion.conf
4. start orion up
5. open up the ports you picked (default 8888 & 8080) in your security group / firewall
6. copy the public key to the besu node you're pairing it to and save it to the same location to make it consistent ie /etc/orion/
7. Add these options to your besu node and restart it
```
"--privacy-enabled=true",
"--privacy-url=http://
joshuafernandes (Mon, 10 Feb 2020 10:54:04 GMT):
```
1. generate keys for the orion node https://docs.orion.pegasys.tech/en/stable/Getting-Started/Quickstart/
2. save the keys to a fixed location say /etc/orion/
3. create a config file for orion like so: https://github.com/PegaSysEng/besu-quickstart/blob/master/config/orion/networkFiles/orion1/orion.conf
4. start orion up
5. open up the ports you picked (default 8888 & 8080) in your security group / firewall
6. copy the public key to the besu node you're pairing it to and save it to the same location to make it consistent ie /etc/orion/
7. Add these options to your besu node:
"--privacy-enabled=true",
"--privacy-url=http://
joshuafernandes (Mon, 10 Feb 2020 10:56:24 GMT):
I'd recommend following this setup https://github.com/PegaSysEng/besu-quickstart/blob/master/docker-compose_privacy_poa.yml
joshuafernandes (Mon, 10 Feb 2020 10:57:05 GMT):
It similar to the k8s variant but a little easier to follow given its all in one place, node1 -> orion1 , node2->orion2 and node3->orion3
joshuafernandes (Mon, 10 Feb 2020 10:57:10 GMT):
Let us know how you go
adityasingh177 (Mon, 10 Feb 2020 14:38:54 GMT):
Hello is the same process followed for docker containers as well ?
adityasingh177 (Mon, 10 Feb 2020 14:38:54 GMT):
Hello , @joshuafernandes is the same above process followed for docker containers as well ?
adityasingh177 (Mon, 10 Feb 2020 14:38:54 GMT):
Hello , @joshuafernandes is the same above process followed for docker containers as well for quickstart , as i tried to exec into orion container but could not find keys at /etc/orion?
adityasingh177 (Mon, 10 Feb 2020 14:38:54 GMT):
Hello , @joshuafernandes is the same above process followed for docker containers as well for quickstart , as i tried to exec into orion container but could not find keys at /etc/orion and facing issue with timout?
lucassaldanha (Mon, 10 Feb 2020 22:16:03 GMT):
Hi guys! The best way to get help with Orion is to use its Gitter channel (https://gitter.im/PegaSysEng/orion).
All Orion specific questions should be asked over there! :)
seanyoung (Tue, 11 Feb 2020 22:34:33 GMT):
Has joined the channel.
seanyoung (Tue, 11 Feb 2020 22:38:04 GMT):
Hello, I'm working on the Solang Solidity compiler (see https://github.com/hyperledger-labs/solang ), and I'm trying to see if there are ways of Solang support Besu. Solang already has support for ewasm, but as far as I can tell Besu has no support for ewasm. Are there any plans for ewasm or any other form of webassembly?
seanyoung (Tue, 11 Feb 2020 22:38:04 GMT):
Hello, I'm working on the Solang Solidity compiler (see https://github.com/hyperledger-labs/solang ), and I'm trying to see if there are ways of making Solang support Besu. Solang already has support for ewasm, but as far as I can tell Besu has no support for ewasm. Are there any plans for ewasm or any other form of webassembly?
shemnon (Tue, 11 Feb 2020 22:58:00 GMT):
Besu doesn't support eWasm and eWasm is not in any roadmaps of any of the contributors that I am aware of (ConsenSys, Web3 Labs, and ETC Cooperative). Besu aligns tightly with mainnet ethereum and the EEA standards, neither of which have specified eWasm, so that may be motivating it.
shemnon (Tue, 11 Feb 2020 23:00:25 GMT):
Does solang output EVM? Or is the Burrow support coming from their experimental eWasm work?
seanyoung (Tue, 11 Feb 2020 23:09:20 GMT):
The burrow support is coming from their experimental ewasm support.
seanyoung (Tue, 11 Feb 2020 23:10:48 GMT):
There is an wip evm backend for llvm, so support for evm could be done through that.
seanyoung (Tue, 11 Feb 2020 23:12:22 GMT):
My worry with the llvm evm backend is that as soon as mainnet supports ewasm, evm support will have been a wasted effort.
shemnon (Tue, 11 Feb 2020 23:28:14 GMT):
I don't think eWasm will make the Eth 1.x chain. It's currently a top candidate for Eth 2 Phase 2, but that is out of scope for Besu, which is a 1.x clain client.
shemnon (Tue, 11 Feb 2020 23:28:14 GMT):
I don't think eWasm will make the Eth 1.x chain. It's currently a top candidate for Eth 2 Phase 2, but that is out of scope for Besu, which is a 1.x chain client.
shemnon (Tue, 11 Feb 2020 23:29:19 GMT):
eWasm has been "on the verge" for years already, their current focus in mainnet is as an alternative for precompiles not for deployed contracts. There's funding and politics involved in that focus too.
shemnon (Tue, 11 Feb 2020 23:29:58 GMT):
"Stateless EVM" is also a phase 2 candidate. There is a good chance there will be multiple phase 2 VMs.
AkihiroTanaka (Wed, 12 Feb 2020 10:23:08 GMT):
Hi All. I have question.
I'm managing besu nodes whitch has 3 nodes for private.
All besu node was down suddenly.
How do i fix it?
This is my besu version.
$ besu --version
besu/v1.3.6/osx-x86_64/adoptopenjdk-java-12
First the bootnode emitted the logs below.
```
EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
```
After several hours, the logs was emitted and nodes were down.
```
vert.x-eventloop-thread-0 | ERROR | ContextImpl | Unhandled exception
java.lang.IllegalStateException: Response is closed
at io.vertx.core.http.impl.HttpServerResponseImpl.checkValid(HttpServerResponseImpl.java:617) ~[vertx-core-3.8.0.jar:3.8.0]
:
vertx-blocked-thread-checker | WARN | BlockedThreadChecker | Thread Thread[vert.x-worker-thread-7,5,main]=Thread[vert.x-worker-thread-7,5,main] has been blocked for 64536 ms, time limit is 60000 ms
io.vertx.core.VertxException: Thread blocked
at org.rocksdb.RocksDB.get(Native Method) ~[rocksdbjni-6.2.4.jar:?]
```
AkihiroTanaka (Wed, 12 Feb 2020 10:23:08 GMT):
Hi All. I have question.
I'm managing besu nodes whitch has 3 nodes for private.
All besu node was down suddenly.
How do i fix it?
This is my besu version.
$ besu --version
besu/v1.3.6/osx-x86_64/adoptopenjdk-java-12
First the bootnode emitted the logs below.
```
EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
```
After several hours, the logs was emitted and nodes were down.
```
vert.x-eventloop-thread-0 | ERROR | ContextImpl | Unhandled exception
java.lang.IllegalStateException: Response is closed
at io.vertx.core.http.impl.HttpServerResponseImpl.checkValid(HttpServerResponseImpl.java:617) ~[vertx-core-3.8.0.jar:3.8.0]
:
vertx-blocked-thread-checker | WARN | BlockedThreadChecker | Thread Thread[vert.x-worker-thread-7,5,main]=Thread[vert.x-worker-thread-7,5,main] has been blocked for 64536 ms, time limit is 60000 ms
io.vertx.core.VertxException: Thread blocked
at org.rocksdb.RocksDB.get(Native Method) ~[rocksdbjni-6.2.4.jar:?]
```
seanyoung (Wed, 12 Feb 2020 11:47:58 GMT):
Thanks for your insights into this.
shemnon (Wed, 12 Feb 2020 13:40:18 GMT):
How much memory is allocated for each node?
AkihiroTanaka (Wed, 12 Feb 2020 13:45:14 GMT):
16GB.
I'm using a t2.xlarge instance on EC2 per node
shemnon (Wed, 12 Feb 2020 13:45:43 GMT):
So not memory. What's the RPC load like? are you querying large amounts of logs?
AkihiroTanaka (Wed, 12 Feb 2020 13:54:43 GMT):
There were no RPC load because I just created and keep it for few weeks.
It looks many log is queried but I'm using ecs on ec2 and cloudwatch logs.
AkihiroTanaka (Wed, 12 Feb 2020 13:58:35 GMT):
I deployed contracts and called it first without error.
The nodes worked at the time.
shemnon (Wed, 12 Feb 2020 14:40:03 GMT):
Can we get more lines out of the stack trace? The top line only tells me its a rocksdb read.
atoulme (Wed, 12 Feb 2020 17:35:02 GMT):
hey folks, I took a pass at the issue tracker and left a few comments. I'm not sure if those comments warrant a discussion, but I'd like to make sure this turns into more than a drive-by.
AkihiroTanaka (Thu, 13 Feb 2020 00:49:08 GMT):
this is the stack trace.
```
vert.x-eventloop-thread-0 | ERROR | ContextImpl | Unhandled exception
java.lang.IllegalStateException: Response is closed
at io.vertx.core.http.impl.HttpServerResponseImpl.checkValid(HttpServerResponseImpl.java:617) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.http.impl.HttpServerResponseImpl.putHeader(HttpServerResponseImpl.java:157) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.http.impl.HttpServerResponseImpl.putHeader(HttpServerResponseImpl.java:54) ~[vertx-core-3.8.0.jar:3.8.0]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$7(JsonRpcHttpService.java:387) ~[besu-api-1.3.6.jar:1.3.6]
at io.vertx.core.impl.ContextImpl.lambda$null$0(ContextImpl.java:330) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38) ~[vertx-core-3.8.0.jar:3.8.0]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
```
AkihiroTanaka (Thu, 13 Feb 2020 00:49:23 GMT):
```
vertx-blocked-thread-checker | WARN | BlockedThreadChecker | Thread Thread[vert.x-worker-thread-7,5,main]=Thread[vert.x-worker-thread-7,5,main] has been blocked for 60536 ms, time limit is 60000 ms
io.vertx.core.VertxException: Thread blocked
at org.rocksdb.RocksDB.get(Native Method) ~[rocksdbjni-6.2.4.jar:?]
at org.rocksdb.RocksDB.get(RocksDB.java:1721) ~[rocksdbjni-6.2.4.jar:?]
at org.hyperledger.besu.plugin.services.storage.rocksdb.segmented.RocksDBColumnarKeyValueStorage.get(RocksDBColumnarKeyValueStorage.java:153) ~[besu-plugin-rocksdb-1.3.6.jar:1.3.6]
at org.hyperledger.besu.plugin.services.storage.rocksdb.segmented.RocksDBColumnarKeyValueStorage.get(RocksDBColumnarKeyValueStorage.java:60) ~[besu-plugin-rocksdb-1.3.6.jar:1.3.6]
at org.hyperledger.besu.services.kvstore.SegmentedKeyValueStorageAdapter.get(SegmentedKeyValueStorageAdapter.java:50) ~[besu-kvstore-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStoragePrefixedKeyBlockchainStorage.get(KeyValueStoragePrefixedKeyBlockchainStorage.java:123) ~[besu-core-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStoragePrefixedKeyBlockchainStorage.getBlockHeader(KeyValueStoragePrefixedKeyBlockchainStorage.java:78) ~[besu-core-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain$$Lambda$521/0x0000000840477c40.apply(Unknown Source) ~[?:?]
at java.util.Optional.flatMap(Optional.java:294) ~[?:?]
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain.getBlockHeader(DefaultBlockchain.java:176) ~[besu-core-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.api.query.BlockchainQueries$$Lambda$969/0x0000000840575c40.apply(Unknown Source) ~[?:?]
at java.util.stream.LongPipeline$1$1.accept(LongPipeline.java:177) ~[?:?]
at java.util.stream.Streams$RangeLongSpliterator.tryAdvance(Streams.java:207) ~[?:?]
at java.util.stream.LongPipeline.forEachWithCancel(LongPipeline.java:161) ~[?:?]
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[?:?]
at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.matchingLogs(BlockchainQueries.java:499) ~[besu-api-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthGetLogs.response(EthGetLogs.java:62) ~[besu-api-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:497) ~[besu-api-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$6(JsonRpcHttpService.java:375) ~[besu-api-1.3.6.jar:1.3.6]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService$$Lambda$804/0x0000000840524840.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.impl.ContextImpl$$Lambda$606/0x00000008404a7440.run(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.34.Final.jar:4.1.34.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
```
shemnon (Thu, 13 Feb 2020 00:50:54 GMT):
Yes, this is the RPC load I suspected. We are prepping a fix to show up in what may be a 1.4 RC 2 next week. - https://github.com/hyperledger/besu/pull/367
shemnon (Thu, 13 Feb 2020 00:51:43 GMT):
Are you running eventeum or some other ethereum transaction log analysis software?
AkihiroTanaka (Thu, 13 Feb 2020 00:59:17 GMT):
Thanks!!
I will update to 1.4 RC 2 after next week.
I don't use eventeum. I'm running only explorer (alethio) with nodes.
jacekv (Thu, 13 Feb 2020 10:13:20 GMT):
Has joined the channel.
jacekv (Thu, 13 Feb 2020 10:13:20 GMT):
Hi guys :)
I am currently setting up a Clique network. I saw that Parity does not include the standard Ethereum builtin contracts by default, like ecrecover, sha256, ripemd160 & identity, and that you have to configure those in the genesis file. How is it in Besu? I haven't found any information regarding this.
faraggi (Thu, 13 Feb 2020 10:25:35 GMT):
:thumbsup: We're taking a look at them now, thanks for your feedback!
faraggi (Thu, 13 Feb 2020 10:48:46 GMT):
These predefined parameters are needed for those testnets. The allocations you see in the Besu clique genesis file are the Rinkeby allocations. https://github.com/hyperledger/besu/blob/master/config/src/main/resources/rinkeby.json
If you wanted to create brand new POA network, you could exchange those for your valiadator node's keys and respective allocations.
faraggi (Thu, 13 Feb 2020 10:49:03 GMT):
Let me know if that helps cause I'm not 100% I understood the questin
faraggi (Thu, 13 Feb 2020 10:49:03 GMT):
Let me know if that helps cause I'm not 100% I understood the question
jacekv (Thu, 13 Feb 2020 10:53:55 GMT):
But are those fields required?
If I understand it correct and do not provide the ecrecover contract, I won't be able to use it in smart contracts. Is it the same in Besu?
faraggi (Thu, 13 Feb 2020 11:34:54 GMT):
Yes, if you want to deploy the network with those contract, you'll have to include them in the genesis file.
Similarly, allocations are needed if you want ETH to be present because it is a POA network, therefore Eth doesn't get mined. Your network will have 0 eth forever unless you allocate it initially.
Although I'd like to get someone else's take on it as well just to make sure.
jacekv (Thu, 13 Feb 2020 11:52:02 GMT):
Thank you so far :)
Silona (Thu, 13 Feb 2020 18:23:16 GMT):
Howdy Contributors and Maintainers! Are you wondering about tapping into Developer marketing for your group or project? Do you have a blog post idea? An awesome announcement? Please attend our Contributor/marketing meeting! https://wiki.hyperledger.org/display/Marketing/2020-02-19+Meeting+notes
ajsutton (Thu, 13 Feb 2020 22:22:25 GMT):
You do not have to include precompiled contracts like ecrecover in the Besu genesis file. They are provided automatically based on the milestone version used by the chain (which is configured in the genesis file).
You can optionally include contracts in the genesis file by specifying their EVM code but those are not precompiles, just normal Ethereum contracts which are included in the genesis state. Precompile contracts like ecrecover are run in native code and provided by the client software itself.
Jemal (Fri, 14 Feb 2020 03:15:24 GMT):
Hi guys,
Jemal (Fri, 14 Feb 2020 03:21:29 GMT):
Hi guys, i am trying to compare the performance of Blockchain consensus protocols for some kind of application. I was able to test PoW and PoA (Clique and IBFT). But I want to test my application on Proof of Stake also. Does besu support Proof of Stake? If not, is it possible to plug in Proof of Stake protocol into Besu?
shemnon (Fri, 14 Feb 2020 03:41:23 GMT):
No proof of stake protocol yet.
Jemal (Fri, 14 Feb 2020 04:12:24 GMT):
@shemnon thanks. Do you know when will it be available?
sankarshanm (Fri, 14 Feb 2020 09:06:02 GMT):
Has joined the channel.
faraggi (Fri, 14 Feb 2020 10:24:26 GMT):
Looking for a beginner issue to start contributing for Besu?
Look no more: https://jira.hyperledger.org/browse/BESU-146
Feel free to ask here or in #besu-contributors for details on the Issue.
faraggi (Fri, 14 Feb 2020 10:25:37 GMT):
You should take a look at Teku (ex Artemis) for POS and eth2.0 related info.
https://gitter.im/PegaSysEng/artemis
https://github.com/PegaSysEng/artemis
ppoliani (Fri, 14 Feb 2020 11:37:40 GMT):
no worries @faraggi, that makes sense
ppoliani (Fri, 14 Feb 2020 11:40:42 GMT):
I'm looking into the Grafana chart for my CLIQUE network (5 nodes) and as you can see in the attached screenshots, there are some spikes from time to time and I wonder what might be the cause. The TPS is very low at the moment so there are not really too many transaction that are processed. I'm actually quite confident that when the spikes appear there are no transaction at all. Is it some internal work that the nodes perform occasionally?
ppoliani (Fri, 14 Feb 2020 11:41:34 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=9gLzhkrbBBhwth4kW)
Screenshot 2020-02-14 at 11.41.05.png
ppoliani (Fri, 14 Feb 2020 11:42:27 GMT):
this is the cpu usage. My assumption is that this is caused by the GC, but it would be nice for someone to share his wisdom with me :)
ppoliani (Fri, 14 Feb 2020 11:42:27 GMT):
this is the cpu usage. My assumption is that this is caused by the GC, but it would be nice for someone to share his/her wisdom with me :)
adityasingh177 (Fri, 14 Feb 2020 11:45:38 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=9gLzhkrbBBhwth4kW) Hi @ppoliani , how did you measur the tps ?
adityasingh177 (Fri, 14 Feb 2020 11:45:38 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=9gLzhkrbBBhwth4kW) Hi @ppoliani , how did you measure the tps ?
ppoliani (Fri, 14 Feb 2020 11:46:39 GMT):
@adityasingh177 it's on my staging environment so we know pretty much when we send new transactions.
adityasingh177 (Fri, 14 Feb 2020 11:47:37 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=Ghbu8YfTjAyZQbMYZ) Ok, Did you see any measurement for blocks committed vs Transactions sent ?
ppoliani (Fri, 14 Feb 2020 11:50:12 GMT):
I know with accuracy how many blocks are committed by viewing the charts on Grafana
ppoliani (Fri, 14 Feb 2020 11:51:02 GMT):
ok I think my assumption might be correct; I checked the GC chart and it looks like it might be causing those spikes
ppoliani (Fri, 14 Feb 2020 11:51:15 GMT):
Screenshot 2020-02-14 at 11.43.50.png
adityasingh177 (Fri, 14 Feb 2020 11:59:43 GMT):
I had the same question , by seeing empty block creation , the chain height keeps increasing
ppoliani (Fri, 14 Feb 2020 12:02:35 GMT):
yes I think there is not option to disable empty blocks the way you can do it in Tendermint for example. So the block height will keep increasing, which is ok
adityasingh177 (Fri, 14 Feb 2020 12:03:22 GMT):
What is the purpose of creating empty blocks ?
adityasingh177 (Fri, 14 Feb 2020 12:03:52 GMT):
I saw some other blockchain , the blocks are created only when the transaction is submitted
ppoliani (Fri, 14 Feb 2020 12:05:08 GMT):
probably so that you can have a notion of time to some extent
NicolasMassart (Fri, 14 Feb 2020 12:05:10 GMT):
I confirm that creating block in a continuous way is made on purpose to enable the protocol do detect when some issues happen. Otherwise you would not be able to know if the network is stuck of if it's just because no tx was sent.
ppoliani (Fri, 14 Feb 2020 12:05:11 GMT):
I don't know really
NicolasMassart (Fri, 14 Feb 2020 12:05:32 GMT):
This is working the same way with IBFT2
ppoliani (Fri, 14 Feb 2020 12:06:02 GMT):
so it works as a liveness check for the other peers
adityasingh177 (Fri, 14 Feb 2020 12:06:19 GMT):
ok Thanks @NicolasMassart
ppoliani (Fri, 14 Feb 2020 12:07:04 GMT):
@NicolasMassart isn't there a `/liveness` endpoint that does a similar job?
NicolasMassart (Fri, 14 Feb 2020 12:09:01 GMT):
Yes but the RPC liveness endpoint is there to help you monitor the nodes at an infrastructure level (kubernetes for instance could wait for nodes to be available or things like that) but the continuous blocks creation is made to ensure the network liveness at protocol level.
adityasingh177 (Fri, 14 Feb 2020 12:09:01 GMT):
For liveness , aint gossip messages not enough @NicolasMassart @ppoliani
adityasingh177 (Fri, 14 Feb 2020 12:09:01 GMT):
For liveness , arent gossip messages not enough @NicolasMassart @ppoliani ?
adityasingh177 (Fri, 14 Feb 2020 12:09:01 GMT):
Hello , So For liveness , arent gossip messages not enough @NicolasMassart @ppoliani ?
adityasingh177 (Fri, 14 Feb 2020 12:09:04 GMT):
?
ppoliani (Fri, 14 Feb 2020 12:36:22 GMT):
@NicolasMassart yes of course, I forgot that. That makes sense
NicolasMassart (Fri, 14 Feb 2020 12:43:41 GMT):
I asked our protocol team for reference docs on this too, so as soon as I have links, I will post them here.
Jemal (Sun, 16 Feb 2020 02:32:48 GMT):
@faraggi thanks
ggarri (Sun, 16 Feb 2020 10:51:21 GMT):
Has joined the channel.
atoulme (Sun, 16 Feb 2020 18:38:19 GMT):
it's more than liveness. It's a timestamp showing that effectively during that timeframe the chain came to a consensus that no transactions were present.
adityasingh177 (Mon, 17 Feb 2020 05:41:28 GMT):
@NicolasMassart Thank You
ArvsIndrarys (Mon, 17 Feb 2020 14:47:08 GMT):
I tried to setup a faucet in the genesis file of a permissionned network using the following command :
`solcjs --optimize --bin -o exampleexample contracts/FaucetProxy.sol contracts/Faucet.sol contracts/interfaces/Ownable.sol contracts/interfaces/Context.sol contracts/permissionning/Admin.sol contracts/permissionning/AdminList.sol contracts/permissionning/AdminProxy.sol`
I added it in the genesis file and launched the network.
The thing is, every call to that contract is wrong. For example, I have a getter `faucet()` that should return the address of the faucet, and a method `setFaucet(addr)` to set it.
Even after calling the `setFaucet` method, the `faucet` call return the wrong address.
I saw that the permissioned contracts uses storage addresses, something my contract do not. Is my problem due to that?
Is there any good documentation about it somewhere?
ArvsIndrarys (Mon, 17 Feb 2020 14:49:10 GMT):
From the [pegasys/permissionning-smart-contracts](https://github.com/PegaSysEng/permissioning-smart-contracts) folder, we have that:
```
contract Ingress {
// Contract keys
bytes32 public RULES_CONTRACT = 0x72756c6573000000000000000000000000000000000000000000000000000000; // "rules"
bytes32 public ADMIN_CONTRACT = 0x61646d696e697374726174696f6e000000000000000000000000000000000000; // "administration"
```
How these addresses have been chosen? Should I setup my contract to have a storage the same way?
faraggi (Mon, 17 Feb 2020 16:01:14 GMT):
HI! Can we see your smart contract code?
ArvsIndrarys (Mon, 17 Feb 2020 16:01:39 GMT):
Hi, hmm not really, it would be our production code.
ArvsIndrarys (Mon, 17 Feb 2020 16:02:42 GMT):
Not really, it would be our production code
Could I indicate you on how it works?
faraggi (Mon, 17 Feb 2020 16:03:52 GMT):
I guess that could maybe work
ArvsIndrarys (Mon, 17 Feb 2020 16:07:53 GMT):
it is a proxy ; only the owner can set the faucet address.
faucet_address is undefined at the start
ArvsIndrarys (Mon, 17 Feb 2020 16:09:59 GMT):
then the proxy would redirect any call to the faucet
akuanti (Mon, 17 Feb 2020 17:07:42 GMT):
Those aren't addresses, they are keys for the contract registry. For example, if you hex encode "rules", you get `0x72756c6573`, which is then being padded to 32 bytes.
akuanti (Mon, 17 Feb 2020 17:08:10 GMT):
What exactly are you trying to accomplish? Does your faucet work properly on a network without permissioning?
Silona (Mon, 17 Feb 2020 22:17:24 GMT):
Are you wondering about tapping into Developer marketing for your group or project? Do you have a blog post idea? An awesome announcement? Please attend TOMORROW! https://wiki.hyperledger.org/display/Marketing/2020-02-19+Meeting+notes
shemnon (Tue, 18 Feb 2020 00:53:57 GMT):
APAC Besu Contributor call in 7 minutes - https://wiki.hyperledger.org/display/BESU/2020-02-18+Besu+Contributor+Call
shemnon (Tue, 18 Feb 2020 00:54:38 GMT):
zoom link - APAC Besu Contributor call in 7 minutes - https://wiki.hyperledger.org/display/BESU/2020-02-18+Besu+Contributor+Call
shemnon (Tue, 18 Feb 2020 00:55:03 GMT):
zoom link - https://consensys.zoom.us/j/524697595
jinnyeon (Tue, 18 Feb 2020 01:23:11 GMT):
Code inside *Proxy.sol of the uPort* smart contract. This works fine in Geth, but in Besu, the result of the call keeps returning false Is there any part of Besu to consider for Assembly Inline code operation?```
```
jinnyeon (Tue, 18 Feb 2020 01:23:11 GMT):
Code inside *Proxy.sol of the uPort* smart contract. This works fine in Geth, but in Besu, the result of the call keeps returning false Is there any part of Besu to consider for Assembly Inline code operation?```
```
// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall(address to, uint256 value, bytes data) public payable returns (bool success) {
assembly {
success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)
}
}
```
jinnyeon (Tue, 18 Feb 2020 01:23:11 GMT):
Code inside *Proxy.sol of the uPort* smart contract. This works fine in Geth, but in Besu, the result of the call keeps returning false Is there any part of Besu to consider for Assembly Inline code operation?
` // copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall(address to, uint256 value, bytes data) public payable returns (bool success) {
assembly {
success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)
}
}`
jinnyeon (Tue, 18 Feb 2020 01:23:11 GMT):
Code inside *Proxy.sol of the uPort* smart contract. This works fine in Geth, but in Besu, the result of the call keeps returning false Is there any part of Besu to consider for Assembly Inline code operation?
```
// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall(address to, uint256 value, bytes data) public payable returns (bool success) {
assembly {
success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)
}
}
```
jinnyeon (Tue, 18 Feb 2020 01:23:11 GMT):
Code inside *Proxy.sol of the uPort* smart contract. This works fine in Geth, but in Besu, the result of the call keeps returning false Is there any part of Besu to consider for Assembly Inline code operation?
```
// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall(address to, uint256 value, bytes data) public payable returns (bool success) {
assembly {
success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)
}
}
```
jinnyeon (Tue, 18 Feb 2020 01:23:11 GMT):
Code inside *Proxy.sol of the uPort* smart contract. This works fine in Geth, but in Besu, the result of the call keeps returning false. Is there any part of Besu to consider for Assembly Inline code operation?
```
// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall(address to, uint256 value, bytes data) public payable returns (bool success) {
assembly {
success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)
}
}
```
jinnyeon (Tue, 18 Feb 2020 01:23:11 GMT):
Hi. Below is code inside *Proxy.sol of the uPort* smart contract. This works fine in Geth, but in Besu, the result of the call keeps returning false. Is there any part of Besu to consider for Assembly Inline code operation?
```
// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall(address to, uint256 value, bytes data) public payable returns (bool success) {
assembly {
success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)
}
}
```
jinnyeon (Tue, 18 Feb 2020 01:23:15 GMT):
`// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall(address to, uint256 value, bytes data) public payable returns (bool success) {
assembly {
success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)
}
}`
EdJoJob (Tue, 18 Feb 2020 01:50:40 GMT):
Notes from the meeting are at https://wiki.hyperledger.org/display/BESU/2020-02-18+Besu+Contributor+Call+Notes, recording to be added
jinnyeon (Tue, 18 Feb 2020 04:29:55 GMT):
Hello. I'm testing *uPort's IdentityManager* smart contract on Besu. When I run this contract in Geth, it works normally but not in Besu. I want to know why there is a difference in the result of the same smart contract.
The uPort smart contract link is below.
`https://github.com/uport-project/uport-identity`
jinnyeon (Tue, 18 Feb 2020 04:29:55 GMT):
Hello. I'm testing *uPort's IdentityManager* smart contract on Besu. When I run this contract in Geth, it works normally but not in Besu. I want to know why there is a difference in the result of the same smart contract.
The uPort smart contract link is below.
https://github.com/uport-project/uport-identity
shemnon (Tue, 18 Feb 2020 04:34:01 GMT):
Can you elaborate on what the failures you are seeing?
jinnyeon (Tue, 18 Feb 2020 05:36:56 GMT):
When executing 'forwardTo' function of uPort IdentityManager.sol, transaction failed with 'false Transaction mined but execution failed' message.
I think the following part doesn't work.
```
// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall (address to, uint256 value, bytes data) internal returns (bool success) {
assembly {
success: = call (gas, to, value, add (data, 0x20), mload (data), 0, 0)
}
}
```
In addition, I wrote a smart contract that simply sends ether to Besu, and send (), transfer (), and call () all fail to send ether. Can you see the cause?
```
pragma solidity 0.4.15;
contract Sender {
function send(address _receiver) payable {
//_receiver.send(msg.value);
//_receiver.transfer(msg.value);
_receiver.call.gas(203124).value(msg.value)();
}
}
```
jinnyeon (Tue, 18 Feb 2020 05:36:56 GMT):
When executing 'forwardTo' function of uPort IdentityManager.sol, transaction failed with 'false Transaction mined but execution failed' message.
I think the following part doesn't work.
```
// copied from GnosisSafe
// https://github.com/gnosis/gnosis-safe-contracts/blob/master/contracts/GnosisSafe.sol
function executeCall (address to, uint256 value, bytes data) internal returns (bool success) {
assembly {
success: = call (gas, to, value, add (data, 0x20), mload (data), 0, 0)
}
}
```
In addition, I wrote a smart contract that simply sends ether to Besu, and send (), transfer (), and call () all fail to send ether. Can you see the cause?
```
pragma solidity 0.4.15;
contract Sender {
function send(address _receiver) payable {
//_receiver.send(msg.value);
//_receiver.transfer(msg.value);
_receiver.call.gas(203124).value(msg.value)();
}
}
```
shemnon (Tue, 18 Feb 2020 05:41:43 GMT):
So by "sends ether to Besu" I assume you mean a node running besu. Is this on mainnet or a testnet or on a custom network? Also, what are the outputs of the JSON-RPC calls posting? Are you specifying gas or replying on eth_estimateGas?
shemnon (Tue, 18 Feb 2020 05:42:15 GMT):
If this is in a named blockchain can you point me at a failing transaction?
jinnyeon (Tue, 18 Feb 2020 06:16:46 GMT):
The test environment consists of the Besu node in Kaleido and is the PoA algorithm.
Correcting 'sends other to Besu' means sending Ether between accounts using smart contacts.
JSON/RPC output will check again and let you know because it was tested through Remix's Injected Web3 (Metamask).
jinnyeon (Tue, 18 Feb 2020 06:16:46 GMT):
The test environment consists of the Besu node in Kaleido and is the PoA algorithm.
Correcting 'sends other to Besu' means sending Ether between accounts using smart contacts.
JSON/RPC output will check again and let you know because it was tested through Remix's Injected Web3 (Metamask).
shemnon (Tue, 18 Feb 2020 06:19:21 GMT):
I bet it's an estimate_gas issue - https://jira.hyperledger.org/browse/BESU-61
shemnon (Tue, 18 Feb 2020 08:18:21 GMT):
@VipinB I had my head buried deep in tracing diffs for the past month. Whatever happened with this? Do we need to try and get some other Besu people involved?
ArvsIndrarys (Tue, 18 Feb 2020 08:38:37 GMT):
My faucet and the proxy are tested and work properly.
In the permissionning contracts example, two of the contracts are defined in the genesis file.
I would like to deploy the faucet proxy via the genesis file to have it have some ethers.
```
"0x...55": {
"comment": "my faucet proxy",
"code": "....",
"balance" : "0x100000000000000..."
}
```
ArvsIndrarys (Tue, 18 Feb 2020 08:39:34 GMT):
I would like to set it like that to avoid having an account with most of the ethers of the network.
ArvsIndrarys (Tue, 18 Feb 2020 08:40:35 GMT):
The thing is, when using remix to test it after deployment on my network, the faucetProxy contract does not work as it should.
ArvsIndrarys (Tue, 18 Feb 2020 08:42:01 GMT):
I don't know if it is because of my contract missing a storage like the [permissioning contracts defined in the genesis file](https://github.com/PegaSysEng/permissioning-smart-contracts/blob/master/genesis.json#L38) or if the way I compiled the bytecode is wrong
ArvsIndrarys (Tue, 18 Feb 2020 08:43:01 GMT):
(`solcjs --optimize --bin -o bytecodes [list of contracts]`)
ArvsIndrarys (Tue, 18 Feb 2020 08:44:50 GMT):
or any other error I did not think about.
I don't know why it did not work ; pegasys gave an example on how to define a contract at genesis, but there is no documentation about it. So I don't know what went wrong ; if there's any constraints or anything
faraggi (Tue, 18 Feb 2020 09:18:10 GMT):
@adityasingh177 Your Contributor call question was answered in yesterday's Call. This is the recording: https://consensys.zoom.us/rec/play/u5YrfrquqTM3HNXBuASDA6N5W43oKqOs2nQZ86cIn0azB3ZXNgKvbrMaMLB8UgTBpJratkhTMTa9Y5As?startTime=1581987869000
The question was answered near the 13 minute mark.
faraggi (Tue, 18 Feb 2020 09:18:10 GMT):
@adityasingh177 Your Contributor call question was answered by @ajsutton in yesterday's Call. This is the recording: https://consensys.zoom.us/rec/play/u5YrfrquqTM3HNXBuASDA6N5W43oKqOs2nQZ86cIn0azB3ZXNgKvbrMaMLB8UgTBpJratkhTMTa9Y5As?startTime=1581987869000
The question was answered near the 13 minute mark.
faraggi (Tue, 18 Feb 2020 09:33:50 GMT):
Sorry @ArvsIndrarys , Its hard for us to help out without having a look at the code itself.
gregdhill (Tue, 18 Feb 2020 10:04:11 GMT):
Has joined the channel.
PeterTheOne (Tue, 18 Feb 2020 15:53:21 GMT):
Has joined the channel.
VipinB (Tue, 18 Feb 2020 20:29:04 GMT):
test
jinnyeon (Wed, 19 Feb 2020 01:38:38 GMT):
It seems to be related to the estimate_gas issue.
When I debug the transaction, it seems that there is not enough gas. Is there a solution?
shemnon (Wed, 19 Feb 2020 02:36:16 GMT):
If you get at the gas estimate multiply it by 1.1 for a 10% boost.
raedbensaid (Wed, 19 Feb 2020 09:57:29 GMT):
Hello everyone,
I'm testing hyperledger besu with kubernetes using this : https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/private-network-ibft with the default configuration and i have 2 pods that didn't work! ( 1 replicat of besu node + validator 2 ). Besu node is created with 2 recplicaset by default can you tell me why ? and just one of them is working!
raedbensaid (Wed, 19 Feb 2020 09:58:07 GMT):
besu2.png
robertosaltini (Wed, 19 Feb 2020 10:42:35 GMT):
In the case of Clique, empty blocks help secure existing non empty blocks by burying them in the blockchain.
shemnon (Wed, 19 Feb 2020 15:27:47 GMT):
What do the console logs say?
adityasingh177 (Wed, 19 Feb 2020 17:58:58 GMT):
Thanks @faraggi and @ajsutton , sorry for misssing out
adityasingh177 (Wed, 19 Feb 2020 17:58:58 GMT):
Thanks @faraggi and @ajsutton , sorry for missing out
adityasingh177 (Wed, 19 Feb 2020 17:58:58 GMT):
Thanks @faraggi , @shemnon and @ajsutton , sorry for missing out , thank you for the explanation
adityasingh177 (Wed, 19 Feb 2020 17:58:58 GMT):
@faraggi , @shemnon and @ajsutton , sorry for missing out , thank you for the explanation
adamalexandru4 (Thu, 20 Feb 2020 13:45:28 GMT):
Has joined the channel.
adamalexandru4 (Thu, 20 Feb 2020 13:45:29 GMT):
Hello, I'm new to blockchain technology and I'm trying to develop a voting system using Hyperledger (after a lot of pros and cons between it and Ethereum). Actually, I looked over and I found Besu and Fabric projects. My request would be to use the PoA consensus algorithm which looks available in Besu, but I don't want to use actually an Ethereum network due to the gas cost and the wallet prerequisites. So, is there any option in order to use another consensus algorithm in Hyperledger Fabric than the current one (ordering) ?
Silona (Thu, 20 Feb 2020 14:53:33 GMT):
@faraggi
raedbensaid (Thu, 20 Feb 2020 15:06:12 GMT):
kubernetes can't start the container of the node
raedbensaid (Thu, 20 Feb 2020 15:07:08 GMT):
one replicaset of this node is working but the other no ! and as a consequence validator 2 is not working too !
shemnon (Thu, 20 Feb 2020 15:15:45 GMT):
You can set the gas cost to zero and that would result in gas simply being used to ensure the smart contract will halt. Thus you don't need to manage ether between wallets and IIRC any account (wethere it existed or not) can call any contract. (if not we should consider removing the barriers).
faraggi (Thu, 20 Feb 2020 15:41:46 GMT):
You can find different consensus algos that are compatible with besu here: https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/
And this is the doc for creating a free gas network: https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
faraggi (Thu, 20 Feb 2020 15:43:24 GMT):
Thanks for pinging Silona. Yesterday's meeting was great.
Would anyone in here like to write an technical content article about/using Besu? Reach out to me!
Mozer18 (Thu, 20 Feb 2020 19:53:46 GMT):
Has joined the channel.
adamalexandru4 (Thu, 20 Feb 2020 22:06:51 GMT):
In order to be more specific about an earlier question, let me ask you the following: ```
For a voting system, why should I use Besu not other solutions like Fabric
```
jinnyeon (Fri, 21 Feb 2020 08:37:57 GMT):
Hello. I am using besu v1.3.8 and I am running a private network on my personal local pc. I want to send a transaction using web3.js. However, running the example `create_value_raw_transaction.js` in the link https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Use-web3js/ returns `Error: Returned error: Invalid params`. What is the cause?
e-nikolov (Fri, 21 Feb 2020 11:14:26 GMT):
Has joined the channel.
e-nikolov (Fri, 21 Feb 2020 11:14:28 GMT):
Hello, I was fast syncing with pruning using docker and besu/v1.4.0-beta4-dev-9b35c3b6/linux-x86_64/oracle_openjdk-java-11 and it was first successful for a while until it reached the following checksum mismatch error:
```
2020-02-21 02:57:54.900+00:00 | EthScheduler-Services-30 (importBlock) | ERROR | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.plugin.services.exception.StorageException: org.rocksdb.RocksDBException: block checksum mismatch: expected 2622741545, got 3240449483 in /root/mainnet/database/012017.sst offset 54051702 size 26209
at java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:367) ~[?:?]
at java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:376) ~[?:?]
at java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1019) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) ~[?:?]
at org.hyperledger.besu.services.pipeline.Pipeline.abort(Pipeline.java:152) ~[besu-pipeline-1.4.0-beta4-SNAPSHOT.jar:1.4.0-beta4-dev-9b35c3b6]
at org.hyperledger.besu.services.pipeline.Pipeline.lambda$runWithErrorHandling$3(Pipeline.java:134) ~[besu-pipeline-1.4.0-beta4-SNAPSHOT.jar:1.4.0-beta4-dev-9b35c3b6]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
```
e-nikolov (Fri, 21 Feb 2020 11:14:28 GMT):
Hello, I was fast syncing with pruning using docker and besu/v1.4.0-beta4-dev-9b35c3b6/linux-x86_64/oracle_openjdk-java-11 and it was first successful for a while until it reached the following checksum mismatch error:
```
2020-02-21 02:57:54.900+00:00 | EthScheduler-Services-30 (importBlock) | ERROR | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.plugin.services.exception.StorageException: org.rocksdb.RocksDBException: block checksum mismatch: expected 2622741545, got 3240449483 in /root/mainnet/database/012017.sst offset 54051702 size 26209
at java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:367) ~[?:?]
at java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:376) ~[?:?]
at java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1019) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) ~[?:?]
at org.hyperledger.besu.services.pipeline.Pipeline.abort(Pipeline.java:152) ~[besu-pipeline-1.4.0-beta4-SNAPSHOT.jar:1.4.0-beta4-dev-9b35c3b6]
at org.hyperledger.besu.services.pipeline.Pipeline.lambda$runWithErrorHandling$3(Pipeline.java:134) ~[besu-pipeline-1.4.0-beta4-SNAPSHOT.jar:1.4.0-beta4-dev-9b35c3b6]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
```
And then for a couple of hours it keeps spitting out the same error
e-nikolov (Fri, 21 Feb 2020 11:15:50 GMT):
Any ideas about what is causing this and how I can resolve it?
e-nikolov (Fri, 21 Feb 2020 11:15:50 GMT):
It looks like rocksdb missing a write, or Amazon's file store being flakey. I've had success shutting down besu and restarting the AWS node when I've seen it. Restarting the AWS node is essential because it forces Amazon's backing file system to sync.
e-nikolov (Fri, 21 Feb 2020 11:15:50 GMT):
>
shemnon (Fri, 21 Feb 2020 14:00:34 GMT):
It looks like an error in the file system, possibly amazon's AWS instance. I've had luck stoping besu and restarting the AWS instance.
e-nikolov (Fri, 21 Feb 2020 14:01:19 GMT):
it's using a digital ocean droplet with an attached block storage volume
faraggi (Fri, 21 Feb 2020 14:47:10 GMT):
Relative to a *voting system*, per sé; no specific reasons to build on any specific platform.
However, the main differences between HLF and HLBesu are:
- Besu will be able to TX with eth mainnet, and private networks
- Java v/s Go
- Solidty (and more) vs chaincode
- privacy solutions are completely different
and more...
faraggi (Fri, 21 Feb 2020 14:47:26 GMT):
Relative to a voting system, per sé; no specific reasons to build on any specific platform.
However, the main differences between HLF and HLBesu are:
- Besu will be able to TX with eth mainnet, and private networks
- Java v/s Go
- Solidty (and more) vs chaincode
- privacy solutions are completely different
and more...
shemnon (Fri, 21 Feb 2020 15:35:56 GMT):
again, it may be the same sync issue. Otherwise the node became corrupt because of file system issues. RocksDB is rough on file systems.
shemnon (Fri, 21 Feb 2020 15:36:12 GMT):
Did a full reboot of the droplet help?
adamalexandru4 (Fri, 21 Feb 2020 20:04:04 GMT):
Thanks a lot @faraggi for your answers!
rranjan3 (Fri, 21 Feb 2020 20:50:21 GMT):
Has joined the channel.
rranjan3 (Fri, 21 Feb 2020 20:53:09 GMT):
Can one listen for events from Besu over http? Websocket isn't working for me. Getting timeout trying to connect to a local Besu deployment(using dockers)
rranjan3 (Fri, 21 Feb 2020 20:53:09 GMT):
Can one listen for events from Besu over http(using web3.py)? Websocket isn't working for me. Getting timeout trying to connect to a local Besu deployment(using dockers)
NicolasMassart (Sat, 22 Feb 2020 12:19:24 GMT):
What command line/config did you use to run your node with ws? It should be ok to use ws.
rranjan3 (Sat, 22 Feb 2020 12:22:09 GMT):
https://github.com/ethereum/web3.py/issues/1584 .. I was able to get events over wscat. So I suspect an issue with web3.py
rranjan3 (Sat, 22 Feb 2020 12:22:09 GMT):
https://github.com/ethereum/web3.py/issues/1584 .. I was able to get events over wscat. So I suspect an issue with web3.py. Correct me if I am wrong in the usage of web3.py
shemnon (Sat, 22 Feb 2020 15:54:51 GMT):
Web3.py is the only client that by default enforces extradata lengths from the yellow paper. All enterprise chains violate this length: https://web3py.readthedocs.io/en/stable/middleware.html#why-is-geth-poa-middleware-necessary
rranjan3 (Sat, 22 Feb 2020 16:06:59 GMT):
Thanks @shemnon & @NicolasMassart. That's insightful. But I wonder if this middleware would have a role in isConnected() call as well. i am able to connect to Besu for event using wscat & JRPC
rranjan3 (Sat, 22 Feb 2020 16:06:59 GMT):
Thanks @shemnon & @NicolasMassart . That's insightful. But I wonder if this middleware would have a role in isConnected() call as well. i am able to connect to Besu for event using wscat & JRPC
rranjan3 (Mon, 24 Feb 2020 06:50:03 GMT):
What is the encoding "data" field in Log Object for an Event log received using JRPC? https://besu.hyperledger.org/en/stable/Reference/API-Objects/#log-object
ajsutton (Mon, 24 Feb 2020 07:37:11 GMT):
It's whatever bytes the contract output with the log event. It can be anything, but if you used solidity to output the log, it will use solidity's data format and most web3 libraries should be able to parse it into a more usable form for you if you provide the contract ABI.
rranjan3 (Mon, 24 Feb 2020 09:17:56 GMT):
Thanks!.processLog/processReceipt is what you meant I guess -https://web3py.readthedocs.io/en/stable/contracts.html#web3.contract.ContractEvents
ajsutton (Mon, 24 Feb 2020 09:18:59 GMT):
Probably yes. I must admit I spend so much of my time dealing with the lowest levels I don’t actually know the web3 libraries all that well :)
harish0449 (Mon, 24 Feb 2020 10:20:20 GMT):
Has joined the channel.
harish0449 (Mon, 24 Feb 2020 10:20:21 GMT):
Hi, can anyone pls help me to install hyperledger besu in the server . https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Clique-Network/
harish0449 (Mon, 24 Feb 2020 10:29:09 GMT):
besu :command is not found
faraggi (Mon, 24 Feb 2020 11:13:02 GMT):
@harish0449 That means that your Besu binary isn't installed correctly or (most likely) isn't added to your path.
faraggi (Mon, 24 Feb 2020 11:13:23 GMT):
What OS are you on?
How did you originally install Besu?
harish0449 (Mon, 24 Feb 2020 12:03:04 GMT):
I am trying to install in Ubuntu
faraggi (Mon, 24 Feb 2020 13:16:00 GMT):
I'll help you in PMs. I'll send you a message.
eum602 (Mon, 24 Feb 2020 15:28:34 GMT):
Hello everyone, I am also not able to listen events using golang, please can you tell me if it is possible or maybe I am doing something worng? thanks
eum602 (Mon, 24 Feb 2020 15:53:25 GMT):
Hello everyone, I would like to share some thoughts about interactions with the besu node.
In a scenario where If for some reason the besu node does not totally synchronize (but almost at the head of the chain), I am able to:
* Read database
* execute transactions.
But I am not able to listen events.
As I see this is the normal behavior under that context, but wouldn't be better to guarantee that even when the synchronization fails the node is still able to listen events?
eum602 (Mon, 24 Feb 2020 15:53:25 GMT):
Hello everyone, I would like to share some thoughts about interactions with the besu node.
In a scenario where If for some reason the besu node does not totally synchronize (but everytime almost at the head of the chain), I am able to:
* Read database
* execute transactions.
But I am not able to listen events.
As I see this is the normal behavior under that context, but wouldn't be better to guarantee that even when the synchronization fails the node is still able to listen events?
shemnon (Mon, 24 Feb 2020 17:22:23 GMT):
Next week's contributor call is scheduled an hour before the Hyperledger Global Forum keynote in Phoenix. Also the tail end of the first day of EthCC. Does this impact anyone's ability to attend? I'm leaning towards holding the call as normal if there are no objections.
lucassaldanha (Mon, 24 Feb 2020 20:10:39 GMT):
What events are you talking about? If you are talking about event emitted by Solidity (that become logs in the tx receipt), your node will generate them as it processes the incoming blocks. If it is out-of-sync, you won't get the events for transactions that have been included in blocks that your node hasn't received yet.
timbeiko (Mon, 24 Feb 2020 22:10:51 GMT):
The Besu roadmap doc has been updated on the wiki to reflect our upcoming 1.4 release: https://wiki.hyperledger.org/display/BESU/Roadmap
shemnon (Mon, 24 Feb 2020 22:12:56 GMT):
We had reviewed this in last weeks APAC/AMER contributor call and can go over it again in next weeks EMEA/AMER call - https://wiki.hyperledger.org/display/BESU/2020-02-18+Besu+Contributor+Call+Notes
faraggi (Tue, 25 Feb 2020 08:17:00 GMT):
I just checked and my EthCC talk is scheduled _right_ at the start of the Call.
I'll try to make it after the talk, and give some updates on ethCC in real-time, but I can't promise I'll make it.
faraggi (Tue, 25 Feb 2020 09:07:15 GMT):
For anyone wondering and having the same issues, Harish was having troubles installing the Besu Binary to on their linux machine and adding it to their PATH variable.
These instructions helped him:
https://kauri.io/installing-besu-binary-on-linux/e00df6efcb644e07ab44df169d9375e9/a
or
https://kauri.io/using-besu-the-java-ethereum-client-with-linuxmaco/276dd27f1458443295eea58403fd6965/a
qwertlimframe (Tue, 25 Feb 2020 10:30:39 GMT):
Has joined the channel.
qwertlimframe (Tue, 25 Feb 2020 10:34:24 GMT):
Has left the channel.
terrencecooke (Tue, 25 Feb 2020 22:05:37 GMT):
Has joined the channel.
joshuafernandes (Wed, 26 Feb 2020 02:35:52 GMT):
FWIW https://galaxy.ansible.com/pegasyseng/hyperledger_besu does the lot - conf, logs, versions and a systemd service
eum602 (Wed, 26 Feb 2020 14:39:30 GMT):
Hello everyone, please I would like your help to try to know what could be happening here: I have a node which is behind a subnetwork (virtualized and nated), I have the following error:
eum602 (Wed, 26 Feb 2020 14:39:39 GMT):
Clipboard - February 26, 2020 9:39 AM
eum602 (Wed, 26 Feb 2020 14:40:47 GMT):
can you help me what the debug message is mentioning?; thank a lot.
eum602 (Wed, 26 Feb 2020 14:41:22 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=TPWn6FSWkJAfBHeqp)
Clipboard - February 26, 2020 9:41 AM
eum602 (Wed, 26 Feb 2020 14:42:00 GMT):
can you help me what the debug message is mentioning?; thank a lot.
eum602 (Wed, 26 Feb 2020 14:42:55 GMT):
can you help me what the debug message is mentioning?; thank a lot.
NicolasMassart (Wed, 26 Feb 2020 15:06:00 GMT):
Hi @ppoliani can you tell me if you still have these peaks and what your memory configuration values are for the Besu node?
shemnon (Wed, 26 Feb 2020 15:58:04 GMT):
There are two errors. First, the headers to download being sent by the peer don't connecct durring fast sync. We have error logic convering that. But the error logic does not hande the case where the chekpoint range includes the chain head, so we get an unexpected error. Corner case of a corner case.
shemnon (Wed, 26 Feb 2020 15:58:18 GMT):
Can you post a jira bug with the text version of that stack trace?
shemnon (Wed, 26 Feb 2020 15:58:35 GMT):
Also, can you try it again after 200 blocks have been mined? This may be self correcting.
shemnon (Wed, 26 Feb 2020 15:59:18 GMT):
Based on the code base I do not expect 1.4.0 that is being reelased today to make a difference.
eum602 (Wed, 26 Feb 2020 16:36:06 GMT):
@shemnon let me give some context.
* The node is under IBFT2.0.
* Network: Under nat environemt and node is hosted into a subnetwork where the node is hosted in a machine that uses virtualization(eg. virtualbox or similar)
* Lets assume my node is "A".
Then as I understand when some other peers send message block headers to the node "A" then for some reason there is no fast synchronization with those peers (maybe connection is broken for some reason?):
* Besu handle errors related to fast sync during block headers transmission that aren't the chain head.
* But the errors are shown because the handler does not cover the case when the chain head arrives and fast sync fails.
In Practice, I have observed that the node "A" is capable of:
* serve queries made by users through RPC api methods (eg. read and change the state)
* Users are NOT able to listen events because the node is not always 100% synchronized.
The problem persists because the node is continoulsy trying to reach the chain head.
eum602 (Wed, 26 Feb 2020 16:41:34 GMT):
Also something that gets my attention is this message that appears on debug: Seems that it is disconnecting and the reason is "TOO MANY PEERS":
eum602 (Wed, 26 Feb 2020 16:42:07 GMT):
TOO_MANY_PEERS
eum602 (Wed, 26 Feb 2020 16:43:14 GMT):
please @shemnon can you give some ideas what is happening. Thanks!!
shemnon (Wed, 26 Feb 2020 17:09:54 GMT):
You may want to up the `--max-peers` (default is 25) or set each peer to reserve a peer for an "adjacent" peer or set of peers using the `static-nodes.json` facility. You can actually use `static-peers.json` to set up a fixed topoligy too. Each peer would need to have the other peer in the static peers list to ensure connection.
eum602 (Wed, 26 Feb 2020 17:18:32 GMT):
thanks a lot @shemnon , I have a clue, according to the attached image the node disconnects for almost all the peers; please can you tell me why it is happening?
shemnon (Wed, 26 Feb 2020 17:19:43 GMT):
All the other peers are connected to each other with no available connections. They've formed a tight clique. That's why upping max peers would help and why setting static nodes would ensure at least some connection if that tight clique forms.
shemnon (Wed, 26 Feb 2020 17:21:47 GMT):
Not every node can be connected with each other if the max nodes is less than the total nodes, and when those numbers are close a clique is more likely to form. Especially if the clique has not had node members go off line.
shemnon (Wed, 26 Feb 2020 17:22:35 GMT):
try bringing down some of the non-validator nodes and see if this node can re-connect after 5 min.
shemnon (Wed, 26 Feb 2020 17:23:01 GMT):
If I may ask, how many total besu nodes are in your network?
eum602 (Wed, 26 Feb 2020 17:23:17 GMT):
I have near 30 nodes
shemnon (Wed, 26 Feb 2020 17:24:09 GMT):
yep, that is consistant with my expectations. The other 29 have a tight pool of nodes and there is no place for this node to connect. Upping `--max-peers` to 30 on all nodes should help.
eum602 (Wed, 26 Feb 2020 17:25:02 GMT):
so maybe I may increase that number as minimum on all bootnodes?
shemnon (Wed, 26 Feb 2020 17:25:08 GMT):
yes.
eum602 (Wed, 26 Feb 2020 17:25:33 GMT):
excellent @shemnon let me try it. I'll come back soon
eum602 (Wed, 26 Feb 2020 19:03:13 GMT):
@shemnon fortunately now I do not see TOO_MANY_PEERS anymore, neverthless I see a message mentioning that: "Rejecting connection because local node is not ready" , can you let me know what issues can be happening in my local node? thanks
timbeiko (Wed, 26 Feb 2020 19:14:57 GMT):
Our team is currently working on removing the fallback from fast sync to full sync (https://github.com/hyperledger/besu/pull/427). Because this is a change in how defaults work, we were hoping to have it for the 1.4 release, but would still need ~1 day of work to get it done and test it properly.
At the same time, it’s not a “feature” that people used per say as much as a good idea that turned out to be inconvenient when used in the wild. No one "relies" on this. That would be an argument to not push back the release and just have the change in 1.4.1.
Thoughts? Not too sure what the right call is here.
davemec (Wed, 26 Feb 2020 19:30:15 GMT):
Has joined the channel.
madelinemurray (Wed, 26 Feb 2020 19:31:05 GMT):
If a fast-sync is failing due to peer starvation, it'll drop back to full-sync automatically so the only way to try fast-sync again will be to realise this has happened, stop the sync, delete the database, and start again. Is that right?
madelinemurray (Wed, 26 Feb 2020 19:31:57 GMT):
So if someone starts syncing using a named network and the default fast sync fails, it could be hours before they realise?
madelinemurray (Wed, 26 Feb 2020 19:33:03 GMT):
And then the original bug that promted this change is more likely to occur and that will stop the full sync as well. So they'd have to delete the database and restart the full sync?
mbaxter (Wed, 26 Feb 2020 19:37:14 GMT):
FWIW - I'd characterize this change as a bug fix - we're trying to properly handle previously unhandled errors
mbaxter (Wed, 26 Feb 2020 19:38:57 GMT):
> And then the original bug that promted this change
What's the original bug?
madelinemurray (Wed, 26 Feb 2020 19:40:49 GMT):
Pruning failing and causing a MerkleTrieExcpetion. Hang on - I'll find the actual bug.
madelinemurray (Wed, 26 Feb 2020 19:41:40 GMT):
https://jira.hyperledger.org/browse/BESU-160
timbeiko (Wed, 26 Feb 2020 19:42:46 GMT):
That bug was discovered by the switch from full to fast sync, but isn't really "caused" by it. It's an issue with pruning only.
timbeiko (Wed, 26 Feb 2020 19:43:02 GMT):
So users are more likely to encounter it with the current fallback.
madelinemurray (Wed, 26 Feb 2020 19:43:28 GMT):
The bug can occur with full sync but its much less likely to - is that right Tim?
timbeiko (Wed, 26 Feb 2020 19:46:05 GMT):
The bug is most likely when full sync is running with pruning
timbeiko (Wed, 26 Feb 2020 19:46:45 GMT):
Full Sync + Pruning is an odd configuration, *but* Fast Sync + Pruning is recommended. Therefore, due to the fallback, users are likelier to end up with that configuration.
madelinemurray (Wed, 26 Feb 2020 19:52:46 GMT):
So this really affects users syncing to named networks (mainnet, Ropsten, etc). If we don't change the default behaviour, a portion of them are likely to:
1) Fall back to full sync if peer starvartion causes fast sync to fail
2)Hit the pruning bug because now they're using full sync and pruning.
Do we have any feeling about how likely each of 1 and 2 are? ie, very likely, might happen, unlikely
And in both cases, the solution is to delete the database and start again?
timbeiko (Wed, 26 Feb 2020 19:53:45 GMT):
> Do we have any feeling about how likely each of 1 and 2 are? ie, very likely, might happen, unlikely
(1) Likely. My personal experience is ~50% of the time on a laptop.
(2) Not sure.
> And in both cases, the solution is to delete the database and start again?
Yes
arash009 (Wed, 26 Feb 2020 19:55:55 GMT):
Sounds like its not whether or not this is a bug that needs to be fixed, its if release should be delays because of it. To me as long as we have communicated the bug, we can go ahead with release and advise what to do now, and when it will be fixed.
timbeiko (Wed, 26 Feb 2020 19:57:14 GMT):
The nuance is that the fallback wasn't really a "bug" at first but a feature. Just turned out to be a bad one :-)
arash009 (Wed, 26 Feb 2020 19:58:29 GMT):
And we cant make it fall back to fast sync AND switch off pruning?
timbeiko (Wed, 26 Feb 2020 19:59:19 GMT):
We don't want to fall back to full sync period.
timbeiko (Wed, 26 Feb 2020 19:59:35 GMT):
There isn't really a good use case for that. It's better to spend days searching for peers than switch back to full sync
timbeiko (Wed, 26 Feb 2020 19:59:35 GMT):
There isn't really a good use case for that. It's better to spend days searching for peers than switch back to full sync because of how long the sync takes.
arash009 (Wed, 26 Feb 2020 20:01:15 GMT):
Got it. My thoughts are go ahead with release (as there are a bunch of other features that users are waiting for) and we communicate this one have it fixed in the next point release.
timbeiko (Wed, 26 Feb 2020 20:06:03 GMT):
That makes sense to me :+1:
madelinemurray (Wed, 26 Feb 2020 20:07:09 GMT):
Pruning is disabled by default isn't it?
madelinemurray (Wed, 26 Feb 2020 20:07:46 GMT):
I'll update the changelog to make this clear.
timbeiko (Wed, 26 Feb 2020 20:07:54 GMT):
> Pruning is disabled by default isn't it?
Yes
timbeiko (Wed, 26 Feb 2020 20:08:18 GMT):
We will only enable it by default with fast sync once both the fallback is gone and the bug linked above is fixed :+1:
madelinemurray (Wed, 26 Feb 2020 20:08:19 GMT):
But not in named networks?
timbeiko (Wed, 26 Feb 2020 20:09:16 GMT):
Not the default there either. We held off merging it because of the two issues above.
madelinemurray (Wed, 26 Feb 2020 20:09:16 GMT):
Ignore that - it's enabled for named networks because they start on fast sync
timbeiko (Wed, 26 Feb 2020 20:09:24 GMT):
Wait what?
madelinemurray (Wed, 26 Feb 2020 20:09:39 GMT):
> Full Sync + Pruning is an odd configuration, but Fast Sync + Pruning is recommended. Therefore, due to the fallback, users are likelier to end up with that configuration.
madelinemurray (Wed, 26 Feb 2020 20:10:21 GMT):
So if you start with `besu`, don't you end up with fast-sync and pruning enabled by default?
timbeiko (Wed, 26 Feb 2020 20:10:41 GMT):
No: there is an open PR pending for that to be ture. We held off merging it due to these issues https://github.com/hyperledger/besu/pull/384
timbeiko (Wed, 26 Feb 2020 20:11:15 GMT):
But fast sync + pruning is what we tell (told) people to use prior to finding these bugs
madelinemurray (Wed, 26 Feb 2020 20:11:15 GMT):
OK - that's actually better. So you'll only hit the 2) if you've deliberately enabled pruning
timbeiko (Wed, 26 Feb 2020 20:11:24 GMT):
Yes
timbeiko (Wed, 26 Feb 2020 20:11:50 GMT):
... unless fast-sync enables pruning by default.
madelinemurray (Wed, 26 Feb 2020 20:11:52 GMT):
Should I put a known bug tag into the command line reference doc as well as the changelog in that case?
timbeiko (Wed, 26 Feb 2020 20:12:37 GMT):
Ok, as I understand it, fast-sync *does* enable pruning. Sorry, my bad.
madelinemurray (Wed, 26 Feb 2020 20:13:29 GMT):
OK - so we should be recommended that users explicitly disable pruning when syncing to a named network then?
timbeiko (Wed, 26 Feb 2020 20:13:48 GMT):
I'm double checking with @rai
timbeiko (Wed, 26 Feb 2020 20:14:23 GMT):
Ok, confirmed that:
1. Fast Sync is *not* the default on named networks
2. Fast Sync *does* enable pruning
timbeiko (Wed, 26 Feb 2020 20:14:51 GMT):
So, yes, we should recommend *not* using pruning for now, and hence if people use fast sync, they should disable pruning.
madelinemurray (Wed, 26 Feb 2020 20:15:01 GMT):
OK - so if you explicitly enable fast sync, then you should explicity disable pruning
timbeiko (Wed, 26 Feb 2020 20:15:06 GMT):
yep
madelinemurray (Wed, 26 Feb 2020 20:15:31 GMT):
And just generally be aware that defaulting to full sync is probably not the behaviour you want.
timbeiko (Wed, 26 Feb 2020 20:15:51 GMT):
Yep, and that should be fixed by 1.4.1
madelinemurray (Wed, 26 Feb 2020 20:16:13 GMT):
Is the pruning bug likely to be fixed by 1.4.1 as well?
timbeiko (Wed, 26 Feb 2020 20:16:55 GMT):
@rai :-D ?
rai (Wed, 26 Feb 2020 20:17:14 GMT):
1.4.1 is in 2 weeks right?
timbeiko (Wed, 26 Feb 2020 20:17:17 GMT):
yep
madelinemurray (Wed, 26 Feb 2020 20:17:17 GMT):
Yep
timbeiko (Wed, 26 Feb 2020 20:17:25 GMT):
worst case we can un-default pruning with fast sync
rai (Wed, 26 Feb 2020 20:17:30 GMT):
I am really really hoping so
rai (Wed, 26 Feb 2020 20:17:30 GMT):
I am really really hoping so
rai (Wed, 26 Feb 2020 20:17:30 GMT):
I really really hoping so
madelinemurray (Wed, 26 Feb 2020 20:18:08 GMT):
OK - so defaults will definitely be sorted and pruning bug hopefully
timbeiko (Wed, 26 Feb 2020 20:18:53 GMT):
yes :-)
madelinemurray (Wed, 26 Feb 2020 20:58:05 GMT):
@timbeiko @rai - could you review the updated known issues section in here:
https://github.com/hyperledger/besu/pull/426
timbeiko (Wed, 26 Feb 2020 22:21:08 GMT):
Approved
Benjamin (Thu, 27 Feb 2020 00:36:50 GMT):
Has joined the channel.
Bobur (Thu, 27 Feb 2020 00:47:22 GMT):
Has joined the channel.
Bobur (Thu, 27 Feb 2020 00:47:25 GMT):
Hello guys! I have a question regarding Besu private transaction performance test. I have been wondering if there is any official tool to test Besu private transaction TPS and latency. I have found Caliper for Ethereum but not for Besu private transaction. Thank you a lot for your help in advance :grinning:
madelinemurray (Thu, 27 Feb 2020 02:08:08 GMT):
Not yet but we have this work on our roadmap. Have you got specific requirements around private transaction TPS?
Bobur (Thu, 27 Feb 2020 02:17:10 GMT):
@madelinemurray thank u for the prompt reply. Currently we do not have specific requirements as it may differ based on business model. I have been wondering if you can share internal TPS result if you have done any?
Benjamin (Thu, 27 Feb 2020 10:59:25 GMT):
Hi.
I understood that BESU Private Network can be used as a channel of fabric by grouping nodes.
How do I add a node to a group?
There seems to be no function to add nodes to the group.
has additional questions in the question content of Kobilov Boburjon.
Are there performance test results internal when trading based on groups of nodes based on IBFT 2.0 consensus?
lucassaldanha (Thu, 27 Feb 2020 21:20:12 GMT):
Hi Benjamin, the functionality to add nodes to a privacy group is currently under development. Atm, your only option is to create a new privacy group with the new member.
jklepatch (Fri, 28 Feb 2020 06:04:29 GMT):
Has joined the channel.
jklepatch (Fri, 28 Feb 2020 06:04:30 GMT):
Hi, Julien from EatTheBlocks youtube channel here (Blockchain dev tutorial). I am preparing a series of videos tutorials on Besu
jklepatch (Fri, 28 Feb 2020 06:05:24 GMT):
I went through the quickstart tutorial to setup a private network (with docker), and also another tutorial to setup a private network but using the `besu` cli directly
jklepatch (Fri, 28 Feb 2020 06:05:36 GMT):
In the first tutorial, there is a mention of mining nodes, but not in the second
jklepatch (Fri, 28 Feb 2020 06:06:17 GMT):
do we always need mining nodes, or there are some consensus protocols that dont require it?
shemnon (Fri, 28 Feb 2020 06:22:11 GMT):
There should always be at least one block producing nodes. This is determined in a PoA by the extra data in each block, with the genesis block having the initial set of miners. If a node sees that it's key matches the set of allowed producers it should mine automatically.
jklepatch (Fri, 28 Feb 2020 06:38:00 GMT):
ok
jklepatch (Fri, 28 Feb 2020 06:38:07 GMT):
who determine this extra data for each block?
jklepatch (Fri, 28 Feb 2020 06:40:09 GMT):
let's take this from the beginning of the process
jklepatch (Fri, 28 Feb 2020 06:40:28 GMT):
so I start my network, with the configuration for the genesis block, which include the set of miners
jklepatch (Fri, 28 Feb 2020 06:41:01 GMT):
next, I sent a transaction to the network...
jklepatch (Fri, 28 Feb 2020 06:41:10 GMT):
one of the node is going to pick up the tx
jklepatch (Fri, 28 Feb 2020 06:41:16 GMT):
and mine if it has the correct signature
jklepatch (Fri, 28 Feb 2020 06:41:28 GMT):
how about for the next transaction in the next block
ajsutton (Fri, 28 Feb 2020 06:42:31 GMT):
So in a PoA network we typically call the nodes creating blocks "Validators" rather than miners. As you note, the genesis block defines the initial set of validators. Which validator proposes the next block depends on the particular form of PoA you're using but roughly they take it in turns.
jklepatch (Fri, 28 Feb 2020 06:43:50 GMT):
oh
ajsutton (Fri, 28 Feb 2020 06:43:55 GMT):
Blocks are created in most PoA systems whether there are transactions or not. Typically there's a block period setting which defines how often they are produced.
jklepatch (Fri, 28 Feb 2020 06:44:05 GMT):
so... when a validator create a block, he also pick the next valdiator?
ajsutton (Fri, 28 Feb 2020 06:44:40 GMT):
No, the PoA algorithm sets rules about who proposes the next block. The rules vary in subtle ways.
ajsutton (Fri, 28 Feb 2020 06:45:15 GMT):
The set of validators is normally unchanged from block to block, but there's typically a system where validators can vote to add or remove validators.
ajsutton (Fri, 28 Feb 2020 06:45:50 GMT):
When enough validators have produced a block voting for the change the new validator is added in (or removed if that's what the vote is for)
jklepatch (Fri, 28 Feb 2020 06:46:10 GMT):
I see
jklepatch (Fri, 28 Feb 2020 06:46:43 GMT):
so from the point of the view of a user, the logic is a bit different depending on whether you setup a POA private network of POW private network
jklepatch (Fri, 28 Feb 2020 06:46:59 GMT):
with POW, you specify the miners (validators) in the genesis file
jklepatch (Fri, 28 Feb 2020 06:47:06 GMT):
*with POA
jklepatch (Fri, 28 Feb 2020 06:47:22 GMT):
but then you start each node normally, without the "mining" flag
jklepatch (Fri, 28 Feb 2020 06:47:43 GMT):
and with POW, you dont specify the miners in the config file
jklepatch (Fri, 28 Feb 2020 06:47:54 GMT):
but instead you need to start each node with the "mining" flag
jklepatch (Fri, 28 Feb 2020 06:48:07 GMT):
(I am ignoring permissioning here)
ajsutton (Fri, 28 Feb 2020 06:48:18 GMT):
Yes.
jklepatch (Fri, 28 Feb 2020 06:49:33 GMT):
thank you, it clarifies everything :)
jorikito (Fri, 28 Feb 2020 12:07:15 GMT):
@faraggi thank you for the awesome stickers! :)
jorikito (Fri, 28 Feb 2020 12:07:51 GMT):
20200228_130503.jpg
jklepatch (Fri, 28 Feb 2020 13:37:48 GMT):
For my next tutorial on Besu, I have managed to run a local development besu and deploy a smart contract to it
jklepatch (Fri, 28 Feb 2020 13:38:08 GMT):
however, I am a bit surprised of the output of Besu
jklepatch (Fri, 28 Feb 2020 13:38:32 GMT):
```
Produced and imported block #754 / 0 tx / 0 om / 0 (0.0%) gas / (0x6b9d26ef03aef4b9ef246dff4615845b1cfe2264b705a593bec095f6e6b93faa) in 0.215s
2020-02-28 22:27:01.115+09:00 | pool-9-thread-1 | INFO | BlockMiner | Produced and imported block #755 / 0 tx / 0 om / 0 (0.0%) gas / (0x2ed9b3721ac01e687d76338b50b605fdc67c20fa0e065ca3b50c1c33a12231fd) in 0.110s
```
jklepatch (Fri, 28 Feb 2020 13:41:09 GMT):
1. It keeps producing new blocks, even when I don't send transactions => is it actually running a local development Blockchain or maybe there is a mistake in my command and it tries to sync some network?
2. when I stop and restart it, and resumes the Blockchain where it last stopped, even though I configured a data-path in tmp. I thought this would be destroyed by the OS (MacOS) automatically... I certainly lack of Linux skills here... any tip to avoid having to destroy this data folder between 2 runs of besu?
jklepatch (Fri, 28 Feb 2020 13:41:09 GMT):
1. It keeps producing new blocks, even when I don't send transactions => is it actually running a local development Blockchain or maybe there is a mistake in my command and it tries to sync some network?
2. when I stop and restart Besu, it resumes the Blockchain where it last stopped, even though I configured a `data-path` in `tmp`. I thought this would be destroyed by the OS (MacOS) automatically... I certainly lack of Linux skills here... any tip to avoid having to destroy this data folder between 2 runs of besu?
jklepatch (Fri, 28 Feb 2020 13:41:09 GMT):
1. It keeps producing new blocks, even when I don't send transactions => is it actually running a local development Blockchain or maybe there is a mistake in my command and it tries to sync some network?
2. when I stop and restart Besu, it resumes the Blockchain where it last stopped, even though I configured a `data-path` in `tmp`. I thought this would be destroyed by the OS (MacOS) automatically... I certainly lack of Linux knowledge here... any tip to avoid having to destroy this data folder between 2 runs of besu?
jklepatch (Fri, 28 Feb 2020 13:41:26 GMT):
Here is my repo
jklepatch (Fri, 28 Feb 2020 13:41:27 GMT):
https://gitlab.com/jklepatch/eattheblocks-pro/-/tree/master/screencast%2F148-besu-deploy-truffle
jklepatch (Fri, 28 Feb 2020 13:42:04 GMT):
this is a simple Truffle project with a Storage smart contract, and configuration to run on Besu
jklepatch (Fri, 28 Feb 2020 13:42:14 GMT):
the besu command is in `package.json`
jklepatch (Fri, 28 Feb 2020 13:43:15 GMT):
The besu command is directly copy pasted from this tutorial: https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Starting-node/
shemnon (Fri, 28 Feb 2020 15:25:13 GMT):
1. Yes, the dev servers for demo are configured to mine by default
2. IIRC /tmp takes days or a reboot to clear on Mac. I have a directory ~/besu/dev that I keep a persistent chain on when I develop.
eum602 (Fri, 28 Feb 2020 16:11:44 GMT):
@shemnon thanks for your support, the checkpoint.range error was appearing because the npt server was not correctly configured causing rejection of arriving block headers.
faraggi (Fri, 28 Feb 2020 20:18:29 GMT):
Hello all!
Github issues are now officially enabled for Besu. https://github.com/hyperledger/besu/issues
291968
faraggi (Fri, 28 Feb 2020 20:18:29 GMT):
Hello all!
Github issues are now officially enabled for Besu. https://github.com/hyperledger/besu/issues
ajsutton (Fri, 28 Feb 2020 22:46:25 GMT):
@jklepatch Besu continues mining blocks even if there are no transactions. That's because a block reward is paid for every block mined regardless of whether it contains transactions. In dev mode it would be reasonable to provide an option to only create blocks when there are transactions to save CPU but besu doesn't currently have such an option.
jklepatch (Sun, 01 Mar 2020 05:51:00 GMT):
thanks @shemnon and @ajsutton
RealDeanZhao (Mon, 02 Mar 2020 02:51:56 GMT):
@ajsutton What abount a PoA gas free network?
ajsutton (Mon, 02 Mar 2020 03:17:42 GMT):
This answer was specifically about the PoW miner. Clique doesn't pay any block reward and IBFT2 is usually configured with no block reward (though I believe it's a config option). For both Clique and IBFT, the consensus protocol requires creating blocks at fixed intervals to keep things working so there is no option to skip creating empty blocks.
RealDeanZhao (Mon, 02 Mar 2020 03:19:17 GMT):
thanks,:thumbsup:
jklepatch (Mon, 02 Mar 2020 11:55:29 GMT):
I would like to understand the advantages of permissioning (tutorial with clique) vs a simple private network (tutorial with IBFT 2.0)
jklepatch (Mon, 02 Mar 2020 11:55:42 GMT):
https://besu.hyperledger.org/en/stable/Concepts/Permissioning/Permissioning-Overview/
jklepatch (Mon, 02 Mar 2020 11:55:42 GMT):
https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network/
jklepatch (Mon, 02 Mar 2020 11:56:24 GMT):
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
jklepatch (Mon, 02 Mar 2020 11:58:04 GMT):
it seems like both allow to control which nodes are allowed to participate
(on-chain or local config file for permissioning vs on-chain configuration for IBFT tutorial)
jklepatch (Mon, 02 Mar 2020 11:58:31 GMT):
but only permissioning allow to also control which account is allowed
jklepatch (Mon, 02 Mar 2020 12:15:35 GMT):
----
jklepatch (Mon, 02 Mar 2020 12:16:36 GMT):
and also, why do we need to explicitly add nodes as peers with clique? is it because with this consensus mechanism there is no native method for node discovery with a bootnode?
coenie (Mon, 02 Mar 2020 13:55:55 GMT):
I've spoken to some of the Besu/PegaSys people a while back about adding support for another (perhaps NIST compliant) signing curve, is any current work going into that atm?
shemnon (Mon, 02 Mar 2020 15:43:42 GMT):
Besu Contributor Call tomorrow - 3 Mar 1500 UTC - Right before the Hyperledger Global Forum keynote! - https://wiki.hyperledger.org/display/BESU/2018-03-03+Contributor+Call
shemnon (Mon, 02 Mar 2020 15:43:42 GMT):
Besu Contributor Call tomorrow - 3 Mar 1500 UTC - Right before the Hyperledger Global Forum keynote! - https://wiki.hyperledger.org/display/BESU/2020-03-03+Contributor+Call
shemnon (Mon, 02 Mar 2020 16:21:12 GMT):
It's not on our roadmap currently. It's got some non-trivial friction: some hash functions and signatures have different lengths which impacts the wire protocol in unexpected ways. It also impacts off chain tooling such as wallets, metamask, and integration libraries.
ArvsIndrarys (Mon, 02 Mar 2020 16:33:08 GMT):
Hi all!
I have some trouble creating an IBFT network.
I followed [this tutorial](https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/), my peers are connected to each other and use the correct private key at setup.
But no blocks are produced and I don't know why; I tried to re-create the rlp encoding in cas that was faulty but with no result. I tried back with besu1.3 but with no success.
Any idea of what I could have done wrong?
My process is:
- generate the genesis and keys from a template using `besu operator generate-blockchain-config`
- move this data where the besu containers load it
- deploy with `docker-compose up` and then connect the nodes via RPC
From the grafana dashboard I can see that they are connected but the first block has trouble being issued:
```
2020-03-02 16:28:38.033+00:00 | pool-10-thread-1 | DEBUG | IbftBlockHeightManager | Round has expired, creating PreparedCertificate and notifying peers. round=ConsensusRoundIdentifier{Sequence=1, Round=4}
2020-03-02 16:28:38.033+00:00 | pool-10-thread-1 | DEBUG | IbftBlockHeightManager | Starting new round 5
```
shemnon (Mon, 02 Mar 2020 16:36:50 GMT):
Are these the logs from each node that is a validator?
ArvsIndrarys (Mon, 02 Mar 2020 16:39:03 GMT):
Now you say it, only half of them (they are 4) do have these logs
ArvsIndrarys (Mon, 02 Mar 2020 16:45:04 GMT):
Thanks! I had a misconfiguration in the volumes of my docker-compose. I am correcting it and I keep you updated ! Thanks
ArvsIndrarys (Mon, 02 Mar 2020 16:45:04 GMT):
Thanks! I had a misconfiguration in the volumes of my docker-compose. I am correcting it and I keep you updated !
ArvsIndrarys (Mon, 02 Mar 2020 16:49:00 GMT):
Yes! that was the misconfiguration, thanks a lot for giving the clue I was missing. ANd sorry for the spam, it was my fault
ArvsIndrarys (Mon, 02 Mar 2020 16:49:00 GMT):
Yes! that was the misconfiguration, thanks a lot for giving the clue I was missing. And sorry for the spam, it was my fault
shemnon (Mon, 02 Mar 2020 16:49:25 GMT):
Not a problem. Keeps us updated.
ArvsIndrarys (Mon, 02 Mar 2020 16:49:48 GMT):
All is working, they are producing blocks as expected
ArvsIndrarys (Mon, 02 Mar 2020 16:55:12 GMT):
I have another question though, how do I specify my block time to be fixed to 5 seconds ?
my current configuration is :
```
"ibft2" : {
"blockperiodseconds" : 5,
"epochlength" : 30000,
"requesttimeoutseconds" : 10
}
```
But it seems to lock at around 6.3s.
I have 4 validators for BFT and network is localhost.
Would setting `"requesttimeoutseconds" : 5` do the trick?
jklepatch (Mon, 02 Mar 2020 17:07:20 GMT):
I have done a tutorial on how to setup a private ethereum network with ibft 2.0 following besu doc tutorial
jklepatch (Mon, 02 Mar 2020 17:07:37 GMT):
https://youtu.be/U3T4flnoTbA
jasonatran (Mon, 02 Mar 2020 17:39:59 GMT):
Has joined the channel.
aldoborrero (Mon, 02 Mar 2020 17:45:02 GMT):
Hi guys! Just wanted to share the plugin we have been working on: Exflo "A plugin for the Besu enterprise-grade Ethereum client with the aim of making it easier to extract chain data into a variety of different data stores and processing pipelines.". For now we support only Postgres and Kafka. It's Apache 2.0 Licensed (and is an alpha release as we know some obvious things we need to improve). Feel free to take a look!
aldoborrero (Mon, 02 Mar 2020 17:45:17 GMT):
https://github.com/41north/exflo
shemnon (Mon, 02 Mar 2020 20:57:03 GMT):
IBFT2 has finality, Clique is supported by other ethereum clients. Those are the two most relevant differences.
trent.mohay (Mon, 02 Mar 2020 21:19:19 GMT):
Hi @ArvsIndrarys, Unfortunately, the blocktime is hard/impossible to have 100% fixed in a distributed system. Having said that, I'm surprised you're seeing such significant difference on localhost.
The blockperiodseconds is the number of seconds since the last block's import that the next block creation process will start (i.e. create the block, share with validators and create signatures) - this block creation process can take a little time, but I'm surprised its taking 1.3 seconds - are you CPU limited?
Changing reqeusttimeoutseconds is not going to help your situation - this field is used to define the maximum duration (in seconds) of the first-block-creation process at each block-height - if this timeout expires, the block-creation process is restarted, but with a double-duration timeout and a new proposer (repeat ad infinitum)
jklepatch (Tue, 03 Mar 2020 04:43:26 GMT):
whats the advantage of permissioning vs just setting up a private network ?
jklepatch (Tue, 03 Mar 2020 04:44:56 GMT):
In a private network we already can choose which node will be allowed in the network
jklepatch (Tue, 03 Mar 2020 04:45:17 GMT):
@shemnon thanks for your answer about IBFT
lucassaldanha (Tue, 03 Mar 2020 05:14:24 GMT):
Permissioning is really useful when the rules of which nodes can join net network are dynamic. Also, you can use permissioning to specify accounts that can affect the world state (potentially, different permission levels for different accounts).
lucassaldanha (Tue, 03 Mar 2020 05:15:24 GMT):
Also, using onchain permissioning mean that the rules are controlled by smart contracts, allowing a variety of use cases (e.g. a consortium network in which member should vote to allow a new member to join the network). Stuff like that.
ArvsIndrarys (Tue, 03 Mar 2020 10:14:50 GMT):
Hi! I have some trouble connecting my nodes via the `static-nodes.json`file method.
My nodes do connect to each other via the `admin_addPeer` RPC command but I got `Node is not permitted to connect` problems via the file.
[Here are more detailed logs](https://gist.github.com/ArvsIndrarys/26b52ff93a07d6095eb3b1b7bfa87d69).
I tried setting peer-discovery to true (what I would avoid, thus not using the bootnodes option), but with no success.
lucassaldanha (Tue, 03 Mar 2020 18:06:34 GMT):
Hi! Could you share with us the config file or the CLI options used to start the nodes?
ArvsIndrarys (Wed, 04 Mar 2020 08:26:39 GMT):
Hi @lucassaldanha , I updated the gist to add the node config file.
jklepatch (Wed, 04 Mar 2020 15:30:40 GMT):
Thanks all for your help here
jklepatch (Wed, 04 Mar 2020 15:30:56 GMT):
with your help, I was able to complete this series of tutorial on Hyperledger Besu
jklepatch (Wed, 04 Mar 2020 15:31:22 GMT):
Please help me share it with interested people, and maybe consider adding it to the docs of Besu if you think thats good enough
jklepatch (Wed, 04 Mar 2020 15:31:23 GMT):
https://www.youtube.com/playlist?list=PLbbtODcOYIoEsNWdjTlXXWwCEClLA0fnK
ArvsIndrarys (Wed, 04 Mar 2020 16:15:45 GMT):
As well, when enabling and setting the bootnodes, I still got the `discovery must be enabled` error. And the `discovery-enabled` is set to true !
ArvsIndrarys (Wed, 04 Mar 2020 16:15:55 GMT):
(same gist)
lucassaldanha (Wed, 04 Mar 2020 19:51:03 GMT):
Ok thanks for sharing the genesis file. The other thing that I'd like to take a look at is your genesis file `/opt/besu/config/network/genesis.json`.
lucassaldanha (Wed, 04 Mar 2020 19:51:25 GMT):
And your `static-nodes.json`
ArvsIndrarys (Thu, 05 Mar 2020 08:25:49 GMT):
gist updated
faraggi (Thu, 05 Mar 2020 16:48:35 GMT):
Thanks @jklepatch for that great series!
akuanti (Thu, 05 Mar 2020 17:51:05 GMT):
If you use local permissioning and have nodes in your whitelist, do you then need to explicitly add the nodes as peers, or should this happen automatically?
NicolasMassart (Fri, 06 Mar 2020 16:46:41 GMT):
If you have a bootnode where your node can find these whitelisted nodes by himself it should work automatically
NicolasMassart (Fri, 06 Mar 2020 16:47:14 GMT):
Note that the bootnode have to be whitelisted too.
Jemal (Mon, 09 Mar 2020 00:53:37 GMT):
Hi guys, i am trying to measure transaction latency for a specific app for different consensus algorithms (IBFT, Clique PoA and PoW). For that, i need to know the confirmation time of a transaction. For IBFT, I know that a transaction is considered final once added to a block. But not sure for the other two. When can i say a transaction is confirmed for Clique PoA and PoW? Any idea?
ajsutton (Mon, 09 Mar 2020 01:00:29 GMT):
Neither Clique nor PoW provide guarnateed transaction finality, only probabilistic finality. So you basically have to choose how many blocks you want to wait to get to the level of risk you're prepared to accept. That number will be affected by what's at risk and things like the network hashrate (for PoW) or how much you trust validators in Clique.
Jemal (Mon, 09 Mar 2020 01:05:22 GMT):
@ajsutton Thank you bro. So, is there a rule like the minimum/maximum number of blocks to wait to get some level of guarantee. Also do you know if there is any documentation that explains these things in detail?.
ajsutton (Mon, 09 Mar 2020 05:44:42 GMT):
I'm not aware of anything definitive. Most people just go with something fairly arbitrary like 6 blocks from what I can tell.
ajsutton (Mon, 09 Mar 2020 05:45:09 GMT):
Although Eth2 went with follow 1024 blocks behind the eth1 chain PoW chain to be *really* sure there were no re-orgs.
akuanti (Mon, 09 Mar 2020 15:07:45 GMT):
Thank you
ThomasRush2 (Mon, 09 Mar 2020 17:41:16 GMT):
Has joined the channel.
ThomasRush2 (Mon, 09 Mar 2020 17:41:17 GMT):
Hi. Question for you'all about tracing.
ThomasRush2 (Mon, 09 Mar 2020 17:41:36 GMT):
Running this version of Besu: `besu/v1.4.0/osx-x86_64/adoptopenjdk-java-13` with this configuraiton file:
``` network="mainnet"
miner-enabled=false
rpc-http-cors-origins=["all"]
host-whitelist=["*"]
rpc-ws-enabled=true
rpc-http-enabled=true
data-path="/Volumes/Samsung_T7/besu-mainnet"
revert-reason-enabled=true
pruning-enabled=false
For this curl command I get good data:
curl --data '{"method":"eth_getBlockByNumber","params":["0x1",true],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545
For this curl command:
curl --data '{"method":"trace_replayBlockTransactions","params":["0x1"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545
I get this response:
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -32604,
"message" : "Method not enabled"
}
}
```
ThomasRush2 (Mon, 09 Mar 2020 17:41:36 GMT):
Running this version of Besu: `besu/v1.4.0/osx-x86_64/adoptopenjdk-java-13` with this configuraiton file:
``` network="mainnet"
miner-enabled=false
rpc-http-cors-origins=["all"]
host-whitelist=["*"]
rpc-ws-enabled=true
rpc-http-enabled=true
data-path="/Volumes/Samsung_T7/besu-mainnet"
revert-reason-enabled=true
pruning-enabled=false
```
For this curl command I get good data:
```
curl --data '{"method":"eth_getBlockByNumber","params":["0x1",true],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545
```
For this curl command:
```
curl --data '{"method":"trace_replayBlockTransactions","params":["0x1"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545
```
I get this response:
```
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -32604,
"message" : "Method not enabled"
}
}
```
shemnon (Mon, 09 Mar 2020 17:44:01 GMT):
add to CLI `--rpc-http-api=TRACE`
ThomasRush2 (Mon, 09 Mar 2020 17:44:15 GMT):
Let me try that.
ThomasRush2 (Mon, 09 Mar 2020 17:44:28 GMT):
To the command line or the configuration file?
ThomasRush2 (Mon, 09 Mar 2020 17:56:44 GMT):
That works....but....
ThomasRush2 (Mon, 09 Mar 2020 17:57:57 GMT):
This command `curl --data '{"method":"trace_replayBlockTransactions","params":["0x895441",["trace"]],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545` run against Parity produces a huge amount of data (this is block 9000001). Besu produces
```
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : null
}
```
ThomasRush2 (Mon, 09 Mar 2020 17:57:57 GMT):
This command `curl --data '{"method":"trace_replayBlockTransactions","params":["0x895441",["trace"]],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" -X POST localhost:8545` run against Parity produces a huge amount of data (this is block 900001). Besu produces
```
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : null
}
```
ThomasRush2 (Mon, 09 Mar 2020 17:58:50 GMT):
`vmTrace` for parity produces dramatically more data. Besu produces same result.
shemnon (Mon, 09 Mar 2020 18:27:27 GMT):
which chain? If you are running in fast sync only blocks after the pivot will result in useful results.
ThomasRush2 (Mon, 09 Mar 2020 18:28:24 GMT):
I'm running mainchain with pruning off.
ThomasRush2 (Mon, 09 Mar 2020 18:30:31 GMT):
Oh. Just figured it out. I was trying to query a block that had not yet synced. (I queried 9,000,001 and meant to query 900,001).
shemnon (Mon, 09 Mar 2020 18:30:41 GMT):
Was it a fast or a full sync? If it was a fast sync 900k is well before the pivot.
ThomasRush2 (Mon, 09 Mar 2020 18:31:00 GMT):
It's full sync. It's working now.
shemnon (Mon, 09 Mar 2020 18:31:07 GMT):
:+1:
ThomasRush2 (Mon, 09 Mar 2020 18:31:10 GMT):
I was querying a block that hadn't yet sunk.
ThomasRush2 (Mon, 09 Mar 2020 18:31:40 GMT):
Is 'trace_replayBlockTransactions` the only tracing command you support?
shemnon (Mon, 09 Mar 2020 18:33:01 GMT):
Right now. We are in the process of adding others. Specifically, what commands do you want?
ThomasRush2 (Mon, 09 Mar 2020 18:40:10 GMT):
In order of increasing importance.
ThomasRush2 (Mon, 09 Mar 2020 18:40:12 GMT):
1) We use `trace_get` as a lightweight way to tell how many traces a transaction has. For the Fall 2016 dDos attacks, we use this to 'skip over' these traces (at the user's discretion). Almost all of the 2016 dDos attack transactions have 10s of thousands of 'traces'. It's a huge performance killer.
ThomasRush2 (Mon, 09 Mar 2020 18:41:32 GMT):
2) We use `trace_transaction` but only in a limited way when we know the exact transaction and we want the 'raw' trace data we're querying (not the case in our primary usage).
ThomasRush2 (Mon, 09 Mar 2020 18:43:56 GMT):
3) We use `trace_block` to do our 'extraction of appearances'. This is the primary use of traces. We spin through every block, call `trace_block` and run through the entirety of that data to extract addresses. (We use other RPC data such as receipts to get contract creations and deletions.)
ThomasRush2 (Mon, 09 Mar 2020 18:45:51 GMT):
We only really look at the 'trace' types -- we don't use `vmTrace` or `stateDiff` (yet).
ThomasRush2 (Mon, 09 Mar 2020 18:47:53 GMT):
If I had to choose, I would choose `trace_block`.
shemnon (Mon, 09 Mar 2020 19:25:10 GMT):
`trace_block` and `trace_transaction` are on the ConsenSys todo list. Most of the other contributors are focused on Eth Classic support and EEA features so I wouldn't expect it from them. `trace_get` is not on our roadmap although the difficult work appears to be done for that.
jasonatran (Tue, 10 Mar 2020 02:38:10 GMT):
hi Besu community, Jason here from Whiteblock.io. we are working on contributing support for PoW mining via keccak256 (https://etccooperative.org/etc-coop-support-switch-to-keccak256/), and we are looking for information on which requirements we should focus on passing(e.g. unit tests and integration tests). on a high level, we are trying to add a run time flag (or.ghyperledger.besu.cli) and making changes to (org.hyperledger.besu.etehreum.blockcreation and ethereum.mainnet). we would appreciate any pointers!
bobsummerwill (Tue, 10 Mar 2020 02:46:02 GMT):
And I am happy to help in any way I can with this ^^
ChainSafe (mainly Edward Mack) are doing ongoing work for ETC hard forks as they come.
Whiteblock are doing the first "extra" work here, looking at mining support.
@timbeiko helped with the triage on various mining TODOs. This is the first step.
shemnon (Tue, 10 Mar 2020 04:07:19 GMT):
Don't do a runtime flag. This should be configured via the genesis file, like ethash, ibft, and clique are configured. org.hyperledger.besu.config.JsonGenesisConfigOptions#getConsensusEngine is a place to start. Some of the classes that you are modeling will be (mistakenly) named "EthHash" instead of "Ethash" Pretty much every "EthHash" class will need a "Keccak256Pow" equivilant. Stylewise I would prefer "pow" in the class names. Keccak also has non-Proof-of-Work uses whereas Ethash is almost exclusively PoW, so the rider isn't needed.
ggarri (Tue, 10 Mar 2020 09:55:21 GMT):
Hi !! I am trying to set up an off-chain private network using the instructions written in the official documentation: https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/
Unfortunately I could not make it work. I booted up the 3 nodes, whitelisted the enodes and added the peers to each of the nodes following step by step the documentation but connectivity across peers do not work. I am using latest stable version : `besu/v1.4.0/linux-x86_64/oracle-java-13`. Can anyone gimme a hand with it?
ggarri (Tue, 10 Mar 2020 09:55:21 GMT):
Hi !! I am trying to set up an off-chain permissioned network using the instructions written in the official documentation: https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/
Unfortunately I could not make it work. I booted up the 3 nodes, whitelisted the enodes and added the peers to each of the nodes following step by step the documentation but connectivity across peers do not work. I am using latest stable version : `besu/v1.4.0/linux-x86_64/oracle-java-13`. Can anyone gimme a hand with it?
ggarri (Tue, 10 Mar 2020 09:55:21 GMT):
Hi !! I am trying to set up an off-chain permissioned network using the instructions written in the official documentation: https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/
Unfortunately I could not make it work. I started up the 3 nodes, whitelisted their enodes and cross added peers following step by step the documentation but the connectivity/synchronization does not work.
I am using latest stable version : `besu/v1.4.0/linux-x86_64/oracle-java-13`
ggarri (Tue, 10 Mar 2020 09:55:21 GMT):
Hi !! I am trying to set up an off-chain permissioned network using the instructions written in the official documentation: https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/
Unfortunately I could not make it work. I started up the 3 nodes, whitelisted their enodes and cross added peers following step by step the documentation but the connectivity/synchronization does not work, every nodes in the loop of pritting "No sync target, wait for peers"
I am using latest stable version : `besu/v1.4.0/linux-x86_64/oracle-java-13`
ArvsIndrarys (Tue, 10 Mar 2020 15:49:25 GMT):
per second
ArvsIndrarys (Tue, 10 Mar 2020 16:32:48 GMT):
Hi is there any informations about the amount of tx/s (or tps) supported by besu?
I saw in the JIRA these issues/epics :
https://jira.hyperledger.org/browse/BESU-22
https://jira.hyperledger.org/browse/BESU-15
but is there somewhere the results?
madelinemurray (Wed, 11 Mar 2020 05:13:42 GMT):
Depending on infrastruture and network topology, we've seen up to 400 TPS supported by Besu.
arash009 (Wed, 11 Mar 2020 05:15:43 GMT):
Hi @ggarri did you complete all the steps in the tutorial? Can you validate that the `permissions_config.toml` file in each of the nodes directories contains the 3 enode IDs matching the 3 nodes that you started up
ggarri (Wed, 11 Mar 2020 07:38:21 GMT):
Hi! Yes to both, completed the tutorial and validated the permissions file to verify enodes are whitelisted
ggarri (Wed, 11 Mar 2020 08:51:47 GMT):
Sorry, my bad, I have a messed iptables with localhost rules what causes the communication issue. After a clean up I made it work. Thanks!
magooster (Wed, 11 Mar 2020 08:59:08 GMT):
Hi on upgrade to besu 1.4.0 i noticed that even with rpc auth disabled (rpc-http-authentication-enabled=false) if I include rpc-http-authentication-credentials-file=/path/to/file I get a 401 error when accessing the JSON RPC endpoint {"jsonrpc":"2.0","id":null,"error":{"code":-40100,"message":"Unauthorized"}} (This is different behaviour from Besu 1.3) shouldn't the flag take precedence? If i comment out the cerdential file setting in the config all works as expected...
faraggi (Wed, 11 Mar 2020 09:50:58 GMT):
There are also some detailed benchmarks being worked on and that information will be released as soon as we have it.
faraggi (Wed, 11 Mar 2020 09:52:10 GMT):
good question, let me check and see if this might be a bug
machadovilaca (Wed, 11 Mar 2020 12:25:43 GMT):
Has joined the channel.
machadovilaca (Wed, 11 Mar 2020 12:25:44 GMT):
Hello, I'm using a fork of the besu repo in GitLab, right now I'm trying to configure CI/CD on GitLab but the docker build step is taking a lot of time. Looking at your circleci config I don't quite understand how it's being done, looks like you are building the code with gradlew and then moving those compiled files to the docker, is that right? Can someone explain this to me? thanks in advance
antonispoulakis (Wed, 11 Mar 2020 13:20:19 GMT):
Has joined the channel.
antonispoulakis (Wed, 11 Mar 2020 13:20:20 GMT):
Hi, I'm using Besu 1.3.8, and I've noticed if two transactions are sent at the same time with the same nonce, the second transaction doesn't get the "Nonce too low" error but it hangs until it gets unauthorized after the auth token expires and the error I get is "Failed to check for transaction receipt".
If the second one gets sent after the first one has finished mining, it returns the "Nonce too low" error immediately.
shemnon (Wed, 11 Mar 2020 13:58:09 GMT):
I believe this is how all ethereum clients will treat it. We need to be able to replace mempry pool transactions on occasion. i.e. transactions not mined. Once case I had to deal with was when I set the gas price to zero and no miner would mine it but it had propagated to all the miner nodes. If it always replied "nonce too low" we would never be able to replace memory pool transactions.
faraggi (Wed, 11 Mar 2020 15:52:16 GMT):
@joshuafernandes hangs out in here and is the perfect person to ask about this.
faraggi (Wed, 11 Mar 2020 15:52:16 GMT):
@joshuafernandes and @EdJoJob hang out in here and are perfect persons to ask this to.
faraggi (Wed, 11 Mar 2020 15:53:55 GMT):
@EdJoJob is here often as well
joshuafernandes (Wed, 11 Mar 2020 21:09:15 GMT):
The first step from ```./gradlew --no-daemon --parallel clean spotlessCheck compileJava compileTestJava assemble``` does the build and has a lot of compiled files
joshuafernandes (Wed, 11 Mar 2020 21:09:15 GMT):
The first step from ```./gradlew --no-daemon --parallel clean spotlessCheck compileJava compileTestJava assemble``` does the build and has a lot of compiled files which we save to a workspace and mount for the next test runs to speed things up
joshuafernandes (Wed, 11 Mar 2020 21:10:06 GMT):
we save those to a workspace so the next steps of unittests (`build`), int tests (`integrationTest`) and so on are faster
joshuafernandes (Wed, 11 Mar 2020 21:10:06 GMT):
this makes the next steps of unittests (`build`), int tests (`integrationTest`) and so on are faster
joshuafernandes (Wed, 11 Mar 2020 21:10:38 GMT):
the longest of the tests are the acceptance and reference tests
joshuafernandes (Wed, 11 Mar 2020 21:17:57 GMT):
From memory (this could well have changed now) I believe the equivalent on gitlab would be `artifacts` (for the workspace) paired with `dependencies` to pass things across stages
RobertoSnap (Wed, 11 Mar 2020 21:34:11 GMT):
Has joined the channel.
RobertoSnap (Wed, 11 Mar 2020 21:57:02 GMT):
Hello,
Im running a Besu node on Kaleido (1.0.24). Running IBFT.
Debugged a transactions for hours now. What seems to cause problems is a function with string CALLDATA paramName, im a right in that CALLDATA wont work on this version of Besu?
RobertoSnap (Wed, 11 Mar 2020 21:57:02 GMT):
Hello,
Im running a Besu node on Kaleido (1.0.24). Running IBFT.
Debugged a transactions for hours now. Im useing budiler and remix to debug in different ways. Bascially, i deploy som contracts, run some transactions. Then there is one function that im trying to run but fails on Besu. But it does not fail in javascriptVM.
reason: 'transaction failed',
code: 'CALL_EXCEPTION',
What seems to cause problems is a function with string CALLDATA paramName, im a right in that CALLDATA wont work on this version of Besu?
RobertoSnap (Wed, 11 Mar 2020 21:57:02 GMT):
Hello,
Im running a Besu node on Kaleido (1.0.24). Running IBFT.
Debugged a transactions for hours now. Im useing budiler and remix to debug in different ways. Bascially, i deploy som contracts, run some transactions. Then there is one function that im trying to run but fails on Besu. But it does not fail in javascriptVM.
reason: 'transaction failed',
code: 'CALL_EXCEPTION',
What seemed to cause problem in the function was string CALLDATA param. But when switched it out for bytes32 I still have the problem. Because its only happening on the Kaleido Besu node its hard to debug. Any tips?
arash009 (Wed, 11 Mar 2020 23:28:29 GMT):
I've raised https://github.com/hyperledger/besu/issues/453 to investigate further
magooster (Thu, 12 Mar 2020 06:40:02 GMT):
Thanks
faraggi (Thu, 12 Mar 2020 07:55:27 GMT):
@magooster
Its been fixed and the issues is now closed: https://github.com/hyperledger/besu/pull/454
Should be merged into next release
magooster (Thu, 12 Mar 2020 07:58:11 GMT):
Great
magooster (Thu, 12 Mar 2020 08:09:49 GMT):
Great
magooster (Thu, 12 Mar 2020 08:14:57 GMT):
I believe i've identified an edge case related to private state migration, seems if the Besu node can't detect schema version i.e. version = 0. Besu still starts and private database migration wont run
magooster (Thu, 12 Mar 2020 08:16:55 GMT):
Migration only runs if schema version is 1 and migration flag is set, otherwise node wont start... (PrivateStrorageMigrationService.java)
magooster (Thu, 12 Mar 2020 08:20:59 GMT):
The node i'm testing dates back to pantheon 1.1 and there's no DATABASE_METADATA.json in the database directory.
magooster (Thu, 12 Mar 2020 08:31:57 GMT):
Actually might be that the database is deemed to be empty...
TerryWBC (Thu, 12 Mar 2020 13:59:33 GMT):
Has joined the channel.
TerryWBC (Thu, 12 Mar 2020 14:29:39 GMT):
Hi, are there any plans to support subscribing to private contract events out of the box?
Currently, I have something like this to listen to private events (added comments where code is missing)
````
import Web3 from 'web3'
import EEAClient from 'web3-eea'
import EventEmitter from 'events'
const ORION_PUBLIC_KEY = 'key'
const BESU_WS_URL = 'url'
const BESU_RPC_URL = 'url'
const web3 = new Web3(BESU_RPC_URL)
const web3ws = new Web3(BESU_WS_URL)
const web3priv = new EEAClient(new Web3(BESU_RPC_URL), 2018)
class PrivateEventClient extends EventEmitter {
constructor (web3ws, web3priv, orionPublicKey) {
super()
const pendingTxs = web3ws.eth.subscribe('pendingTransactions')
pendingTxs.on('data', async (txHash) => {
const txReceipt = await web3priv.priv.getTransactionReceipt(
txHash,
orionPublicKey
)
// We are only interested in private tx
if (!txReceipt) return
if (txReceipt.contractAddress) {
this.emit('privateContractDeployed', txReceipt)
return
}
txReceipt.logs.forEach(log => {
this.emit('logs', log)
})
})
}
}
const privateEventsClient = new PrivateEventClient(web3ws, web3priv, ORION_PUBLIC_KEY)
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
const address = txReceipt.contractAddress
// this uses the from/to instead of privacygroups, but they are interchangeable
const privacyGroup = [...txReceipt.privateFor, txReceipt.privateFrom]
// get abi&bytecode from somewhere
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.options.privacyGroup = privacyGroup.sort()
privateEventsClient.on('logs', (log) => {
if (contract._address.toLowerCase() !== log.address.toLowerCase()) return
const output = contract._decodeEventABI.call({
name: 'ALLEVENTS',
jsonInterface: contract._jsonInterface
}, log)
output.privacyGroup = contract.options.privacyGroup
// Event received similar to public events
console.log(output)
})
})
``` `
TerryWBC (Thu, 12 Mar 2020 14:29:39 GMT):
Hi, are there any plans to support subscribing to private contract events?
Currently, I have something like this to listen to private events (added comments where code is missing)
````
import Web3 from 'web3'
import EEAClient from 'web3-eea'
import EventEmitter from 'events'
const ORION_PUBLIC_KEY = 'key'
const BESU_WS_URL = 'url'
const BESU_RPC_URL = 'url'
const web3 = new Web3(BESU_RPC_URL)
const web3ws = new Web3(BESU_WS_URL)
const web3priv = new EEAClient(new Web3(BESU_RPC_URL), 2018)
class PrivateEventClient extends EventEmitter {
constructor (web3ws, web3priv, orionPublicKey) {
super()
const pendingTxs = web3ws.eth.subscribe('pendingTransactions')
pendingTxs.on('data', async (txHash) => {
const txReceipt = await web3priv.priv.getTransactionReceipt(
txHash,
orionPublicKey
)
// We are only interested in private tx
if (!txReceipt) return
if (txReceipt.contractAddress) {
this.emit('privateContractDeployed', txReceipt)
return
}
txReceipt.logs.forEach(log => {
this.emit('logs', log)
})
})
}
}
const privateEventsClient = new PrivateEventClient(web3ws, web3priv, ORION_PUBLIC_KEY)
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
const address = txReceipt.contractAddress
// this uses the from/to instead of privacygroups, but they are interchangeable
const privacyGroup = [...txReceipt.privateFor, txReceipt.privateFrom]
// get abi&bytecode from somewhere
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.options.privacyGroup = privacyGroup.sort()
privateEventsClient.on('logs', (log) => {
if (contract._address.toLowerCase() !== log.address.toLowerCase()) return
const output = contract._decodeEventABI.call({
name: 'ALLEVENTS',
jsonInterface: contract._jsonInterface
}, log)
output.privacyGroup = contract.options.privacyGroup
// Event received similar to public events
console.log(output)
})
})
``` `
TerryWBC (Thu, 12 Mar 2020 14:29:39 GMT):
Hi, are there any plans to support subscribing to private contract events?
Currently, I have something like this to listen to private events (added comments where code is missing)
But It would be great if it will work similar to how public events work, only that it will also return the privacyGroup
```
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.events.event().on('data', async({ event, returnValues, privacyGroup }) => {
// DoSomething
})
```
```
import Web3 from 'web3'
import EEAClient from 'web3-eea'
import EventEmitter from 'events'
const ORION_PUBLIC_KEY = 'key'
const BESU_WS_URL = 'url'
const BESU_RPC_URL = 'url'
const web3 = new Web3(BESU_RPC_URL)
const web3ws = new Web3(BESU_WS_URL)
const web3priv = new EEAClient(new Web3(BESU_RPC_URL), 2018)
class PrivateEventClient extends EventEmitter {
constructor (web3ws, web3priv, orionPublicKey) {
super()
const pendingTxs = web3ws.eth.subscribe('pendingTransactions')
pendingTxs.on('data', async (txHash) => {
const txReceipt = await web3priv.priv.getTransactionReceipt(
txHash,
orionPublicKey
)
// We are only interested in private tx
if (!txReceipt) return
if (txReceipt.contractAddress) {
this.emit('privateContractDeployed', txReceipt)
return
}
txReceipt.logs.forEach(log => {
this.emit('logs', log)
})
})
}
}
const privateEventsClient = new PrivateEventClient(web3ws, web3priv, ORION_PUBLIC_KEY)
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
const address = txReceipt.contractAddress
// this uses the from/to instead of privacygroups, but they are interchangeable
const privacyGroup = [...txReceipt.privateFor, txReceipt.privateFrom]
// get abi&bytecode from somewhere
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.options.privacyGroup = privacyGroup.sort()
privateEventsClient.on('logs', (log) => {
if (contract._address.toLowerCase() !== log.address.toLowerCase()) return
const output = contract._decodeEventABI.call({
name: 'ALLEVENTS',
jsonInterface: contract._jsonInterface
}, log)
output.privacyGroup = contract.options.privacyGroup
// Event received similar to public events
console.log(output)
})
})
```
TerryWBC (Thu, 12 Mar 2020 14:29:39 GMT):
Hi, are there any plans to support subscribing to private contract events?
Currently, I have something like this to listen to private events (added comments where code is missing)
```
import Web3 from 'web3'
import EEAClient from 'web3-eea'
import EventEmitter from 'events'
const ORION_PUBLIC_KEY = 'key'
const BESU_WS_URL = 'url'
const BESU_RPC_URL = 'url'
const web3 = new Web3(BESU_RPC_URL)
const web3ws = new Web3(BESU_WS_URL)
const web3priv = new EEAClient(new Web3(BESU_RPC_URL), 2018)
class PrivateEventClient extends EventEmitter {
constructor (web3ws, web3priv, orionPublicKey) {
super()
const pendingTxs = web3ws.eth.subscribe('pendingTransactions')
pendingTxs.on('data', async (txHash) => {
const txReceipt = await web3priv.priv.getTransactionReceipt(
txHash,
orionPublicKey
)
// We are only interested in private tx
if (!txReceipt) return
if (txReceipt.contractAddress) {
this.emit('privateContractDeployed', txReceipt)
return
}
txReceipt.logs.forEach(log => {
this.emit('logs', log)
})
})
}
}
const privateEventsClient = new PrivateEventClient(web3ws, web3priv, ORION_PUBLIC_KEY)
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
const address = txReceipt.contractAddress
// this uses the from/to instead of privacygroups, but they are interchangeable
const privacyGroup = [...txReceipt.privateFor, txReceipt.privateFrom]
// get abi&bytecode from somewhere
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.options.privacyGroup = privacyGroup.sort()
privateEventsClient.on('logs', (log) => {
if (contract._address.toLowerCase() !== log.address.toLowerCase()) return
const output = contract._decodeEventABI.call({
name: 'ALLEVENTS',
jsonInterface: contract._jsonInterface
}, log)
output.privacyGroup = contract.options.privacyGroup
// Event received similar to public events
console.log(output)
})
})
```
But It would be great if it will work similar to how public events work, only that it will also return the privacyGroup
```
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.events.event().on('data', async({ event, returnValues, privacyGroup }) => {
// DoSomething
})
```
TerryWBC (Thu, 12 Mar 2020 14:29:39 GMT):
Hi, are there any plans to support subscribing to private contract events?
Currently, I have something like this to listen to private events (added comments where code is missing)
```
import Web3 from 'web3'
import EEAClient from 'web3-eea'
import EventEmitter from 'events'
const ORION_PUBLIC_KEY = 'key'
const BESU_WS_URL = 'url'
const BESU_RPC_URL = 'url'
const web3 = new Web3(BESU_RPC_URL)
const web3ws = new Web3(BESU_WS_URL)
const web3priv = new EEAClient(new Web3(BESU_RPC_URL), 2018)
class PrivateEventClient extends EventEmitter {
constructor (web3ws, web3priv, orionPublicKey) {
super()
const pendingTxs = web3ws.eth.subscribe('pendingTransactions')
pendingTxs.on('data', async (txHash) => {
const txReceipt = await web3priv.priv.getTransactionReceipt(
txHash,
orionPublicKey
)
// We are only interested in private tx
if (!txReceipt) return
if (txReceipt.contractAddress) {
this.emit('privateContractDeployed', txReceipt)
return
}
txReceipt.logs.forEach(log => {
this.emit('logs', log)
})
})
}
}
const privateEventsClient = new PrivateEventClient(web3ws, web3priv, ORION_PUBLIC_KEY)
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
const address = txReceipt.contractAddress
// this uses the from/to instead of privacygroups, but they are interchangeable
const privacyGroup = [...txReceipt.privateFor, txReceipt.privateFrom]
// get abi&bytecode from somewhere
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.options.privacyGroup = privacyGroup.sort()
privateEventsClient.on('logs', (log) => {
if (contract._address.toLowerCase() !== log.address.toLowerCase()) return
const output = contract._decodeEventABI.call({
name: 'ALLEVENTS',
jsonInterface: contract._jsonInterface
}, log)
output.privacyGroup = contract.options.privacyGroup
// Event output similar to public events
console.log(output)
})
})
```
But It would be great if it will work similar to how public events work, only that it will also return the privacyGroup
```
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.events.event().on('data', async({ event, returnValues, privacyGroup }) => {
// DoSomething
})
```
For anybody that is interested, you can simulate this behaviour (nastily) by replacing the subscription on the contract.events[key] with a function returning an new EventEmitter(). Then instead of console logging the output, you can bind emit the output on that new EventEmitter. However, this doesn't seem like a good idea long term
```
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
...
Object.keys(contract.events).forEach(key => {
const ee = new EventEmitter()
ee.topics = contract.events[key]().options.params.topics
contract.events[key] = function () { return ee }
})
web3privateEvents.on('logs', (log) => {
...
const events = Object.values(contract.events).filter(event => event().topics.includes(output.signature))
events.forEach(event => event().emit('data', output))
})
```
TerryWBC (Thu, 12 Mar 2020 14:29:39 GMT):
Hi, are there any plans to support subscribing to private contract events?
Currently, I have something like this to listen to private events (added comments where code is missing)
```
import Web3 from 'web3'
import EEAClient from 'web3-eea'
import EventEmitter from 'events'
const ORION_PUBLIC_KEY = 'key'
const BESU_WS_URL = 'url'
const BESU_RPC_URL = 'url'
const web3 = new Web3(BESU_RPC_URL)
const web3ws = new Web3(BESU_WS_URL)
const web3priv = new EEAClient(new Web3(BESU_RPC_URL), 2018)
class PrivateEventClient extends EventEmitter {
constructor (web3ws, web3priv, orionPublicKey) {
super()
const pendingTxs = web3ws.eth.subscribe('pendingTransactions')
pendingTxs.on('data', async (txHash) => {
const txReceipt = await web3priv.priv.getTransactionReceipt(
txHash,
orionPublicKey
)
// We are only interested in private tx
if (!txReceipt) return
if (txReceipt.contractAddress) {
this.emit('privateContractDeployed', txReceipt)
return
}
txReceipt.logs.forEach(log => {
this.emit('logs', log)
})
})
}
}
const privateEventsClient = new PrivateEventClient(web3ws, web3priv, ORION_PUBLIC_KEY)
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
const address = txReceipt.contractAddress
// this uses the from/to instead of privacygroups, but they are interchangeable
const privacyGroup = [...txReceipt.privateFor, txReceipt.privateFrom]
// get abi&bytecode from somewhere
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.options.privacyGroup = privacyGroup.sort()
privateEventsClient.on('logs', (log) => {
if (contract._address.toLowerCase() !== log.address.toLowerCase()) return
const output = contract._decodeEventABI.call({
name: 'ALLEVENTS',
jsonInterface: contract._jsonInterface
}, log)
output.privacyGroup = contract.options.privacyGroup
// Event output similar to public events
console.log(output)
})
})
```
But It would be great if it will work similar to how public events work, only that it will also return the privacyGroup
```
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.events.event().on('data', async({ event, returnValues, privacyGroup }) => {
// DoSomething
})
```
For anybody that is interested, you can simulate this behaviour (nastily) by replacing the subscription on the contract.events[key] with a function returning a new EventEmitter(). Instead of console logging the output, you can emit the output to that new EventEmitter. However, this doesn't seem like a good idea long term.
```
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
...
Object.keys(contract.events).forEach(key => {
const ee = new EventEmitter()
ee.topics = contract.events[key]().options.params.topics
contract.events[key] = function () { return ee }
})
web3privateEvents.on('logs', (log) => {
...
const events = Object.values(contract.events).filter(event => event().topics.includes(output.signature))
events.forEach(event => event().emit('data', output))
})
```
TerryWBC (Thu, 12 Mar 2020 14:29:39 GMT):
Hi, are there any plans to support subscribing to private contract events?
Currently, I have something like this to listen to private events (added comments where code is missing)
```
import Web3 from 'web3'
import EEAClient from 'web3-eea'
import EventEmitter from 'events'
const ORION_PUBLIC_KEY = 'key'
const BESU_WS_URL = 'url'
const BESU_RPC_URL = 'url'
const web3 = new Web3(BESU_RPC_URL)
const web3ws = new Web3(BESU_WS_URL)
const web3priv = new EEAClient(new Web3(BESU_RPC_URL), 2018)
class PrivateEventClient extends EventEmitter {
constructor (web3ws, web3priv, orionPublicKey) {
super()
const pendingTxs = web3ws.eth.subscribe('pendingTransactions')
pendingTxs.on('data', async (txHash) => {
const txReceipt = await web3priv.priv.getTransactionReceipt(
txHash,
orionPublicKey
)
// We are only interested in private tx
if (!txReceipt) return
if (txReceipt.contractAddress) {
this.emit('privateContractDeployed', txReceipt)
return
}
txReceipt.logs.forEach(log => {
this.emit('logs', log)
})
})
}
}
const privateEventsClient = new PrivateEventClient(web3ws, web3priv, ORION_PUBLIC_KEY)
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
const address = txReceipt.contractAddress
// this uses the from/to instead of privacygroups, but they are interchangeable
const privacyGroup = [...txReceipt.privateFor, txReceipt.privateFrom]
// get abi&bytecode from somewhere
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.options.privacyGroup = privacyGroup.sort()
privateEventsClient.on('logs', (log) => {
if (contract._address.toLowerCase() !== log.address.toLowerCase()) return
const output = contract._decodeEventABI.call({
name: 'ALLEVENTS',
jsonInterface: contract._jsonInterface
}, log)
output.privacyGroup = contract.options.privacyGroup
// Event output similar to public events
console.log(output)
})
})
```
But It would be great if it will work similar to how public events work, only that it will also return the privacyGroup
```
const contract = new web3.eth.Contract(abi, address, { bytecode: bytecode })
contract.events.event().on('data', async({ event, returnValues, privacyGroup }) => {
// DoSomething
})
```
For anybody that is interested, you can simulate this behaviour (nastily) by replacing the subscription on the contract.events[key] with a function returning a new EventEmitter(). Instead of console logging the output, you can emit the output to that new EventEmitter. However, this doesn't seem like a good idea long term.
```
privateEventsClient.on('privateContractDeployed', async (txReceipt) => {
...
Object.keys(contract.events).forEach(key => {
const ee = new EventEmitter()
ee.topics = contract.events[key]().options.params.topics
contract.events[key] = function () { return ee }
})
web3privateEvents.on('logs', (log) => {
...
const events = Object.values(contract.events).filter(event => event().topics.includes(output.signature))
events.forEach(event => event().emit('data', output))
})
})
```
bobsummerwill (Thu, 12 Mar 2020 17:04:33 GMT):
Hey everyone!
When is the next scheduled HL Besu point release?
Is there a 1.4.1 coming up soon? Thanks!
timbeiko (Thu, 12 Mar 2020 19:04:55 GMT):
Yes, 1.4.1 is scheduled for tomorrow :+1:
NikosFotiadis (Thu, 12 Mar 2020 19:25:12 GMT):
Has joined the channel.
NikosFotiadis (Thu, 12 Mar 2020 19:25:13 GMT):
Hi,
We have been running besu on and we are uising Username and Password Authentication. When connecting using web3's websocket provider the connection is ok initially but is dropped after a while(before the token expitres). I have not been able to find anything on the documentation regarding dropping connections.
My question is whether this is something that besu does intentionally or if it is related with something else. If yes, can I disabled it?
tvanepps (Thu, 12 Mar 2020 19:42:56 GMT):
Hello Besu community, I'm dropping by to share this Ethereum developer survey from ETHGlobal. We're casting a really wide net and would love to get responses from more enterprise focused developers >> https://ethglobal.typeform.com/to/RxHlK8
:moneybag: 1 of 10 prizes of 100 DAI
:airplane: 1 of 3 free return flights to an ETHGlobal event
:tickets: 1 of 2 free tickets to Devcon 6
Looking forward to your responses!
tvanepps (Thu, 12 Mar 2020 19:42:56 GMT):
Hello Besu community, I'm dropping by to share this Ethereum developer survey from ETHGlobal. We're casting a really wide net and would love to get responses from more enterprise focused developers >> https://ethglobal.typeform.com/to/RxHlK8
Filling it out to the end also makes you eligible for a few prizes:
:moneybag: 1 of 10 prizes of 100 DAI
:airplane: 1 of 3 free return flights to an ETHGlobal event
:tickets: 1 of 2 free tickets to Devcon 6
Sincere thanks for those that take the time, looking forward to your responses :pray:
tvanepps (Thu, 12 Mar 2020 19:42:56 GMT):
Hello Besu community, I'm dropping by to share this Ethereum developer survey from ETHGlobal. We're casting a really wide net and would love to get responses from more enterprise focused developers >> https://ethglobal.typeform.com/to/RxHlK8
Filling it out to the end also makes you eligible for a few prizes:
:moneybag: 1 of 10 prizes of 100 DAI
:airplane: 1 of 3 free return flights to an ETHGlobal event
:tickets: 1 of 2 free tickets to Devcon 6
Thanks for your time, looking forward to any responses :pray:
eum602 (Fri, 13 Mar 2020 02:04:30 GMT):
Please can you tell us what amount of gas does those transactions have?
Bobur (Fri, 13 Mar 2020 02:12:03 GMT):
Hello folks! I hope everyone is doing well.
I have a few questions regarding the Orion node. If anyone can provide some insights about it, you would make my day!
1. What is the reason of running Orion node in a separate instance instead of inside Besu node?.
2. When running an Orion node in a separate instance, wont there be any performance issues like lower TPS or any unexpected failure in Orion node etc?
3. Does it have to be a separate Orion node for each Besu node?
4. Is it really safe to use Orion for private transaction?
Thank you a lot for ur answers in advance! Wish HLB community the best!
lucassaldanha (Fri, 13 Mar 2020 03:30:17 GMT):
@Bobur here are a few answers to your questions. I hope they can help!
1. Mostly due to the origin of the project and the use cases that required the data encrypted at rest to be into "special" servers and things like that (mostly compliance). We are exploring options to, in the future, allow Orion to run as a plugin of Besu. So the user will have both options available.
2. For production environments, Orion must be highly available (from 1.5.0) - (https://docs.orion.pegasys.tech/en/latest/HowTo/High-Availability/). For most use cases, the overhead of encrypting/decrypting private txs doesn't impact the TPS of the network.
3. This is recommended. If you want to run it in the same instance, you'll need to ensure that both JVMs are properly configure to share the host resources nicely.
4. Safety is a really broad concept. What are your concerns around using Orion for private txs?
lucassaldanha (Fri, 13 Mar 2020 03:30:17 GMT):
@Bobur here are a few answers to your questions. I hope they can help!
1. Mostly due to the origin of the project and the use cases that required the data encrypted at rest to be into "special" servers and things like that (mostly compliance). We are exploring options to, in the future, allow Orion to run as a plugin of Besu. So the user will have both options available.
2. For production environments, Orion must be highly available (full support for HA started on 1.5.0, our next stable version) - (https://docs.orion.pegasys.tech/en/latest/HowTo/High-Availability/). For most use cases, the overhead of encrypting/decrypting private txs doesn't impact the TPS of the network.
3. This is recommended. If you want to run it in the same instance, you'll need to ensure that both JVMs are properly configure to share the host resources nicely.
4. Safety is a really broad concept. What are your concerns around using Orion for private txs?
madelinemurray (Fri, 13 Mar 2020 06:42:04 GMT):
hi @magooster - I'm following this up and will get back to you.
madelinemurray (Fri, 13 Mar 2020 06:59:21 GMT):
Adding this functionality is planned for 1.5 - the Jira issue for tracking is https://jira.hyperledger.org/browse/BESU-79
We're in the progress of migrating our Jira issues to GitHub issues but will include a link on the Jira issue when that happens.
magooster (Fri, 13 Mar 2020 07:39:16 GMT):
Thanks, to me it looks like in Besu 1.4 private tx related items are being written to the data/database whereas in Besu 1.3.x looks like it wrote to data/database/private.
magooster (Fri, 13 Mar 2020 08:00:58 GMT):
The migration service thens see the database as empty - all I see in the PRIVATE_TRANSACTION segment is entries suffixed PGHEADMAP
magooster (Fri, 13 Mar 2020 08:05:13 GMT):
The 'old' db files contain keys suffixed LOGS and OUTPUT
faraggi (Fri, 13 Mar 2020 11:32:56 GMT):
Hi bobur,
faraggi (Fri, 13 Mar 2020 12:46:42 GMT):
1. I believe this is for RAM reasons. Having multiple RocksDB instances is going to use a ton of extra RAM due to all its caches etc.
2. There _might_ be lower TPS, but I don't think that'll be the bottleneck really.
3. its recommended because of (1)
4. Pretty subjective question, and depends on too many factors to answer objectively. What do you mean by 'safe'?
faraggi (Fri, 13 Mar 2020 12:46:42 GMT):
(only just saw lucas' answers, I've edited a bit now to add to his)
1. I believe this is for RAM reasons. Having multiple RocksDB instances is going to use a ton of extra RAM due to all its caches etc.
2. There _might_ be lower TPS, but I don't think that'll be the bottleneck, really.
3. its recommended because of (1)
4. Pretty subjective question, and depends on too many factors to answer objectively. What do you mean by 'safe'?
TerryWBC (Fri, 13 Mar 2020 13:43:17 GMT):
Thanks
ArseniiPetrovich (Fri, 13 Mar 2020 19:19:41 GMT):
Has joined the channel.
shemnon (Sat, 14 Mar 2020 22:38:06 GMT):
Next Tuesday is the next Besu contributor call, on EMEA/AMER friednly times. - https://wiki.hyperledger.org/display/BESU/2020-03-17+Contributor+Call
If you are in the USA check the times as the call is fixed against UTC, so the call may be an hour later.
ppoliani (Sun, 15 Mar 2020 11:40:45 GMT):
hi guys
ppoliani (Sun, 15 Mar 2020 11:42:20 GMT):
I'm switching from Besu v1.3.8 to v 1.4.1 and I noticed that it doesn't work straightaway. It looks like there is the addition of `KubernetesNatManager` which tries to locate the cluster's config file at `~/.kube/config`
ppoliani (Sun, 15 Mar 2020 11:43:28 GMT):
I had to update `--nat-method=MANUAL` to make it work. Is there any reason why we should use `KubernetesNatManager ` when running in k8s cluster? It looks like setting it to manual works perfectly fine
ppoliani (Sun, 15 Mar 2020 14:32:41 GMT):
It looks like `--nat-method=MANUAL` doesn't work anymore. Peers cannot find each other `No sync target, wait for peers.`
ppoliani (Sun, 15 Mar 2020 15:11:10 GMT):
I can see `Waiting for new peer connection. 2 peers currently connected.` but no blocks are mined.
matkt (Sun, 15 Mar 2020 16:42:11 GMT):
by default Besu will try to automatically detect exposed ports and IP when running in Kunernetes. the difference with the manual mode where it is necessary to put manually all the ports and IP. to be able to make besu work properly in a kube you must add in your deployment script an environment variable KUBE_CONFIG_PATH: "/ path / to / kube-config" and add your port forwarding rules when you define your service
matkt (Sun, 15 Mar 2020 16:44:23 GMT):
Example of service definition with port forwarding :
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
name: besu
spec:
ports:
- name: "json-rpc"
port: 9000
targetPort: 8545
- name: "rlpx"
port: 7777
targetPort: 8888
selector:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
type: LoadBalancer
matkt (Sun, 15 Mar 2020 16:44:23 GMT):
Example of service definition with port forwarding :
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
name: besu
spec:
ports:
- name: "json-rpc"
port: 9000
targetPort: 8545
- name: "rlpx"
port: 7777
targetPort: 8888
selector:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
type: LoadBalancer
matkt (Sun, 15 Mar 2020 16:44:23 GMT):
Example of service definition with port forwarding :
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
name: besu
spec:
ports:
- name: "json-rpc"
port: 9000
targetPort: 8545
selector:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
type: LoadBalancer
matkt (Sun, 15 Mar 2020 16:45:28 GMT):
Example of deployment script with the new env variable :
---
apiVersion: v1
kind: ConfigMap
metadata:
name: besu-config
labels:
app.kubernetes.io/name: besu
app.kubernetes.io/release: 1.0.0
data:
BESU_LOGGING: "INFO"
BESU_NETWORK: "dev"
BESU_P2P_ENABLED: "true"
BESU_RPC_HTTP_ENABLED: "true"
BESU_RPC_HTTP_APIS: "eth,net,web3,debug,admin"
KUBE_CONFIG_PATH: "/opt/besu/shared/kube-config"
matkt (Sun, 15 Mar 2020 16:46:52 GMT):
did block mining start in manual mode ?
ppoliani (Sun, 15 Mar 2020 17:12:27 GMT):
nope, it didn't start mining. I can see the following logs
```
2020-03-15 17:10:18.776+00:00 | main | INFO | NatService | Waiting for up to 60 seconds to detect external IP address...
2020-03-15 17:10:18.777+00:00 | main | INFO | NatService | Waiting for up to 60 seconds to detect external IP address...
2020-03-15 17:10:18.780+00:00 | main | INFO | AutoTransactionLogBloomCachingService | Starting auto transaction log bloom caching service.
2020-03-15 17:10:23.490+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
2020-03-15 17:10:28.492+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
2020-03-15 17:10:33.493+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, wait for peers.
```
ppoliani (Sun, 15 Mar 2020 17:15:34 GMT):
I'm not sure what has changed since version 1.3.8? I could easily deploy the network using these manifest files https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/clique
matkt (Sun, 15 Mar 2020 17:17:57 GMT):
is your manual configuration correct (host, port)?
matkt (Sun, 15 Mar 2020 17:18:17 GMT):
https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Specifying-NAT/
ppoliani (Sun, 15 Mar 2020 17:20:15 GMT):
this is what it looks like
```
exec /opt/besu/bin/besu \
--genesis-file=/configs/genesis.json \
--node-private-key-file=/secrets/key \
--data-path=/var/besu/data \
--nat-method=MANUAL \
--p2p-host=${VALIDATOR1_SERVICE_HOST} \
--rpc-http-authentication-enabled \
--rpc-ws-authentication-enabled \
--rpc-http-authentication-credentials-file=/configs/creds.toml \
--rpc-ws-authentication-credentials-file=/configs/creds.toml \
--min-gas-price=0 \
--rpc-http-enabled \
--rpc-http-host=0.0.0.0 \
--rpc-http-port=8545 \
--rpc-http-cors-origins=${NODES_HTTP_CORS_ORIGINS} \
--rpc-http-api=ETH,NET,CLIQUE \
--graphql-http-enabled \
--graphql-http-host=0.0.0.0 \
--graphql-http-port=8547 \
--graphql-http-cors-origins=${NODES_HTTP_CORS_ORIGINS} \
--rpc-ws-enabled \
--rpc-ws-host=0.0.0.0 \
--rpc-ws-port=8546 \
--metrics-enabled=true \
--metrics-host=0.0.0.0 \
--metrics-port=9545 \
--host-whitelist=${NODES_HOST_WHITELIST} \
--bootnodes=enode://${VALIDATOR1_PUBKEY}@${VALIDATOR1_SERVICE_HOST}:30303
```
ppoliani (Sun, 15 Mar 2020 17:20:58 GMT):
I also tried without the `p2p-host` but no luck
ppoliani (Sun, 15 Mar 2020 17:28:48 GMT):
I can see the following logs which suggest to me that the peer discovery is working
ppoliani (Sun, 15 Mar 2020 17:28:51 GMT):
```
2020-03-15 17:27:59.510+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 2 peers currently connected.
2020-03-15 17:28:01.169+00:00 | vert.x-eventloop-thread-2 | TRACE | DiscoveryProtocolLogger | >>> Received FINDN packet from peer 0xb57b15ddd9810fcf6c9c42f1fa64a67e (enode://b57b15ddd9810fcf6c9c42f1fa64a67ebc57bceb5f106d693cecfb4719284a260e7e6eda1c90102eee3f2521bf0903d833bff0b05ef1f9c8b0e6ddcabf468a33@10.42.6.28:30303): Packet{type=FIND_NEIGHBORS, data=FindNeighborsPacketData{expiration=1584293341107, target=0xb4a8abc5253300238705ca6c909084e0a79ccb2f44ce2cb8607ede56d7cf57df7731602cfd409cfc57131f5a482a7c0821b849ac23f05918ba45ce73c4c722e0}, hash=0x5d1a986c84a15c9ca351f1bdc64440925fc0bb76c51c2f2e4ce31aedb26a07bd, signature=SECP256K1.Signature{r=53362686214299423291585764502792231700140798824720480175106775853788168364807, s=4651400382349154141455091724201233667030665560980751582585207011964105095776, recId=1}, publicKey=0xb57b15ddd9810fcf6c9c42f1fa64a67ebc57bceb5f106d693cecfb4719284a260e7e6eda1c90102eee3f2521bf0903d833bff0b05ef1f9c8b0e6ddcabf468a33}
2020-03-15 17:28:01.268+00:00 | vert.x-eventloop-thread-2 | TRACE | DiscoveryProtocolLogger | <<< Sending NEIGH packet to peer 0xb57b15ddd9810fcf6c9c42f1fa64a67e (enode://b57b15ddd9810fcf6c9c42f1fa64a67ebc57bceb5f106d693cecfb4719284a260e7e6eda1c90102eee3f2521bf0903d833bff0b05ef1f9c8b0e6ddcabf468a33@10.42.6.28:30303): Packet{type=NEIGHBORS, data=NeighborsPacketData{peers=[DiscoveryPeer{status=bonded, enode=enode://b57b15ddd9810fcf6c9c42f1fa64a67ebc57bceb5f106d693cecfb4719284a260e7e6eda1c90102eee3f2521bf0903d833bff0b05ef1f9c8b0e6ddcabf468a33@10.42.6.28:30303, firstDiscovered=1584293221511, lastContacted=1584293271367, lastSeen=1584293221511}, DiscoveryPeer{status=bonded, enode=enode://6a76f7579da0b96a8534e90937937c912568fe224d16c65526cc1c8c1d0db6f91caf4cf59819925b2f4d01ab178a1c6e362f033031c3ef934b8a83fcebee0650@10.42.7.29:30303, firstDiscovered=1584293228838, lastContacted=1584293271371, lastSeen=1584293228838}], expiration=1584293341170}, hash=0x1b4b4b5c976ab62d53d8ff72a2e6d151b8e72232255a236a3aa11843892c7067, signature=SECP256K1.Signature{r=46873011859848028865975502793936149198358571352598058666595943976201208434298, s=43294861171771830860063491015870083808724090700784275635578563003600094829114, recId=0}, publicKey=0xff7af01ea0ab5289cdd3930d09cb2c87d7a9e884f2180f1ba26590d42e651463c3d1db31f7d034cad159e0076c8f2eedd6c2b2311fd8ca02219f5d60748aad93}
2020-03-15 17:28:02.214+00:00 | nioEventLoopGroup-3-1 | DEBUG | WireKeepAlive | Idle connection detected, sending Wire PING to peer.
2020-03-15 17:28:02.214+00:00 | nioEventLoopGroup-3-1 | TRACE | AbstractPeerConnection | Writing PingMessage{data=''} to PeerInfo{version=5, clientId='besu/v1.4.1/linux-x86_64/oracle_openjdk-java-11', capabilities=[eth/62, eth/63, eth/64], port=30303, nodeId=0xb57b15ddd9810fcf6c9c42f1fa64a67ebc57bceb5f106d693cecfb4719284a260e7e6eda1c90102eee3f2521bf0903d833bff0b05ef1f9c8b0e6ddcabf468a33} via protocol null
2020-03-15 17:28:02.216+00:00 | nioEventLoopGroup-3-1 | DEBUG | ApiHandler | Received Wire PING
2020-03-15 17:28:02.216+00:00 | nioEventLoopGroup-3-1 | TRACE | AbstractPeerConnection | Writing org.hyperledger.besu.ethereum.p2p.rlpx.wire.messages.PongMessage@2f21cd5a to PeerInfo{version=5, clientId='besu/v1.4.1/linux-x86_64/oracle_openjdk-java-11', capabilities=[eth/62, eth/63, eth/64], port=30303, nodeId=0xb57b15ddd9810fcf6c9c42f1fa64a67ebc57bceb5f106d693cecfb4719284a260e7e6eda1c90102eee3f2521bf0903d833bff0b05ef1f9c8b0e6ddcabf468a33} via protocol null
2020-03-15 17:28:02.218+00:00 | nioEventLoopGroup-3-1 | DEBUG | ApiHandler | Received Wire PONG
2020-03-15 17:28:04.511+00:00 | EthScheduler-Timer-0 | DEBUG | FullSyncTargetManager | Caught up to best peer: 1
2020-03-15 17:28:04.511+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 2 peers currently connected.
```
ppoliani (Sun, 15 Mar 2020 18:01:32 GMT):
ok it was my bad. I had more initial signers in the `extraData` within the genesis file than the validators I was running
matkt (Sun, 15 Mar 2020 18:03:30 GMT):
Cool good news 👍
ppoliani (Sun, 15 Mar 2020 18:04:32 GMT):
thanks for the help :)
arash009 (Sun, 15 Mar 2020 23:20:04 GMT):
Hi @NikosFotiadis We dont think there is anything that drops the connection after inactivity, so probably needs some further investigation. Can you provide some more details? How long does the connection stay before being dropped out? Are you connecting directly to the Besu node or through a firewall/reverse proxy connection? And what version of the products are you using?
arash009 (Sun, 15 Mar 2020 23:23:52 GMT):
Also note that we have multi-tenancy support for Orion now. So you can run a single instance of Orion/Besu for multiple users - if that is a consideration.
timbeiko (Mon, 16 Mar 2020 15:25:53 GMT):
:tada: Hyperledger Besu 1.4.1 is out today :tada:
We’ve added more parity-style tracing (trace_transaction), the ability to add/remove people from privacy groups and other privacy, pruning, ETC and devp2p improvements
Get it at https://github.com/hyperledger/besu/releases/1.4.1 :besu:
tezansahu (Mon, 16 Mar 2020 15:54:04 GMT):
Has joined the channel.
tezansahu (Mon, 16 Mar 2020 16:21:47 GMT):
Hi! I am new to the Besu community
tezansahu (Mon, 16 Mar 2020 16:22:34 GMT):
I was going through the documentation, & would like to know if one could have a private transaction from a user to a contract. If so, how? If no, any alternatives?
lucassaldanha (Mon, 16 Mar 2020 21:38:04 GMT):
Hi! You can deploy a contract in a privacy group and interact with it through a node that is a participant in the privacy group.
shemnon (Tue, 17 Mar 2020 00:05:38 GMT):
Reminder, Besu Contributor call is in 15 hours from now, not 1 hour from now.
madelinemurray (Tue, 17 Mar 2020 00:54:11 GMT):
Thanks @shemnon - I must need to update my invite
tezansahu (Tue, 17 Mar 2020 02:45:18 GMT):
Thanks
tezansahu (Tue, 17 Mar 2020 14:58:03 GMT):
I was able to start a Besu Network on Kubernetes following this: https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2-with-privacy
But since this network is on a VPS with ssh access only & the services for Prometheus/Grafana are declared to be of type ClusterIP (& not NodePort), I am unable to monitor the blockchain.
Could someone help me out with this issue?
faraggi (Tue, 17 Mar 2020 15:03:58 GMT):
Contributor call starting now:
https://consensys.zoom.us/j/199741148
Bobur (Wed, 18 Mar 2020 07:13:26 GMT):
Hi guys! Thank you all for answers and efforts to improve HLB
I have a few questions regarding Besu.
1. When Node1 deploys a contract with "privateFor=Node2 orion public key" field, is the transaction stored in Node3 rocksdb database as well?
2. How can i see rocksdb .sst files contents? I tried sst_dump tool and keylord gui but it is not showing the result that I wanted
Thank u in advance
rranjan3 (Wed, 18 Mar 2020 08:28:20 GMT):
Not able to get events using web3py -
```
w3 = Web3(HTTPProvider('http://localhost:23011'))
print("Connection established : ", w3.isConnected())
contractDetails = json.load(open("build/contracts/Contract.json"))
contract = w3.eth.contract(address = contract_address, abi = contractDetails.get('abi'))
evt_filter = contract.events.MyEvent.createFilter(fromBlock='latest') #-- latest for my event
print(evt_filter)
print("Filter created")
while True :
evnts = evt_filter.get_new_entries()
if len(evnts) > 0:
print(evnts)
```
A Ganache node works perfect wit the same. So probably I can't suspect the web3 wrappers
rranjan3 (Wed, 18 Mar 2020 08:28:20 GMT):
Not able to get events using web3py -
```
w3 = Web3(HTTPProvider('http://localhost:23011'))
print("Connection established : ", w3.isConnected())
contractDetails = json.load(open("build/contracts/Contract.json"))
contract = w3.eth.contract(address = contract_address, abi = contractDetails.get('abi'))
evt_filter = contract.events.MyEvent.createFilter(fromBlock='latest') #-- latest for my event
print(evt_filter)
print("Filter created")
while True :
evnts = evt_filter.get_new_entries()
if len(evnts) > 0:
print(evnts)
```
A Ganache node works perfect with the same. So probably I can't suspect the web3 wrappers. What could be wrong?
lucassaldanha (Wed, 18 Mar 2020 08:48:45 GMT):
Hi @Bobur a private transaction is only shared between participants of the transaction. In your example, node3 won't have the private transaction.
About exploring RocksDB data. You might try something like this (https://github.com/facebook/rocksdb/wiki/Administration-and-Data-Access-Tool)
lucassaldanha (Wed, 18 Mar 2020 08:49:50 GMT):
Hi @rranjan3 could you specify the version of Besu and web3py that you are running on? Do you get any error msgs on anything like that?
Bobur (Wed, 18 Mar 2020 08:53:59 GMT):
rocksDB.png
Bobur (Wed, 18 Mar 2020 08:54:04 GMT):
@lucassaldanha Thank you for ur answer.
Yeah I used sst_dump tool which u mentioned but it is not giving me transaction payload etc.
Bobur (Wed, 18 Mar 2020 08:54:56 GMT):
I used
```sst_dump --file=/opt/besu/database/000031.sst --command=scan --output_hex ```
Bobur (Wed, 18 Mar 2020 08:56:40 GMT):
``` root@183e49c769d6:/opt/besu/database# sst_dump --file=/opt/besu/database/000031.sst --command=scan --output_hex --read_num=1
from [] to []
Process /opt/besu/database/000031.sst
Sst file format: block-based
'00031DDF399D40D80987A4578D2C8DC6E7FAC97D0A2D6E52EC44B9CB0C1C92645047484541444D4150' seq:6698, type:1 => F844F842A0E417245AEED1507230245D41C2FD2A7D5BD037CD027F26C2511C45AE2427B261A0BBC92134BBCA498E06F77E4AA144D66B4F43A4F8E326808CC067D784647FA4AD
root@183e49c769d6:/opt/besu/database#
```
rranjan3 (Wed, 18 Mar 2020 08:57:45 GMT):
web3py is @ 5.7.0 and Besu @ 1.4.0
rranjan3 (Wed, 18 Mar 2020 09:00:53 GMT):
I do not see any errors but another thing I verified is that get_all_events or the JRPC counterpart eth_getFilterLogs works on the same filter.
rranjan3 (Wed, 18 Mar 2020 09:13:27 GMT):
@lucassaldanha I also tried out the RPC calls directly from curl. Similar behaviour. SO it can probably be something with the ``eth_getFilterChanges`` method call.
rranjan3 (Wed, 18 Mar 2020 09:13:27 GMT):
@lucassaldanha I also tried out the RPC calls directly from curl. Similar behavior. SO it can probably be something with the `eth_getFilterChanges` method call.
rranjan3 (Wed, 18 Mar 2020 09:24:45 GMT):
https://github.com/hyperledger/besu/issues/473 . Should I try out something prior to 1.4?
dbdagr8 (Wed, 18 Mar 2020 10:25:23 GMT):
Has joined the channel.
dbdagr8 (Wed, 18 Mar 2020 10:25:25 GMT):
Hi everyone,
Can somebody tell me, how to invoke smart contract functions without metamask plugin. I was following https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Use-web3js/
dbdagr8 (Wed, 18 Mar 2020 10:25:25 GMT):
Hi everyone,
Can somebody tell me, how to invoke smart contract functions without metamask plugin. I was following https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Use-web3js/
But getting Invalid params as a response.
```
{ StatusCodeError: 400 - {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"Invalid params"}}
at new StatusCodeError (/home/ubuntu/performance/node_modules/request-promise-core/lib/errors.js:32:15)
at Request.plumbing.callback (/home/ubuntu/performance/node_modules/request-promise-core/lib/plumbing.js:104:33)
at Request.RP$callback [as _callback] (/home/ubuntu/performance/node_modules/request-promise-core/lib/plumbing.js:46:31)
at Request.self.callback (/home/ubuntu/performance/node_modules/request/request.js:185:22)
at Request.emit (events.js:198:13)
at Request.
shemnon (Wed, 18 Mar 2020 14:46:03 GMT):
Besu didn't like the set of parameters you sent in for a specific RPC call. What was the RPC call you were executing when this error occured? i.e. what web3js api were you calling? That is not present in stack trace you posted.
ppoliani (Wed, 18 Mar 2020 16:55:10 GMT):
A quick question; can I start the a CLIQUE network without the Orion nodes and then at some point in the future make it a permissioned network?
faraggi (Wed, 18 Mar 2020 17:55:56 GMT):
Just some clarification first: are you looking to implement permissioning or privacy in the future?
Orion = Privacy, and prefers having IBFT2, not clique
Permissioning needs a specific genesis file from the get-go
ppoliani (Wed, 18 Mar 2020 18:13:00 GMT):
sorry @faraggi my bad. I meant the privacy feature
faraggi (Wed, 18 Mar 2020 18:54:24 GMT):
In that case, although privacy-enabled networks can use CLIQUE, transaction finality is preferred.
Check the 'important' highlight here: https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/
To answer your question; yes, you can spin up the network with the corresponding config and then spin up the orion nodes themselves.
ppoliani (Wed, 18 Mar 2020 18:55:01 GMT):
cheers mate; good to know
faraggi (Wed, 18 Mar 2020 20:30:28 GMT):
Update with more details.
Scenario 1:
if you have privacy enabled without orion/with orion but it's down the node will try and process the incoming private transaction and will fail to do so and get stuck until orion is back up.
Scenario 2:
if you start a node without privacy but process a transaction that happens to be a private marker the node will do nothing interesting.
ftgha (Wed, 18 Mar 2020 21:01:50 GMT):
Has joined the channel.
ftgha (Wed, 18 Mar 2020 21:01:52 GMT):
Hey, trying to run besu on a s390x and I'm getting an error that rocksdb cannot load the native lib. Do I need to install the c++ lib or should that just work out of the box?
ftgha (Wed, 18 Mar 2020 21:02:47 GMT):
Or rather, where should I put the native lib so it can be found?
ftgha (Wed, 18 Mar 2020 21:02:47 GMT):
Or rather, where should I put the native lib/or my compiled jar so it can be found? Sorry, I don't know much about Java
`Caused by: java.lang.RuntimeException: librocksdbjni-linuxs390x.so was not found inside JAR.`
e-nikolov (Thu, 19 Mar 2020 03:02:35 GMT):
Is besu's fast sync comparable to geth and parity's? Does it validate all transactions and can it be considered a full node?
RealDeanZhao (Thu, 19 Mar 2020 03:02:53 GMT):
Hi, must the private transaction send by the orion node? Is it possible for a person to send a private transaction?
ajsutton (Thu, 19 Mar 2020 03:06:43 GMT):
Besu's fast sync is the same as Geth's (parity only supports warp sync which has a similar result but different approach to syncing). Fast sync does not process transactions prior to the "pivot block" (the block which the world state is downloaded for). The historical block and transaction receipt data is however downloaded so when fast sync completes you have a full node. World state prior to the pivot block is not available so it is not an archive node.
e-nikolov (Thu, 19 Mar 2020 03:09:07 GMT):
Can the data up to the pivot block be trusted then?
e-nikolov (Thu, 19 Mar 2020 03:09:29 GMT):
As in can we be sure that nobody tampered with it?
e-nikolov (Thu, 19 Mar 2020 03:09:37 GMT):
Are the hashes verified?
ajsutton (Thu, 19 Mar 2020 03:21:22 GMT):
It depends what you mean by "trusted". For example, even if you did a full sync and processed every transaction, it's possible to be the victim of an eclipse attack where your peers feed you valid blocks which are not actually the canonical chain. You can spot that easily if you verify the final block hash you reach with some other source to confirm you have reached consensus.
With fast sync, the chain of block hashes are fully verified which includes the hash of the state root. It also includes the transaction hashes. It does not check the proof of work solution for every block (to speed up importing it only checks a random sample of blocks) and it does not process transactions so can't verify that the new world state is the correct result from applying the transactions in the block.
You can however trust that the world state you downloaded is the correct state for the block because the state root hash matches. You know that the ancestor blocks (and the transactions they contain) of the pivot block are correct because each block includes the hash of the parent.
But, just as with full sync, you can't know for sure that the block hash of the pivot block is correct. Besu will confirm that multiple peers agree with that same block hash but it's impossible to fully prevent eclipse attacks.
Bottom line, however you sync, if you verify the pivot block hash with other sources you trust then you can be 100% confident that the entire chain and world state is correct.
e-nikolov (Thu, 19 Mar 2020 03:23:38 GMT):
Thanks for the write up
shemnon (Thu, 19 Mar 2020 03:48:02 GMT):
I don't think we can support s390x, the rocksdb jni lib doesn't have Z series support, only Linux 32/64 (intel/amd), linux aarch64 (arm) linux ppc64le (power8), windows (intel), and mac (intel). We use the library as-is and that is all the native libs it comes with.
dbdagr8 (Thu, 19 Mar 2020 05:16:38 GMT):
i mentioned the link of what i am trying
shemnon (Thu, 19 Mar 2020 05:18:02 GMT):
But which part of the tutorial?
dbdagr8 (Thu, 19 Mar 2020 05:19:13 GMT):
create_contract_raw_transaction.js
shemnon (Thu, 19 Mar 2020 05:23:30 GMT):
There are more log messages in that sample code. Plus, are you running this in a browser or in a command line app?
shemnon (Thu, 19 Mar 2020 05:23:41 GMT):
Can you provide the whole log output?
dbdagr8 (Thu, 19 Mar 2020 05:32:06 GMT):
```
```
dbdagr8 (Thu, 19 Mar 2020 05:32:06 GMT):
```
import factory from './ethereum/factory';
import Campaign from './ethereum/campaign';
import contracts from './ethereum/build/contracts.json';
import ethTx from 'ethereumjs-tx';
import request from 'request-promise'
//const ethTx = require('ethereumjs-tx').Transaction;
import Web3 from 'web3';
async function main(){
console.log("in async")
const campaigns = await factory.methods.getDeployedCompaigns().call();
const campaign = Campaign(campaigns[0]);
const provider = new Web3.providers.HttpProvider(
'http://13.232.153.85:8545'
);
var web3 = new Web3(provider);
var factory1 = contracts["Compaign.sol"].CompaignFactory.evm.bytecode.object;
var contractData = await campaign.methods.count().encodeABI();
console.log(contractData);
var addressFrom = '0x627306090abaB3A6e1400e9345bC60c78a8BEf57';
web3.eth.defaultAccount = addressFrom;
//var account1 = await web3.eth.getAccounts()
//console.log('Account for Transaction: '+ account1);
var privKey = Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3', 'hex');
console.log('Private key: ' + privKey);
await web3.eth.getTransactionCount(addressFrom, "pending").then((txnCount) => {
// Create the contract creation transaction object
var txObject = {
nonce: web3.utils.toHex(txnCount),
gasPrice: web3.utils.toHex(0),
gasLimit: web3.utils.toHex(126165),
data: contractData
};
/* var tx = new ethTx.Transaction(txObject);
//tx.sign(privKey)
tx.sign(Buffer.from(privKey, 'hex'))
//web3.eth.accounts.signTransaction(tx,privKey);
var serializedTx = tx.serialize();
var rawTxHex = '0x' + serializedTx.toString('hex');
console.log("Raw transaction data: " + rawTxHex); */
// const transaction = web3.eth.sendSignedTransaction(rawTxHex, (err, tx) => {
// console.log(tx)
// });
var rawTxHex = web3.eth.accounts.signTransaction({
to: 0x8CdaF0CD259887258Bc13a92C0a6dA92698644C0,
from: addressFrom,
value: '0',
data: contractData,
gasPrice: web3.utils.toWei('0', 'gwei'),
gas: Math.round((campaign.methods.count().estimateGas({ addressFrom })) * 1.5),
nonce: web3.eth.getTransactionCount(addressFrom, 'pending')
},privKey)
console.log("before send transaction");
web3.eth.sendSignedTransaction(rawTxHex.rawTransaction)
.on('receipt', receipt => { console.log('Receipt: ', receipt); })
.catch(error => { console.log('Error: ', error.message); });
console.log("******************************************");
console.log("Value transaction sent, waiting for receipt.");
console.log("******************************************");
// curl -X POST --data '{\"jsonrpc\":\"2.0\",\"method\":\"eth_sendRawTransaction\",\"params\":[\"" + rawTxHex + "\"],\"id\":1}' http://localhost:8545
/* const options = {
method: 'POST',
uri: 'http://localhost:8545',
body:
{ jsonrpc:2.0,method:'eth_sendRawTransaction',params:[" + rawTxHex + "],id:1 },
json: true // JSON stringifies the body automatically
}
request(options)
.then(function (response) {
// Handle success response data
console.log(response)
})
.catch(function (err) {
// Handle err response
console.log(err)
})
*/
// web3.eth.sendSignedTransaction(rawTxHex).on('receipt', function(receipt){
// console.log(['transferToStaging Receipt:', receipt]);
// }).on('error', console.error);
// for (let index = 0; index < 1000; index++) {
// }
})
}
main()
.then(console.log)
.catch(console.error)
```
dbdagr8 (Thu, 19 Mar 2020 05:35:33 GMT):
Output:
```
in async
0x06661abd
Private key: �u ��g��x�����vS
c���$^J����M��
before send transaction
******************************************
Value transaction sent, waiting for receipt.
******************************************
undefined
(node:5929) UnhandledPromiseRejectionWarning: Error: Returned error: Invalid params
at Object.ErrorResponse (/home/ubuntu/performance/node_modules/web3-core-helpers/src/errors.js:29:16)
at /home/ubuntu/performance/node_modules/web3-core-requestmanager/src/index.js:140:36
at XMLHttpRequest.request.onreadystatechange (/home/ubuntu/performance/node_modules/web3-providers-http/src/index.js:110:13)
at XMLHttpRequestEventTarget.dispatchEvent (/home/ubuntu/performance/node_modules/xhr2-cookies/dist/xml-http-request-event-target.js:34:22)
at XMLHttpRequest._setReadyState (/home/ubuntu/performance/node_modules/xhr2-cookies/dist/xml-http-request.js:208:14)
at XMLHttpRequest._onHttpResponseEnd (/home/ubuntu/performance/node_modules/xhr2-cookies/dist/xml-http-request.js:318:14)
at IncomingMessage.
shemnon (Thu, 19 Mar 2020 05:40:21 GMT):
That is a significant departure from the tutorial. This appears to be an issue in how web3.js is being used rather than an issue with besu.
shemnon (Thu, 19 Mar 2020 05:41:03 GMT):
I'm not a web3.js expert, but it looks like you are not hex encoding the transaciton and are trying to send the java script object.
shemnon (Thu, 19 Mar 2020 05:41:13 GMT):
The call to tx.serialize(); is commented out (and out of order)
coenie (Thu, 19 Mar 2020 09:46:15 GMT):
Hi, I'm doing some performance benchmarks on Besu + ethsigner and I would like to run some thoughts by you. Have you run any performance tests on Besu?
ftgha (Thu, 19 Mar 2020 11:16:28 GMT):
Thanks for the reply
ftgha (Thu, 19 Mar 2020 11:16:30 GMT):
I was able to compile the rocksdb jar on there manually. Could I somehow link that instead of using the pre-built one from maven?
gokulalex (Fri, 20 Mar 2020 05:28:04 GMT):
Has joined the channel.
coenie (Fri, 20 Mar 2020 12:09:38 GMT):
^^ Any JVM tweaks I should look out for?
RealDeanZhao (Fri, 20 Mar 2020 13:37:00 GMT):
```function executeCall (address to, uint256 value, bytes data) internal returns (bool success) {
assembly {
success: = call (gas, to, value, add (data, 0x20), mload (data), 0, 0)
}
}``` I sent a transaction using Uport IdentityManager.sol, but the transaction failed. Anyone can help me with this?
RealDeanZhao (Fri, 20 Mar 2020 13:37:00 GMT):
```function executeCall (address to, uint256 value, bytes data) internal returns (bool success) {
assembly {
success: = call (gas, to, value, add (data, 0x20), mload (data), 0, 0)
}
}``` I sent a transaction to forwardTo method of IdentityManager.sol(uport identity), the transaction failed. Anyone can help me with this?
RealDeanZhao (Fri, 20 Mar 2020 13:37:00 GMT):
```function executeCall (address to, uint256 value, bytes data) internal returns (bool success) {
assembly {
success: = call (gas, to, value, add (data, 0x20), mload (data), 0, 0)
}
}``` I sent a transaction to forwardTo method of IdentityManager.sol(uport identity), the transaction failed(status is 0x00, don't know how to get the exact error message). Anyone can help me with this?
RealDeanZhao (Fri, 20 Mar 2020 13:38:10 GMT):
The besu version is 1.3.7
julez (Fri, 20 Mar 2020 13:49:19 GMT):
Has joined the channel.
julez (Fri, 20 Mar 2020 13:49:21 GMT):
Good day, I'm trying to install Besu und Windows. I always get the following error after running the "gradlew build" command:
A problem occurred evaluating root project 'besu'.
> Java 11 or later is required to build Besu.
Detected version 1.8
I have the latest Java / JDK versions running. What am I missing?
madelinemurray (Fri, 20 Mar 2020 23:31:56 GMT):
What does `java -version` give you? Is it possible you have an older version installed and that's what Besu is trying to use?
shemnon (Sat, 21 Mar 2020 01:08:48 GMT):
IIRC if it's in your path or libpath it should load.
shemnon (Sat, 21 Mar 2020 01:15:33 GMT):
There are also two ways, setting `BESU_OPTS=-Djava.library.path=
RealDeanZhao (Sat, 21 Mar 2020 04:12:41 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=S3KZpA4kKjugbvMzp) Hi anyone can help me with this?
RealDeanZhao (Sat, 21 Mar 2020 04:12:41 GMT):
[ ](https://chat.hyperledger.org/channel/besu?msg=S3KZpA4kKjugbvMzp) Hi anyone can help me with this? It works fine using truffle test with ganache.
marlow (Sat, 21 Mar 2020 14:38:35 GMT):
Hi guys. I'm running a privacy network for quite some while now, works great most of the time. Sometimes I do get this error though: `PrivacyPrecompiledContract | Failed to process private transaction 0xfcs8f3425d3da6a12e0a1a3c7ffff62608ed3c372b8dae2adaffaca899f6ea0b: Private Transaction nonce 44, is lower than sender account nonce 45`. I'm trying to debug the cause of this behavior, any suggestions where to look?
marlow (Sat, 21 Mar 2020 14:38:35 GMT):
Hi guys. I'm running a privacy network for quite some while now, works great most of the time. Sometimes I do get this error though: `PrivacyPrecompiledContract | Failed to process private transaction 0xfcs8f3425d3da6a12e0a1a3c7ffff62608ed3c372b8dae2adaffaca899f6ea0b: Private Transaction nonce 44, is lower than sender account nonce 45`. I'm trying to debug the cause of this behavior, any suggestions where to look? I have not yet found any behavior or action pattern that could trigger this
marlow (Sat, 21 Mar 2020 14:38:35 GMT):
Hi guys. I'm running a privacy network for quite some while now, works great most of the time. Sometimes I do get this error though: `PrivacyPrecompiledContract | Failed to process private transaction 0xfcs8f3425d3da6a12e0a1a3c7ffff62608ed3c372b8dae2adaffaca899f6ea0b: Private Transaction nonce 44, is lower than sender account nonce 45`. I'm trying to debug the cause of this behavior, any suggestions where to look? I have not yet found any action pattern that could trigger this, as it seems to happen at random times
marlow (Sat, 21 Mar 2020 14:38:35 GMT):
Hi guys. I'm running a privacy network for quite some while now, works great most of the time. Sometimes I do get this error though: `PrivacyPrecompiledContract | Failed to process private transaction 0xfcs8f3425d3da6a12e0a1a3c7ffff62608ed3c372b8dae2adaffaca899f6ea0b: Private Transaction nonce 44, is lower than sender account nonce 45`. I'm trying to debug the cause of this behavior, any suggestions where to look? I have not yet found any action pattern that could trigger this, as it seems to happen at random sometimes
madelinemurray (Sun, 22 Mar 2020 00:55:08 GMT):
Are you using EthSigner? If so, which version? And IBFT 2.0? We've got a couple of known issues we're curently looking at that might be related:
https://github.com/hyperledger/besu/issues/514
https://github.com/hyperledger/besu/issues/501
Can you get the private transaction receipt for the private transaction?
joshuafernandes (Sun, 22 Mar 2020 10:12:24 GMT):
Hello @tezansahu , few options available depending on your network and what polices are allowed :
- change them to be nodeport's and then access them via a broweser or an ssh tunnel
- deploy an ingress controller & corresponding rules and then access it via browser if possible or via an ssh tunnel. We've got an example setup here https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm/ingress
joshuafernandes (Sun, 22 Mar 2020 10:12:24 GMT):
Hello @tezansahu , few options available depending on your network and what polices are allowed :
- change them to be nodeport's and then access them via a broweser or an ssh tunnel
- deploy an ingress controller & corresponding rules and then access it via browser if possible or via an ssh tunnel. We've got an example setup here https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm/ingress
The setups in the besu-kubernetes repo are examples only, and intended for users to modify and use to suit their requirements
marlow (Sun, 22 Mar 2020 12:37:02 GMT):
@madelinemurray Using IBFT2.0, not using EthSigner at the moment, but we intend to use it eventually yes. https://github.com/hyperledger/besu/issues/514 looks exactly like it! Good to know there is already an issue for it. I'll keep an eye on this one
ppoliani (Sun, 22 Mar 2020 17:10:21 GMT):
hi guys, I was trying a script that sends 1000 txs in a concurrent way. I checked the logs and I realized that there are some issues with the RPC api
ppoliani (Sun, 22 Mar 2020 17:10:48 GMT):
more specifically, occasionally I see the following errors
```
2020-03-22 16:41:50.904+00:00 | vert.x-eventloop-thread-2 | ERROR | ContextImpl | Unhandled exception
java.lang.IllegalStateException: Response is closed
at io.vertx.core.http.impl.HttpServerResponseImpl.checkValid(HttpServerResponseImpl.java:617) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.http.impl.HttpServerResponseImpl.putHeader(HttpServerResponseImpl.java:157) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.http.impl.HttpServerResponseImpl.putHeader(HttpServerResponseImpl.java:54) ~[vertx-core-3.8.0.jar:3.8.0]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$7(JsonRpcHttpService.java:387) ~[besu-api-1.3.8.jar:1.3.8]
at io.vertx.core.impl.ContextImpl.lambda$null$0(ContextImpl.java:330) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:369) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.impl.EventLoopContext.lambda$executeAsync$0(EventLoopContext.java:38) ~[vertx-core-3.8.0.jar:3.8.0]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:495) [netty-transport-4.1.34.Final.jar:4.1.34.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at java.lang.Thread.run(Thread.java:834) [?:?]
```
ppoliani (Sun, 22 Mar 2020 17:11:14 GMT):
Is there any particular reason why I see this error?
madelinemurray (Sun, 22 Mar 2020 20:18:26 GMT):
hi @tezansahu - there's two ways to solve this - either convert the services declared to be node port if that satisfies company polices etc, or preferably deploy the ingress controller as well that ties which has grafana rules already setup. Details here - https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm/ingress
madelinemurray (Sun, 22 Mar 2020 20:24:18 GMT):
The Besu privacy implementation uses off-chain privacy so only the participants in the transaction receive the private transaction. Orion is the private transaction manager so a Orion node is required for each Besu node participating in private transations.
This blog post explains a bit more about how it works - https://pegasys.tech/privacy-in-hyperledger-besu-how-it-works-and-why-your-enterprise-should-care/
madelinemurray (Sun, 22 Mar 2020 20:42:56 GMT):
hi @coenie - depending on infrastruture and network topology, we've seen up to 400 TPS supported by Besu.
There are also some detailed benchmarks being worked on and that information will be released as soon as we have it.
Would love to have you run your thoughts by us.
coenie (Sun, 22 Mar 2020 20:44:28 GMT):
okay awesome, looking forward to that!
Do you know if that was 400 TPS for EIP20 transfers, or something else?
madelinemurray (Sun, 22 Mar 2020 20:48:27 GMT):
It was ether transfers on an IBFT network.
coenie (Sun, 22 Mar 2020 20:49:49 GMT):
okay thanks, I'll be on the lookout for those benchmarks!
madelinemurray (Sun, 22 Mar 2020 23:27:47 GMT):
@pinges
shemnon (Mon, 23 Mar 2020 02:32:46 GMT):
this is something seen under some test frameworks, where the client connection closes before a response can be committed. This can be ignored. I think we can stop sending it but it's not highest priority right now.
shemnon (Mon, 23 Mar 2020 02:33:19 GMT):
We've _just_moved off of Jira. Can you open a GitHub issue for us so we can put it in the backlog? https://github.com/hyperledger/besu/issues
ppoliani (Mon, 23 Mar 2020 07:52:06 GMT):
thank @shemnon
ppoliani (Mon, 23 Mar 2020 07:52:11 GMT):
I did open an issue on GH
julez (Mon, 23 Mar 2020 08:29:06 GMT):
Thanks for your answer.
This is the output of `java -version`:
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) Client VM (build 25.241-b07, mixed mode, sharing)
I have Java 8 installed, the latest version. But Besu asks for Java 11.
I guess they mean JDK, not Java. But I have JDK 13 installed as well.
julez (Mon, 23 Mar 2020 09:08:42 GMT):
fixed it, I had to manually overwrite the JAVA_HOME variable to the path where JDK is installed.
But now I am running into the next error after using `gradlew build`: `java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7`
It seems to be a known issue, but I haven't found a way around it yet.
julez (Mon, 23 Mar 2020 09:08:42 GMT):
after updatin Gradle to version 6.3-rc-4 and running `gradle build' I get the following error: `> Task :checkSpdxHeader FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':checkSpdxHeader'.
> Files without headers: C:\Users\bauerj1\Desktop\besu\besu\ethereum\core\src\test\java\org\hyperledger\besu\ethereum\vm\blockchain\BlockchainReferenceTest_0.java
C:\Users\bauerj1\Desktop\besu\besu\ethereum\core\src\test\java\org\hyperledger\besu\ethereum\vm\blockchain\BlockchainReferenceTest_1.java
...
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3-rc-4/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 26s
70 actionable tasks: 4 executed, 66 up-to-date`
julez (Mon, 23 Mar 2020 09:08:42 GMT):
After updating Gradle to version 6.3-rc-4 and running `gradle build` I get the following error: `> Task :checkSpdxHeader FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':checkSpdxHeader'.
> Files without headers: C:\Users\bauerj1\Desktop\besu\besu\ethereum\core\src\test\java\org\hyperledger\besu\ethereum\vm\blockchain\BlockchainReferenceTest_0.java
C:\Users\bauerj1\Desktop\besu\besu\ethereum\core\src\test\java\org\hyperledger\besu\ethereum\vm\blockchain\BlockchainReferenceTest_1.java
...
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3-rc-4/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 26s
70 actionable tasks: 4 executed, 66 up-to-date`
julez (Mon, 23 Mar 2020 09:08:42 GMT):
After updating Gradle to version 6.3-rc-4 and running `gradle build` I get the following error:
`> Task :checkSpdxHeader FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':checkSpdxHeader'.
> Files without headers: C:\Users\bauerj1\Desktop\besu\besu\ethereum\core\src\test\java\org\hyperledger\besu\ethereum\vm\blockchain\BlockchainReferenceTest_0.java
C:\Users\bauerj1\Desktop\besu\besu\ethereum\core\src\test\java\org\hyperledger\besu\ethereum\vm\blockchain\BlockchainReferenceTest_1.java
...
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3-rc-4/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 26s
70 actionable tasks: 4 executed, 66 up-to-date`
julez (Mon, 23 Mar 2020 09:10:38 GMT):
Or I get this error: `Could not initialize class org.codehaus.groovy.runtime.InvokerHelper`
shemnon (Mon, 23 Mar 2020 14:54:46 GMT):
run `build clean` first
faraggi (Mon, 23 Mar 2020 16:00:34 GMT):
Hell everyone, We've been talking to the team behind Ethereum on ARM / ethraspbian (https://github.com/diglos/userpatches) in order to have it support Besu.
https://twitter.com/EthereumOnARM/status/1242002111396745216
Does any one have any experience and/or feedback on this.
We know 32bits and RAM to be major bottle necks to this project.
What else should we be considering?
bobsummerwill (Mon, 23 Mar 2020 17:12:54 GMT):
@faraggi I have been deeply down this rabbit hole myself:
https://doublethink.co/2015/12/31/a-tale-of-two-abis/
https://doublethink.co/2015/11/30/first-working-ethereum-c-cross-builds/
https://github.com/doublethinkco/cpp-ethereum-cross
I do not know whether it is really going to be worth putting too much effort into supporting 32-bit devices anymore, to be honest.
RAM obviously an issue, but storage and need for SSDs even more of a constraint.
bobsummerwill (Mon, 23 Mar 2020 17:13:28 GMT):
My DEVCON2 talk in 2016 was on Ethereum for Resource Constrained Devices:
bobsummerwill (Mon, 23 Mar 2020 17:13:29 GMT):
https://www.youtube.com/watch?v=S7jT7IWRVlw
bobsummerwill (Mon, 23 Mar 2020 17:14:25 GMT):
In retrospect, our thinking there was pretty naive.
Getting a mainnet node running on a flagship mobile device even is still a big stretch.
bobsummerwill (Mon, 23 Mar 2020 17:14:44 GMT):
Great that Ethereum on ARM are having a go.
arash009 (Mon, 23 Mar 2020 21:46:10 GMT):
Hi. Truffle test with ganache sometimes works slightly differetly to real ethereum clients. Has this worked with any other client and is specific to Besu? Unfortunately we dont have details of the contracts being used to help there.
madelinemurray (Mon, 23 Mar 2020 23:37:13 GMT):
@marlow - we're looking in this one but haven't been able to reproduce yet. How are you sending transactions? Where are you calculating the nonces?
RealDeanZhao (Tue, 24 Mar 2020 01:47:12 GMT):
Hi, I have solved the issue. There was an issue encoding function data using web3j in my code.
RealDeanZhao (Tue, 24 Mar 2020 01:47:12 GMT):
Hi, I have solved the issue. There was a bug encoding function data using web3j in my code.
pinges (Tue, 24 Mar 2020 03:17:07 GMT):
https://github.com/hyperledger/besu/issues/514 mentions that it looks like the private transaction was executed correctly, as it was possible to retrieve the transaction receipt. Do you see that as well?
dbdagr8 (Tue, 24 Mar 2020 06:33:31 GMT):
What should be the ideal time for Smart Contract Invocation on Besu 3 node clique network with difficulty of '0x1' in genesis file? For me it is taking 14 sec for each transaction which I think is quite high.
cjhare (Tue, 24 Mar 2020 06:55:43 GMT):
> difficulty of '0x1' in genesis file
The Clique consensus mechanism does not use `difficulty` field in the genesis config.
For Clique network, that `config`object supports a `clique` child object, which can defines the time between blocks being produced e.g.
```
"config": {
...
"clique": {
"blockperiodseconds": 15,
"epochlength": 30000
}
},
```
`blockperiodseconds` is rough time between blocks, which I believe may default to 15 seconds
cjhare (Tue, 24 Mar 2020 06:56:51 GMT):
For more exciting details about Clique in Hyperledger Besu: https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/Clique/
rranjan3 (Tue, 24 Mar 2020 07:06:13 GMT):
I see this error when I try to make multiple simultaneously request(using web3.py) to a Besu client(v1.3.9) using the same account- Transaction 0x348e030e065b63c976c8a57caae511f16b9d9a546a2316155439d6baa202845d is not in the chain, after 120 seconds.
Interleaving them by a couple of seconds works perfectly fine. Is there a setting or something basic I am missing?
rranjan3 (Tue, 24 Mar 2020 07:06:13 GMT):
I see this error when I try to make multiple simultaneously request(using web3.py) to a Besu client(v1.3.9) using the same account-
`Transaction 0x348e030e065b63c976c8a57caae511f16b9d9a546a2316155439d6baa202845d is not in the chain, after 120 seconds. `
Interleaving them by a couple of seconds works perfectly fine. Is there a setting or something basic I am missing?
rranjan3 (Tue, 24 Mar 2020 07:06:13 GMT):
I see this error when I try to make multiple simultaneously request(using web3.py) to a Besu client(v1.3.9) using the same account-
`Transaction 0x348e030e065b63c976c8a57caae511f16b9d9a546a2316155439d6baa202845d is not in the chain, after 120 seconds. `
Interleaving them by a couple of seconds works perfectly fine. Is there a setting or something basic I am missing?
rranjan3 (Tue, 24 Mar 2020 07:06:13 GMT):
I see this error when I try to make multiple simultaneously request(using web3.py) to a Besu client(v1.3.9) using the same account-
`Transaction 0x348e030e065b63c976c8a57caae511f16b9d9a546a2316155439d6baa202845d is not in the chain, after 120 seconds. `
Interleaving them by a couple of seconds works perfectly fine. Is there a setting or something basic I am missing?
This is how the node starts(snippet from docker file)-
```image: hyperledger/besu:1.3.9
command: >-
--data-path=/var/lib/besu --genesis-file=/var/lib/besu/genesis.json --rpc-http-enabled
--rpc-http-host=0.0.0.0 --rpc-ws-enabled --rpc-ws-host=0.0.0.0 --discovery-enabled=false
--p2p-host=0.0.0.0 --rpc-http-api=ETH,NET,WEB3,DEBUG,MINER,ADMIN,TXPOOL,CLIQUE
--rpc-ws-api=ETH,NET,WEB3,DEBUG,MINER,ADMIN,TXPOOL,CLIQUE --rpc-http-cors-origins='*'
--host-whitelist='*' --min-gas-price=0``
rranjan3 (Tue, 24 Mar 2020 07:06:13 GMT):
I see this error when I try to make multiple simultaneously request(using web3.py) to a Besu client(v1.3.9) using the same account-
`Transaction 0x348e030e065b63c976c8a57caae511f16b9d9a546a2316155439d6baa202845d is not in the chain, after 120 seconds. `
Interleaving them by a couple of seconds works perfectly fine. Is there a setting or something basic I am missing?
This is how the node starts(snippet from docker file)-
```image: hyperledger/besu:1.3.9
command: >-
--data-path=/var/lib/besu --genesis-file=/var/lib/besu/genesis.json --rpc-http-enabled
--rpc-http-host=0.0.0.0 --rpc-ws-enabled --rpc-ws-host=0.0.0.0 --discovery-enabled=false
--p2p-host=0.0.0.0 --rpc-http-api=ETH,NET,WEB3,DEBUG,MINER,ADMIN,TXPOOL,CLIQUE
--rpc-ws-api=ETH,NET,WEB3,DEBUG,MINER,ADMIN,TXPOOL,CLIQUE --rpc-http-cors-origins='*'
--host-whitelist='*' --min-gas-price=0
dbdagr8 (Tue, 24 Mar 2020 07:10:01 GMT):
I tried with Curl API. It is quite fast and 100 transactions got completed in 100 secs. If only one transaction, it completes in 6-7 secs.
With metamask and web3.eth.sendSignedTransaction, time is high.
cjhare (Tue, 24 Mar 2020 07:15:27 GMT):
Ah, you have mindful when measuring performance of PoA mechanisms, as they exhibit different behaviours to PoWs
cjhare (Tue, 24 Mar 2020 07:17:50 GMT):
With Clique, a block is produced at fixed intervals, irrespective of throughput ...by which I mean, if you submit a transaction just after a block is produced, your transaction will take ~14 secs (as that is when the next block is produced).
Under a Pow mechanism with an extremely low difficulty, it would be pretty much instantly processed
dbdagr8 (Tue, 24 Mar 2020 07:21:42 GMT):
oh! Got your point.
julez (Tue, 24 Mar 2020 08:44:48 GMT):
Thank you, sadly the error remains. I also get this Error for every task: `> Task :nat:compileJava UP-TO-DATE
Errors occurred while build effective model from C:\Users\bauerj1\.gradle\caches\modules-2\files-2.1\io.sundr\sundr-codegen\0.18.0\a2db6856adbfe6a2eaf355284feafe127e6602cb\sundr-codegen-0.18.0.pom:
'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is /usr/lib/jvm/java-8-jdk/jre/../lib/tools.jar in io.sundr:sundr-codegen:0.18.0`
Maybe it's connected to the error above.
julez (Tue, 24 Mar 2020 08:44:48 GMT):
Thank you, sadly the error remains. I also get this Error for every task:
```
> Task :nat:compileJava UP-TO-DATE
Errors occurred while build effective model from C:\Users\bauerj1\.gradle\caches\modules-2\files-2.1\io.sundr\sundr-codegen\0.18.0\a2db6856adbfe6a2eaf355284feafe127e6602cb\sundr-codegen-0.18.0.pom:
'dependencies.dependency.systemPath' for com.sun:tools:jar must specify an absolute path but is /usr/lib/jvm/java-8-jdk/jre/../lib/tools.jar in io.sundr:sundr-codegen:0.18.0
```
Maybe it's connected to the error above.
marlow (Tue, 24 Mar 2020 08:49:16 GMT):
Correct, I was able to get the transaction receipt. I didn't specify any nonces in the transactions params itself. Next time I encounter the error I will try to make a repro case, if you haven't already managed to do that
marlow (Tue, 24 Mar 2020 08:49:56 GMT):
This is an example call we use to make transactions:
```
const contractOptions = {
data: `0x${binary}${constructorArgs}`,
privateFrom: process.env.ORION_PUBLIC_KEY,
privacyGroupId,
privateKey: process.env.ORION_PRIVATE_KEY,
};
const transactionHash = await this.web3.eea.sendRawTransaction(
contractOptions,
);
```
faraggi (Tue, 24 Mar 2020 09:06:18 GMT):
An update on the EthonARM information: https://www.reddit.com/r/ethereum/comments/fo1p2b/ethereum_on_arm_nethermind_and_hyperledger_besu/
shemnon (Tue, 24 Mar 2020 15:09:37 GMT):
I think they are all being sent with the same nonce. Transactions with the same nonce will result in all but one of them never being mined.
srv.twry (Tue, 24 Mar 2020 16:27:45 GMT):
Has joined the channel.
rranjan3 (Tue, 24 Mar 2020 17:02:39 GMT):
Oh. Yes it is the case. Thanks @shemnon
But trying to work around it, I cannot assign a random number to the nonce neither can I do away with it. How do I use multiple transaction generator then?
pedrocrvz (Tue, 24 Mar 2020 17:04:42 GMT):
Has joined the channel.
shemnon (Tue, 24 Mar 2020 17:05:58 GMT):
you need to keep a shared counter. If this is against multiple processes it becomes problematic. An alternative is to use a separate account per process.
pedrocrvz (Tue, 24 Mar 2020 17:18:34 GMT):
Worker threads do not seem to finish. Invalid transaction logs are looping.
rranjan3 (Tue, 24 Mar 2020 17:26:35 GMT):
Thanks :)
How do we pull down the mining time though in Besu?
shemnon (Tue, 24 Mar 2020 17:29:40 GMT):
You mean block time? There are no APIs for that and it can vary based on mining algorithm. Ethash targets 15s and is not tunable IIRC, it is also not guessable as it is probabalistic. Clique and IBFT2 can be tuned in the genesis.json file to privide a different block time. `blockperiodseconds` in the `clique` or `ibft2` object of the genesis.json
magooster (Tue, 24 Mar 2020 18:08:43 GMT):
If I submit multiple private transactions to a node with an incrementing nonce I see the following error {"jsonrpc":"2.0","id":1,"error":{"code":-32006,"message":"Incorrect nonce"}}
magooster (Tue, 24 Mar 2020 18:08:57 GMT):
Besu logs show
magooster (Tue, 24 Mar 2020 18:09:37 GMT):
2020-03-24 17:45:10.850+00:00 | vert.x-worker-thread-9 | DEBUG | PrivateTransactionValidator | Validating private transaction fields of 0x12b07edd2178b0ed4c8357be4d260b52435e88598a6efa8925729fc9213bb5c2
2020-03-24 17:45:10.850+00:00 | vert.x-worker-thread-9 | DEBUG | PrivateTransactionValidator | Validating the signature of Private Transaction 0x12b07edd2178b0ed4c8357be4d260b52435e88598a6efa8925729fc9213bb5c2
2020-03-24 17:45:10.850+00:00 | vert.x-worker-thread-9 | DEBUG | PrivateTransactionValidator | Validating actual nonce 28, with expected nonce 28
2020-03-24 17:45:10.851+00:00 | vert.x-worker-thread-9 | DEBUG | PrivateTransactionValidator | Validating private transaction fields of 0xd9a3da8619e5e8bd688a7960f5debb734c3470c458eb1a7929e2d1910206883f
2020-03-24 17:45:10.851+00:00 | vert.x-worker-thread-9 | DEBUG | PrivateTransactionValidator | Validating the signature of Private Transaction 0xd9a3da8619e5e8bd688a7960f5debb734c3470c458eb1a7929e2d1910206883f
2020-03-24 17:45:10.851+00:00 | vert.x-worker-thread-9 | DEBUG | PrivateTransactionValidator | Validating actual nonce 0, with expected nonce 0
2020-03-24 17:45:10.852+00:00 | vert.x-worker-thread-3 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eea_sendRawTransaction
2020-03-24 17:45:10.856+00:00 | vert.x-worker-thread-3 | DEBUG | PrivateTransactionValidator | Validating private transaction fields of 0x408bbf6795152a10930cbdb66d6640d611c598b6ce19386ba83be74275013c07
2020-03-24 17:45:10.856+00:00 | vert.x-worker-thread-3 | DEBUG | PrivateTransactionValidator | Validating the signature of Private Transaction 0x408bbf6795152a10930cbdb66d6640d611c598b6ce19386ba83be74275013c07
2020-03-24 17:45:10.856+00:00 | vert.x-worker-thread-3 | DEBUG | PrivateTransactionValidator | Validating actual nonce 29, with expected nonce 28
2020-03-24 17:45:10.856+00:00 | vert.x-worker-thread-3 | DEBUG | PrivateTransactionValidator | Private Transaction nonce 29, does not match sender account nonce 28.
magooster (Tue, 24 Mar 2020 18:12:42 GMT):
Each request is processed in a separate worker thread - so is checking of sender nonce vs account nonce thread safe?
benjamincburns (Tue, 24 Mar 2020 19:03:47 GMT):
Has joined the channel.
lucassaldanha (Tue, 24 Mar 2020 21:58:07 GMT):
Hi @magooster. May I ask what are you using to create the signed tx? EthSigner, Web3j, Websjs-eea?
Also, have you checked if all previous txs have been processed successfully? I'm thinking that If there was a invalid tx in hte batch of txs, the account nonce wouldn't be incremented for that tx, so the following txs that you sent would need to take that into account (e.g. if tx 28 failed, the next tx shouldn't have nonce 29, it should be 28 "again").
magooster (Tue, 24 Mar 2020 21:58:22 GMT):
web3js-eea
magooster (Tue, 24 Mar 2020 22:00:42 GMT):
first tx works - get event emiited, second fails with invalid nonce
magooster (Tue, 24 Mar 2020 22:00:42 GMT):
Event Emited: 0x000000000000000000000000fe3b557e8fb62b89f4916b721be55ceb828dbd7300000000000000000000000000000000000000000000000000000000000003e8
Private Tx 0x3b1be86759b93e9815526a72752b2e963330993c868d319b7d2e9bfbfa11bce0
Marker Transaction 0xd7d7dfc4928bfc3ddc27ad903b3bc31009d4ee1e0520f1dc840a02a9b457825
magooster (Tue, 24 Mar 2020 22:04:28 GMT):
2020-03-24 22:01:57.394+00:00 | vert.x-worker-thread-5 | DEBUG | PrivateTransactionValidator | Validating private transaction fields of 0x3b1be86759b93e9815526a72752b2e963330993c868d319b7d2e9bfbfa11bce0
2020-03-24 22:01:57.394+00:00 | vert.x-worker-thread-5 | DEBUG | PrivateTransactionValidator | Validating the signature of Private Transaction 0x3b1be86759b93e9815526a72752b2e963330993c868d319b7d2e9bfbfa11bce0
2020-03-24 22:01:57.394+00:00 | vert.x-worker-thread-5 | DEBUG | PrivateTransactionValidator | Validating actual nonce 38, with expected nonce 38
2020-03-24 22:01:57.395+00:00
magooster (Tue, 24 Mar 2020 22:04:53 GMT):
2nd tx with nonce 39
magooster (Tue, 24 Mar 2020 22:05:19 GMT):
2020-03-24 22:01:57.400+00:00 | vert.x-worker-thread-6 | DEBUG | PrivateTransactionValidator | Validating private transaction fields of 0xaef2c2c2d5ed799b954bec88d9990e89afaba4564acae8aa3629c7beed23f0c2
2020-03-24 22:01:57.400+00:00 | vert.x-worker-thread-6 | DEBUG | PrivateTransactionValidator | Validating the signature of Private Transaction 0xaef2c2c2d5ed799b954bec88d9990e89afaba4564acae8aa3629c7beed23f0c2
2020-03-24 22:01:57.400+00:00 | vert.x-worker-thread-6 | DEBUG | PrivateTransactionValidator | Validating actual nonce 39, with expected nonce 38
magooster (Tue, 24 Mar 2020 22:09:20 GMT):
PrivateTransactionValidator has a check for matching account and transaction nonce...
magooster (Tue, 24 Mar 2020 22:21:38 GMT):
Given that all requests are processed using executeBlocking and hence a worker thread - how is account nonce synchronised across them?
lucassaldanha (Tue, 24 Mar 2020 22:45:43 GMT):
The account nonce validation happens in two different places. One is when accepting a tx via JSON-RPC (adding the tx to the pool). The other place is when tx are processed included in a block (during mining). The check done at the JSON-RPC layer is done against the latest nonce value for the account. This is a read-only validation, it won't affect the account nonce.
The only place that the account nonce is affected is when the transaction is being processed and added to a block. And we have all the necessary arrangements to ensure thread safety at that point.
What version of Besu are you using? I wonder if your case might've been solved by https://github.com/hyperledger/besu/pull/557
lucassaldanha (Tue, 24 Mar 2020 22:46:04 GMT):
The account nonce validation happens in two different places. One is when accepting a tx via JSON-RPC (adding the tx to the pool). The other place is when tx are processed included in a block (during mining). The check done at the JSON-RPC layer is done against the latest nonce value for the account. This is a read-only validation, it won't affect the account nonce.
The only place that the account nonce is affected is when the transaction is being processed and added to a block. And we have all the necessary arrangements to ensure thread safety at that point.
What version of Besu are you using? I wonder if your case might've been solved by https://github.com/hyperledger/besu/pull/557
madelinemurray (Tue, 24 Mar 2020 23:36:21 GMT):
Thanks @marlow. We haven't managed to reproduce yet it - if you could make a repro case that would be great. What volume of transactions are you sending?
madelinemurray (Tue, 24 Mar 2020 23:46:58 GMT):
What versions of Besu and Orion are you using?
magooster (Wed, 25 Mar 2020 07:25:02 GMT):
I was using a snapshot based off 1.4.2 but might not have that fix, let me rebuild and check. Looks exactly like the issue however.
magooster (Wed, 25 Mar 2020 08:35:15 GMT):
Whilst the fix allows multiple private txs to be sent 'concurrently' - this then manifests in a problem with the privacy marker transaction (when using a fixed signing key)
magooster (Wed, 25 Mar 2020 08:36:10 GMT):
All relates to the privacy marker transaction nonce
magooster (Wed, 25 Mar 2020 08:37:08 GMT):
which ultimately determines order of transactions
magooster (Wed, 25 Mar 2020 08:38:09 GMT):
can get duplicate nonces or even out of order with respect to private transaction nonce.
magooster (Wed, 25 Mar 2020 08:38:40 GMT):
Easy to replicate just fire two private transactions in quick succession...
magooster (Wed, 25 Mar 2020 08:44:26 GMT):
I adding some logging for the generated PMT nonce and see this for example...
magooster (Wed, 25 Mar 2020 08:44:29 GMT):
2020-03-25 08:41:42.570+00:00 | vert.x-worker-thread-16 | DEBUG | EeaSendRawTransaction | Privacy Marker Transaction nonce 7755
2020-03-25 08:41:42.570+00:00 | vert.x-worker-thread-17 | DEBUG | EeaSendRawTransaction | Privacy Marker Transaction nonce 7755
magooster (Wed, 25 Mar 2020 08:46:29 GMT):
Happy to raise github issue with all the details
magooster (Wed, 25 Mar 2020 10:39:08 GMT):
raised https://github.com/hyperledger/besu/issues/571
madelinemurray (Wed, 25 Mar 2020 20:06:13 GMT):
Thanks for the extra detail and raising the issue. We're looking into it.
SuzanaMaranhao (Wed, 25 Mar 2020 20:33:40 GMT):
Has joined the channel.
SuzanaMaranhao (Wed, 25 Mar 2020 20:33:42 GMT):
A very common way to create complex queries involving ethereum events in dapps is compose in three steps: (1) to read all events, (2) to store them in a database and (3) to query the database itself making the necessary joins. I am wondering if it is possible to have a better solution using Hyperledger besu node #besu. I do not want to maintain a separate database to this.
atoulme (Thu, 26 Mar 2020 00:46:05 GMT):
hey folks starting to work on eth65, which requires access to the transaction pool.
atoulme (Thu, 26 Mar 2020 00:46:50 GMT):
Right now I am rewiring the code so PendingTransactions is going to be available to the EthProtocolManager. Do you think TransactionPool should be used instead?
marlow (Thu, 26 Mar 2020 06:41:59 GMT):
Haven't been able to reproduce yet either. The error also only occasionally passed and was not always there. Was using hyperledger/besu:1.4 and pegasyseng/orion:1.5. I switched my setup from an earlier kubectl version to the latest helm chart.
marlow (Thu, 26 Mar 2020 06:41:59 GMT):
Haven't been able to reproduce yet either. The error also only occasionally passed and was not always there. Was using `hyperledger/besu:1.4` and `pegasyseng/orion:1.5`. I switched my setup from an earlier kubectl version to the latest helm chart.
marlow (Thu, 26 Mar 2020 06:43:50 GMT):
Also came across some other bug/enchancement that I can reproduce. I described it in https://github.com/hyperledger/besu/issues/572
yehia67 (Thu, 26 Mar 2020 13:58:06 GMT):
Has joined the channel.
yehia67 (Thu, 26 Mar 2020 14:14:58 GMT):
Hello everyone.
I am trying to create a besu private network using IBFT2 on AWS VPC. I follow this tutorial https://pegasys.tech/setting-up-hyperledger-besu-in-aws/
I have 2 instances on private subnets and 2 others on public subnets. One of my private instances is the bootnode.
I run it using this command for bootnode
`besu-1.3.6/bin/besu --data-path=data --genesis-file=./genesis.json --rpc-http-enabled --rpc-http-api=IBFT --rpc-http-host=0.0.0.0 --host-whitelist="*" --rpc-http-cors-origins="all" --metrics-enabled --metrics-host=0.0.0.0 --metrics-port=9545 --p2p-host=< Private ip> & `
then I run this command on each instance
` besu-1.3.6/bin/besu --data-path=data --genesis-file=./genesis.json --node-private-key-file=/opt/besu/keys/key --bootnodes=enode://
mwagner (Thu, 26 Mar 2020 14:20:44 GMT):
Has joined the channel.
faraggi (Thu, 26 Mar 2020 14:38:25 GMT):
*BESU IS ACTIVE STATUS*
This morning the Hyperledger TSC voted and approved Besu to go to active status in Hyperledger.
faraggi (Thu, 26 Mar 2020 14:38:34 GMT):
:mega:
bobsummerwill (Thu, 26 Mar 2020 14:46:23 GMT):
Awesome! Well deserved.
Just joined the call late. Very happy the status has finally been granted :-)
shemnon (Thu, 26 Mar 2020 15:39:03 GMT):
Not terribly familiar with that code, but I think TransactionPool should be used instead. PendingTransactions looks to be optimized for block production whereas TransactionPool is more optimized for the P2P side of the processing. So for Eth/65 TransactionPool is likely what you really need.
magooster (Thu, 26 Mar 2020 16:15:02 GMT):
Isn't this due to the way web3.eea.sendRawTransaction generates the tx nonce
magooster (Thu, 26 Mar 2020 16:16:03 GMT):
It use web3.priv.getTransactionCount, so if you send mulitple transactions in succession they will use the same nonce
magooster (Thu, 26 Mar 2020 16:17:30 GMT):
It uses web3.priv.getTransactionCount call, so if you generate multiple txs in quick succession they will use the same nonce
magooster (Thu, 26 Mar 2020 16:18:34 GMT):
Whilst they pass pre validation check, they fail during block processing
magooster (Thu, 26 Mar 2020 16:18:34 GMT):
Whilst they pass pre validation check, they fail during block processing (One will be processed, the others sharing the nonce will fail with a nonce too low error)
VipinB (Thu, 26 Mar 2020 17:04:31 GMT):
Great news for you guys!
knagware9 (Thu, 26 Mar 2020 17:18:08 GMT):
Great!!
lucassaldanha (Thu, 26 Mar 2020 18:47:11 GMT):
My assumption was that web3js-eea was keeping a local cache of the nonce. So after sending the first tx, it would stop asking for the next nonce and using the next "expected" nonce. I'll check with the web3js-eea team if this is the case.
antonispoulakis (Thu, 26 Mar 2020 18:55:10 GMT):
Hi guys,
We're using Besu(version 1.4.1) with gas price = 0 and there is a strange behaviour regarding gas limit. We are using estimateGasPrice from web3 to decide the gas limit for the transactions but still, some transactions occasionally run out of gas. To get around that we were multiplying the estimated gas by 1.1 which was fine for some time until transactions started reverting again due to gas. We started multiplying by 2 but some transactions will still run out of gas.
Could there be any particular reason why this happens? Is there a side effect on setting the gas limit to a really high value?
SuzanaMaranhao (Thu, 26 Mar 2020 19:20:05 GMT):
I have now understood that I can read Besu info about nodes: https://github.com/hyperledger/besu/blob/master/ethereum/api/src/main/resources/schema.graphqls. Are the events of smart contracts included in the "logs"? Are there any detailed documentation?
SuzanaMaranhao (Thu, 26 Mar 2020 19:29:49 GMT):
For example, how should I interpret the data, that is encoded as bytes? For example, is it a concatenation of the name and the args of the event?
Daniela_Barbosa (Thu, 26 Mar 2020 19:51:13 GMT):
Has joined the channel.
magooster (Thu, 26 Mar 2020 21:58:12 GMT):
No the web3.eea.sendRawTransaction - calls web3.priv.getTransactionCount for each request to get the nonce (you can override in the options supplied to the web3.eea.sendRawTransaction request.
lucassaldanha (Thu, 26 Mar 2020 21:58:39 GMT):
Thanks! I'm gonna follow up with them.
lucassaldanha (Thu, 26 Mar 2020 21:59:03 GMT):
But you are right. In this scenario, one would need to keep track of the nonces instead of relying on the getTxCount responses.
lucassaldanha (Thu, 26 Mar 2020 21:59:48 GMT):
I believe if could keep some kind of local cache of the nonce in the library, it would make this easier for this use case of sending multiple txs in sequence.
magooster (Thu, 26 Mar 2020 21:59:54 GMT):
I discovered this then ran into the future nonce issue
magooster (Thu, 26 Mar 2020 22:03:16 GMT):
https://github.com/hyperledger/besu/pull/557
madelinemurray (Thu, 26 Mar 2020 23:13:01 GMT):
We have this doc on events and logs - https://besu.hyperledger.org/en/stable/Concepts/Events-and-Logs/
madelinemurray (Fri, 27 Mar 2020 03:56:55 GMT):
🎉 Hyperledger Besu 1.4.2 is out 🎉
We’ve added more parity-style tracing (`trace_block`) and enhanced the `syncing` query and `eth_syncing` JSON-RPC API
Get it at https://github.com/hyperledger/besu/releases/1.4.2
rranjan3 (Fri, 27 Mar 2020 06:18:21 GMT):
Deploying my contracts with truffle, at time I get stuck here -
```Starting migrations...
======================
> Network name: 'besu-test'
> Network id: 12345
> Block gas limit: 0x2fefd800
1_initial_migration.js
======================
Replacing 'Migrations'
----------------------
> transaction hash: 0x775ad8656a161552ae7d16d7709d3788cf3e527c3a395e811acaf5080d7a1d02
> Blocks: 0 Seconds: 4
```
Retries help me out of this. But I am not able to get what causes this.
rranjan3 (Fri, 27 Mar 2020 06:18:21 GMT):
Deploying my contracts with truffle(truffle migrate --network besu-test), at time I get stuck here -
```Starting migrations...
======================
> Network name: 'besu-test'
> Network id: 12345
> Block gas limit: 0x2fefd800
1_initial_migration.js
======================
Replacing 'Migrations'
----------------------
> transaction hash: 0x775ad8656a161552ae7d16d7709d3788cf3e527c3a395e811acaf5080d7a1d02
> Blocks: 0 Seconds: 4
```
Retries help me out of this. But I am not able to get what causes this.
dbdagr8 (Fri, 27 Mar 2020 12:00:32 GMT):
@cjhare Can you suggest some good tool to stress test my besu network?
arunog (Fri, 27 Mar 2020 17:31:27 GMT):
Hello everyone, I'm testing hyperledger besu with kubernetes using this helm: "https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm/ibft2-with-privacy/besu". I provisioned new node outside k8s cluster, and my intention is to connect this node with nodes in k8s. I've just seen this example of ingress "https://github.com/PegaSysEng/besu-kubernetes/blob/master/helm/ingress/ingress-rules-besu.yaml", but only works for the RPC calls and monitoring dashboards.. Are there any example with TCP 8545, and UDP 30303?
Other question, to enable peer discovery, is it only necessary 30303 UDP port open for inbound connections? Or also TCP?
Thanks in advance
arunog (Fri, 27 Mar 2020 17:31:27 GMT):
Hello everyone, I'm testing hyperledger besu with kubernetes using this helm: "https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm/ibft2-with-privacy/besu". I provisioned new node outside k8s cluster, and my intention is to connect this node with nodes in k8s. I've just seen this example of ingress "https://github.com/PegaSysEng/besu-kubernetes/blob/master/helm/ingress/ingress-rules-besu.yaml", but only works for the RPC calls and monitoring dashboards.. Are there any example with TCP 8545, and UDP 30303?
Other question, to enable peer discovery, is it only necessary 30303 UDP port open for inbound connections? Or also TCP? Because when I try to create a ingress or loadbalancer service with both protocols appears the next error:
Thanks in advance
arunog (Fri, 27 Mar 2020 17:31:27 GMT):
Hello everyone, I'm testing hyperledger besu with kubernetes using this helm: "https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm/ibft2-with-privacy/besu". I provisioned new node outside k8s cluster, and my intention is to connect this node with nodes in k8s. I've just seen this example of ingress "https://github.com/PegaSysEng/besu-kubernetes/blob/master/helm/ingress/ingress-rules-besu.yaml", but only works for the RPC calls and monitoring dashboards.. Are there any example with TCP 8545, and UDP 30303?
Other question, to enable peer discovery, is it only necessary 30303 UDP port open for inbound connections? Or also TCP? Because when I try to create a ingress or loadbalancer service with both protocols appears the next error:
"Error: release besu failed: Service "besu-validator1" is invalid: spec.ports: Invalid value: []core.ServicePort{core.ServicePort{Name:"json-rpc", Protocol:"TCP", Port:8545, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"json-rpc"}, NodePort:0}, core.ServicePort{Name:"ws", Protocol:"TCP", Port:8546, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"ws"}, NodePort:0}, core.ServicePort{Name:"graphql", Protocol:"TCP", Port:8547, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"graphql"}, NodePort:0}, core.ServicePort{Name:"rlpx", Protocol:"TCP", Port:30303, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"rlpx"}, NodePort:0}, core.ServicePort{Name:"discovery", Protocol:"UDP", Port:30303, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"discovery"}, NodePort:0}}: cannot create an external load balancer with mix protocols"
Thanks in advance
arunog (Fri, 27 Mar 2020 17:31:27 GMT):
Hello everyone, I'm testing hyperledger besu with kubernetes using this helm: "https://github.com/PegaSysEng/besu-kubernetes/tree/master/helm/ibft2-with-privacy/besu". I provisioned new k8s cluster, and my intention is to connect both. I've just seen this example of ingress "https://github.com/PegaSysEng/besu-kubernetes/blob/master/helm/ingress/ingress-rules-besu.yaml", but only works for the RPC calls and monitoring dashboards.. Are there any example with TCP 8545, and UDP 30303?
Other question, to enable peer discovery, is it only necessary 30303 UDP port open for inbound connections? Or also TCP? Because when I try to create a ingress or loadbalancer service with both protocols appears the next error:
"Error: release besu failed: Service "besu-validator1" is invalid: spec.ports: Invalid value: []core.ServicePort{core.ServicePort{Name:"json-rpc", Protocol:"TCP", Port:8545, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"json-rpc"}, NodePort:0}, core.ServicePort{Name:"ws", Protocol:"TCP", Port:8546, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"ws"}, NodePort:0}, core.ServicePort{Name:"graphql", Protocol:"TCP", Port:8547, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"graphql"}, NodePort:0}, core.ServicePort{Name:"rlpx", Protocol:"TCP", Port:30303, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"rlpx"}, NodePort:0}, core.ServicePort{Name:"discovery", Protocol:"UDP", Port:30303, TargetPort:intstr.IntOrString{Type:1, IntVal:0, StrVal:"discovery"}, NodePort:0}}: cannot create an external load balancer with mix protocols"
Thanks in advance
cjhare (Sun, 29 Mar 2020 23:35:14 GMT):
@dbdagr8 I believe we use HyperLedger Caliper for some of the load testing, but @shemnon might be able to shed further light on that (or provide the correct information) :relaxed:
madelinemurray (Mon, 30 Mar 2020 01:52:59 GMT):
:mega: We've identified a critical issue for privacy users with private transactions created using Hyperledger Besu v1.3.4 or earlier. If you have a network with private transaction created using v1.3.4 or earlier, please read the following and take the appropriate steps:
https://wiki.hyperledger.org/display/BESU/Critical+Issue+for+Privacy+Users
As always, the PegaSys tam is happy to answer any questions or help with any issues you have. :mega:
madelinemurray (Mon, 30 Mar 2020 01:52:59 GMT):
:mega: We've identified a critical issue for privacy users with private transactions created using Hyperledger Besu v1.3.4 or earlier. If you have a network with private transaction created using v1.3.4 or earlier, please read the following and take the appropriate steps:
https://wiki.hyperledger.org/display/BESU/Critical+Issue+for+Privacy+Users
As always, the PegaSys team is happy to answer any questions or help with any issues you have. :mega:
lucassaldanha (Mon, 30 Mar 2020 02:32:05 GMT):
Hi Suzana, the easiest way would be using a library like web3js or web3j. They will take care of decoding the data. If you want to do it yourself, I've found some articles online that can help (e.g. https://codeburst.io/deep-dive-into-ethereum-logs-a8d2047c7371).
amealwithbasil (Mon, 30 Mar 2020 03:04:34 GMT):
Has joined the channel.
amealwithbasil (Mon, 30 Mar 2020 03:04:35 GMT):
Hi, does Besu support private transactions on mainnet, and if it does, how does that work? Does each participant run an Orion node to handle the privacy?
shemnon (Mon, 30 Mar 2020 05:09:06 GMT):
Besu does not support Restricted Private Transactions (per the EEA spec, the kind that use orion) on Mainnet or public Testnet networks. Besu does support Unrestricted Private transactions done via smart contracts, such as those using the AZTEC protocol.
shemnon (Mon, 30 Mar 2020 05:15:08 GMT):
Besu Contributor Call tomorrow, 1 April APAC 30 Mar AMER - https://wiki.hyperledger.org/display/BESU/2020-04-01+Besu+Contributor+Call
shemnon (Mon, 30 Mar 2020 05:15:08 GMT):
Besu Contributor Call tomorrow, ~~1 April~~ 31 March APAC 30 Mar AMER - https://wiki.hyperledger.org/display/BESU/2020-03-31+Besu+Contributor+Call
shemnon (Mon, 30 Mar 2020 05:15:18 GMT):
Feel free to suggest or add agenda items
lucassaldanha (Mon, 30 Mar 2020 05:19:45 GMT):
Just to clarify. We have added in 1.4.0 experimental support to restricted private transactions on networks with non-finality (e.g. PoW - Mainnet).
The basic mechanism is that only participants of a private transaction will receive the private transaction payload in Orion and the PMT (privacy marker transaction) will be part of the public chain as any other public transaction.
lucassaldanha (Mon, 30 Mar 2020 05:22:58 GMT):
https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#early-access-features-1
sbs2001 (Mon, 30 Mar 2020 10:45:52 GMT):
Has joined the channel.
lshim (Mon, 30 Mar 2020 13:34:47 GMT):
Has joined the channel.
lshim (Mon, 30 Mar 2020 14:19:00 GMT):
Luke Shim
7:07am
Hi. If i were to setup a dapp on a public ethereum network using Besu I assume that this would be PoW but programmable in Java? But how would i create a dapp in a private ethereum network using PoA and could transactions on a private network connect to the public ethereum network? I.e. if there is a token created on a private Besu network could it be transferred to the public Ethereum network?
lucassaldanha (Mon, 30 Mar 2020 19:37:00 GMT):
My understanding is that you are referring to private networks as a network with private txs. In this context, private transactions are only visible by participants of a privacy group. There is no way to transfer tokens from a privacy group to the public network (at least not in a way that makes sense). :)
lucassaldanha (Mon, 30 Mar 2020 19:37:00 GMT):
My understanding is that you are referring to private networks as a network with private txs. In this context, private transactions are only visible by participants of a privacy group. There is no way to transfer tokens from a privacy group to the public network.
magooster (Mon, 30 Mar 2020 20:31:54 GMT):
For an IBFt2 based network is it possible to change the blockperiod after the chain has been up for a while (Can I just update genesis on each validator node)
trent.mohay (Mon, 30 Mar 2020 21:04:21 GMT):
@magooster at the moment, the answer is no, but its not quite that simple.
If you increased the period in the genesis file (say from 2 --> 5), blocks which were created with <5 second interval would appear to be invalid to nodes newly syncing the chain.
If you reduced the period (in all genesis files on the network) - I _suspect_ it would work, but it seems a little haphazard.
Finally - IBFT2 supports an additional section in its genesis file called "transitions" - its designed to allow a network to replace the network's validators at a given block-height - i.e. it allows the IBFT2 protocol to be 'forked' at a given block. At the moment, "transitions" do not support changing the block-period, but it could be updated to provide such a capability.
trent.mohay (Mon, 30 Mar 2020 21:04:21 GMT):
@magooster at the moment, the answer is no, but its not quite that simple.
If you increased the period in the genesis file (say from 2 --> 5), existing blocks which were created with <5 second interval would appear to be invalid to nodes newly syncing the chain (provided they were using the new genesis file).
If you reduced the period (in all genesis files on the network) - I _suspect_ it would work, but it seems a little haphazard.
Finally - IBFT2 supports an additional section in its genesis file called "transitions" - its designed to allow a network to replace the network's validators at a given block-height - i.e. it allows the IBFT2 protocol to be 'forked' at a given block. At the moment, "transitions" do not support changing the block-period, but it could be updated to provide such a capability.
magooster (Mon, 30 Mar 2020 21:11:33 GMT):
thanks
shemnon (Tue, 31 Mar 2020 00:28:23 GMT):
Contributor call in 30 minutes. My mistake on the header, I forgot march has 31 days.
shemnon (Tue, 31 Mar 2020 00:29:30 GMT):
https://consensys.zoom.us/j/524697595
lshim (Tue, 31 Mar 2020 01:51:31 GMT):
But, Besu uses Java and can run on a public Ethereum network as well?
lucassaldanha (Tue, 31 Mar 2020 01:51:44 GMT):
Correct.
lshim (Tue, 31 Mar 2020 02:02:57 GMT):
so with public network - advantage is to code in Java; with a private network - advantage is scalability using PoA? But, then why not just use Hyperledger Fabri instead for private network?
lucassaldanha (Tue, 31 Mar 2020 02:04:34 GMT):
Hi! I believe you are mixing a few concepts. I have replied to your message in the Besu mail list. In the future, it would be good if you could stick to one channel for your questions to avoid duplication.
https://lists.hyperledger.org/g/besu/topic/besu_public_vs_private/72652911
tezansahu (Wed, 01 Apr 2020 21:15:18 GMT):
Hi! I am trying to deploy Besu on Kubernetes. I followed the steps mentioned here: https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2-with-privacy
Now, I know the ClusterIP of the besu-node. I am unable to connect to the node usinh HTTP Provider of Web3py. Can someone help?
joshuafernandes (Wed, 01 Apr 2020 22:36:17 GMT):
Hello @tezansahu could you give us a little more info on your setup please? Where is this deployed and where are you connecting to the cluster-ip from (i.e within the cluster/ locally/ host)?
tezansahu (Thu, 02 Apr 2020 02:30:11 GMT):
Ok...so I have deployed besu-node on an AWS EC2 instance with kubernetes running on it. Since I have used kubectl, I have a ClusterIP for this node. Now, I tried to deploy another microservice which used web3py & kubernetes python SDK (to dynamically discover the ClusterIP of the besu-node). The ClusterIP is being discovered properly...but when I try w3 = Web3(Web3.HTTPProvider("http://" + besu_node_ip + ":8545"), from withiin the microservice, it does not connect to Besu. Moreover, I can still send raw JSON RPC requests from the microservice to the same besu_node_ip successfully, but can't connect using web3py.
Please let me know if there is a way out in using web3py...or I have to go ahead with simple JSON RPC requests.
joshuafernandes (Thu, 02 Apr 2020 03:53:34 GMT):
Thanks for that. Is this via minikube or similar? From what you describe this doesn't appear to be an issue relating to connecting to the node ie if you can still send reqs to it and it responds, the connection is fine.
You probably need to raise this issue on the web3py forums. I would suggest two things to get a little more info:
1. log the value of 'besu_node_ip' so you know what it is being resolved to
2. If this microservice is in the same namespace, you can use the env var directly i.e os.environ['BESU_NODE_SERVICE_HOST']. If you ssh into your pod and run `env` you should see the service hosts available there
tezansahu (Thu, 02 Apr 2020 03:55:11 GMT):
No...not by minikube
tezansahu (Thu, 02 Apr 2020 03:55:31 GMT):
Yeah...I tried logginf the value...and it shows the correct value
joshuafernandes (Thu, 02 Apr 2020 03:56:52 GMT):
:thumbsup: I'd suggest raising this with web3py then as the next step. There appears to be no reason why you can't connect to the node becuase its fine with normal reqs
tezansahu (Thu, 02 Apr 2020 04:10:41 GMT):
Ok
nikolas (Thu, 02 Apr 2020 11:47:54 GMT):
hi, I am using the sample poa network and exposed the websocket port to subscribe to events. I am trying to subscribe to smart-contract events, but I get back an "Invalid request" error. I am using the golang ethclient of go-ethereum package. Any hints please? My filter only looks for the deployed contract address, accepts everything else. Any hints please?
arunog (Thu, 02 Apr 2020 21:09:37 GMT):
Finally I have been able to connect nodes in aks with a docker node in another vm. What I could not, is to connect two nodes in different aks. Is there any configuration example to be able to do it? I have seen the --nat-method = KUBERNETES option, but I think it is not working.
arunog (Thu, 02 Apr 2020 21:09:37 GMT):
Finally I have been able to connect nodes in aks with a docker node in another vm. What I could not, is to connect two nodes in different aks. Is there any configuration example to be able to do it? I have seen the --nat-method = KUBERNETES option, but I think it is not working.
2020-04-03 19:01:09.559+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-04-03 19:01:09.573+00:00 | main | WARN | KubernetesNatManager | Failed update information using Kubernetes client SDK.
java.lang.IllegalStateException: Cannot locate Kubernetes config file.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.update(KubernetesNatManager.java:75) [besu-nat-1.4.2.jar:1.4.2]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:64) [besu-nat-1.4.2.jar:1.4.2]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:89) [besu-nat-1.4.2.jar:1.4.2]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.2.jar:1.4.2]
at org.hyperledger.besu.Runner.start(Runner.java:98) [besu-1.4.2.jar:1.4.2]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1753) [besu-1.4.2.jar:1.4.2]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1040) [besu-1.4.2.jar:1.4.2]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:926) [besu-1.4.2.jar:1.4.2]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:61) [besu-1.4.2.jar:1.4.2]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.2.jar:1.4.2]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1036) [besu-1.4.2.jar:1.4.2]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:911) [besu-1.4.2.jar:1.4.2]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.2.jar:1.4.2]
shemnon (Thu, 02 Apr 2020 21:29:23 GMT):
Do any RPC methods work? What are the CLI flags / config file options?
nikolas (Thu, 02 Apr 2020 21:30:42 GMT):
hi shemnon I am using the default docker-compose_poa file. I have currently added all the extra interfaces in the options to be sure.
nikolas (Thu, 02 Apr 2020 22:07:32 GMT):
Has joined the channel.
shemnon (Thu, 02 Apr 2020 22:30:42 GMT):
Can you provide a link? I don't have all the locations memorized.
shemnon (Thu, 02 Apr 2020 22:31:16 GMT):
Also, do any of the other APIs work? It is a connection problem?
nikolas (Fri, 03 Apr 2020 08:02:17 GMT):
the other apis seem work, there seems to be no connection problem. I get an "invalid request" response. I am using this https://github.com/PegaSysEng/besu-sample-networks, the docker-compose_poa as a target. What I try to do is subscribe with the ws port, which I have exposed to my localhost and the connection to it is successful, the request not.
adovale (Fri, 03 Apr 2020 10:55:22 GMT):
Has joined the channel.
adovale (Fri, 03 Apr 2020 10:55:23 GMT):
Hello,
Where can i get data about Hyperledger Besu performance? I am currently researching different EEA clients and would be great to know more about Besu.
Thank you very much in advance
faraggi (Fri, 03 Apr 2020 13:33:31 GMT):
There is a project doing Benchmarking for Besu and other Hyperldger projects. Check out https://www.hyperledger.org/projects/caliper
I don't believe they have official results out yet.
What kind of performance data are you looking for and how precise does it need to be?
nikolas (Fri, 03 Apr 2020 14:21:46 GMT):
Hi, are there any samples of event subscription to besu via websocket?
nikolas (Fri, 03 Apr 2020 14:22:00 GMT):
I try to make it work with the golang eth client, but get some issues
nikolas (Fri, 03 Apr 2020 14:32:54 GMT):
I am trying to subscribe to smart-contract events, but I get back an "Invalid request" error
adovale (Fri, 03 Apr 2020 14:36:36 GMT):
Hi faraggi, thank you for your answer.
To be honest, any information related to transactions per seconds (TPS) in a Besu network would be great.
But if you ask me, the ideal would be to know, for a IBFT network, how many private transactions per second (with Orion) can the network process, given that each transaction has, at leats, 3 participants.
adovale (Fri, 03 Apr 2020 14:36:36 GMT):
Hi faraggi, thank you for your answer.
To be honest, any information related to transactions per seconds (TPS) in a Besu network would be great.
But if you ask me, the ideal would be to know, for a IBFT network, how many private transactions per second (with Orion) can the network process, given that each transaction has, at least, 3 participants.
adovale (Fri, 03 Apr 2020 14:36:36 GMT):
Hi faraggi, thank you for your answer.
To be honest, any information related to transactions per seconds (TPS) in a Besu network would be great.
But if you ask me, the ideal would be to know, for a IBFT network, how many private transactions per second (with Orion) can the network process, given that each transaction involves, at least, 3 different nodes.
adovale (Fri, 03 Apr 2020 14:36:36 GMT):
Hi faraggi, thank you for your answer.
To be honest, any information related to transactions per seconds (TPS) in a Besu network would be great.
But the ideal would be to know, for a IBFT network, how many private transactions per second (with Orion) can the network process, given that each transaction involves, at least, 3 different nodes.
atoulme (Fri, 03 Apr 2020 17:24:13 GMT):
In the doc here, I see the --bootnodes option takes a bootnode directly from CLI: https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Bootnodes/#specify-a-bootnode
atoulme (Fri, 03 Apr 2020 17:24:29 GMT):
1. Can I specify multiple bootnodes? If yes, is a comma the separator?
atoulme (Fri, 03 Apr 2020 17:24:45 GMT):
2. Can I give a text file instead? See https://github.com/poanetwork/poa-chain-spec/blob/dai/bootnodes.txt for inspiration.
atoulme (Fri, 03 Apr 2020 17:27:08 GMT):
on 1. this page gives an answer: https://besu.hyperledger.org/en/stable/HowTo/Deploy/Bootnodes/
brunillopu.75 (Sat, 04 Apr 2020 07:30:32 GMT):
Has joined the channel.
brunillopu.75 (Sat, 04 Apr 2020 07:30:33 GMT):
Hi All, we've this issue: Error Go --> Error: Transaction was not mined within 50 blocks, please make sure your transaction was properly sent. Be aware that it might still be mined! Any suggesiton?
sumaids (Sat, 04 Apr 2020 10:44:49 GMT):
Has joined the channel.
sumaids (Sat, 04 Apr 2020 10:44:51 GMT):
#besu
shemnon (Sat, 04 Apr 2020 18:01:52 GMT):
Private network? Mainnet network? If it was mainnet there is a chance the network is congested and the gas payment was too low to be mined in 50 blocks. This happens on occasion.
sanjay_sharma87 (Sun, 05 Apr 2020 17:39:30 GMT):
Has joined the channel.
madelinemurray (Sun, 05 Apr 2020 20:03:50 GMT):
hi @nikolas - the documentation includes some examples for Besu: https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/RPC-PubSub/
shemnon (Sun, 05 Apr 2020 20:07:09 GMT):
We don't support a bootnodes file yet. You can add such data to a config.toml
shemnon (Sun, 05 Apr 2020 20:07:48 GMT):
You can specify the option multiple times, and you can separate bootnodes with commas, you can even do both at the same time. Here's the picocli definition - https://github.com/hyperledger/besu/blob/0e9add5ab60d238b76e8eefa96e2cbd5cfe33292/besu/src/main/java/org/hyperledger/besu/cli/BesuCommand.java#L259
nikolas (Sun, 05 Apr 2020 20:11:10 GMT):
Hi, thanks for jumping in to help. I am using teh eth go client and try to subscribe, but doesn't work. With ganache-cli seems to work fine. is there some incompatibility?
lucassaldanha (Sun, 05 Apr 2020 21:46:16 GMT):
Hi @nikolas could you be more specific about what client you are using to connect via websockets to Besu? A link to the website and the version being used would help! :)
nikolas (Sun, 05 Apr 2020 21:51:08 GMT):
I am using github.com/ethereum/go-ethereum/ethclient
nikolas (Sun, 05 Apr 2020 21:51:40 GMT):
i try to go the same way it would work with a geth client, but i get an "invalid request" response.
nikolas (Sun, 05 Apr 2020 21:52:18 GMT):
so what I tried now is, I implemented my own websocket client and it works
nikolas (Sun, 05 Apr 2020 21:52:41 GMT):
but... well... don't wanna do that really
nikolas (Sun, 05 Apr 2020 21:53:58 GMT):
FYI in am on v1.9.12 on the go eht client. and seems it is not compatible
nikolas (Sun, 05 Apr 2020 21:54:24 GMT):
...or I am am missing something ridiculous! :D
lucassaldanha (Sun, 05 Apr 2020 21:56:14 GMT):
I'm not sure if this client is meant to work with any Ethereum client (or if it is focused on Geth). Unfortunately, the API specs aren't set on stone and some implementations may differ.
I'd recommend you trying out Web3js (javascript) or Web3j (java) that are implementations that I know try to be compatible with as many Ethereum clients are possible.
Feel free to open a GitHub issue for this and we'll try to take a look at it.
nikolas (Sun, 05 Apr 2020 21:56:53 GMT):
u mean open a ticket on besu or the client side?
lucassaldanha (Sun, 05 Apr 2020 22:00:43 GMT):
On Besu side.
However, I gotta say that in terms of priorities, we focus on ensuring compatibility with libraries that are targeted to a variety of Ethereum clients (e.g. Web3js and Web3j).
If this is a bug on our side, we'll be more than happy to fix it. However, if this is just a implementation divergence, we might not prioritize it as much).
Out of curiosity, have you tried using this geth client with Other Ethereum client implementations (e.g. Parity or Nethermind)?
nikolas (Sun, 05 Apr 2020 22:05:33 GMT):
...well since the rest of the thing is implemented on golang, I would like to make it work and not to implement another stand-alone service in java or js just to be able to make event subscriptions. I ll try to dig deeper and gather as much info as I can to report.
lucassaldanha (Sun, 05 Apr 2020 22:05:49 GMT):
Thanks!
nikolas (Mon, 06 Apr 2020 11:14:58 GMT):
FYI: https://github.com/hyperledger/besu/issues/654 please let me know if additional info is required.
faraggi (Mon, 06 Apr 2020 11:17:58 GMT):
I've been building a list of potential technical content ideas for Besu.
I'd like to get the community's feedback on what content can be written and would be useful for everyone.
If anybody has any suggestions, leave a comment here or in PM and I'll add it to our list.
brunillopu.75 (Mon, 06 Apr 2020 12:29:52 GMT):
Yes. This is the case. Source input stream is too fast. Thanks.
brunillopu.75 (Mon, 06 Apr 2020 12:29:52 GMT):
Yes. This is the case. Source input stream is too fast. IBFT Private Network.
koshik.raj (Mon, 06 Apr 2020 13:23:16 GMT):
Has joined the channel.
shemnon (Mon, 06 Apr 2020 16:06:32 GMT):
When doing performance measurements on an ethereum network you need to make sure the gas limit can support the desired TPS. If I am understanding you right the blockchain is gas limited and transactions are not getting cleared from the mem pool or are never getting added.
shemnon (Mon, 06 Apr 2020 16:07:08 GMT):
For performance tests we use absurdly high values like 400 Million gas for 2 second blocks. At that level the performance test is to see what the constraints of the block validators are.
Louvivien (Mon, 06 Apr 2020 18:03:11 GMT):
Has joined the channel.
Louvivien (Mon, 06 Apr 2020 18:03:12 GMT):
Hello, I have this issue when trying to migrate with Truffle a smartcontract on a Besu - Rinkeby network with enough wei on my Rinkeby address : ``"Migrations" could not deploy due to insufficient funds
* Account: 0x20cEE93C127d8F35F54f56e0d28D14219Fe23919
* Balance: 0 wei
* Message: sender doesn't have enough funds to send tx. The upfront cost is: 372936000000000 and the sender's account only has: 0
* Try:
+ Using an adequately funded account```
```
+ If you are using a local Geth node, verify that your `node is synced.`
Louvivien (Mon, 06 Apr 2020 18:05:42 GMT):
Hello, I have this issue when trying to migrate with Truffle a smartcontract on a Besu - Rinkeby network with enough wei on my Rinkeby address :
```
"Migrations" could not deploy due to insufficient funds
* Account: 0x20cEE93C127d8F35F54f56e0d28D14219Fe23919
* Balance: 0 wei
* Message: sender doesn't have enough funds to send tx. The upfront cost is: 372936000000000 and the sender's account only has: 0
* Try:
+ Using an adequately funded account
+ If you are using a local Geth node, verify that your `node is synced.`
```
Do you know why it doesn't seem to get my account balance right ? Thanks
Louvivien (Mon, 06 Apr 2020 18:05:42 GMT):
Hello, I have this issue when trying to migrate with Truffle a smartcontract on a Besu - Rinkeby network with enough wei on my Rinkeby address https://rinkeby.etherscan.io/address/0x20cEE93C127d8F35F54f56e0d28D14219Fe23919 :
```
"Migrations" could not deploy due to insufficient funds
* Account: 0x20cEE93C127d8F35F54f56e0d28D14219Fe23919
* Balance: 0 wei
* Message: sender doesn't have enough funds to send tx. The upfront cost is: 372936000000000 and the sender's account only has: 0
* Try:
+ Using an adequately funded account
+ If you are using a local Geth node, verify that your `node is synced.`
```
Do you know why it doesn't seem to get my account balance right ?
Louvivien (Mon, 06 Apr 2020 18:09:47 GMT):
this is how i start the network
```
"sudo docker run -p 8545:8545 -p 30303:30303 --mount type=bind,source=/tmp/besu/ropsten,target=/var/lib/besu hyperledger/besu:latest --rpc-ws-enabled --rpc-http-enabled --rpc-http-cors-origins='all' --host-whitelist='*' --network=ropsten --data-path=/var/lib/besu"
```
magooster (Mon, 06 Apr 2020 22:48:07 GMT):
Just raised https://github.com/hyperledger/besu/issues/662 - JsonRPCHttpService can silently fail to start
hmijail (Tue, 07 Apr 2020 03:15:40 GMT):
I'm having trouble with using MerklePatriciaTrie.entriesFrom() with a trie
hmijail (Tue, 07 Apr 2020 03:15:40 GMT):
I'm having trouble with using MerklePatriciaTrie.entriesFrom() with a trie
RealDeanZhao (Tue, 07 Apr 2020 09:46:09 GMT):
Hi team, the account nonce is a sequential number, so how to send transactions for one account concurrently?
RealDeanZhao (Tue, 07 Apr 2020 09:46:09 GMT):
Hi team, the account nonce is a sequential number, so how to send multiple transactions for one account concurrently?
RealDeanZhao (Tue, 07 Apr 2020 09:49:42 GMT):
Is it possible to add the feature for a private network to use a random nonce string instead of the sequential number like hyperledger sawtooth?
yehia67 (Tue, 07 Apr 2020 11:34:35 GMT):
Hello everyone, I have a question about deploying hyperledger besu for production. I am planning to use ibft2 consensus algorithm what is the best way to deploy on an AWS instance?
I am familiar with besu-sample-networks. Is it a good idea to use it on deployments? If not what I should modify to make it better? Or what alternatives are available for now?
yehia67 (Tue, 07 Apr 2020 11:34:35 GMT):
It is a live production network. The project will have a mobile app available on play store for everyone. So I need my blockchain to be stable and scalable(as much as I can). I had already created an instance on AWS and used this docker container
https://github.com/PegaSysEng/besu-sample-networks
Unfortunately, It wasn't stable it work for some time then stop. I think it doesn't work because the container creates only one bootnode and three other nodes. If I modified the container to create two bootnodes and six other nodes will it be a good solution? If not what are the possible alternatives?
yehia67 (Tue, 07 Apr 2020 11:34:35 GMT):
the link of my issue: https://github.com/hyperledger/besu/issues/681
faraggi (Tue, 07 Apr 2020 13:05:30 GMT):
I'm pretty sure I've gotten that error in the past as well. If you have the logs, I think a issue would be valuable.
faraggi (Tue, 07 Apr 2020 13:06:01 GMT):
Thanks magooster, will keep an eye on that bug and let you know if we have udpates.
faraggi (Tue, 07 Apr 2020 13:07:21 GMT):
I'm thinking the issue here is the network not being synced yet. Was that the case?
faraggi (Tue, 07 Apr 2020 13:12:03 GMT):
TO send concurrent transactions with same account, it needs to pre-determine nonces. All TXs can lay in the TX pool until minded.
The nonce is pretty much ingrained all over in the besu architecture. I don't think this will be possible.
hmijail (Tue, 07 Apr 2020 13:13:36 GMT):
this is while modifying Besu for Eth1.x experiments. No idea how to get this during normal usage.
faraggi (Tue, 07 Apr 2020 13:18:40 GMT):
Thats a tricky question. Way too many unknowns in order to answer your question thoroughly.
The main one being; what do you mean by "production"? companies, and users accessing the network? on a live production network?
The deployment options will depend on what you're accustomed to and know how to use already.
Besu has ansible, kubernetes and docker files to help with deployment.
Otherwise, you can simply install or build Besu on your instances and deploy 'manually'.
Making it better really depends on what you mean by that.
If you elaborate a bit, I can provide advice.
Take all advice of this type with a grain of salt.
yehia67 (Tue, 07 Apr 2020 13:37:52 GMT):
@faraggi do you think besu-sample-networks is a good solution generally or I should use something else?
faraggi (Tue, 07 Apr 2020 13:43:17 GMT):
Those are great sample networks. Use them as examples, but make your own production networks and configs.
One simple example of why using these 'as is' in prod are the private keys are publicly available in the repo.
Louvivien (Tue, 07 Apr 2020 13:54:57 GMT):
Screen Shot 2020-04-07 at 15.54.12.png
Louvivien (Tue, 07 Apr 2020 13:55:23 GMT):
yes, do you know why it does not sync ?
shemnon (Tue, 07 Apr 2020 15:07:03 GMT):
Looks like it was just a type that didn't get parameterized. Feel free to post a PR.
evg.bondareva (Tue, 07 Apr 2020 15:40:21 GMT):
Has joined the channel.
faraggi (Tue, 07 Apr 2020 16:00:50 GMT):
That part of the sync process can take a few minutes. Sometimes feels like forever. Let it run for at least 5min.
If it still doesn't sync, it must come form the network config and how you've setup your infra
Is each of those terminal windows a different node? are they all hosted on the same local computer?
Louvivien (Tue, 07 Apr 2020 17:06:50 GMT):
- I have launch a docker besu rinkeby network only in the first tab, do I need another node ?
- It is on my local computer yes
- After more than one hour this is what I get :
Louvivien (Tue, 07 Apr 2020 17:07:19 GMT):
Screen Shot 2020-04-07 at 19.04.36.png
Louvivien (Tue, 07 Apr 2020 20:05:07 GMT):
and after hours : `2020-04-07 20:04:24.442+00:00 | EthScheduler-Timer-0 | INFO | FastSyncTargetManager | No sync target, wait for peers.`
ivanduartep (Tue, 07 Apr 2020 23:29:25 GMT):
Has joined the channel.
ivanduartep (Tue, 07 Apr 2020 23:29:26 GMT):
Hey guys Im trying to interact with a contract on ropsten using the Hyperledger Besu client is that’s possible ?
lucassaldanha (Wed, 08 Apr 2020 02:38:00 GMT):
Yes, it is! https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Starting-node/#run-a-node-on-ropsten-testnet
YoussefAlaa (Wed, 08 Apr 2020 09:56:05 GMT):
Has joined the channel.
YoussefAlaa (Wed, 08 Apr 2020 09:56:07 GMT):
Hello everyone, I have a problem withing besu-sample-network and looking for a solution, I've raised a question here https://ethereum.stackexchange.com/questions/80838/mining-stops-after-some-time-in-my-hyperledger-besu-private-blockchain
yehia67 (Wed, 08 Apr 2020 13:38:44 GMT):
okay Thank you @faraggi
yehia67 (Wed, 08 Apr 2020 13:39:49 GMT):
I will make my own production network
yehia67 (Wed, 08 Apr 2020 13:43:07 GMT):
Screenshot from 2020-04-08 15-41-32.png
yehia67 (Wed, 08 Apr 2020 13:43:44 GMT):
the link of my issue: https://github.com/hyperledger/besu/issues/681
faraggi (Wed, 08 Apr 2020 15:57:33 GMT):
Thanks yehia67! I'll look at the issue and bump it with the team.
However, we usually take longer than 3hs to respond to issues :D
yehia67 (Wed, 08 Apr 2020 16:32:54 GMT):
No problem I will close it. I discovered the solution I should add bootnode command using this command option https://besu.hyperledger.org/en/stable/HowTo/Deploy/Bootnodes/
vanitas92 (Wed, 08 Apr 2020 19:12:49 GMT):
Has joined the channel.
atoulme (Thu, 09 Apr 2020 00:18:00 GMT):
hey folks, the default docker image for besu doesn't have a healthcheck. I see there is a /readiness endpoint that could be used for this. Is it appropriate to rely on it for a healthcheck?
atoulme (Thu, 09 Apr 2020 00:18:17 GMT):
Is there interest in having curl installed in the image by default to run health checks?
shemnon (Thu, 09 Apr 2020 00:23:30 GMT):
Would the `/liveness` endpoint suffice?
atoulme (Thu, 09 Apr 2020 00:24:43 GMT):
I mean, both work for me
shemnon (Thu, 09 Apr 2020 00:24:45 GMT):
liveness responds if the JVM is operable and vertx is servinf. readyness returns true only when in sync.
shemnon (Thu, 09 Apr 2020 00:25:10 GMT):
in sync and has peers I should say.
atoulme (Thu, 09 Apr 2020 00:25:11 GMT):
I see, so `/liveness` sounds better
atoulme (Thu, 09 Apr 2020 00:25:16 GMT):
right
atoulme (Thu, 09 Apr 2020 00:25:29 GMT):
So the issue is that curl is not installed on the official Dockerfile
atoulme (Thu, 09 Apr 2020 00:25:37 GMT):
health check endpoints run as CMD in docker
atoulme (Thu, 09 Apr 2020 00:26:05 GMT):
https://docs.docker.com/engine/reference/builder/#healthcheck
atoulme (Thu, 09 Apr 2020 00:26:22 GMT):
so 1. Is it ok to change the Dockerfile to install curl?
atoulme (Thu, 09 Apr 2020 00:26:38 GMT):
2. Is it ok to add a HEALTHCHECK instruction to the official Dockerfile?
shemnon (Thu, 09 Apr 2020 00:27:08 GMT):
Tag @EdJoJob or @joshuafernandes for a review, they have stronger opinions in that area.
EdJoJob (Thu, 09 Apr 2020 00:28:22 GMT):
From my POV, yes and yes. I would be happy to see such a healthcheck landing
atoulme (Thu, 09 Apr 2020 00:29:32 GMT):
you got it
joshuafernandes (Thu, 09 Apr 2020 01:03:07 GMT):
same here :thumbsup:
atoulme (Thu, 09 Apr 2020 01:20:38 GMT):
is `/liveness` working even if --rpc-http-enabled is not specified?
atoulme (Thu, 09 Apr 2020 01:20:42 GMT):
I'll check the code.
atoulme (Thu, 09 Apr 2020 01:21:01 GMT):
I just added an example to the splunk ethereum connector leveraging Besu: https://github.com/splunk/splunk-connect-for-ethereum/tree/master/examples/besu
atoulme (Thu, 09 Apr 2020 01:21:28 GMT):
A simple one-node scenario. Splunk takes all the log, block, metrics data and ingests it.
ajsutton (Thu, 09 Apr 2020 01:21:43 GMT):
I'd expect `/liveness` to be disabled if the HTTP APIs are disabled.
atoulme (Thu, 09 Apr 2020 01:22:20 GMT):
hmm I'm seeing this too.
atoulme (Thu, 09 Apr 2020 01:23:02 GMT):
@ajsutton should `/liveness` be enabled even if JSON-RPC HTTP APIs are disabled?
atoulme (Thu, 09 Apr 2020 01:23:58 GMT):
after all, it's not a JSONRPC endpoint.
ajsutton (Thu, 09 Apr 2020 01:24:08 GMT):
Yeah the idea is that the HTTP port is closed by default. And usually there's no real point in checking a HTTP endpoint is alive if nothing else is listening there.
ajsutton (Thu, 09 Apr 2020 01:24:36 GMT):
This makes for an interesting use case though...
ajsutton (Thu, 09 Apr 2020 01:26:34 GMT):
If you don't have HTTP enabled though, what does liveness mean? You could check that the P2P port is open maybe.
atoulme (Thu, 09 Apr 2020 01:34:22 GMT):
sigh
atoulme (Thu, 09 Apr 2020 01:34:53 GMT):
let me see the logic for liveness
atoulme (Thu, 09 Apr 2020 01:35:57 GMT):
I see, there is no logic. The P2P port is not the safest option as it can be overridden.
atoulme (Thu, 09 Apr 2020 01:37:58 GMT):
interesting. So either you commit to have `/liveness` always served, on a separate fixed port from JSON-RPC, only on localhost, or need to use a different approach.
ajsutton (Thu, 09 Apr 2020 01:38:52 GMT):
One option would be to have a separate `--enabled-liveness` check which is defaulted to on in docker via an env var in the docker file (and it could only listen on locahost I think).
atoulme (Thu, 09 Apr 2020 01:39:08 GMT):
right
atoulme (Thu, 09 Apr 2020 01:39:23 GMT):
not a huge endeavor
atoulme (Thu, 09 Apr 2020 01:39:38 GMT):
and we should keep liveness on JSON-RPC anyway
ajsutton (Thu, 09 Apr 2020 01:39:45 GMT):
Just need to remember that for most people having `/liveness` be part of JSON-RPC is really useful. If `/liveness` works then JSON-RPC works. We don't want to lose that by always moving it to it's own server.
atoulme (Thu, 09 Apr 2020 01:39:57 GMT):
so mount the health service in both places
atoulme (Thu, 09 Apr 2020 01:39:59 GMT):
sure thing
atoulme (Thu, 09 Apr 2020 01:40:19 GMT):
this is a perfect problem to look at 20 minutes away from dinner
atoulme (Thu, 09 Apr 2020 01:41:19 GMT):
alright, I'll work on that
ajsutton (Thu, 09 Apr 2020 01:42:26 GMT):
ooo, the other option is that besu writes out a ports file which you could use to find the p2p port.
RealDeanZhao (Thu, 09 Apr 2020 06:33:34 GMT):
```final EthFilter ethFilter =
new EthFilter(
DefaultBlockParameterName.EARLIEST,
DefaultBlockParameterName.LATEST,
"0xf57001f4e592E7a2bc44DE01b0858686d6d65027");
final Disposable sub = web3j.ethGetLogs(ethFilter).flowable().subscribe(
x -> System.out.println(x.getLogs().size()),
Throwable::printStackTrace
);``` Hi Team, I cannot subscribe the event with besu 1.3.7. I tried both http and ws service using web3j. For websocket, the exception is: org.java_websocket.exceptions.WebsocketNotConnectedException
. For http, the exception is SocketTimeoutException
RealDeanZhao (Thu, 09 Apr 2020 06:39:17 GMT):
```d-thread-checker | WARN | BlockedThreadChecker | Thread Thread[vert.x-worker-thread-8,5,main]=Thread[vert.x-worker-thread-8,5,main] has been blocked for 111931 ms, time limit is 60000 ms
io.vertx.core.VertxException: Thread blocked
at org.rocksdb.RocksDB.get(Native Method) ~[rocksdbjni-6.2.4.jar:?]
at org.rocksdb.RocksDB.get(RocksDB.java:1721) ~[rocksdbjni-6.2.4.jar:?]
at org.hyperledger.besu.plugin.services.storage.rocksdb.segmented.RocksDBColumnarKeyValueStorage.get(RocksDBColumnarKeyValueStorage.java:153) ~[besu-plugin-rocksdb-1.3.7.jar:1.3.7]
at org.hyperledger.besu.plugin.services.storage.rocksdb.segmented.RocksDBColumnarKeyValueStorage.get(RocksDBColumnarKeyValueStorage.java:60) ~[besu-plugin-rocksdb-1.3.7.jar:1.3.7]
at org.hyperledger.besu.services.kvstore.SegmentedKeyValueStorageAdapter.get(SegmentedKeyValueStorageAdapter.java:50) ~[besu-kvstore-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStoragePrefixedKeyBlockchainStorage.get(KeyValueStoragePrefixedKeyBlockchainStorage.java:123) ~[besu-core-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStoragePrefixedKeyBlockchainStorage.getBlockHeader(KeyValueStoragePrefixedKeyBlockchainStorage.java:78) ~[besu-core-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain$$Lambda$518/0x000000084046f040.apply(Unknown Source) ~[?:?]
at java.util.Optional.flatMap(Optional.java:294) ~[?:?]
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain.getBlockHeader(DefaultBlockchain.java:176) ~[besu-core-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.api.query.BlockchainQueries$$Lambda$666/0x00000008404eb840.apply(Unknown Source) ~[?:?]
at java.util.stream.LongPipeline$1$1.accept(LongPipeline.java:177) ~[?:?]
at java.util.stream.Streams$RangeLongSpliterator.tryAdvance(Streams.java:207) ~[?:?]
at java.util.stream.LongPipeline.forEachWithCancel(LongPipeline.java:161) ~[?:?]
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502) ~[?:?]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488) ~[?:?]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[?:?]
at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.matchingLogsUncached(BlockchainQueries.java:553) ~[besu-api-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.lambda$matchingLogs$18(BlockchainQueries.java:532) ~[besu-api-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.api.query.BlockchainQueries$$Lambda$665/0x00000008404ea440.get(Unknown Source) ~[?:?]
at java.util.Optional.orElseGet(Optional.java:369) ~[?:?]
at org.hyperledger.besu.ethereum.api.query.BlockchainQueries.matchingLogs(BlockchainQueries.java:530) ~[besu-api-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthGetLogs.response(EthGetLogs.java:62) ~[besu-api-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:497) ~[besu-api-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$6(JsonRpcHttpService.java:375) ~[besu-api-1.3.7.jar:1.3.7]
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService$$Lambda$653/0x00000008404a4040.handle(Unknown Source) ~[?:?]
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.0.jar:3.8.0]
at io.vertx.core.impl.ContextImpl$$Lambda$622/0x000000084049d840.run(Unknown Source) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.34.Final.jar:4.1.34.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]``` Logs from besu node
RealDeanZhao (Thu, 09 Apr 2020 07:07:59 GMT):
I have solved the above issue: the block range in the filter is too wide, increase the from block will help.
yehia67 (Thu, 09 Apr 2020 13:37:28 GMT):
ibft2 dosen't stop mining when I use `curl -X POST --data '{"jsonrpc":"2.0","method":miner_stop","params":[],"id":1}' http://127.0.0.1:8545
` anyone know why?
timbeiko (Thu, 09 Apr 2020 19:47:14 GMT):
:besu: We just released a new version of Besu, 1.4.3 :besu:
It now supports the eth/65 protocol and exposes re-orgs and transaction revert reasons via our Plugin API. You can get it here: https://github.com/hyperledger/besu/releases/tag/1.4.3
ajsutton (Thu, 09 Apr 2020 22:18:20 GMT):
For PoA systems like Clique and IBFT, besu will automatically mine whenever it is one of the validators. Basically whether you're a block creator or not is built into the protocol whereas with PoW it's an optional extra duty .
atoulme (Thu, 09 Apr 2020 22:57:03 GMT):
does it always do that?
ajsutton (Fri, 10 Apr 2020 00:37:05 GMT):
Yes I think so. In the data directory. It deletes the file when it shuts down normally.
ajsutton (Fri, 10 Apr 2020 00:38:01 GMT):
So checking if the process is running and that file is written would be a pretty good liveness Check actually. It’s very careful to ensure the file is only written after all the ports are open since that’s what our acceptance tests depend on.
reddy (Fri, 10 Apr 2020 00:49:36 GMT):
Clipboard - April 10, 2020 9:49 AM
reddy (Fri, 10 Apr 2020 00:50:05 GMT):
Clipboard - April 10, 2020 9:49 AM
reddy (Fri, 10 Apr 2020 00:52:33 GMT):
It returns error when generating websocket jwt token
reddy (Fri, 10 Apr 2020 00:53:17 GMT):
http jwt token generation is ok.
reddy (Fri, 10 Apr 2020 00:56:24 GMT):
I'm using besu 1.4.2
atoulme (Fri, 10 Apr 2020 01:53:08 GMT):
yeah that sounds good, I'd just use that
atoulme (Fri, 10 Apr 2020 01:53:32 GMT):
what if the process crashed? Is the file deleted early on on startup?
shemnon (Fri, 10 Apr 2020 01:53:37 GMT):
curl dosen't play well with websockets. try wscat - https://github.com/websockets/wscat
ajsutton (Fri, 10 Apr 2020 01:54:22 GMT):
Hmm not sure. If it doesn’t it would be easy to add.
atoulme (Fri, 10 Apr 2020 01:54:54 GMT):
I'll check, this is much easier to implement.
atoulme (Fri, 10 Apr 2020 02:05:30 GMT):
oh I forgot one thing, dataDir can be changed.
ajsutton (Fri, 10 Apr 2020 02:06:36 GMT):
Hmm true. That’s more challenging.
atoulme (Fri, 10 Apr 2020 02:13:18 GMT):
ok. Well in that spirit we could maybe write a pointer file at the request of the user based on an additional setting
atoulme (Fri, 10 Apr 2020 02:13:54 GMT):
an additional config key that gives a path where to write the file, and the file acts as a PID file. May be useful for linux services too.
reddy (Fri, 10 Apr 2020 02:24:43 GMT):
https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/
reddy (Fri, 10 Apr 2020 02:25:02 GMT):
Clipboard - April 10, 2020 11:24 AM
shemnon (Fri, 10 Apr 2020 02:26:00 GMT):
I wasn't aware of that documentation. That's one for @NicolasMassart
reddy (Fri, 10 Apr 2020 02:28:53 GMT):
the following tests doesn't work for me
reddy (Fri, 10 Apr 2020 02:29:10 GMT):
Clipboard - April 10, 2020 11:29 AM
reddy (Fri, 10 Apr 2020 02:30:01 GMT):
Could you tell me how to generate websocket JWT token ?
NicolasMassart (Fri, 10 Apr 2020 10:17:16 GMT):
Hi, this page is indeed one that we are planning to rework to make it clearer. Let me come back to you soon with an answer. I have to ask colleagues.
Jemal (Fri, 10 Apr 2020 13:30:48 GMT):
Hi guys, i am opening several connections (up to 10,000) to Besu node using Http connection. It works fine when the number of connections is low but gives me socket connection closed error when the number is large. Is there a limit to the number of open http connections i can make to Besu node?
Jemal (Fri, 10 Apr 2020 13:58:41 GMT):
my network is a local private network running on ubuntu 18.04 Virtual machine
MumtahinHabib (Fri, 10 Apr 2020 16:01:29 GMT):
Has joined the channel.
faraggi (Fri, 10 Apr 2020 16:22:06 GMT):
This is more of a vertx problem than a besu problem, because we use vertx. 10k open sockets is a very big number, representing 1/3 of the possible available ports.
It can be tuned - https://stackoverflow.com/questions/58361727/multiple-concurrent-connections-with-vertx
Are you opening up 10k connections just to benchmark? Architecture wise we would recommend multiple RPC nodes in that case or connecting via websockets.
magooster (Fri, 10 Apr 2020 16:39:19 GMT):
The login endpoint is accessed over http
magooster (Fri, 10 Apr 2020 16:44:27 GMT):
You can then the token returned to connect with wscat as follows
magooster (Fri, 10 Apr 2020 16:45:24 GMT):
wscat -c ws://
magooster (Fri, 10 Apr 2020 16:46:29 GMT):
ath the prompt you can then make rpc calls such as
magooster (Fri, 10 Apr 2020 16:46:55 GMT):
{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":53}
rickkce (Fri, 10 Apr 2020 18:10:00 GMT):
Has joined the channel.
rickkce (Fri, 10 Apr 2020 18:10:02 GMT):
Hello guys,
the German government is supporting open-source projects similar to the summer of code from google. For that, I would like to work on Hyperledger. The start will be July. I need a mentor and an idea for content I can contribute to the open-source project. I'm an experienced fullstack dev, worked with Etherum and have a knowledge of other Blockchains. Is there anyone that can help me find a topic I could work on? Highly appreciate you help
Jemal (Fri, 10 Apr 2020 19:34:44 GMT):
@faraggi thanks for the reply. Yes I am doing that for bench marking purpose. The network size is actually round 20-60 nodes. But all of the nodes and client apps are running on one ubuntu Virtual machine with 16 CPU cores and 120 GB RAM. I start to receive socket time out and "transaction receive was not generated after 600 seconds for transaction" once the number of open sockets reaches around 2000. You mentioned connecting via websockets. Do websockets allow more connection than than HttP?
Jemal (Fri, 10 Apr 2020 19:34:44 GMT):
@faraggi thanks for the reply. Yes I am doing that for bench marking purpose. The network size is actually round 20-60 nodes. i believe that is enough number to open up to 10k sockets at a time. But all of the nodes and client app are running on one ubuntu Virtual machine with 16 CPU cores and 120 GB RAM. I start to receive socket time out exception once the number of open sockets reaches around 2000. I am using Web3j API to connect to the nodes. Below is how i create the sockets. You mentioned connecting via websockets. Do websockets allow more connection than than HttP? Web3j socket=Web3j.build(new HttpService("http://localhost:8545),1000, Async.defaultExecutorService() );
shemnon (Fri, 10 Apr 2020 20:35:59 GMT):
Websockets allow the connection to stay open, so the overhead of opening and closing goes down and the calls can be multiplexed.
shemnon (Fri, 10 Apr 2020 20:38:23 GMT):
For the socket handling 16 cores between 20-60 nodes could be the root of the problem. 120gb memory is enough for 30 nodes (4gb each) per our recommended setup but a 16 core machine should be topping out at 8 nodes.
AshutoshKumar7 (Sat, 11 Apr 2020 02:56:11 GMT):
Has joined the channel.
Jemal (Sat, 11 Apr 2020 05:23:33 GMT):
@faraggi thank you. I tried it by reducing the number of nodes to 8. But the problem persists. I guess it is not CPU issue. I will try with webscokets and let you know
Jemal (Sat, 11 Apr 2020 05:23:33 GMT):
@shemnon and @faraggi thank you. I tried it by reducing the number of nodes to 8. But the problem persists. I guess it is not CPU issue. I will try with webscokets and let you know
Bobur (Mon, 13 Apr 2020 00:45:40 GMT):
Hello guys
I have a question regarding Swarm storage.
Is there any plan in the road map to support Swarm in Besu in near future?
Thank you!
Bobur (Mon, 13 Apr 2020 00:45:40 GMT):
Hello guys
I have a question regarding Swarm storage.
Is there any plan in the road map to support Swarm in Besu in near future?
And, is there any ipc file in besu like geth client?
Thank you!
MrPhenom (Mon, 13 Apr 2020 08:51:11 GMT):
Has joined the channel.
shemnon (Mon, 13 Apr 2020 15:21:39 GMT):
Besu Contributor Call Tomorrow - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
lucassaldanha (Mon, 13 Apr 2020 21:33:35 GMT):
Hi Bobur!
I don't know if there are plans to support Swarm in the near future. I'll let someone else answer this one.
About IPC files, I'm assuming you are asking about using IPC to interact with JSON-RPC API. At the moment Besu only supports JSON-RPC through HTTP. It doesn't have IPC support yet.
Bobur (Tue, 14 Apr 2020 00:10:37 GMT):
Thank you @lucassaldanha for your reply. Appreciated
NikosFotiadis (Tue, 14 Apr 2020 05:42:23 GMT):
Hi guys,
We have been using hyperledger/besu:1.4.2 for some time now and I have noticed that sending a transaction with lower nonce does not return the error I was expecting. Instead I don't get an error at all. It seems like there is not response at all. I have looked at the logs while sending the transaction but I did not find anything that seemed related. Any idea why this would happed or is I should be looking for something specific in the logs?
faraggi (Tue, 14 Apr 2020 08:41:42 GMT):
:mega:
Besu Contributor Call Today - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
(T-7hs)
8am Tuesday (3 Mar) Los Angeles
11 am Tuesday (3 Mar) New York
3pm Tuesday (3 Mar) UTC
4 pm Tuesday (3 Mar) Paris/Berlin
1 am Wednesday (4 Mar) Brisbane
:mega:
faraggi (Tue, 14 Apr 2020 08:41:42 GMT):
:mega:
Besu Contributor Call Today - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
(T-7hs)
8am Tuesday (13 Mar) Los Angeles
11 am Tuesday (13 Mar) New York
3pm Tuesday (13 Mar) UTC
4 pm Tuesday (13 Mar) Paris/Berlin
1 am Wednesday (14 Mar) Brisbane
:mega:
faraggi (Tue, 14 Apr 2020 08:41:42 GMT):
:mega:
Besu Contributor Call Today - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
(T-7hs)
8am Tuesday (13 Mar) Los Angeles
11 am Tuesday (13 Mar) New York
3pm Tuesday (13 Mar) UTC
5 pm Tuesday (13 Mar) Paris/Berlin
1 am Wednesday (14 Mar) Brisbane
:mega:
faraggi (Tue, 14 Apr 2020 08:41:42 GMT):
:mega:
Besu Contributor Call Today - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
(T-7hs)
8am Tuesday (13 Mar) Los Angeles
11 am Tuesday (13 Mar) New York
3 pm Tuesday (13 Mar) UTC
5 pm Tuesday (13 Mar) Paris/Berlin
1 am Wednesday (14 Mar) Brisbane
:mega:
faraggi (Tue, 14 Apr 2020 08:41:42 GMT):
:mega:
Besu Contributor Call Today - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
(T-7hs)
8am Tuesday (14 Mar) Los Angeles
11 am Tuesday (14 Mar) New York
3 pm Tuesday (14 Mar) UTC
5 pm Tuesday (14 Mar) Paris/Berlin
1 am Wednesday (15 Mar) Brisbane
:mega:
faraggi (Tue, 14 Apr 2020 08:41:42 GMT):
:mega:
Besu Contributor Call Today - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
(T-7hs)
8am Tuesday (14 Apr) Los Angeles
11 am Tuesday (14 Apr) New York
3 pm Tuesday (14 Apr) UTC
5 pm Tuesday (14 Apr) Paris/Berlin
1 am Wednesday (15 Apr) Brisbane
:mega:
faraggi (Tue, 14 Apr 2020 08:42:26 GMT):
Nikos, if you'd like, you can show up to our contributor call today and ask the maintainer's the question directly. (link above)
faraggi (Tue, 14 Apr 2020 08:43:28 GMT):
I've gone ahead and added your question in case you can't make and you can watch the recording.
rohitgupta027 (Tue, 14 Apr 2020 10:40:38 GMT):
Has joined the channel.
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
`~telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.~`
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
```
telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.
```
nc -vz $(minikube ip) 30303
Connection to 192.168.99.107 port 30303 [tcp/*] succeeded!
However if I run besu node from my terminal it is not able to find its peer
2020-04-14 12:36:03.236+02:00 | vert.x-eventloop-thread-1 | WARN | PeerDiscoveryAgent | Sending to peer DiscoveryPeer{status=bonding, enode=enode://
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
```
telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.
```
```
nc -vz $(minikube ip) 30303
Connection to 192.168.99.107 port 30303 [tcp/*] succeeded!
```
However if I run besu node from my terminal it is not able to find its peer
```
2020-04-14 12:36:03.236+02:00 | vert.x-eventloop-thread-1 | WARN | PeerDiscoveryAgent | Sending to peer DiscoveryPeer{status=bonding, enode=enode://
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
```
telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.
```
```
nc -vz $(minikube ip) 30303
Connection to 192.168.99.107 port 30303 [tcp/*] succeeded!
```
However if I run besu node from my terminal it is not able to find its peers, I got below logs by setting logging as TRACE and
```
2020-04-14 12:36:03.236+02:00 | vert.x-eventloop-thread-1 | WARN | PeerDiscoveryAgent | Sending to peer DiscoveryPeer{status=bonding, enode=enode://
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
```
telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.
```
```
nc -vz $(minikube ip) 30303
Connection to 192.168.99.107 port 30303 [tcp/*] succeeded!
```
However if I run besu node from my terminal it is not able to find its peers, I got below logs by setting logging as TRACE and using this command:
`besu --config-file=./config.toml --bootnodes=enode://
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
```
telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.
```
```
nc -vz $(minikube ip) 30303
Connection to 192.168.99.107 port 30303 [tcp/*] succeeded!
```
However if I run besu node from my terminal it is not able to find its peers, I got below logs by setting logging as TRACE and using this command:
`besu --config-file=./config.toml --bootnodes=enode://
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
```
telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.
```
```
nc -vz $(minikube ip) 30303
Connection to 192.168.99.107 port 30303 [tcp/*] succeeded!
```
However if I run besu node from my terminal it is not able to find its peers, I got below logs by setting logging as TRACE and using this command:
`besu --config-file=./config.toml --bootnodes=enode://
rohitgupta027 (Tue, 14 Apr 2020 10:49:26 GMT):
Hi guys,
I have deployed the `besu-kubernetes` on minikube with a setup of 1 Node service and 4 validators (as default config) which is working fine. Now I want to run another node as a validator on my local terminal and connect to the minikube cluster. So to achieve that I have exposed the TCP service`besu-validator1` as defined in https://minikube.sigs.k8s.io/docs/tutorials/nginx_tcp_udp_ingress/ After following all the steps if I do telnet on tcp port 30303 I get below message as `Connection closed by foreign host.` after ~15sec
```
telnet $(minikube ip) 30303
Trying 192.168.99.107...
Connected to 192.168.99.107.
Escape character is '^]'.
Connection closed by foreign host.
```
```
nc -vz $(minikube ip) 30303
Connection to 192.168.99.107 port 30303 [tcp/*] succeeded!
```
However if I run besu node from my terminal it is not able to find its peers, I got below logs by setting logging as TRACE and using this command:
`besu --config-file=./config.toml --bootnodes=enode://
Helder_jn_Pinto (Tue, 14 Apr 2020 11:06:13 GMT):
Has joined the channel.
Helder_jn_Pinto (Tue, 14 Apr 2020 11:06:15 GMT):
hi, exist any timout for web3.contract get all events ? i used this but when pass like 1 minute the process terminate, i don't know if is besu terminate this connection or web3.
Helder_jn_Pinto (Tue, 14 Apr 2020 11:06:30 GMT):
anyone can help with this ?
faraggi (Tue, 14 Apr 2020 13:44:27 GMT):
:mega:
Besu Contributor Call Today - https://wiki.hyperledger.org/display/BESU/2020-04-14+Besu+Contributor+Call - EMEA friendly times
(T-1h15)
8am Tuesday (14 Apr) Los Angeles
11 am Tuesday (14 Apr) New York
3 pm Tuesday (14 Apr) UTC
5 pm Tuesday (14 Apr) Paris/Berlin
1 am Wednesday (15 Apr) Brisbane
:mega:
abdelhamidbakhta (Tue, 14 Apr 2020 15:45:31 GMT):
Hey. Can you please add a high level scenario ? Basically the different calls you do and the responses you get. That would be useful
soyama-dclab (Wed, 15 Apr 2020 05:28:22 GMT):
Has joined the channel.
NikosFotiadis (Wed, 15 Apr 2020 09:32:55 GMT):
@faraggi
Thanks,
I could not make it to the call but I wll take a look since it is recorded.
NikosFotiadis (Wed, 15 Apr 2020 09:33:34 GMT):
@abdelhamidbakhta
Thanks, I will do that and get back to you
faraggi (Wed, 15 Apr 2020 10:20:20 GMT):
Make sure to take a look because it was discussed, although lightly because we had little background info.
Video is here: https://wiki.hyperledger.org/display/BESU/2020-04-14+Contributor+Call
faraggi (Wed, 15 Apr 2020 10:20:20 GMT):
Make sure to take a look because it was discussed, although lightly because we had little background info.
Video and notes are here: https://wiki.hyperledger.org/display/BESU/2020-04-14+Contributor+Call
faraggi (Wed, 15 Apr 2020 10:21:09 GMT):
Hello everyone!
The Besu maintainer team is looking for feedback from people from the community- that means you! :)
Please help us by filling our this 5 min survey:
https://forms.gle/waKvWjMsyeEyVX716
soyama-dclab (Thu, 16 Apr 2020 06:58:16 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
# Truffle
```Error: Transaction has been reverted by the EVM.
```
# Besu
```
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
```
Could anyone help me?
soyama-dclab (Thu, 16 Apr 2020 06:58:16 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
# Truffle
```
Error: Transaction has been reverted by the EVM.
```
# Besu
```
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
```
Could anyone help me?
soyama-dclab (Thu, 16 Apr 2020 06:58:16 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
```
Error: Transaction has been reverted by the EVM.
```
[Besu]
```
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
```
Could anyone help me?
soyama-dclab (Thu, 16 Apr 2020 07:00:48 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
```
Error: Transaction has been reverted by the EVM.
```
[Besu]
```
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
```
Could anyone help me?
soyama-dclab (Thu, 16 Apr 2020 07:00:48 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
```
Error: Transaction has been reverted by the EVM.
```
soyama-dclab (Thu, 16 Apr 2020 07:00:48 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
`Error: Transaction has been reverted by the EVM.
`
soyama-dclab (Thu, 16 Apr 2020 07:00:48 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
`Error: Transaction has been reverted by the EVM.
`
[Besu]
```
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
```
Could anyone help me?
soyama-dclab (Thu, 16 Apr 2020 07:00:48 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
`Error: Transaction has been reverted by the EVM.
`
[Besu]
```bash
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
```
Could anyone help me?
soyama-dclab (Thu, 16 Apr 2020 07:00:48 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
`Error: Transaction has been reverted by the EVM.
`
[Besu]
`
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
`
Could anyone help me?
soyama-dclab (Thu, 16 Apr 2020 07:00:48 GMT):
Hi, I have a question about Truffle test with Besu.
I already deployed contracts using `truffle migrate`.
It worked well.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
After that, I ran the test (`truffle test`), and got the following error messages.
[Truffle]
`Error: Transaction has been reverted by the EVM.
`
[Besu]
```
node1 | 2020-04-14 10:48:37.279+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.lambda$gasEstimateResponse$0(EthEstimateGas.java:93) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at java.util.Optional.map(Optional.java:265) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:67) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:589) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$9(JsonRpcHttpService.java:463) ~[besu-api-1.4.3.jar:1.4.3]
node1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:316) ~[vertx-core-3.8.5.jar:3.8.5]
node1 | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
node1 | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
node1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.42.Final.jar:4.1.42.Final]
node1 | at java.lang.Thread.run(Thread.java:834) [?:?]
```
Could anyone help me?
yehia67 (Thu, 16 Apr 2020 09:45:21 GMT):
Hello everyone, If I have a private Blockchain using BESU and IBFT2 consensus algorithm. Composed of 8 nodes 2 of them are bootnodes. How many transaction could they make per day approximately?
ppoliani (Thu, 16 Apr 2020 10:25:31 GMT):
@abdelhamidbakhta I've been experiencing this issue as well. Having worked with other Ethereum based clients, the expected behaviour is:
1. If the nonce is lower than the current nonce, this is a violation of the Ethereum protocol rules so you should get an instant error with the following message (ususally):
`nonce too low`
2. If the nonce is the same and the transaction has not yet been included in a block the error is
`replacement transaction underpriced`
3. Now is the transaction nonce is higher than the current account nonce then it results in a nonce gap and the transaction is stack in the tx pool.
I would expect to get error 1 or 2 if one tries to send a two transactions concurrently.
ppoliani (Thu, 16 Apr 2020 11:38:03 GMT):
To give a bit more background, following is the two tx that I sent:
```
{ nonce: '0x15c8',
gasPrice: '0x0',
gasLimit: '0x24ada',
to: '0xDA35f4cb13a6ea0144469b23C0fE2F025bD4663B',
value: '0x0',
data: '0x0'
}
{ nonce: '0x15c8',
gasPrice: '0x0',
gasLimit: '0x24ada',
to: '0xDA35f4cb13a6ea0144469b23C0fE2F025bD4663B',
value: '0x0'
data:'0x0'
}
```
ppoliani (Thu, 16 Apr 2020 11:38:27 GMT):
I do get a response for the first one but not the second one
ppoliani (Thu, 16 Apr 2020 11:39:18 GMT):
I checked the besu tx pool as well and it's empty
```
{
"jsonrpc" : "2.0",
"id" : 1729,
"result" : [ ]
}
```
ppoliani (Thu, 16 Apr 2020 11:39:18 GMT):
I checked the besu tx pool as well and it's empty
```
{
"jsonrpc" : "2.0",
"id" : 1111,
"result" : [ ]
}
```
ppoliani (Thu, 16 Apr 2020 11:39:59 GMT):
The expected behaviour is to receive `replacement transaction underpriced` error
ppoliani (Thu, 16 Apr 2020 11:40:54 GMT):
I wonder id the fact that I use a fee free network causes this behaviour
ppoliani (Thu, 16 Apr 2020 11:41:42 GMT):
as you can see `gasPrice` is 0 so I wonder if that's make besu believe that it's not an underpriced transaction. I'm just geussing here
niliakis (Thu, 16 Apr 2020 11:44:51 GMT):
Hii,
Cound it possible to setup a private network with privacy enabled, but not all besu nodes are connected to an orion node? Also, could it possible to deploy a contract seen by all and just make private transaction to that contract?
ppoliani (Thu, 16 Apr 2020 11:58:39 GMT):
Digging a bit into the raw http request I can see that the response I get is 400 which is currently omitted by the web4 http provider I use
ppoliani (Thu, 16 Apr 2020 11:59:15 GMT):
I don't think a 400 bad request with an empty text is a very helpful response. There is not much information to know how to deal with the error
faraggi (Thu, 16 Apr 2020 12:41:20 GMT):
This will depend on your network topology, transaction types and contents and more.
We have third party benchmarking coming up soon.
Just as an approximate number; in general, 100-300TPS will be attained normally without much trouble.
faraggi (Thu, 16 Apr 2020 12:45:14 GMT):
1) Yes, this is possible. 2) nope
but just in case: @lucassaldanha @StefanPingel
pinges (Thu, 16 Apr 2020 13:06:47 GMT):
The answer to the first question is definitely yes. Nodes without an Orion would not be able to make or receive private transactions.
I'm not sure I understand the second question. If you need a contract that can be seen by all nodes, even nodes without an Orion, then this needs to be in the public chain. All nodes can make public transactions to a public contract, but this. You cannot make private transactions to a public contract.
One thing that is possible is to read from the public world state when executing a private transaction, but the public state cannot be changed by private transactions.
Let me know if I misunderstood your question.
niliakis (Thu, 16 Apr 2020 13:53:30 GMT):
Yes, that is exactly what I was asking. Thank you!
Najah (Thu, 16 Apr 2020 14:18:52 GMT):
Has joined the channel.
madelinemurray (Fri, 17 Apr 2020 00:46:02 GMT):
There's been an issue identified with the 1.4.3 - details have been added to the changelog. https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#143
madelinemurray (Fri, 17 Apr 2020 00:46:02 GMT):
There's been an issue identified with the 1.4.3 release - details have been added to the changelog. https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#143
roderik (Fri, 17 Apr 2020 17:22:41 GMT):
I've been experimenting with the IBFT voting rpc endpoints but i'm hitting some weird things. I have a network with 4 validators and 1 non validator. I add 4 nodes, non validation. they join my network and sync up, blocks are still being mined. I now run, in one go (so semi concurrent and at the same time), on all existing validators the ibft_proposevalidatorvote with the 4 new nodes and all mining stops. Do nodes need to be restarted to change their mining status? Or am I missing something else?
Piyush.Sharma (Fri, 17 Apr 2020 19:02:19 GMT):
Hello Faraggi! Thanks for your suggestion . I will start doing now. As I didn't have great experience in open source contribution thats why its abit difficult to me. But I will definitely try.
trent.mohay (Sat, 18 Apr 2020 08:00:47 GMT):
@roderik When a node is voted in as a validator, it immediately becomes part of the "validation pool" - so no, a restart is required.
To turn a node into a validator, >=50% of the existing validators must have “cast a vote” for the new node.
A validator casts a vote by producing a block with a “Endore Node-X” in the block-header’s extra data. A block can only contain a single vote.
Thus, if you have 4 validators, at least 2 blocks must be produced before a new node becomes part of the validator-pool (i.e. 2 votes must exist on the chain). Therefore, there is always a lag between injecting your vote via the Json RPC, and a new validator joining the pool.
So - assuming you submitted all 4 “in-votes” to all 4 validators, it would be ~10 blocks before all of the validators are part of the validation-pool.
Last piece of background - IBFT2 requires ceil(2n/3) validators to come together (aka communicate a la PBFT) to produce a block. Thus, if you’re validator pool has 8 in it, 6 of them must communicate in order for the chain to progress.
So what can go wrong?
* The vote contained the wrong Ethereum address - thus the validator pool is now larger, but the required node is effectively not running/communicating
* IBFT requires all validators to have at least 1 direct link to another validator, otherwise it cannot route IBFT2 packets to the other validators (it uses a gossip network).
With all that in mind, my advice is:
1. If you can, trace back over your chain to determine where votes were cast, and who is now in the Validator pool - are these the numbers you expected? Do they line up with the nodes you started?
2. Turn on Trace logging on all nodes, and see what other comms problems you can glean
3. Use your validator nodes as boot nodes, this guarantees Validator communications will be successful.
trent.mohay (Sat, 18 Apr 2020 08:00:47 GMT):
@roderik When a node is voted in as a validator, it immediately becomes part of the "validation pool" - so no, a restart is required.
To turn a node into a validator, >=50% of the existing validators must have “cast a vote” for the new node.
A validator casts a vote by producing a block with a “Endore Node-X” in the block-header’s extra data. A block can only contain a single vote.
Thus, if you have 4 validators, at least 2 blocks must be produced before a new node becomes part of the validator-pool (i.e. 2 votes must exist on the chain). Therefore, there is always a lag between injecting your vote via the Json RPC, and a new validator joining the pool.
So - assuming you submitted all 4 “in-votes” to all 4 validators, it would be ~10 blocks before all of the validators are part of the validation-pool.
Last piece of background - IBFT2 requires ceil(2n/3) validators to come together (aka communicate a la PBFT) to produce a block. Thus, if you’re validator pool has 8 in it, 6 of them must communicate in order for the chain to progress.
So what can go wrong?
* The vote contained the wrong Ethereum address - thus the validator pool is now larger, but the required node is effectively not running/communicating
* IBFT requires all validators to have at least 1 direct link to another validator, otherwise it cannot route IBFT2 packets to the other validators (it uses a gossip network).
With all that in mind, my advice is:
1. If you can, trace back over your chain to determine where votes were cast, and who is now in the Validator pool - are these the numbers you expected? Do they line up with the nodes you started?
2. Turn on Trace logging on all nodes, and see what other comms problems you can glean
3. Use your validator nodes as boot nodes, this guarantees Validator communications will be successful.
roderik (Sat, 18 Apr 2020 09:22:30 GMT):
@trent.mohay Potentially the validator connection is an issue, my groups of 4 validators are only connected to their bootnode and to any bootnodes previously deployed. so the first set (active validators) are only connected to each other and their bootnode, the second set gets deployed and connect to each other, their bootnode and the bootnode of the first set. Looking at peers i see that the first set has 4 peers, the second set 5, the first bootnode 9, the second bootnode 5. So my two sets of 4 nodes are only connected over their bootnode.
roderik (Sat, 18 Apr 2020 09:23:53 GMT):
I wanted to create some sort of "star" architecture (each group is in a different k8s cluster, exposing the ports of each node is not trivial)
keckt (Sat, 18 Apr 2020 10:55:36 GMT):
Has joined the channel.
keckt (Sat, 18 Apr 2020 17:57:08 GMT):
Why does the "besu-sample-networks" code does not have a passwords line in the orion.conf file ?
keckt (Sat, 18 Apr 2020 17:57:08 GMT):
Why does the "besu-sample-networks" code does not have a passwords line in the orion.conf file ? And then, how can we generate new nodekeys to create additional nodes to the deployment, without using a passwordFile
trent.mohay (Sat, 18 Apr 2020 23:46:21 GMT):
Unfortunately, unless each validator can directly connect to another validator, its effectively "orphaned" - every node in the network will know that it is a validator, however it will be unable to participate in the block creation process as it can send
trent.mohay (Sat, 18 Apr 2020 23:46:21 GMT):
IBFT2 has a "sidechannel" for protocol specific packets (Propose, Prepare, Commit) which are used to propose and agree upon a block. To minimise network traffic, these packets are only sent to other validators. Validators are responsible for forwarding received IBFT2 packets to other connected validators (gossip network), this means that not all validators need to be connected to all other validators - only one.
Unfortunately, unless each validator has a least 1 connection to another validator, its effectively "orphaned" - every node in the network will know that it is a validator (as this information is stored in the blockheader), however the node will be unable to participate in the block creation process - too many orphans and you halt the network.
I don't have a good answer for how to handle you k8s cluster, but, at the moment, the issue above is a hard-requirement for an IBFT2 network.
NewAlexandria (Sun, 19 Apr 2020 01:29:39 GMT):
Has joined the channel.
hmijail (Mon, 20 Apr 2020 06:11:55 GMT):
When Besu starts in UPNP mode, it tries to detect the external IP address. In my case it is failing because of a double router situation: it finds the IP after the second router.
For this case, other P2P applications provide an option so the user can override the external IP to be announced; but I don't see such an option in Besu.
Is the external IP important in this case? Or do other nodes just piggyback on the connection that my Besu starts?
faraggi (Mon, 20 Apr 2020 10:15:34 GMT):
Orion doesn't _need_ a password to be run. You can generate the pub/priv keys without a password and run it without specifying that in the config file.
I don't recommend doing this for production networks.
To generate the password-less keys, just hit enter when asking for a password when running `orion -g nodeKeys`
keckt (Mon, 20 Apr 2020 12:12:15 GMT):
noted, thank you. My goal is to use the besu-sample-networks repo and modify it in order to create a couple of additional multi tenant nodes. I assume that I can just follow the tutorials on setting up a multitenant node, and I generate all the tenant keys like you indicated above, and no passwordFile ?
faraggi (Mon, 20 Apr 2020 12:20:45 GMT):
Yeah, that sounds about right. report back here if you bump into problems.
rohitgupta027 (Mon, 20 Apr 2020 12:25:14 GMT):
I have besu cluster running on Kubernetes using `besu-kubernetes` repo. I unable to connect an external node to the cluster. I have expose the UDP service from cluster but currently TCP and UDP is not supported by kubernetes. Any pointers on connecting external node to Kubernetes cluster for private permissioned network setup.
faraggi (Mon, 20 Apr 2020 12:28:30 GMT):
You can start without UPNP, set it to Manual and advertise whatever IP you want.
https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Specifying-NAT/#manual
faraggi (Mon, 20 Apr 2020 12:43:10 GMT):
Hi @rohitgupta027 , were you able to verify that you had connectivity as suggested here? https://github.com/PegaSysEng/besu-kubernetes/issues/49
rohitgupta027 (Mon, 20 Apr 2020 12:51:28 GMT):
Hi @faraggi I have raised that issue myself but suggested solution was not desired.
rohitgupta027 (Mon, 20 Apr 2020 13:07:22 GMT): rohitgupta027 (Mon, 20 Apr 2020 13:07:22 GMT): atoulme (Mon, 20 Apr 2020 16:11:14 GMT): atoulme (Mon, 20 Apr 2020 16:11:42 GMT): atoulme (Mon, 20 Apr 2020 16:11:50 GMT): atoulme (Mon, 20 Apr 2020 16:22:36 GMT): Jemal (Mon, 20 Apr 2020 17:48:21 GMT): atoulme (Mon, 20 Apr 2020 17:56:09 GMT): Jemal (Mon, 20 Apr 2020 19:52:23 GMT): Jemal (Mon, 20 Apr 2020 19:52:23 GMT): joshuafernandes (Mon, 20 Apr 2020 21:54:58 GMT): joshuafernandes (Mon, 20 Apr 2020 21:55:57 GMT): joshuafernandes (Mon, 20 Apr 2020 21:57:17 GMT): atoulme (Mon, 20 Apr 2020 21:58:15 GMT): joshuafernandes (Mon, 20 Apr 2020 21:59:13 GMT): madelinemurray (Mon, 20 Apr 2020 22:35:18 GMT): Jemal (Tue, 21 Apr 2020 04:46:20 GMT): Jemal (Tue, 21 Apr 2020 04:46:20 GMT): JayJong (Tue, 21 Apr 2020 06:54:52 GMT): PeiChia (Tue, 21 Apr 2020 08:35:02 GMT): PeiChia (Tue, 21 Apr 2020 08:35:04 GMT): rohitgupta027 (Tue, 21 Apr 2020 09:50:07 GMT): rohitgupta027 (Tue, 21 Apr 2020 09:50:07 GMT): SimonTemple (Tue, 21 Apr 2020 16:44:26 GMT): SimonTemple (Tue, 21 Apr 2020 16:44:29 GMT): arunog (Tue, 21 Apr 2020 18:22:35 GMT): joshuafernandes (Tue, 21 Apr 2020 21:20:35 GMT): joshuafernandes (Tue, 21 Apr 2020 21:20:35 GMT): joshuafernandes (Tue, 21 Apr 2020 21:20:35 GMT): joshuafernandes (Tue, 21 Apr 2020 21:38:31 GMT): rohitgupta027 (Wed, 22 Apr 2020 08:52:16 GMT): rohitgupta027 (Wed, 22 Apr 2020 08:52:16 GMT): ppoliani (Wed, 22 Apr 2020 10:18:12 GMT): rohitgupta027 (Wed, 22 Apr 2020 12:00:58 GMT): ppoliani (Wed, 22 Apr 2020 12:14:52 GMT): magooster (Wed, 22 Apr 2020 14:46:58 GMT): rohitgupta027 (Wed, 22 Apr 2020 15:28:04 GMT): ppoliani (Wed, 22 Apr 2020 15:28:53 GMT): ppoliani (Wed, 22 Apr 2020 15:29:03 GMT): rohitgupta027 (Wed, 22 Apr 2020 15:29:34 GMT): arunog (Wed, 22 Apr 2020 15:48:09 GMT): SimonTemple (Wed, 22 Apr 2020 16:04:14 GMT): Pablo22 (Wed, 22 Apr 2020 16:13:27 GMT): Pablo22 (Wed, 22 Apr 2020 16:19:07 GMT): Rabax55 (Wed, 22 Apr 2020 21:25:29 GMT): lucassaldanha (Thu, 23 Apr 2020 02:52:38 GMT): lucassaldanha (Thu, 23 Apr 2020 02:52:38 GMT): lucassaldanha (Thu, 23 Apr 2020 02:52:38 GMT): dbdagr8 (Thu, 23 Apr 2020 03:52:06 GMT): dbdagr8 (Thu, 23 Apr 2020 03:52:06 GMT): hmijail (Thu, 23 Apr 2020 07:12:52 GMT): hmijail (Thu, 23 Apr 2020 07:15:09 GMT): madelinemurray (Thu, 23 Apr 2020 07:45:45 GMT): magooster (Thu, 23 Apr 2020 07:49:29 GMT): magooster (Thu, 23 Apr 2020 07:49:29 GMT): hmijail (Thu, 23 Apr 2020 07:52:12 GMT): madelinemurray (Thu, 23 Apr 2020 07:54:07 GMT): faraggi (Thu, 23 Apr 2020 11:14:04 GMT): tezansahu (Thu, 23 Apr 2020 11:54:07 GMT): theblockstalk (Thu, 23 Apr 2020 13:26:52 GMT): shemnon (Thu, 23 Apr 2020 13:59:59 GMT): hmijail (Thu, 23 Apr 2020 15:22:06 GMT): hmijail (Thu, 23 Apr 2020 15:29:07 GMT): shemnon (Thu, 23 Apr 2020 15:29:52 GMT): hmijail (Thu, 23 Apr 2020 15:33:05 GMT): Pablo22 (Thu, 23 Apr 2020 16:01:56 GMT): Pablo22 (Thu, 23 Apr 2020 16:01:56 GMT): cam-parra (Thu, 23 Apr 2020 16:09:40 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): soyama-dclab (Fri, 24 Apr 2020 07:57:28 GMT): brotchain (Fri, 24 Apr 2020 10:34:56 GMT): amhiggin (Fri, 24 Apr 2020 12:48:03 GMT): amhiggin (Fri, 24 Apr 2020 12:48:04 GMT): niliakis (Fri, 24 Apr 2020 16:06:21 GMT): atoulme (Fri, 24 Apr 2020 16:39:29 GMT): amhiggin (Fri, 24 Apr 2020 16:46:25 GMT): amhiggin (Fri, 24 Apr 2020 16:46:25 GMT): atoulme (Fri, 24 Apr 2020 16:46:44 GMT): atoulme (Fri, 24 Apr 2020 16:46:58 GMT): amhiggin (Fri, 24 Apr 2020 17:08:00 GMT): amhiggin (Fri, 24 Apr 2020 17:08:16 GMT): atoulme (Fri, 24 Apr 2020 17:09:38 GMT): amhiggin (Fri, 24 Apr 2020 17:11:31 GMT): shemnon (Fri, 24 Apr 2020 18:08:07 GMT): madelinemurray (Sat, 25 Apr 2020 22:37:56 GMT): chaals (Sun, 26 Apr 2020 02:23:10 GMT): chaals (Sun, 26 Apr 2020 02:23:17 GMT): shemnon (Sun, 26 Apr 2020 04:20:02 GMT): RealDeanZhao (Sun, 26 Apr 2020 06:39:24 GMT): RealDeanZhao (Sun, 26 Apr 2020 06:39:24 GMT): RealDeanZhao (Sun, 26 Apr 2020 06:39:24 GMT): RealDeanZhao (Sun, 26 Apr 2020 06:39:24 GMT): RealDeanZhao (Sun, 26 Apr 2020 06:39:24 GMT): RealDeanZhao (Sun, 26 Apr 2020 06:39:48 GMT): ajsutton (Sun, 26 Apr 2020 09:32:00 GMT): RealDeanZhao (Sun, 26 Apr 2020 09:33:28 GMT): RealDeanZhao (Sun, 26 Apr 2020 09:39:03 GMT): RealDeanZhao (Sun, 26 Apr 2020 09:39:14 GMT): madelinemurray (Sun, 26 Apr 2020 22:45:29 GMT): joshuafernandes (Mon, 27 Apr 2020 01:03:37 GMT): joshuafernandes (Mon, 27 Apr 2020 01:04:39 GMT): chaals (Mon, 27 Apr 2020 04:23:28 GMT): amhiggin (Mon, 27 Apr 2020 08:24:09 GMT): niliakis (Mon, 27 Apr 2020 16:19:51 GMT): NicolasMassart (Mon, 27 Apr 2020 19:13:42 GMT): NicolasMassart (Mon, 27 Apr 2020 19:13:42 GMT): shemnon (Mon, 27 Apr 2020 20:33:42 GMT): madelinemurray (Tue, 28 Apr 2020 00:34:31 GMT): K2LIS (Tue, 28 Apr 2020 20:46:00 GMT): chaals (Wed, 29 Apr 2020 05:02:14 GMT): antoinedz (Thu, 30 Apr 2020 05:38:04 GMT): antoinedz (Thu, 30 Apr 2020 05:47:20 GMT): antoinedz (Thu, 30 Apr 2020 06:08:36 GMT): lepar (Thu, 30 Apr 2020 12:22:00 GMT): lepar (Thu, 30 Apr 2020 12:22:01 GMT): peter_somogyvari (Thu, 30 Apr 2020 19:30:38 GMT): atoulme (Thu, 30 Apr 2020 23:57:22 GMT): peter_somogyvari (Fri, 01 May 2020 01:55:46 GMT): atoulme (Fri, 01 May 2020 01:56:00 GMT): peter_somogyvari (Fri, 01 May 2020 01:59:12 GMT): atoulme (Fri, 01 May 2020 01:59:59 GMT): peter_somogyvari (Fri, 01 May 2020 02:00:19 GMT): arash009 (Fri, 01 May 2020 03:16:41 GMT): arash009 (Fri, 01 May 2020 03:25:10 GMT): lepar (Sat, 02 May 2020 18:27:39 GMT): ivicaa (Sun, 03 May 2020 11:46:12 GMT): yehia67 (Sun, 03 May 2020 20:20:32 GMT): yehia67 (Sun, 03 May 2020 20:22:18 GMT): yehia67 (Sun, 03 May 2020 20:22:18 GMT): arash009 (Mon, 04 May 2020 02:21:49 GMT): arash009 (Mon, 04 May 2020 02:24:26 GMT): lepar (Mon, 04 May 2020 03:07:28 GMT): Bobur (Mon, 04 May 2020 07:03:35 GMT): yenkuanlee (Mon, 04 May 2020 07:41:39 GMT): ivicaa (Mon, 04 May 2020 07:48:01 GMT): ivicaa (Mon, 04 May 2020 07:48:01 GMT): yehia67 (Mon, 04 May 2020 19:20:36 GMT): yehia67 (Mon, 04 May 2020 19:20:36 GMT): madelinemurray (Mon, 04 May 2020 21:17:18 GMT): ivicaa (Mon, 04 May 2020 22:07:52 GMT): jframe (Tue, 05 May 2020 03:21:50 GMT): madelinemurray (Tue, 05 May 2020 03:28:30 GMT): ivicaa (Tue, 05 May 2020 05:35:03 GMT): ivicaa (Tue, 05 May 2020 05:35:03 GMT): lucassaldanha (Tue, 05 May 2020 21:00:47 GMT): lucassaldanha (Tue, 05 May 2020 21:01:31 GMT): ivicaa (Tue, 05 May 2020 21:03:14 GMT): lucassaldanha (Tue, 05 May 2020 21:05:31 GMT): lucassaldanha (Tue, 05 May 2020 21:06:03 GMT): ivicaa (Tue, 05 May 2020 21:09:00 GMT): ivicaa (Tue, 05 May 2020 21:09:37 GMT): ivicaa (Tue, 05 May 2020 21:09:37 GMT): ivicaa (Tue, 05 May 2020 21:10:27 GMT): lucassaldanha (Tue, 05 May 2020 21:10:59 GMT): ivicaa (Tue, 05 May 2020 21:27:11 GMT): ivicaa (Tue, 05 May 2020 21:27:50 GMT): ivicaa (Tue, 05 May 2020 21:28:39 GMT): ivicaa (Tue, 05 May 2020 21:28:39 GMT): ivicaa (Tue, 05 May 2020 21:31:48 GMT): lucassaldanha (Tue, 05 May 2020 22:15:04 GMT): lucassaldanha (Tue, 05 May 2020 22:15:52 GMT): ivicaa (Tue, 05 May 2020 22:22:32 GMT): lucassaldanha (Tue, 05 May 2020 22:25:36 GMT): lucassaldanha (Tue, 05 May 2020 22:26:15 GMT): lucassaldanha (Tue, 05 May 2020 22:26:27 GMT): ivicaa (Tue, 05 May 2020 22:26:45 GMT): ivicaa (Tue, 05 May 2020 22:27:28 GMT): lucassaldanha (Tue, 05 May 2020 22:28:29 GMT): ivicaa (Tue, 05 May 2020 22:28:34 GMT): ivicaa (Tue, 05 May 2020 22:28:50 GMT): lucassaldanha (Tue, 05 May 2020 22:29:02 GMT): lucassaldanha (Tue, 05 May 2020 22:29:04 GMT): ivicaa (Tue, 05 May 2020 22:29:08 GMT): lucassaldanha (Tue, 05 May 2020 22:29:24 GMT): ivicaa (Tue, 05 May 2020 22:29:46 GMT): lucassaldanha (Tue, 05 May 2020 22:29:57 GMT): lucassaldanha (Tue, 05 May 2020 22:30:30 GMT): ivicaa (Tue, 05 May 2020 22:30:32 GMT): lucassaldanha (Tue, 05 May 2020 22:31:40 GMT): lucassaldanha (Tue, 05 May 2020 22:32:18 GMT): ivicaa (Tue, 05 May 2020 22:32:46 GMT): lucassaldanha (Tue, 05 May 2020 22:33:01 GMT): lucassaldanha (Tue, 05 May 2020 22:33:05 GMT): lucassaldanha (Tue, 05 May 2020 22:33:14 GMT): ivicaa (Tue, 05 May 2020 22:33:34 GMT): lucassaldanha (Tue, 05 May 2020 22:33:35 GMT): lucassaldanha (Tue, 05 May 2020 22:33:57 GMT): ivicaa (Tue, 05 May 2020 22:35:59 GMT): ivicaa (Tue, 05 May 2020 22:35:59 GMT): lucassaldanha (Tue, 05 May 2020 22:36:40 GMT): lucassaldanha (Tue, 05 May 2020 22:37:29 GMT): lucassaldanha (Tue, 05 May 2020 22:37:44 GMT): ivicaa (Tue, 05 May 2020 22:38:24 GMT): lucassaldanha (Tue, 05 May 2020 22:39:27 GMT): lucassaldanha (Tue, 05 May 2020 22:40:07 GMT): lucassaldanha (Tue, 05 May 2020 22:40:31 GMT): ivicaa (Tue, 05 May 2020 22:42:20 GMT): lucassaldanha (Tue, 05 May 2020 23:16:18 GMT): niliakis (Wed, 06 May 2020 15:42:39 GMT): atoulme (Wed, 06 May 2020 17:37:20 GMT): shemnon (Wed, 06 May 2020 17:54:46 GMT): niliakis (Wed, 06 May 2020 19:55:43 GMT): atoulme (Wed, 06 May 2020 20:13:42 GMT): atoulme (Wed, 06 May 2020 20:14:08 GMT): atoulme (Wed, 06 May 2020 20:14:56 GMT): benjamincburns (Wed, 06 May 2020 23:32:47 GMT): benjamincburns (Wed, 06 May 2020 23:33:25 GMT): HLFPOC (Thu, 07 May 2020 09:14:17 GMT): niliakis (Thu, 07 May 2020 10:50:26 GMT): diegoll (Thu, 07 May 2020 14:18:18 GMT): diegoll (Thu, 07 May 2020 14:27:12 GMT): niliakis (Thu, 07 May 2020 15:01:01 GMT): atoulme (Thu, 07 May 2020 15:56:48 GMT): HLFPOC (Thu, 07 May 2020 18:28:14 GMT): atoulme (Thu, 07 May 2020 18:28:34 GMT): atoulme (Thu, 07 May 2020 18:28:56 GMT): atoulme (Thu, 07 May 2020 18:29:38 GMT): HLFPOC (Thu, 07 May 2020 18:39:03 GMT): HLFPOC (Thu, 07 May 2020 18:39:03 GMT): atoulme (Thu, 07 May 2020 18:56:14 GMT): lucassaldanha (Thu, 07 May 2020 20:40:40 GMT): lucassaldanha (Thu, 07 May 2020 20:40:40 GMT): lucassaldanha (Thu, 07 May 2020 20:42:30 GMT): atoulme (Thu, 07 May 2020 20:43:14 GMT): lucassaldanha (Thu, 07 May 2020 20:43:54 GMT): lucassaldanha (Thu, 07 May 2020 20:56:14 GMT): diegoll (Thu, 07 May 2020 21:02:36 GMT): lucassaldanha (Thu, 07 May 2020 21:05:24 GMT): lucassaldanha (Thu, 07 May 2020 21:06:18 GMT): lucassaldanha (Thu, 07 May 2020 21:06:18 GMT): diegoll (Thu, 07 May 2020 21:11:05 GMT): lucassaldanha (Thu, 07 May 2020 21:16:48 GMT): lucassaldanha (Thu, 07 May 2020 21:17:54 GMT): diegoll (Thu, 07 May 2020 21:18:20 GMT): lucassaldanha (Thu, 07 May 2020 21:18:24 GMT): HLFPOC (Fri, 08 May 2020 04:52:59 GMT): HLFPOC (Fri, 08 May 2020 07:09:57 GMT): joshuafernandes (Fri, 08 May 2020 22:20:38 GMT): HLFPOC (Sat, 09 May 2020 17:22:51 GMT): bswamina22 (Sun, 10 May 2020 19:52:24 GMT): bswamina22 (Sun, 10 May 2020 19:55:36 GMT): bswamina22 (Sun, 10 May 2020 19:55:36 GMT): bswamina22 (Sun, 10 May 2020 19:57:55 GMT): bswamina22 (Sun, 10 May 2020 20:05:42 GMT): bswamina22 (Sun, 10 May 2020 20:05:42 GMT): bswamina22 (Sun, 10 May 2020 20:52:25 GMT): joshuafernandes (Sun, 10 May 2020 21:10:09 GMT): SergioTorres (Mon, 11 May 2020 07:32:04 GMT): Bobur (Mon, 11 May 2020 07:41:20 GMT): Bobur (Mon, 11 May 2020 07:41:20 GMT): bmg (Mon, 11 May 2020 08:24:03 GMT): YoussefAlaa (Mon, 11 May 2020 09:48:09 GMT): shemnon (Mon, 11 May 2020 19:07:13 GMT): coenie (Tue, 12 May 2020 09:29:29 GMT): coenie (Tue, 12 May 2020 09:29:29 GMT): coenie (Tue, 12 May 2020 09:46:43 GMT): ajsutton (Tue, 12 May 2020 09:52:45 GMT): coenie (Tue, 12 May 2020 10:19:57 GMT): coenie (Tue, 12 May 2020 10:30:13 GMT): ajsutton (Tue, 12 May 2020 10:42:26 GMT): ajsutton (Tue, 12 May 2020 10:43:07 GMT): coenie (Tue, 12 May 2020 11:01:30 GMT): coenie (Tue, 12 May 2020 11:02:11 GMT): coenie (Tue, 12 May 2020 11:02:11 GMT): coenie (Tue, 12 May 2020 11:02:11 GMT): coenie (Tue, 12 May 2020 11:07:14 GMT): coenie (Tue, 12 May 2020 11:55:21 GMT): abdelhamidbakhta (Tue, 12 May 2020 13:24:34 GMT): abdelhamidbakhta (Tue, 12 May 2020 13:27:09 GMT): bmg (Tue, 12 May 2020 13:38:38 GMT): shemnon (Tue, 12 May 2020 14:10:49 GMT): shemnon (Tue, 12 May 2020 14:55:39 GMT): bmg (Tue, 12 May 2020 16:45:34 GMT): bmg (Wed, 13 May 2020 06:52:46 GMT): K2LIS (Wed, 13 May 2020 08:58:49 GMT): abdelhamidbakhta (Wed, 13 May 2020 10:52:03 GMT): bmg (Wed, 13 May 2020 11:16:10 GMT): bmg (Wed, 13 May 2020 11:17:22 GMT): K2LIS (Wed, 13 May 2020 12:50:03 GMT): bmg (Wed, 13 May 2020 12:57:27 GMT): krzyhoo (Wed, 13 May 2020 13:12:55 GMT): krzyhoo (Wed, 13 May 2020 13:12:56 GMT): krzyhoo (Wed, 13 May 2020 13:13:13 GMT): krzyhoo (Wed, 13 May 2020 13:13:45 GMT): bmg (Wed, 13 May 2020 13:17:08 GMT): krzyhoo (Wed, 13 May 2020 13:18:38 GMT): krzyhoo (Wed, 13 May 2020 13:18:47 GMT): krzyhoo (Wed, 13 May 2020 13:20:17 GMT): bmg (Wed, 13 May 2020 13:20:47 GMT): bmg (Wed, 13 May 2020 13:21:21 GMT): krzyhoo (Wed, 13 May 2020 13:38:20 GMT): krzyhoo (Wed, 13 May 2020 13:38:50 GMT): krzyhoo (Wed, 13 May 2020 13:38:58 GMT): krzyhoo (Wed, 13 May 2020 13:39:15 GMT): krzyhoo (Wed, 13 May 2020 13:39:26 GMT): krzyhoo (Wed, 13 May 2020 13:39:28 GMT): krzyhoo (Wed, 13 May 2020 13:40:44 GMT): krzyhoo (Wed, 13 May 2020 13:41:14 GMT): krzyhoo (Wed, 13 May 2020 13:57:24 GMT): trent.mohay (Wed, 13 May 2020 22:02:57 GMT): EdJoJob (Thu, 14 May 2020 00:31:06 GMT): krzyhoo (Thu, 14 May 2020 10:53:49 GMT): krzyhoo (Thu, 14 May 2020 10:54:25 GMT): whatasillyworld (Thu, 14 May 2020 12:52:26 GMT): whatasillyworld (Thu, 14 May 2020 12:52:27 GMT): whatasillyworld (Thu, 14 May 2020 13:09:14 GMT): abdelhamidbakhta (Thu, 14 May 2020 15:46:46 GMT): tomhay (Thu, 14 May 2020 22:05:23 GMT): Benjamin (Fri, 15 May 2020 04:37:50 GMT): pinges (Fri, 15 May 2020 05:39:34 GMT): trent.mohay (Fri, 15 May 2020 06:18:29 GMT): trent.mohay (Fri, 15 May 2020 06:24:22 GMT): trent.mohay (Fri, 15 May 2020 06:24:22 GMT): whatasillyworld (Fri, 15 May 2020 07:30:53 GMT): lucassaldanha (Sun, 17 May 2020 21:33:38 GMT): madelinemurray (Sun, 17 May 2020 23:09:01 GMT): krzyhoo (Mon, 18 May 2020 06:04:22 GMT): krzyhoo (Mon, 18 May 2020 06:05:17 GMT): krzyhoo (Mon, 18 May 2020 06:05:17 GMT): krzyhoo (Mon, 18 May 2020 06:05:40 GMT): Benjamin (Mon, 18 May 2020 08:15:34 GMT): suvajit-sarkar (Mon, 18 May 2020 12:09:27 GMT): suvajit-sarkar (Mon, 18 May 2020 12:09:29 GMT): suvajit-sarkar (Mon, 18 May 2020 12:09:29 GMT): MatiasGallardo (Mon, 18 May 2020 17:53:40 GMT): atoulme (Mon, 18 May 2020 18:45:31 GMT): shemnon (Mon, 18 May 2020 19:47:28 GMT): sownak (Tue, 19 May 2020 09:51:41 GMT): raduke (Tue, 19 May 2020 14:03:21 GMT): eum602 (Tue, 19 May 2020 15:51:00 GMT): madelinemurray (Tue, 19 May 2020 19:36:50 GMT): arash009 (Wed, 20 May 2020 01:36:42 GMT): SergioTorres (Wed, 20 May 2020 10:20:55 GMT): amealwithbasil (Wed, 20 May 2020 15:55:16 GMT): SergioTorres (Wed, 20 May 2020 16:07:03 GMT): deployer21 (Wed, 20 May 2020 17:05:30 GMT): deployer21 (Wed, 20 May 2020 17:08:51 GMT): shemnon (Wed, 20 May 2020 17:53:49 GMT): tomhay (Wed, 20 May 2020 18:14:04 GMT): deployer21 (Wed, 20 May 2020 18:15:55 GMT): lucassaldanha (Wed, 20 May 2020 20:31:57 GMT): achrinza (Thu, 21 May 2020 06:17:57 GMT): amealwithbasil (Thu, 21 May 2020 16:26:42 GMT): arunog (Thu, 21 May 2020 22:17:52 GMT): eum602 (Thu, 21 May 2020 23:18:42 GMT): lucassaldanha (Thu, 21 May 2020 23:22:58 GMT): lucassaldanha (Thu, 21 May 2020 23:23:38 GMT): eum602 (Thu, 21 May 2020 23:24:04 GMT): eum602 (Thu, 21 May 2020 23:24:04 GMT): madelinemurray (Thu, 21 May 2020 23:54:51 GMT): eum602 (Sun, 24 May 2020 03:43:10 GMT): eum602 (Sun, 24 May 2020 03:58:33 GMT): shemnon (Sun, 24 May 2020 04:37:04 GMT): eum602 (Sun, 24 May 2020 04:40:54 GMT): shemnon (Sun, 24 May 2020 04:41:40 GMT): eum602 (Sun, 24 May 2020 04:45:45 GMT): shemnon (Sun, 24 May 2020 04:47:40 GMT): eum602 (Sun, 24 May 2020 04:48:37 GMT): eum602 (Sun, 24 May 2020 04:48:37 GMT): shemnon (Sun, 24 May 2020 04:49:34 GMT): eum602 (Sun, 24 May 2020 04:50:51 GMT): eum602 (Sun, 24 May 2020 04:50:51 GMT): shemnon (Sun, 24 May 2020 04:53:50 GMT): eum602 (Sun, 24 May 2020 05:00:00 GMT): shemnon (Sun, 24 May 2020 05:00:35 GMT): shemnon (Sun, 24 May 2020 05:06:09 GMT): eum602 (Sun, 24 May 2020 05:06:45 GMT): eum602 (Sun, 24 May 2020 05:08:15 GMT): shemnon (Sun, 24 May 2020 05:09:23 GMT): eum602 (Sun, 24 May 2020 05:11:02 GMT): shemnon (Mon, 25 May 2020 01:10:32 GMT): arash009 (Mon, 25 May 2020 07:26:27 GMT): arash009 (Mon, 25 May 2020 07:26:27 GMT): mikiasda (Mon, 25 May 2020 10:29:21 GMT): mikiasda (Mon, 25 May 2020 10:31:08 GMT): mikiasda (Mon, 25 May 2020 10:31:44 GMT): frank.cornelis (Mon, 25 May 2020 13:45:49 GMT): frank.cornelis (Mon, 25 May 2020 13:45:49 GMT): shemnon (Mon, 25 May 2020 16:05:10 GMT): shemnon (Mon, 25 May 2020 16:05:23 GMT): shemnon (Mon, 25 May 2020 16:06:44 GMT): shemnon (Mon, 25 May 2020 16:09:08 GMT): eum602 (Mon, 25 May 2020 16:17:04 GMT): shemnon (Mon, 25 May 2020 16:18:01 GMT): eum602 (Mon, 25 May 2020 17:21:08 GMT): lucassaldanha (Mon, 25 May 2020 23:09:58 GMT): lucassaldanha (Mon, 25 May 2020 23:11:21 GMT): lucassaldanha (Mon, 25 May 2020 23:11:21 GMT): eum602 (Mon, 25 May 2020 23:54:31 GMT): eum602 (Mon, 25 May 2020 23:54:31 GMT): lucassaldanha (Mon, 25 May 2020 23:56:21 GMT): lucassaldanha (Mon, 25 May 2020 23:56:32 GMT): eum602 (Tue, 26 May 2020 00:45:43 GMT): eum602 (Tue, 26 May 2020 00:46:42 GMT): madelinemurray (Tue, 26 May 2020 03:21:12 GMT): arash009 (Tue, 26 May 2020 03:46:10 GMT): arash009 (Tue, 26 May 2020 03:46:10 GMT): frank.cornelis (Tue, 26 May 2020 04:49:28 GMT): reddy (Tue, 26 May 2020 05:44:39 GMT): K2LIS (Tue, 26 May 2020 12:10:27 GMT): SamuelKitavi (Tue, 26 May 2020 12:26:30 GMT): shemnon (Tue, 26 May 2020 15:33:05 GMT): shemnon (Tue, 26 May 2020 15:34:50 GMT): shemnon (Tue, 26 May 2020 15:35:13 GMT): shemnon (Tue, 26 May 2020 15:36:16 GMT): K2LIS (Wed, 27 May 2020 13:34:52 GMT): K2LIS (Wed, 27 May 2020 13:34:52 GMT): Yazanator (Thu, 28 May 2020 00:02:09 GMT): Yazanator (Thu, 28 May 2020 00:02:31 GMT): Yazanator (Thu, 28 May 2020 00:02:51 GMT): Yazanator (Thu, 28 May 2020 00:02:59 GMT): shemnon (Thu, 28 May 2020 00:46:57 GMT): shemnon (Thu, 28 May 2020 00:48:09 GMT): shemnon (Thu, 28 May 2020 00:48:26 GMT): shemnon (Thu, 28 May 2020 00:49:11 GMT): shemnon (Thu, 28 May 2020 00:49:22 GMT): JaimeGomezGarcia (Thu, 28 May 2020 14:45:37 GMT): Yazanator (Fri, 29 May 2020 01:48:14 GMT): Yazanator (Fri, 29 May 2020 01:48:14 GMT): Yazanator (Fri, 29 May 2020 01:48:14 GMT): shemnon (Fri, 29 May 2020 01:49:38 GMT): eum602 (Fri, 29 May 2020 16:26:13 GMT): illuzzig (Mon, 01 Jun 2020 09:16:08 GMT): illuzzig (Mon, 01 Jun 2020 09:16:08 GMT): illuzzig (Mon, 01 Jun 2020 09:16:08 GMT): illuzzig (Mon, 01 Jun 2020 09:17:55 GMT): illuzzig (Mon, 01 Jun 2020 09:17:55 GMT): oussamachaabouni (Mon, 01 Jun 2020 10:34:37 GMT): oussamachaabouni (Mon, 01 Jun 2020 10:34:38 GMT): oussamachaabouni (Mon, 01 Jun 2020 11:27:58 GMT): NicolasMassart (Mon, 01 Jun 2020 20:15:00 GMT): oussamachaabouni (Mon, 01 Jun 2020 21:24:40 GMT): lucassaldanha (Tue, 02 Jun 2020 05:06:53 GMT): illuzzig (Tue, 02 Jun 2020 07:29:53 GMT): illuzzig (Tue, 02 Jun 2020 07:31:07 GMT): sumaids (Tue, 02 Jun 2020 09:12:39 GMT): oussamachaabouni (Tue, 02 Jun 2020 11:05:47 GMT): illuzzig (Tue, 02 Jun 2020 13:29:49 GMT): illuzzig (Tue, 02 Jun 2020 13:29:49 GMT): illuzzig (Tue, 02 Jun 2020 13:29:49 GMT): illuzzig (Tue, 02 Jun 2020 13:31:38 GMT): illuzzig (Tue, 02 Jun 2020 13:31:38 GMT): illuzzig (Tue, 02 Jun 2020 13:36:30 GMT): illuzzig (Tue, 02 Jun 2020 13:36:30 GMT): illuzzig (Tue, 02 Jun 2020 13:37:01 GMT): illuzzig (Tue, 02 Jun 2020 13:37:21 GMT): illuzzig (Tue, 02 Jun 2020 13:39:09 GMT): illuzzig (Tue, 02 Jun 2020 13:39:09 GMT): oussamachaabouni (Tue, 02 Jun 2020 13:59:49 GMT): illuzzig (Tue, 02 Jun 2020 20:26:04 GMT): illuzzig (Tue, 02 Jun 2020 20:26:41 GMT): illuzzig (Wed, 03 Jun 2020 11:52:27 GMT): oussamachaabouni (Wed, 03 Jun 2020 11:59:17 GMT): illuzzig (Wed, 03 Jun 2020 12:27:46 GMT): oussamachaabouni (Wed, 03 Jun 2020 12:34:24 GMT): oussamachaabouni (Wed, 03 Jun 2020 12:39:00 GMT): illuzzig (Wed, 03 Jun 2020 12:54:29 GMT): illuzzig (Wed, 03 Jun 2020 12:54:29 GMT): illuzzig (Wed, 03 Jun 2020 12:54:51 GMT): illuzzig (Wed, 03 Jun 2020 12:55:00 GMT): oussamachaabouni (Wed, 03 Jun 2020 12:58:34 GMT): oussamachaabouni (Wed, 03 Jun 2020 12:58:47 GMT): kuronosec (Thu, 04 Jun 2020 11:05:54 GMT): kuronosec (Thu, 04 Jun 2020 11:11:49 GMT): lucassaldanha (Fri, 05 Jun 2020 00:32:27 GMT): kuronosec (Fri, 05 Jun 2020 06:51:40 GMT): MatiasGallardo (Fri, 05 Jun 2020 12:33:55 GMT): oussamachaabouni (Fri, 05 Jun 2020 13:52:35 GMT): oussamachaabouni (Fri, 05 Jun 2020 13:52:49 GMT): oussamachaabouni (Fri, 05 Jun 2020 13:53:07 GMT): oussamachaabouni (Fri, 05 Jun 2020 14:00:04 GMT): deployer21 (Fri, 05 Jun 2020 15:05:30 GMT): deployer21 (Fri, 05 Jun 2020 15:08:30 GMT): deployer21 (Fri, 05 Jun 2020 15:08:30 GMT): timbeiko (Fri, 05 Jun 2020 19:00:06 GMT): lucassaldanha (Sun, 07 Jun 2020 04:11:11 GMT): lucassaldanha (Sun, 07 Jun 2020 04:12:03 GMT): lucassaldanha (Sun, 07 Jun 2020 04:13:04 GMT): lucassaldanha (Sun, 07 Jun 2020 04:14:34 GMT): lucassaldanha (Sun, 07 Jun 2020 04:14:38 GMT): fergarrui (Sun, 07 Jun 2020 17:49:37 GMT): fergarrui (Sun, 07 Jun 2020 17:49:37 GMT): fergarrui (Sun, 07 Jun 2020 17:49:37 GMT): jagpreet (Mon, 08 Jun 2020 11:48:03 GMT): jagpreet (Mon, 08 Jun 2020 11:48:04 GMT): K2LIS (Mon, 08 Jun 2020 11:52:38 GMT): arunog (Mon, 08 Jun 2020 14:43:32 GMT): oussamachaabouni (Mon, 08 Jun 2020 14:59:14 GMT): arunog (Mon, 08 Jun 2020 15:18:52 GMT): arunog (Mon, 08 Jun 2020 15:18:52 GMT): arunog (Mon, 08 Jun 2020 15:18:52 GMT): arunog (Mon, 08 Jun 2020 15:18:52 GMT): arunog (Mon, 08 Jun 2020 15:18:52 GMT): arunog (Mon, 08 Jun 2020 15:18:52 GMT): arunog (Mon, 08 Jun 2020 15:18:52 GMT): shemnon (Mon, 08 Jun 2020 16:56:15 GMT): kuronosec (Mon, 08 Jun 2020 19:00:02 GMT): joshuafernandes (Mon, 08 Jun 2020 22:24:12 GMT): joshuafernandes (Mon, 08 Jun 2020 22:32:39 GMT): matkt (Mon, 08 Jun 2020 22:39:23 GMT): matkt (Mon, 08 Jun 2020 22:39:41 GMT): matkt (Mon, 08 Jun 2020 22:45:06 GMT): matkt (Mon, 08 Jun 2020 22:55:47 GMT): matkt (Mon, 08 Jun 2020 22:56:37 GMT): matkt (Mon, 08 Jun 2020 22:56:37 GMT): matkt (Mon, 08 Jun 2020 22:56:37 GMT): matkt (Mon, 08 Jun 2020 22:56:37 GMT): matkt (Mon, 08 Jun 2020 22:56:37 GMT): eum602 (Tue, 09 Jun 2020 03:16:37 GMT): eum602 (Tue, 09 Jun 2020 03:16:37 GMT): eum602 (Tue, 09 Jun 2020 03:16:37 GMT): eum602 (Tue, 09 Jun 2020 03:17:11 GMT): lucassaldanha (Tue, 09 Jun 2020 04:48:11 GMT): andlandor (Tue, 09 Jun 2020 06:23:43 GMT): andlandor (Tue, 09 Jun 2020 06:23:44 GMT): K2LIS (Tue, 09 Jun 2020 06:47:39 GMT): rdemera (Tue, 09 Jun 2020 13:36:02 GMT): rdemera (Tue, 09 Jun 2020 13:36:02 GMT): rdemera (Tue, 09 Jun 2020 13:44:46 GMT): rdemera (Tue, 09 Jun 2020 13:57:37 GMT): abdelhamidbakhta (Tue, 09 Jun 2020 14:13:38 GMT): Primat (Tue, 09 Jun 2020 16:00:29 GMT): arunog (Tue, 09 Jun 2020 16:11:45 GMT): arunog (Tue, 09 Jun 2020 16:16:12 GMT): K2LIS (Tue, 09 Jun 2020 16:25:20 GMT): arunog (Wed, 10 Jun 2020 16:20:04 GMT): arunog (Wed, 10 Jun 2020 16:20:04 GMT): matkt (Thu, 11 Jun 2020 09:59:52 GMT): sownak (Thu, 11 Jun 2020 14:14:17 GMT): rohitgupta027 (Thu, 11 Jun 2020 15:08:18 GMT): drewkerrigan (Thu, 11 Jun 2020 15:50:17 GMT): shemnon (Thu, 11 Jun 2020 15:53:09 GMT): shemnon (Thu, 11 Jun 2020 16:00:08 GMT): rohitgupta027 (Thu, 11 Jun 2020 18:44:47 GMT): rohitgupta027 (Thu, 11 Jun 2020 18:44:47 GMT): shemnon (Thu, 11 Jun 2020 18:56:02 GMT): oussamachaabouni (Fri, 12 Jun 2020 13:04:42 GMT): mwklein (Fri, 12 Jun 2020 13:08:13 GMT): oussamachaabouni (Fri, 12 Jun 2020 14:20:46 GMT): oussamachaabouni (Fri, 12 Jun 2020 14:20:58 GMT): oussamachaabouni (Fri, 12 Jun 2020 14:21:29 GMT): josenogueiradalmeida (Fri, 12 Jun 2020 17:22:41 GMT): josenogueiradalmeida (Fri, 12 Jun 2020 17:22:42 GMT): josenogueiradalmeida (Fri, 12 Jun 2020 17:23:57 GMT): josenogueiradalmeida (Fri, 12 Jun 2020 17:32:15 GMT): NicolasMassart (Fri, 12 Jun 2020 18:06:56 GMT): josenogueiradalmeida (Fri, 12 Jun 2020 18:30:38 GMT): josenogueiradalmeida (Fri, 12 Jun 2020 18:30:41 GMT): josenogueiradalmeida (Fri, 12 Jun 2020 18:33:06 GMT): VipinB (Fri, 12 Jun 2020 19:46:13 GMT): VipinB (Fri, 12 Jun 2020 19:47:37 GMT): VipinB (Fri, 12 Jun 2020 19:48:22 GMT): VipinB (Fri, 12 Jun 2020 19:48:41 GMT): magooster (Sat, 13 Jun 2020 10:07:55 GMT): VipinB (Sat, 13 Jun 2020 17:47:20 GMT): VipinB (Sat, 13 Jun 2020 18:00:58 GMT): VipinB (Sun, 14 Jun 2020 00:48:34 GMT): VipinB (Sun, 14 Jun 2020 00:55:47 GMT): VipinB (Sun, 14 Jun 2020 00:56:31 GMT): SunilKumar10 (Mon, 15 Jun 2020 12:15:49 GMT): SunilKumar10 (Mon, 15 Jun 2020 12:15:49 GMT): lucassaldanha (Mon, 15 Jun 2020 12:27:01 GMT): rohitgupta027 (Mon, 15 Jun 2020 13:59:56 GMT): rohitgupta027 (Mon, 15 Jun 2020 13:59:56 GMT): SunilKumar10 (Mon, 15 Jun 2020 14:07:48 GMT): BilelZaghdoudi (Mon, 15 Jun 2020 16:26:53 GMT): madelinemurray (Mon, 15 Jun 2020 23:40:31 GMT): trent.mohay (Mon, 15 Jun 2020 23:46:47 GMT): benjamincburns (Mon, 15 Jun 2020 23:51:04 GMT): benjamincburns (Mon, 15 Jun 2020 23:51:04 GMT): benjamincburns (Mon, 15 Jun 2020 23:52:36 GMT): benjamincburns (Mon, 15 Jun 2020 23:53:25 GMT): benjamincburns (Mon, 15 Jun 2020 23:56:18 GMT): benjamincburns (Mon, 15 Jun 2020 23:56:18 GMT): rohitgupta027 (Tue, 16 Jun 2020 13:05:24 GMT): rohitgupta027 (Tue, 16 Jun 2020 13:05:24 GMT): ptelles (Tue, 16 Jun 2020 14:22:39 GMT): ptelles (Tue, 16 Jun 2020 14:22:39 GMT): illuzzig (Tue, 16 Jun 2020 15:19:33 GMT): matkt (Tue, 16 Jun 2020 16:56:10 GMT): VipinB (Tue, 16 Jun 2020 23:23:35 GMT): VipinB (Tue, 16 Jun 2020 23:24:54 GMT): benjamincburns (Tue, 16 Jun 2020 23:26:17 GMT): benjamincburns (Tue, 16 Jun 2020 23:26:39 GMT): VipinB (Tue, 16 Jun 2020 23:27:02 GMT): VipinB (Tue, 16 Jun 2020 23:27:10 GMT): VipinB (Tue, 16 Jun 2020 23:28:05 GMT): benjamincburns (Tue, 16 Jun 2020 23:28:49 GMT): VipinB (Tue, 16 Jun 2020 23:29:46 GMT): benjamincburns (Tue, 16 Jun 2020 23:31:35 GMT): benjamincburns (Tue, 16 Jun 2020 23:31:35 GMT): VipinB (Tue, 16 Jun 2020 23:32:07 GMT): benjamincburns (Tue, 16 Jun 2020 23:33:19 GMT): VipinB (Tue, 16 Jun 2020 23:42:04 GMT): VipinB (Tue, 16 Jun 2020 23:42:35 GMT): shemnon (Wed, 17 Jun 2020 00:32:41 GMT): shemnon (Wed, 17 Jun 2020 00:32:41 GMT): farghaly (Wed, 17 Jun 2020 10:25:51 GMT): duncanjw (Wed, 17 Jun 2020 22:37:10 GMT): YashShukla (Thu, 18 Jun 2020 12:11:57 GMT): YashShukla (Thu, 18 Jun 2020 12:11:58 GMT): roderik (Thu, 18 Jun 2020 12:36:25 GMT): arunog (Thu, 18 Jun 2020 13:35:21 GMT): roderik (Thu, 18 Jun 2020 15:33:23 GMT): shemnon (Thu, 18 Jun 2020 21:34:09 GMT): RafaelAPB (Fri, 19 Jun 2020 00:52:46 GMT): RafaelAPB (Fri, 19 Jun 2020 00:52:46 GMT): RafaelAPB (Fri, 19 Jun 2020 00:52:46 GMT): shemnon (Fri, 19 Jun 2020 02:05:28 GMT): shemnon (Fri, 19 Jun 2020 02:06:03 GMT): shemnon (Fri, 19 Jun 2020 02:06:03 GMT): YashShukla (Fri, 19 Jun 2020 02:13:14 GMT): YashShukla (Fri, 19 Jun 2020 02:14:19 GMT): BillyLuedtke (Fri, 19 Jun 2020 03:52:30 GMT): banhmi.eth (Fri, 19 Jun 2020 08:42:52 GMT): banhmi.eth (Fri, 19 Jun 2020 08:42:52 GMT): RafaelAPB (Fri, 19 Jun 2020 09:00:13 GMT): farghaly (Fri, 19 Jun 2020 12:27:28 GMT): shemnon (Fri, 19 Jun 2020 14:51:23 GMT): shemnon (Fri, 19 Jun 2020 14:58:26 GMT): Pavak (Fri, 19 Jun 2020 17:19:54 GMT): Pavak (Fri, 19 Jun 2020 17:21:33 GMT): RafaelAPB (Fri, 19 Jun 2020 19:10:00 GMT): shemnon (Fri, 19 Jun 2020 19:11:41 GMT): RafaelAPB (Fri, 19 Jun 2020 19:15:29 GMT): shemnon (Fri, 19 Jun 2020 19:16:42 GMT): RafaelAPB (Fri, 19 Jun 2020 19:28:13 GMT): RafaelAPB (Fri, 19 Jun 2020 19:28:13 GMT): RafaelAPB (Fri, 19 Jun 2020 19:28:13 GMT): VipinB (Sat, 20 Jun 2020 19:27:20 GMT): VipinB (Sat, 20 Jun 2020 19:28:22 GMT): VipinB (Sat, 20 Jun 2020 19:32:31 GMT): magooster (Sat, 20 Jun 2020 19:36:02 GMT): magooster (Sat, 20 Jun 2020 19:36:02 GMT): magooster (Sat, 20 Jun 2020 19:37:12 GMT): magooster (Sat, 20 Jun 2020 19:37:32 GMT): VipinB (Sat, 20 Jun 2020 19:41:15 GMT): magooster (Sat, 20 Jun 2020 19:45:06 GMT): magooster (Sat, 20 Jun 2020 19:46:56 GMT): VipinB (Sat, 20 Jun 2020 19:50:29 GMT): VipinB (Sat, 20 Jun 2020 19:51:53 GMT): VipinB (Sat, 20 Jun 2020 19:51:53 GMT): VipinB (Sat, 20 Jun 2020 19:51:53 GMT): magooster (Sat, 20 Jun 2020 20:04:04 GMT): shemnon (Sun, 21 Jun 2020 03:48:17 GMT): shemnon (Sun, 21 Jun 2020 03:49:51 GMT): shemnon (Sun, 21 Jun 2020 03:50:56 GMT): benjamincburns (Sun, 21 Jun 2020 03:53:29 GMT): VipinB (Sun, 21 Jun 2020 12:09:11 GMT): VipinB (Sun, 21 Jun 2020 12:09:11 GMT): VipinB (Sun, 21 Jun 2020 12:09:11 GMT): shemnon (Sun, 21 Jun 2020 15:23:05 GMT): benjamincburns (Sun, 21 Jun 2020 18:05:12 GMT): benjamincburns (Sun, 21 Jun 2020 18:05:12 GMT): benjamincburns (Sun, 21 Jun 2020 18:05:12 GMT): VipinB (Sun, 21 Jun 2020 21:25:12 GMT): VipinB (Sun, 21 Jun 2020 21:25:12 GMT): VipinB (Sun, 21 Jun 2020 21:25:12 GMT): ArigelaSatyanarayana (Mon, 22 Jun 2020 03:50:38 GMT): hilyds (Mon, 22 Jun 2020 09:33:41 GMT): SDive (Mon, 22 Jun 2020 10:28:26 GMT): SDive (Mon, 22 Jun 2020 10:28:26 GMT): SDive (Mon, 22 Jun 2020 10:28:26 GMT): SDive (Mon, 22 Jun 2020 10:28:26 GMT): SDive (Mon, 22 Jun 2020 10:28:26 GMT): RafaelAPB (Mon, 22 Jun 2020 21:10:31 GMT): RafaelAPB (Mon, 22 Jun 2020 21:10:31 GMT): RafaelAPB (Mon, 22 Jun 2020 21:10:31 GMT): RafaelAPB (Mon, 22 Jun 2020 21:10:31 GMT): RafaelAPB (Mon, 22 Jun 2020 21:10:31 GMT): RafaelAPB (Mon, 22 Jun 2020 21:10:31 GMT): shemnon (Tue, 23 Jun 2020 14:14:39 GMT): adovale (Tue, 23 Jun 2020 17:27:15 GMT): adovale (Tue, 23 Jun 2020 17:27:15 GMT): RafaelAPB (Tue, 23 Jun 2020 18:57:36 GMT): manumarchal (Wed, 24 Jun 2020 08:12:48 GMT): farghaly (Wed, 24 Jun 2020 23:44:08 GMT): farghaly (Wed, 24 Jun 2020 23:44:25 GMT): raedbensaid (Thu, 25 Jun 2020 16:04:03 GMT): joshuafernandes (Fri, 26 Jun 2020 06:27:35 GMT): joshuafernandes (Fri, 26 Jun 2020 09:00:46 GMT): raedbensaid (Fri, 26 Jun 2020 09:16:03 GMT): raedbensaid (Fri, 26 Jun 2020 09:16:03 GMT): VipinB (Fri, 26 Jun 2020 15:55:11 GMT): VipinB (Fri, 26 Jun 2020 15:55:11 GMT): Omidazimi94 (Fri, 26 Jun 2020 17:00:27 GMT): Omidazimi94 (Fri, 26 Jun 2020 17:00:27 GMT): joshuafernandes (Sat, 27 Jun 2020 10:20:43 GMT): joshuafernandes (Sat, 27 Jun 2020 10:24:25 GMT): VipinB (Sat, 27 Jun 2020 10:28:15 GMT): madelinemurray (Sun, 28 Jun 2020 21:43:13 GMT): koshikraj (Mon, 29 Jun 2020 05:29:04 GMT): adovale (Mon, 29 Jun 2020 07:46:39 GMT): adovale (Mon, 29 Jun 2020 07:46:39 GMT): adovale (Mon, 29 Jun 2020 07:46:39 GMT): madelinemurray (Tue, 30 Jun 2020 04:58:08 GMT): raedbensaid (Tue, 30 Jun 2020 09:14:19 GMT): raedbensaid (Thu, 02 Jul 2020 09:19:41 GMT): raedbensaid (Thu, 02 Jul 2020 09:22:14 GMT): joshuafernandes (Thu, 02 Jul 2020 11:17:08 GMT): joshuafernandes (Thu, 02 Jul 2020 11:20:47 GMT): joshuafernandes (Thu, 02 Jul 2020 11:20:47 GMT): raedbensaid (Thu, 02 Jul 2020 11:22:35 GMT): raedbensaid (Thu, 02 Jul 2020 11:24:47 GMT): farghaly (Thu, 02 Jul 2020 11:39:51 GMT): Ric.Hard.87 (Thu, 02 Jul 2020 14:13:09 GMT): Ric.Hard.87 (Thu, 02 Jul 2020 14:13:09 GMT): farghaly (Thu, 02 Jul 2020 22:00:35 GMT): farghaly (Thu, 02 Jul 2020 22:00:44 GMT): shemnon (Thu, 02 Jul 2020 22:07:28 GMT): shemnon (Thu, 02 Jul 2020 22:07:28 GMT): farghaly (Thu, 02 Jul 2020 22:09:56 GMT): shemnon (Thu, 02 Jul 2020 22:10:13 GMT): farghaly (Thu, 02 Jul 2020 22:10:40 GMT): shemnon (Thu, 02 Jul 2020 22:15:16 GMT): farghaly (Thu, 02 Jul 2020 22:48:19 GMT): farghaly (Thu, 02 Jul 2020 22:48:43 GMT): joshuafernandes (Fri, 03 Jul 2020 03:49:04 GMT): joshuafernandes (Fri, 03 Jul 2020 03:52:46 GMT): amealwithbasil (Fri, 03 Jul 2020 15:59:33 GMT): rranjan3 (Sat, 04 Jul 2020 02:29:05 GMT): rranjan3 (Sat, 04 Jul 2020 02:29:05 GMT): rranjan3 (Sat, 04 Jul 2020 02:29:05 GMT): rranjan3 (Sat, 04 Jul 2020 12:11:40 GMT): lucassaldanha (Mon, 06 Jul 2020 04:36:07 GMT): marcdk (Mon, 06 Jul 2020 05:28:32 GMT): hilyds (Mon, 06 Jul 2020 12:22:25 GMT): hilyds (Mon, 06 Jul 2020 12:23:09 GMT): raduke (Mon, 06 Jul 2020 15:53:20 GMT): raduke (Mon, 06 Jul 2020 20:08:20 GMT): banhmi.eth (Tue, 07 Jul 2020 03:16:29 GMT): hungptse (Tue, 07 Jul 2020 08:44:58 GMT): lucassaldanha (Wed, 08 Jul 2020 01:39:15 GMT): lucassaldanha (Wed, 08 Jul 2020 01:39:29 GMT): hungptse (Wed, 08 Jul 2020 03:59:46 GMT): hungptse (Wed, 08 Jul 2020 04:01:00 GMT): lucassaldanha (Wed, 08 Jul 2020 21:16:03 GMT): lucassaldanha (Wed, 08 Jul 2020 21:17:35 GMT): cheul123a (Thu, 09 Jul 2020 08:50:51 GMT): cheul123a (Thu, 09 Jul 2020 08:51:15 GMT): Anjali9088 (Thu, 09 Jul 2020 11:06:03 GMT): Anjali9088 (Thu, 09 Jul 2020 11:06:03 GMT): rai (Thu, 09 Jul 2020 14:48:29 GMT): raduke (Thu, 09 Jul 2020 15:27:26 GMT): raedbensaid (Fri, 10 Jul 2020 09:44:07 GMT): Jemal (Sun, 12 Jul 2020 07:15:03 GMT): krzyhoo (Mon, 13 Jul 2020 15:03:47 GMT): krzyhoo (Tue, 14 Jul 2020 05:10:55 GMT): rai (Tue, 14 Jul 2020 14:27:30 GMT): rai (Tue, 14 Jul 2020 14:28:46 GMT): chxpz (Tue, 14 Jul 2020 14:59:28 GMT): DelgadoTrueba (Tue, 14 Jul 2020 18:07:49 GMT): DelgadoTrueba (Tue, 14 Jul 2020 18:07:49 GMT): lucassaldanha (Tue, 14 Jul 2020 20:37:19 GMT): joshuafernandes (Tue, 14 Jul 2020 22:16:07 GMT): illuzzig (Wed, 15 Jul 2020 10:37:21 GMT): chrisdotn (Wed, 15 Jul 2020 11:56:55 GMT): chrisdotn (Wed, 15 Jul 2020 11:56:55 GMT): farghaly (Thu, 16 Jul 2020 11:09:36 GMT): DelgadoTrueba (Thu, 16 Jul 2020 12:14:12 GMT): timbeiko (Thu, 16 Jul 2020 23:37:41 GMT): timbeiko (Thu, 16 Jul 2020 23:37:41 GMT): eum602 (Fri, 17 Jul 2020 20:18:06 GMT): shemnon (Sat, 18 Jul 2020 21:16:01 GMT): shemnon (Sat, 18 Jul 2020 21:19:57 GMT): shemnon (Sat, 18 Jul 2020 21:21:13 GMT): lucassaldanha (Sun, 19 Jul 2020 21:09:17 GMT): lucassaldanha (Sun, 19 Jul 2020 21:11:35 GMT): chrisdotn (Mon, 20 Jul 2020 07:22:32 GMT): farghaly (Mon, 20 Jul 2020 19:59:24 GMT): oon (Mon, 20 Jul 2020 20:14:54 GMT): arash009 (Tue, 21 Jul 2020 05:31:25 GMT): RafaelAPB (Tue, 21 Jul 2020 22:17:12 GMT): githubckgoh1439 (Wed, 22 Jul 2020 04:29:11 GMT): poojagupta23 (Wed, 22 Jul 2020 08:49:55 GMT): poojagupta23 (Wed, 22 Jul 2020 08:49:55 GMT): keithers (Wed, 22 Jul 2020 18:19:52 GMT): keithers (Wed, 22 Jul 2020 18:19:52 GMT): keithers (Wed, 22 Jul 2020 18:19:56 GMT): poojagupta23 (Thu, 23 Jul 2020 03:15:19 GMT): joshuafernandes (Thu, 23 Jul 2020 20:54:44 GMT): joshuafernandes (Thu, 23 Jul 2020 20:55:03 GMT): lucassaldanha (Thu, 23 Jul 2020 22:47:57 GMT): joshuafernandes (Thu, 23 Jul 2020 22:56:18 GMT): joshuafernandes (Thu, 23 Jul 2020 22:56:40 GMT): poojagupta23 (Fri, 24 Jul 2020 03:41:48 GMT): poojagupta23 (Fri, 24 Jul 2020 04:00:40 GMT): poojagupta23 (Fri, 24 Jul 2020 13:03:41 GMT): poojagupta23 (Fri, 24 Jul 2020 13:03:42 GMT): MariusVanDerWijden (Fri, 24 Jul 2020 13:43:53 GMT): MariusVanDerWijden (Fri, 24 Jul 2020 13:43:53 GMT): poojagupta23 (Sat, 25 Jul 2020 03:55:04 GMT): koshikraj (Sat, 25 Jul 2020 06:57:09 GMT): shemnon (Sat, 25 Jul 2020 20:40:27 GMT): shemnon (Sat, 25 Jul 2020 20:42:07 GMT): shemnon (Sat, 25 Jul 2020 20:42:07 GMT): shemnon (Sat, 25 Jul 2020 20:59:06 GMT): lucassaldanha (Sun, 26 Jul 2020 21:14:55 GMT): lucassaldanha (Sun, 26 Jul 2020 21:45:14 GMT): Yathish_ram (Mon, 27 Jul 2020 06:31:33 GMT): MariusVanDerWijden (Mon, 27 Jul 2020 07:25:20 GMT): MariusVanDerWijden (Mon, 27 Jul 2020 08:56:01 GMT): MariusVanDerWijden (Mon, 27 Jul 2020 11:45:19 GMT): chrisdotn (Mon, 27 Jul 2020 14:23:18 GMT): lucassaldanha (Mon, 27 Jul 2020 21:27:17 GMT): lucassaldanha (Mon, 27 Jul 2020 21:28:10 GMT): chrisdotn (Tue, 28 Jul 2020 05:05:25 GMT): chrisdotn (Tue, 28 Jul 2020 07:00:31 GMT): shemnon (Tue, 28 Jul 2020 20:05:13 GMT): lucassaldanha (Tue, 28 Jul 2020 21:14:41 GMT): shemnon (Tue, 28 Jul 2020 22:07:33 GMT): timbeiko (Wed, 29 Jul 2020 21:59:13 GMT): madelinemurray (Fri, 31 Jul 2020 00:46:01 GMT): githubckgoh1439 (Sun, 02 Aug 2020 11:34:17 GMT): lakshyakumar (Mon, 03 Aug 2020 09:24:15 GMT): lakshyakumar (Mon, 03 Aug 2020 09:24:16 GMT): lakshyakumar (Mon, 03 Aug 2020 10:07:47 GMT): shemnon (Mon, 03 Aug 2020 14:52:26 GMT): shemnon (Mon, 03 Aug 2020 14:52:26 GMT): islarose (Mon, 03 Aug 2020 16:26:03 GMT): islarose (Mon, 03 Aug 2020 16:26:03 GMT): islarose (Mon, 03 Aug 2020 16:27:24 GMT): islarose (Mon, 03 Aug 2020 16:33:19 GMT): TerryWBC (Tue, 04 Aug 2020 07:31:50 GMT): carlosho17 (Tue, 04 Aug 2020 10:27:54 GMT): arash009 (Tue, 04 Aug 2020 23:30:27 GMT): YoussefAlaa (Wed, 05 Aug 2020 17:23:16 GMT): shemnon (Wed, 05 Aug 2020 17:59:16 GMT): shemnon (Wed, 05 Aug 2020 18:00:38 GMT): YoussefAlaa (Wed, 05 Aug 2020 18:20:21 GMT): lucassaldanha (Wed, 05 Aug 2020 21:32:50 GMT): lucassaldanha (Wed, 05 Aug 2020 21:35:53 GMT): arash009 (Thu, 06 Aug 2020 06:13:16 GMT): poojagupta23 (Fri, 07 Aug 2020 02:31:09 GMT): Anjali9088 (Fri, 07 Aug 2020 10:31:25 GMT): timbeiko (Fri, 07 Aug 2020 18:41:26 GMT): madelinemurray (Sun, 09 Aug 2020 20:44:28 GMT): arash009 (Mon, 10 Aug 2020 00:29:32 GMT): calvin.heo (Mon, 10 Aug 2020 06:09:10 GMT): poojagupta23 (Mon, 10 Aug 2020 06:38:52 GMT): arash009 (Mon, 10 Aug 2020 06:57:53 GMT): aldoborrero (Mon, 10 Aug 2020 09:10:30 GMT): rai (Mon, 10 Aug 2020 14:08:43 GMT): monafinfiquaro (Mon, 10 Aug 2020 17:42:49 GMT): monafinfiquaro (Mon, 10 Aug 2020 17:46:03 GMT): shemnon (Mon, 10 Aug 2020 19:04:14 GMT): shemnon (Mon, 10 Aug 2020 19:04:26 GMT): monafinfiquaro (Mon, 10 Aug 2020 22:49:38 GMT): monafinfiquaro (Mon, 10 Aug 2020 22:49:38 GMT): monafinfiquaro (Mon, 10 Aug 2020 22:58:34 GMT): monafinfiquaro (Mon, 10 Aug 2020 22:58:34 GMT): monafinfiquaro (Mon, 10 Aug 2020 23:14:42 GMT): arash009 (Mon, 10 Aug 2020 23:26:40 GMT): shemnon (Mon, 10 Aug 2020 23:36:24 GMT): monafinfiquaro (Mon, 10 Aug 2020 23:37:02 GMT): monafinfiquaro (Mon, 10 Aug 2020 23:53:47 GMT): monafinfiquaro (Mon, 10 Aug 2020 23:57:25 GMT): monafinfiquaro (Mon, 10 Aug 2020 23:57:25 GMT): monafinfiquaro (Tue, 11 Aug 2020 04:05:26 GMT): arash009 (Tue, 11 Aug 2020 04:08:25 GMT): monafinfiquaro (Tue, 11 Aug 2020 07:43:22 GMT): monafinfiquaro (Tue, 11 Aug 2020 08:05:36 GMT): monafinfiquaro (Tue, 11 Aug 2020 08:05:36 GMT): shemnon (Tue, 11 Aug 2020 15:54:30 GMT): sandJohnson (Tue, 11 Aug 2020 21:34:34 GMT): shantaraam (Wed, 12 Aug 2020 13:45:06 GMT): shantaraam (Wed, 12 Aug 2020 13:45:07 GMT): rjones (Wed, 12 Aug 2020 19:19:56 GMT): rjones (Wed, 12 Aug 2020 19:19:56 GMT): rjones (Wed, 12 Aug 2020 19:19:56 GMT): rjones (Wed, 12 Aug 2020 19:20:30 GMT): rjones (Wed, 12 Aug 2020 20:07:16 GMT): lucassaldanha (Wed, 12 Aug 2020 20:18:56 GMT): lucassaldanha (Wed, 12 Aug 2020 20:18:56 GMT): lucassaldanha (Wed, 12 Aug 2020 20:20:16 GMT): shantaraam (Wed, 12 Aug 2020 20:21:35 GMT): lucassaldanha (Wed, 12 Aug 2020 20:22:27 GMT): shantaraam (Wed, 12 Aug 2020 20:22:53 GMT): shantaraam (Wed, 12 Aug 2020 20:23:08 GMT): jagpreet (Thu, 13 Aug 2020 12:56:43 GMT): shantaraam (Thu, 13 Aug 2020 13:21:13 GMT): monafinfiquaro (Thu, 13 Aug 2020 15:51:26 GMT): monafinfiquaro (Thu, 13 Aug 2020 15:51:26 GMT): monafinfiquaro (Thu, 13 Aug 2020 15:51:26 GMT): monafinfiquaro (Thu, 13 Aug 2020 15:51:26 GMT): monafinfiquaro (Thu, 13 Aug 2020 15:51:26 GMT): monafinfiquaro (Thu, 13 Aug 2020 16:03:21 GMT): monafinfiquaro (Thu, 13 Aug 2020 16:03:21 GMT): timbeiko (Thu, 13 Aug 2020 22:30:54 GMT): timbeiko (Thu, 13 Aug 2020 22:30:54 GMT): deployer21 (Sun, 16 Aug 2020 16:58:57 GMT): Anjali9088 (Tue, 18 Aug 2020 03:58:46 GMT): bmg (Tue, 18 Aug 2020 08:18:37 GMT): bmg (Tue, 18 Aug 2020 08:20:22 GMT): bmg (Tue, 18 Aug 2020 08:21:17 GMT): bmg (Tue, 18 Aug 2020 08:21:23 GMT): Anjali9088 (Tue, 18 Aug 2020 08:55:22 GMT): shemnon (Tue, 18 Aug 2020 12:51:01 GMT): shemnon (Tue, 18 Aug 2020 12:51:01 GMT): LeonYangLi (Wed, 19 Aug 2020 13:48:56 GMT): LeonYangLi (Wed, 19 Aug 2020 13:48:57 GMT): LeonYangLi (Wed, 19 Aug 2020 13:48:57 GMT): LeonYangLi (Wed, 19 Aug 2020 13:48:57 GMT): LeonYangLi (Wed, 19 Aug 2020 13:48:57 GMT): shemnon (Wed, 19 Aug 2020 14:50:46 GMT): davidwboswell (Wed, 19 Aug 2020 21:49:17 GMT): LeonYangLi (Thu, 20 Aug 2020 02:55:01 GMT): shemnon (Thu, 20 Aug 2020 03:22:35 GMT): LeonYangLi (Thu, 20 Aug 2020 04:21:43 GMT): e-nikolov (Thu, 20 Aug 2020 16:30:54 GMT): e-nikolov (Thu, 20 Aug 2020 16:30:54 GMT): arash009 (Fri, 21 Aug 2020 01:54:39 GMT): jcldnatv (Sat, 22 Aug 2020 17:22:57 GMT): Helium (Mon, 24 Aug 2020 02:43:17 GMT): Helium (Mon, 24 Aug 2020 02:43:17 GMT): shemnon (Mon, 24 Aug 2020 03:32:20 GMT): shemnon (Mon, 24 Aug 2020 03:32:20 GMT): jbtwist (Tue, 25 Aug 2020 09:35:27 GMT): jbtwist (Tue, 25 Aug 2020 09:35:27 GMT): charyorde (Tue, 25 Aug 2020 14:29:11 GMT): charyorde (Tue, 25 Aug 2020 14:30:56 GMT): grace.hartley (Tue, 25 Aug 2020 15:13:18 GMT): charyorde (Tue, 25 Aug 2020 15:16:02 GMT): charyorde (Tue, 25 Aug 2020 15:16:03 GMT): VijayMichalik (Tue, 25 Aug 2020 17:18:46 GMT): VijayMichalik (Tue, 25 Aug 2020 17:21:04 GMT): charyorde (Tue, 25 Aug 2020 18:16:53 GMT): charyorde (Tue, 25 Aug 2020 18:16:57 GMT): charyorde (Tue, 25 Aug 2020 18:22:23 GMT): shemnon (Tue, 25 Aug 2020 18:49:33 GMT): BharadwajVaranasi (Wed, 26 Aug 2020 05:05:14 GMT): BharadwajVaranasi (Wed, 26 Aug 2020 05:05:14 GMT): BharadwajVaranasi (Wed, 26 Aug 2020 05:05:22 GMT): BharadwajVaranasi (Wed, 26 Aug 2020 05:05:27 GMT): BharadwajVaranasi (Wed, 26 Aug 2020 05:06:01 GMT): ravinayag (Wed, 26 Aug 2020 12:24:47 GMT): ravinayag (Wed, 26 Aug 2020 13:42:10 GMT): ravinayag (Wed, 26 Aug 2020 13:43:46 GMT): ravinayag (Wed, 26 Aug 2020 13:46:18 GMT): ravinayag (Wed, 26 Aug 2020 13:46:19 GMT): ravinayag (Wed, 26 Aug 2020 13:47:04 GMT): poojagupta23 (Wed, 26 Aug 2020 13:53:13 GMT): shemnon (Wed, 26 Aug 2020 14:29:56 GMT): shemnon (Wed, 26 Aug 2020 14:31:01 GMT): shemnon (Wed, 26 Aug 2020 14:33:59 GMT): rjones (Wed, 26 Aug 2020 14:53:13 GMT): ravinayag (Wed, 26 Aug 2020 15:50:49 GMT): poojagupta23 (Thu, 27 Aug 2020 01:53:17 GMT): poojagupta23 (Thu, 27 Aug 2020 01:53:17 GMT): valesken (Thu, 27 Aug 2020 17:02:01 GMT): timbeiko (Thu, 27 Aug 2020 20:12:28 GMT): RafaelAPB (Fri, 28 Aug 2020 12:31:33 GMT): RamkumarVenkataraman (Sat, 29 Aug 2020 12:11:47 GMT): RamkumarVenkataraman (Sat, 29 Aug 2020 12:11:47 GMT): RamkumarVenkataraman (Sat, 29 Aug 2020 12:11:47 GMT): GregTheGreek (Sat, 29 Aug 2020 17:37:39 GMT): GregTheGreek (Sat, 29 Aug 2020 17:40:33 GMT): shemnon (Sat, 29 Aug 2020 19:13:31 GMT): shemnon (Sat, 29 Aug 2020 19:13:31 GMT): shemnon (Sat, 29 Aug 2020 19:18:05 GMT): shemnon (Sat, 29 Aug 2020 19:21:13 GMT): shemnon (Sat, 29 Aug 2020 19:22:24 GMT): shemnon (Sat, 29 Aug 2020 19:22:24 GMT): GregTheGreek (Sun, 30 Aug 2020 11:27:41 GMT): shemnon (Sun, 30 Aug 2020 16:53:52 GMT): shemnon (Sun, 30 Aug 2020 16:53:52 GMT): lucassaldanha (Sun, 30 Aug 2020 22:08:53 GMT): lucassaldanha (Sun, 30 Aug 2020 22:20:45 GMT): lucassaldanha (Sun, 30 Aug 2020 22:20:50 GMT): lucassaldanha (Sun, 30 Aug 2020 22:20:55 GMT): lucassaldanha (Sun, 30 Aug 2020 22:21:04 GMT): lucassaldanha (Sun, 30 Aug 2020 22:21:15 GMT): lucassaldanha (Sun, 30 Aug 2020 22:21:25 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:06:26 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:06:26 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:09:22 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:09:22 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:09:22 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:09:22 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:21:43 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:21:43 GMT): RamkumarVenkataraman (Mon, 31 Aug 2020 03:21:43 GMT): jbtwist (Mon, 31 Aug 2020 12:17:01 GMT): shemnon (Mon, 31 Aug 2020 14:25:38 GMT): jbtwist (Mon, 31 Aug 2020 16:08:28 GMT): shemnon (Mon, 31 Aug 2020 16:19:00 GMT): lucassaldanha (Mon, 31 Aug 2020 23:01:32 GMT): lucassaldanha (Mon, 31 Aug 2020 23:01:36 GMT): lucassaldanha (Mon, 31 Aug 2020 23:01:42 GMT): lucassaldanha (Mon, 31 Aug 2020 23:01:47 GMT): lucassaldanha (Mon, 31 Aug 2020 23:01:53 GMT): lucassaldanha (Mon, 31 Aug 2020 23:01:59 GMT): RamkumarVenkataraman (Tue, 01 Sep 2020 07:42:08 GMT): nkl199 (Tue, 01 Sep 2020 13:35:15 GMT): jbtwist (Tue, 01 Sep 2020 21:02:54 GMT): lucassaldanha (Wed, 02 Sep 2020 02:22:26 GMT): RamkumarVenkataraman (Wed, 02 Sep 2020 02:24:14 GMT): SteveKIM (Wed, 02 Sep 2020 04:47:00 GMT): SteveKIM (Wed, 02 Sep 2020 04:47:00 GMT): SteveKIM (Wed, 02 Sep 2020 04:48:21 GMT): arash009 (Wed, 02 Sep 2020 05:14:28 GMT): SteveKIM (Wed, 02 Sep 2020 05:17:14 GMT): arash009 (Wed, 02 Sep 2020 05:26:09 GMT): arash009 (Wed, 02 Sep 2020 05:31:49 GMT): SteveKIM (Wed, 02 Sep 2020 05:33:59 GMT): SteveKIM (Wed, 02 Sep 2020 05:36:40 GMT): SteveKIM (Wed, 02 Sep 2020 05:36:54 GMT): SteveKIM (Wed, 02 Sep 2020 05:37:29 GMT): SteveKIM (Wed, 02 Sep 2020 05:38:17 GMT): arash009 (Wed, 02 Sep 2020 05:40:52 GMT): SteveKIM (Wed, 02 Sep 2020 05:42:20 GMT): SteveKIM (Wed, 02 Sep 2020 05:45:34 GMT): SteveKIM (Wed, 02 Sep 2020 05:46:31 GMT): SteveKIM (Wed, 02 Sep 2020 05:46:39 GMT): SteveKIM (Wed, 02 Sep 2020 05:50:15 GMT): pinges (Wed, 02 Sep 2020 05:58:40 GMT): SteveKIM (Wed, 02 Sep 2020 06:00:40 GMT): SteveKIM (Wed, 02 Sep 2020 06:05:41 GMT): SteveKIM (Wed, 02 Sep 2020 06:05:47 GMT): JonGeater (Wed, 02 Sep 2020 12:27:47 GMT): JonGeater (Wed, 02 Sep 2020 12:27:47 GMT): esaulpaugh (Wed, 02 Sep 2020 19:59:22 GMT): esaulpaugh (Wed, 02 Sep 2020 19:59:22 GMT): diegoll (Wed, 02 Sep 2020 20:13:32 GMT): esaulpaugh (Wed, 02 Sep 2020 20:14:15 GMT): JonGeater (Wed, 02 Sep 2020 20:25:28 GMT): diegoll (Wed, 02 Sep 2020 20:26:43 GMT): diegoll (Wed, 02 Sep 2020 20:26:43 GMT): shemnon (Wed, 02 Sep 2020 20:49:54 GMT): gregdhill (Thu, 03 Sep 2020 13:35:10 GMT): joshuafernandes (Thu, 03 Sep 2020 23:40:46 GMT): joshuafernandes (Thu, 03 Sep 2020 23:40:46 GMT): joshuafernandes (Fri, 04 Sep 2020 00:06:26 GMT): joshuafernandes (Fri, 04 Sep 2020 00:06:59 GMT): nicexe (Fri, 04 Sep 2020 09:26:05 GMT): nicexe (Fri, 04 Sep 2020 09:26:05 GMT): shemnon (Fri, 04 Sep 2020 16:36:44 GMT): shemnon (Fri, 04 Sep 2020 16:43:04 GMT): shemnon (Fri, 04 Sep 2020 16:44:10 GMT): shemnon (Fri, 04 Sep 2020 16:44:10 GMT): Amanullah68 (Fri, 04 Sep 2020 20:05:25 GMT): Amanullah68 (Fri, 04 Sep 2020 20:05:37 GMT): Amanullah68 (Fri, 04 Sep 2020 20:06:05 GMT): Amanullah68 (Fri, 04 Sep 2020 20:06:25 GMT): carlosho17 (Sat, 05 Sep 2020 09:34:43 GMT): poojagupta23 (Mon, 07 Sep 2020 04:55:45 GMT): poojagupta23 (Mon, 07 Sep 2020 06:33:44 GMT): lucassaldanha (Mon, 07 Sep 2020 20:58:04 GMT): lucassaldanha (Mon, 07 Sep 2020 21:00:09 GMT): poojagupta23 (Tue, 08 Sep 2020 01:16:48 GMT): poojagupta23 (Tue, 08 Sep 2020 01:16:48 GMT): poojagupta23 (Tue, 08 Sep 2020 01:16:48 GMT): lakshyakumar (Tue, 08 Sep 2020 08:49:26 GMT): LeonYangLi (Tue, 08 Sep 2020 09:15:41 GMT): LeonYangLi (Tue, 08 Sep 2020 09:15:41 GMT): LeonYangLi (Tue, 08 Sep 2020 09:15:41 GMT): shemnon (Tue, 08 Sep 2020 15:22:19 GMT): shemnon (Tue, 08 Sep 2020 15:23:55 GMT): macfarla (Wed, 09 Sep 2020 01:26:10 GMT): lucassaldanha (Wed, 09 Sep 2020 01:53:10 GMT): lakshyakumar (Wed, 09 Sep 2020 03:23:31 GMT): shemnon (Wed, 09 Sep 2020 05:40:37 GMT): arash009 (Wed, 09 Sep 2020 06:31:42 GMT): banhmi.eth (Wed, 09 Sep 2020 08:12:25 GMT): banhmi.eth (Wed, 09 Sep 2020 08:12:26 GMT): Amanullah68 (Wed, 09 Sep 2020 12:45:48 GMT): shemnon (Wed, 09 Sep 2020 15:31:15 GMT): shemnon (Wed, 09 Sep 2020 15:31:40 GMT): shemnon (Wed, 09 Sep 2020 15:32:04 GMT): lucassaldanha (Wed, 09 Sep 2020 21:38:41 GMT): eum602 (Wed, 09 Sep 2020 22:46:09 GMT): shemnon (Thu, 10 Sep 2020 01:06:30 GMT): shemnon (Thu, 10 Sep 2020 01:07:45 GMT): Amanullah68 (Thu, 10 Sep 2020 04:36:24 GMT): banhmi.eth (Thu, 10 Sep 2020 10:08:27 GMT): eum602 (Thu, 10 Sep 2020 18:42:26 GMT): eum602 (Thu, 10 Sep 2020 18:42:26 GMT): shemnon (Thu, 10 Sep 2020 18:51:57 GMT): shemnon (Thu, 10 Sep 2020 18:52:04 GMT): eum602 (Thu, 10 Sep 2020 18:53:31 GMT): eum602 (Thu, 10 Sep 2020 18:54:03 GMT): shemnon (Thu, 10 Sep 2020 21:41:40 GMT): timbeiko (Thu, 10 Sep 2020 23:17:57 GMT): timbeiko (Thu, 10 Sep 2020 23:17:57 GMT): eum602 (Fri, 11 Sep 2020 01:46:13 GMT): Amanullah68 (Fri, 11 Sep 2020 07:45:33 GMT): Amanullah68 (Fri, 11 Sep 2020 07:46:09 GMT): Amanullah68 (Fri, 11 Sep 2020 07:46:23 GMT): macfarla (Fri, 11 Sep 2020 10:56:47 GMT): conor (Fri, 11 Sep 2020 14:48:11 GMT): poojagupta23 (Sat, 12 Sep 2020 02:12:59 GMT): lucassaldanha (Sun, 13 Sep 2020 21:03:20 GMT): lucassaldanha (Sun, 13 Sep 2020 21:05:50 GMT): shemnon (Mon, 14 Sep 2020 04:29:34 GMT): shemnon (Mon, 14 Sep 2020 04:31:36 GMT): NicolasMassart (Mon, 14 Sep 2020 07:40:12 GMT): NicolasMassart (Mon, 14 Sep 2020 07:40:12 GMT): joaquimpedrooliveira (Mon, 14 Sep 2020 13:43:56 GMT): joaquimpedrooliveira (Mon, 14 Sep 2020 13:43:56 GMT): shemnon (Mon, 14 Sep 2020 14:05:00 GMT): joaquimpedrooliveira (Mon, 14 Sep 2020 14:28:17 GMT): macfarla (Tue, 15 Sep 2020 00:33:43 GMT): azoumi (Tue, 15 Sep 2020 08:29:39 GMT): Amanullah68 (Tue, 15 Sep 2020 09:56:37 GMT): Amanullah68 (Tue, 15 Sep 2020 09:57:01 GMT): Amanullah68 (Tue, 15 Sep 2020 09:57:14 GMT): Amanullah68 (Tue, 15 Sep 2020 12:13:46 GMT): hanseh (Wed, 16 Sep 2020 05:39:01 GMT): hanseh (Wed, 16 Sep 2020 05:39:02 GMT): arash009 (Wed, 16 Sep 2020 06:49:47 GMT): arash009 (Wed, 16 Sep 2020 06:51:42 GMT): arash009 (Wed, 16 Sep 2020 06:55:02 GMT): Amanullah68 (Wed, 16 Sep 2020 07:17:58 GMT): Amanullah68 (Wed, 16 Sep 2020 07:18:33 GMT): Amanullah68 (Wed, 16 Sep 2020 07:19:13 GMT): Amanullah68 (Wed, 16 Sep 2020 07:20:20 GMT): JonGeater (Wed, 16 Sep 2020 16:28:59 GMT): JonGeater (Wed, 16 Sep 2020 16:29:23 GMT): shemnon (Wed, 16 Sep 2020 17:11:48 GMT): shemnon (Wed, 16 Sep 2020 19:28:15 GMT): shemnon (Wed, 16 Sep 2020 19:32:27 GMT): shemnon (Wed, 16 Sep 2020 19:32:50 GMT): Amanullah68 (Thu, 17 Sep 2020 04:29:39 GMT): hanseh (Thu, 17 Sep 2020 06:33:12 GMT): Amanullah68 (Thu, 17 Sep 2020 10:59:32 GMT): Amanullah68 (Thu, 17 Sep 2020 11:01:07 GMT): Amanullah68 (Thu, 17 Sep 2020 11:01:13 GMT): Amanullah68 (Thu, 17 Sep 2020 11:01:15 GMT): Amanullah68 (Thu, 17 Sep 2020 11:48:02 GMT): Amanullah68 (Thu, 17 Sep 2020 11:48:46 GMT): Amanullah68 (Thu, 17 Sep 2020 11:48:58 GMT): macfarla (Fri, 18 Sep 2020 01:28:35 GMT): aaltenbernd (Fri, 18 Sep 2020 08:47:52 GMT): aaltenbernd (Fri, 18 Sep 2020 08:56:21 GMT): Amanullah68 (Fri, 18 Sep 2020 12:23:48 GMT): Amanullah68 (Fri, 18 Sep 2020 12:23:52 GMT): Amanullah68 (Fri, 18 Sep 2020 12:24:45 GMT): Amanullah68 (Fri, 18 Sep 2020 12:55:23 GMT): Amanullah68 (Fri, 18 Sep 2020 12:55:59 GMT): Amanullah68 (Fri, 18 Sep 2020 12:56:33 GMT): Amanullah68 (Fri, 18 Sep 2020 12:57:28 GMT): lucassaldanha (Mon, 21 Sep 2020 04:18:04 GMT): lucassaldanha (Mon, 21 Sep 2020 04:19:30 GMT): lucassaldanha (Mon, 21 Sep 2020 04:20:41 GMT): Amanullah68 (Mon, 21 Sep 2020 06:03:11 GMT): Amanullah68 (Mon, 21 Sep 2020 07:04:36 GMT): Amanullah68 (Mon, 21 Sep 2020 07:04:51 GMT): Amanullah68 (Mon, 21 Sep 2020 07:06:38 GMT): Amanullah68 (Mon, 21 Sep 2020 07:06:59 GMT): Amanullah68 (Mon, 21 Sep 2020 07:14:57 GMT): Amanullah68 (Mon, 21 Sep 2020 07:53:41 GMT): Amanullah68 (Mon, 21 Sep 2020 07:53:53 GMT): Amanullah68 (Mon, 21 Sep 2020 07:54:50 GMT): DelgadoTrueba (Mon, 21 Sep 2020 12:23:26 GMT): lucassaldanha (Mon, 21 Sep 2020 21:28:51 GMT): lucassaldanha (Mon, 21 Sep 2020 21:56:08 GMT): lucassaldanha (Tue, 22 Sep 2020 02:05:09 GMT): Amanullah68 (Tue, 22 Sep 2020 04:27:21 GMT): Amanullah68 (Tue, 22 Sep 2020 04:28:01 GMT): lucassaldanha (Tue, 22 Sep 2020 04:40:31 GMT): Amanullah68 (Tue, 22 Sep 2020 04:41:50 GMT): Amanullah68 (Tue, 22 Sep 2020 05:16:58 GMT): Amanullah68 (Tue, 22 Sep 2020 05:17:09 GMT): Amanullah68 (Tue, 22 Sep 2020 05:17:19 GMT): Amanullah68 (Tue, 22 Sep 2020 05:23:24 GMT): Amanullah68 (Tue, 22 Sep 2020 05:23:37 GMT): Amanullah68 (Tue, 22 Sep 2020 05:23:43 GMT): lucassaldanha (Tue, 22 Sep 2020 06:02:35 GMT): lucassaldanha (Tue, 22 Sep 2020 06:02:56 GMT): lucassaldanha (Tue, 22 Sep 2020 06:03:13 GMT): Amanullah68 (Tue, 22 Sep 2020 07:17:12 GMT): Amanullah68 (Tue, 22 Sep 2020 07:20:58 GMT): Amanullah68 (Tue, 22 Sep 2020 07:32:36 GMT): Amanullah68 (Tue, 22 Sep 2020 07:56:35 GMT): lucassaldanha (Tue, 22 Sep 2020 08:15:20 GMT): ZappaBoy (Tue, 22 Sep 2020 11:40:23 GMT): ZappaBoy (Tue, 22 Sep 2020 11:40:23 GMT): Amanullah68 (Tue, 22 Sep 2020 12:53:19 GMT): pogchamp (Tue, 22 Sep 2020 13:58:13 GMT): pogchamp (Tue, 22 Sep 2020 13:58:14 GMT): camohe90 (Tue, 22 Sep 2020 16:05:14 GMT): shemnon (Tue, 22 Sep 2020 17:59:08 GMT): shemnon (Tue, 22 Sep 2020 18:00:41 GMT): shemnon (Tue, 22 Sep 2020 18:00:53 GMT): Amanullah68 (Wed, 23 Sep 2020 07:17:34 GMT): Amanullah68 (Wed, 23 Sep 2020 07:17:36 GMT): Amanullah68 (Wed, 23 Sep 2020 07:17:36 GMT): Amanullah68 (Wed, 23 Sep 2020 07:17:36 GMT): Amanullah68 (Wed, 23 Sep 2020 07:18:17 GMT): lucassaldanha (Wed, 23 Sep 2020 08:13:43 GMT): Amanullah68 (Wed, 23 Sep 2020 09:26:20 GMT): Amanullah68 (Wed, 23 Sep 2020 12:09:42 GMT): Amanullah68 (Wed, 23 Sep 2020 12:10:23 GMT): Amanullah68 (Thu, 24 Sep 2020 04:30:28 GMT): lucassaldanha (Thu, 24 Sep 2020 04:32:28 GMT): lucassaldanha (Thu, 24 Sep 2020 04:33:47 GMT): Amanullah68 (Thu, 24 Sep 2020 04:34:12 GMT): Amanullah68 (Thu, 24 Sep 2020 04:34:23 GMT): Amanullah68 (Thu, 24 Sep 2020 04:35:25 GMT): lucassaldanha (Thu, 24 Sep 2020 04:35:34 GMT): lucassaldanha (Thu, 24 Sep 2020 04:35:39 GMT): lucassaldanha (Thu, 24 Sep 2020 04:36:03 GMT): lucassaldanha (Thu, 24 Sep 2020 04:36:29 GMT): Amanullah68 (Thu, 24 Sep 2020 04:36:38 GMT): Amanullah68 (Thu, 24 Sep 2020 04:37:08 GMT): lucassaldanha (Thu, 24 Sep 2020 04:37:23 GMT): Amanullah68 (Thu, 24 Sep 2020 04:38:07 GMT): Amanullah68 (Thu, 24 Sep 2020 05:16:08 GMT): Amanullah68 (Thu, 24 Sep 2020 05:16:44 GMT): lucassaldanha (Thu, 24 Sep 2020 05:17:07 GMT): Amanullah68 (Thu, 24 Sep 2020 05:17:29 GMT): lucassaldanha (Thu, 24 Sep 2020 05:17:44 GMT): Amanullah68 (Thu, 24 Sep 2020 05:17:59 GMT): Amanullah68 (Thu, 24 Sep 2020 05:19:07 GMT): Amanullah68 (Thu, 24 Sep 2020 05:19:58 GMT): Amanullah68 (Thu, 24 Sep 2020 05:20:20 GMT): lucassaldanha (Thu, 24 Sep 2020 05:21:19 GMT): lucassaldanha (Thu, 24 Sep 2020 05:21:43 GMT): lucassaldanha (Thu, 24 Sep 2020 05:22:11 GMT): Amanullah68 (Thu, 24 Sep 2020 05:23:16 GMT): Amanullah68 (Thu, 24 Sep 2020 05:23:35 GMT): lucassaldanha (Thu, 24 Sep 2020 05:23:44 GMT): Amanullah68 (Thu, 24 Sep 2020 05:23:50 GMT): Amanullah68 (Thu, 24 Sep 2020 05:24:03 GMT): lucassaldanha (Thu, 24 Sep 2020 05:24:24 GMT): Amanullah68 (Thu, 24 Sep 2020 05:25:02 GMT): lucassaldanha (Thu, 24 Sep 2020 05:25:05 GMT): lucassaldanha (Thu, 24 Sep 2020 05:25:05 GMT): Amanullah68 (Thu, 24 Sep 2020 05:25:11 GMT): Amanullah68 (Thu, 24 Sep 2020 05:25:32 GMT): Amanullah68 (Thu, 24 Sep 2020 05:25:56 GMT): lucassaldanha (Thu, 24 Sep 2020 05:26:41 GMT): Amanullah68 (Thu, 24 Sep 2020 05:29:46 GMT): lucassaldanha (Thu, 24 Sep 2020 05:32:31 GMT): lucassaldanha (Thu, 24 Sep 2020 05:32:53 GMT): lucassaldanha (Thu, 24 Sep 2020 05:32:53 GMT): Amanullah68 (Thu, 24 Sep 2020 05:38:48 GMT): lucassaldanha (Thu, 24 Sep 2020 05:39:32 GMT): lucassaldanha (Thu, 24 Sep 2020 05:42:06 GMT): Amanullah68 (Thu, 24 Sep 2020 05:45:44 GMT): Amanullah68 (Thu, 24 Sep 2020 05:46:13 GMT): Amanullah68 (Thu, 24 Sep 2020 05:46:15 GMT): Amanullah68 (Thu, 24 Sep 2020 05:46:50 GMT): Amanullah68 (Thu, 24 Sep 2020 05:47:13 GMT): Amanullah68 (Thu, 24 Sep 2020 05:47:24 GMT): lucassaldanha (Thu, 24 Sep 2020 05:52:22 GMT): lucassaldanha (Thu, 24 Sep 2020 05:56:04 GMT): Amanullah68 (Thu, 24 Sep 2020 06:13:55 GMT): Amanullah68 (Thu, 24 Sep 2020 06:14:41 GMT): Amanullah68 (Thu, 24 Sep 2020 06:15:35 GMT): Amanullah68 (Thu, 24 Sep 2020 06:17:06 GMT): Amanullah68 (Thu, 24 Sep 2020 06:18:18 GMT): Amanullah68 (Thu, 24 Sep 2020 06:21:07 GMT): Amanullah68 (Thu, 24 Sep 2020 06:23:23 GMT): Amanullah68 (Thu, 24 Sep 2020 06:45:47 GMT): Amanullah68 (Thu, 24 Sep 2020 06:45:59 GMT): Amanullah68 (Thu, 24 Sep 2020 06:46:29 GMT): Amanullah68 (Thu, 24 Sep 2020 06:48:02 GMT): Amanullah68 (Thu, 24 Sep 2020 06:48:16 GMT): pogchamp (Thu, 24 Sep 2020 07:56:54 GMT): nyshnt (Thu, 24 Sep 2020 08:01:06 GMT): nyshnt (Thu, 24 Sep 2020 08:01:07 GMT): aaltenbernd (Thu, 24 Sep 2020 08:08:53 GMT): shemnon (Thu, 24 Sep 2020 15:31:56 GMT): timbeiko (Thu, 24 Sep 2020 20:35:56 GMT): shemnon (Thu, 24 Sep 2020 22:39:51 GMT): shemnon (Thu, 24 Sep 2020 22:40:03 GMT): pogchamp (Fri, 25 Sep 2020 05:19:00 GMT): shemnon (Fri, 25 Sep 2020 05:48:14 GMT): shemnon (Fri, 25 Sep 2020 05:49:11 GMT): pogchamp (Fri, 25 Sep 2020 07:03:31 GMT): nyshnt (Fri, 25 Sep 2020 07:08:51 GMT): shemnon (Fri, 25 Sep 2020 13:45:22 GMT): shemnon (Fri, 25 Sep 2020 13:45:22 GMT): EmcLab (Fri, 25 Sep 2020 16:57:16 GMT): EmcLab (Fri, 25 Sep 2020 16:57:16 GMT): shemnon (Fri, 25 Sep 2020 17:06:01 GMT): shemnon (Fri, 25 Sep 2020 17:06:44 GMT): EmcLab (Fri, 25 Sep 2020 17:53:00 GMT): EmcLab (Fri, 25 Sep 2020 18:35:58 GMT): shemnon (Fri, 25 Sep 2020 18:50:56 GMT): VladLupashevskyi (Fri, 25 Sep 2020 18:52:41 GMT): VladLupashevskyi (Fri, 25 Sep 2020 19:13:34 GMT): shemnon (Fri, 25 Sep 2020 21:08:35 GMT): shemnon (Fri, 25 Sep 2020 21:08:35 GMT): shemnon (Fri, 25 Sep 2020 21:39:18 GMT): shemnon (Fri, 25 Sep 2020 21:43:08 GMT): trent.mohay (Sat, 26 Sep 2020 02:46:35 GMT): VladLupashevskyi (Sat, 26 Sep 2020 12:55:42 GMT): EmcLab (Sat, 26 Sep 2020 20:26:45 GMT): shemnon (Sun, 27 Sep 2020 02:01:12 GMT): shemnon (Sun, 27 Sep 2020 02:02:10 GMT): shemnon (Sun, 27 Sep 2020 02:02:10 GMT): shemnon (Sun, 27 Sep 2020 02:03:30 GMT): arsulegai (Sun, 27 Sep 2020 12:19:13 GMT): arsulegai (Sun, 27 Sep 2020 12:20:00 GMT): coenie (Mon, 28 Sep 2020 08:07:37 GMT): nmvalera (Mon, 28 Sep 2020 16:48:39 GMT): nmvalera (Mon, 28 Sep 2020 16:48:39 GMT): shemnon (Mon, 28 Sep 2020 17:47:49 GMT): shemnon (Mon, 28 Sep 2020 17:55:28 GMT): shemnon (Mon, 28 Sep 2020 17:55:28 GMT): shemnon (Mon, 28 Sep 2020 17:58:56 GMT): EmcLab (Tue, 29 Sep 2020 00:20:22 GMT): shemnon (Tue, 29 Sep 2020 01:06:02 GMT): shemnon (Tue, 29 Sep 2020 01:06:19 GMT): shemnon (Tue, 29 Sep 2020 01:06:52 GMT): shemnon (Tue, 29 Sep 2020 01:06:52 GMT): shemnon (Tue, 29 Sep 2020 01:12:31 GMT): shemnon (Tue, 29 Sep 2020 01:12:56 GMT): EmcLab (Tue, 29 Sep 2020 04:54:50 GMT): coenie (Tue, 29 Sep 2020 06:02:54 GMT): nmvalera (Tue, 29 Sep 2020 08:21:31 GMT): Amanullah68 (Tue, 29 Sep 2020 09:23:03 GMT): shemnon (Tue, 29 Sep 2020 15:49:44 GMT): shemnon (Tue, 29 Sep 2020 15:49:44 GMT): shemnon (Tue, 29 Sep 2020 15:49:44 GMT): shemnon (Tue, 29 Sep 2020 15:54:11 GMT): lucassaldanha (Tue, 29 Sep 2020 19:49:40 GMT): trent.mohay (Tue, 29 Sep 2020 22:41:49 GMT): trent.mohay (Tue, 29 Sep 2020 22:41:49 GMT): coenie (Wed, 30 Sep 2020 13:22:02 GMT): charyorde (Wed, 30 Sep 2020 15:48:33 GMT): charyorde (Wed, 30 Sep 2020 15:48:40 GMT): charyorde (Wed, 30 Sep 2020 15:48:40 GMT): charyorde (Wed, 30 Sep 2020 15:51:56 GMT): charyorde (Wed, 30 Sep 2020 17:37:51 GMT): charyorde (Wed, 30 Sep 2020 17:39:09 GMT): m.terry (Thu, 01 Oct 2020 02:23:34 GMT): fgonzalezr (Thu, 01 Oct 2020 04:11:04 GMT): fgonzalezr (Thu, 01 Oct 2020 04:11:04 GMT): Amanullah68 (Thu, 01 Oct 2020 05:25:53 GMT): Amanullah68 (Thu, 01 Oct 2020 05:26:34 GMT): arash009 (Thu, 01 Oct 2020 07:43:07 GMT): arash009 (Thu, 01 Oct 2020 07:45:41 GMT): Amanullah68 (Thu, 01 Oct 2020 07:55:46 GMT): Amanullah68 (Thu, 01 Oct 2020 07:56:04 GMT): Amanullah68 (Thu, 01 Oct 2020 07:56:30 GMT): Amanullah68 (Thu, 01 Oct 2020 12:12:40 GMT): Amanullah68 (Thu, 01 Oct 2020 12:24:32 GMT): Amanullah68 (Thu, 01 Oct 2020 12:24:44 GMT): epiccoolguy (Thu, 01 Oct 2020 12:50:11 GMT): epiccoolguy (Thu, 01 Oct 2020 13:26:08 GMT): epiccoolguy (Thu, 01 Oct 2020 13:26:08 GMT): epiccoolguy (Thu, 01 Oct 2020 13:26:08 GMT): epiccoolguy (Thu, 01 Oct 2020 13:49:18 GMT): epiccoolguy (Thu, 01 Oct 2020 13:49:21 GMT): epiccoolguy (Thu, 01 Oct 2020 13:49:21 GMT): epiccoolguy (Thu, 01 Oct 2020 13:49:25 GMT): shemnon (Thu, 01 Oct 2020 19:15:44 GMT): lucassaldanha (Thu, 01 Oct 2020 20:04:47 GMT): lucassaldanha (Thu, 01 Oct 2020 20:05:31 GMT): lucassaldanha (Thu, 01 Oct 2020 20:10:04 GMT): dgt1nsty (Fri, 02 Oct 2020 14:30:37 GMT): Amanullah68 (Sat, 03 Oct 2020 04:30:59 GMT): Amanullah68 (Sat, 03 Oct 2020 04:55:02 GMT): Amanullah68 (Sat, 03 Oct 2020 04:55:22 GMT): Amanullah68 (Sat, 03 Oct 2020 05:00:23 GMT): Amanullah68 (Sat, 03 Oct 2020 12:53:46 GMT): Amanullah68 (Sat, 03 Oct 2020 12:54:10 GMT): Amanullah68 (Sat, 03 Oct 2020 12:54:10 GMT): Amanullah68 (Sat, 03 Oct 2020 12:54:10 GMT): EmcLab (Sun, 04 Oct 2020 06:34:16 GMT): Amanullah68 (Mon, 05 Oct 2020 04:50:32 GMT): Amanullah68 (Mon, 05 Oct 2020 04:52:02 GMT): Amanullah68 (Mon, 05 Oct 2020 04:53:20 GMT): Amanullah68 (Mon, 05 Oct 2020 04:59:24 GMT): Amanullah68 (Mon, 05 Oct 2020 05:00:10 GMT): hanseh (Mon, 05 Oct 2020 09:40:17 GMT): shemnon (Mon, 05 Oct 2020 16:52:32 GMT): shemnon (Mon, 05 Oct 2020 16:53:46 GMT): EmcLab (Tue, 06 Oct 2020 04:21:14 GMT): EmcLab (Tue, 06 Oct 2020 04:21:14 GMT): shemnon (Tue, 06 Oct 2020 14:52:47 GMT): Sandeepk40 (Wed, 07 Oct 2020 04:27:14 GMT): schroedingerscode (Wed, 07 Oct 2020 18:18:56 GMT): SuperSeiyan (Thu, 08 Oct 2020 03:51:29 GMT): rjones (Thu, 08 Oct 2020 18:16:17 GMT): shemnon (Thu, 08 Oct 2020 19:13:23 GMT): rjones (Thu, 08 Oct 2020 19:21:06 GMT): shemnon (Thu, 08 Oct 2020 19:25:57 GMT): EmcLab (Fri, 09 Oct 2020 06:40:26 GMT): Amanullah68 (Fri, 09 Oct 2020 11:31:12 GMT): Amanullah68 (Fri, 09 Oct 2020 11:31:40 GMT): Amanullah68 (Fri, 09 Oct 2020 11:31:47 GMT): Amanullah68 (Fri, 09 Oct 2020 11:32:25 GMT): shemnon (Fri, 09 Oct 2020 15:15:38 GMT): shemnon (Fri, 09 Oct 2020 15:16:26 GMT): shemnon (Fri, 09 Oct 2020 15:16:26 GMT): rjones (Fri, 09 Oct 2020 16:46:51 GMT): Amanullah68 (Mon, 12 Oct 2020 05:10:07 GMT): EmcLab (Mon, 12 Oct 2020 06:28:41 GMT): EmcLab (Mon, 12 Oct 2020 06:28:41 GMT): atoulme (Mon, 12 Oct 2020 20:27:12 GMT): trent.mohay (Mon, 12 Oct 2020 21:22:12 GMT): robbiek.eth (Tue, 13 Oct 2020 01:43:47 GMT): shemnon (Tue, 13 Oct 2020 01:44:04 GMT): shemnon (Tue, 13 Oct 2020 01:45:14 GMT): Manzik (Tue, 13 Oct 2020 03:30:10 GMT): al0818 (Tue, 13 Oct 2020 17:37:43 GMT): al0818 (Tue, 13 Oct 2020 17:37:44 GMT): atoulme (Tue, 13 Oct 2020 18:27:39 GMT): al0818 (Wed, 14 Oct 2020 05:19:42 GMT): Amanullah68 (Wed, 14 Oct 2020 10:01:31 GMT): Amanullah68 (Wed, 14 Oct 2020 10:02:13 GMT): timbeiko (Wed, 14 Oct 2020 14:42:25 GMT): mwaser (Wed, 14 Oct 2020 15:24:37 GMT): mwaser (Wed, 14 Oct 2020 15:24:37 GMT): joshuafernandes (Wed, 14 Oct 2020 20:17:32 GMT): shemnon (Wed, 14 Oct 2020 20:30:16 GMT): al0818 (Thu, 15 Oct 2020 16:16:50 GMT): atoulme (Thu, 15 Oct 2020 16:18:28 GMT): atoulme (Thu, 15 Oct 2020 16:18:42 GMT): atoulme (Thu, 15 Oct 2020 16:19:11 GMT): al0818 (Thu, 15 Oct 2020 16:19:36 GMT): al0818 (Thu, 15 Oct 2020 16:24:12 GMT): atoulme (Thu, 15 Oct 2020 16:24:54 GMT): atoulme (Thu, 15 Oct 2020 16:25:24 GMT): al0818 (Thu, 15 Oct 2020 16:26:56 GMT): al0818 (Thu, 15 Oct 2020 16:39:03 GMT): MarkThompsonPH (Thu, 15 Oct 2020 16:40:23 GMT): MarkThompsonPH (Thu, 15 Oct 2020 16:40:23 GMT): atoulme (Thu, 15 Oct 2020 17:01:57 GMT): aaltenbernd (Thu, 15 Oct 2020 17:21:17 GMT): mwaser (Thu, 15 Oct 2020 18:41:30 GMT): lucassaldanha (Thu, 15 Oct 2020 19:54:35 GMT): trent.mohay (Thu, 15 Oct 2020 20:08:25 GMT): trent.mohay (Thu, 15 Oct 2020 21:53:51 GMT): joshuafernandes (Thu, 15 Oct 2020 22:48:57 GMT): joshuafernandes (Thu, 15 Oct 2020 22:50:04 GMT): joshuafernandes (Thu, 15 Oct 2020 22:50:04 GMT): MarkThompsonPH (Fri, 16 Oct 2020 00:43:50 GMT): aaltenbernd (Fri, 16 Oct 2020 06:57:18 GMT): aaltenbernd (Fri, 16 Oct 2020 06:57:25 GMT): aaltenbernd (Fri, 16 Oct 2020 06:57:48 GMT): MarkThompsonPH (Fri, 16 Oct 2020 10:13:20 GMT): mwaser (Fri, 16 Oct 2020 14:24:02 GMT): mwaser (Fri, 16 Oct 2020 20:29:42 GMT): marcdk (Sun, 18 Oct 2020 05:21:12 GMT): marcdk (Sun, 18 Oct 2020 05:21:12 GMT): marcdk (Sun, 18 Oct 2020 05:21:12 GMT): marcdk (Sun, 18 Oct 2020 05:21:12 GMT): joshuafernandes (Sun, 18 Oct 2020 21:20:19 GMT): joshuafernandes (Sun, 18 Oct 2020 21:21:17 GMT): mackcom (Mon, 19 Oct 2020 17:30:22 GMT): shemnon (Mon, 19 Oct 2020 17:50:14 GMT): shemnon (Mon, 19 Oct 2020 17:52:31 GMT): mackcom (Mon, 19 Oct 2020 17:54:30 GMT): shemnon (Mon, 19 Oct 2020 17:54:51 GMT): shemnon (Mon, 19 Oct 2020 17:55:02 GMT): shemnon (Mon, 19 Oct 2020 17:55:58 GMT): Amanullah68 (Tue, 20 Oct 2020 06:19:20 GMT): Amanullah68 (Tue, 20 Oct 2020 06:22:07 GMT): lucassaldanha (Tue, 20 Oct 2020 06:49:04 GMT): lucassaldanha (Tue, 20 Oct 2020 06:49:09 GMT): BilelZaghdoudi (Tue, 20 Oct 2020 11:46:30 GMT): BilelZaghdoudi (Tue, 20 Oct 2020 12:08:33 GMT): shemnon (Tue, 20 Oct 2020 16:31:45 GMT): shemnon (Tue, 20 Oct 2020 16:33:01 GMT): shemnon (Tue, 20 Oct 2020 19:21:27 GMT): jonathansmirnoff (Tue, 20 Oct 2020 20:06:58 GMT): jonathansmirnoff (Tue, 20 Oct 2020 20:06:58 GMT): jonathansmirnoff (Tue, 20 Oct 2020 20:29:15 GMT): shemnon (Wed, 21 Oct 2020 00:42:09 GMT): aaltenbernd (Wed, 21 Oct 2020 06:52:47 GMT): BilelZaghdoudi (Wed, 21 Oct 2020 09:43:28 GMT): BilelZaghdoudi (Wed, 21 Oct 2020 09:45:32 GMT): jonathansmirnoff (Wed, 21 Oct 2020 11:16:21 GMT): jonathansmirnoff (Wed, 21 Oct 2020 11:16:42 GMT): timbeiko (Wed, 21 Oct 2020 18:42:30 GMT): Jonathancj (Wed, 21 Oct 2020 23:56:40 GMT): mwaser (Thu, 22 Oct 2020 12:01:34 GMT): EmcLab (Fri, 23 Oct 2020 02:21:01 GMT): shemnon (Fri, 23 Oct 2020 03:19:43 GMT): charyorde (Sun, 25 Oct 2020 09:29:15 GMT): charyorde (Sun, 25 Oct 2020 09:55:24 GMT): ramkri123 (Sun, 25 Oct 2020 21:12:59 GMT): ramkri123 (Sun, 25 Oct 2020 21:12:59 GMT): ramkri123 (Sun, 25 Oct 2020 21:13:10 GMT): ramkri123 (Sun, 25 Oct 2020 21:13:19 GMT): ramkri123 (Sun, 25 Oct 2020 21:13:45 GMT): ramkri123 (Sun, 25 Oct 2020 21:14:41 GMT): ramkri123 (Sun, 25 Oct 2020 21:15:08 GMT): arash009 (Mon, 26 Oct 2020 05:52:44 GMT): atoulme (Mon, 26 Oct 2020 17:05:38 GMT): sankara 5 (Tue, 27 Oct 2020 08:44:54 GMT): sankara 5 (Tue, 27 Oct 2020 08:44:55 GMT): sankara 5 (Tue, 27 Oct 2020 08:44:55 GMT): shemnon (Tue, 27 Oct 2020 13:45:36 GMT): shemnon (Tue, 27 Oct 2020 13:48:11 GMT): shemnon (Tue, 27 Oct 2020 13:49:06 GMT): shemnon (Tue, 27 Oct 2020 13:49:22 GMT): shemnon (Tue, 27 Oct 2020 13:49:22 GMT): shemnon (Tue, 27 Oct 2020 13:51:30 GMT): shemnon (Tue, 27 Oct 2020 15:00:16 GMT): sankara 5 (Wed, 28 Oct 2020 06:19:25 GMT): sankara 5 (Wed, 28 Oct 2020 06:19:25 GMT): shemnon (Wed, 28 Oct 2020 13:37:52 GMT): shemnon (Wed, 28 Oct 2020 13:38:07 GMT): sankara 5 (Wed, 28 Oct 2020 13:55:50 GMT): sankara 5 (Wed, 28 Oct 2020 13:55:50 GMT): sankara 5 (Wed, 28 Oct 2020 13:55:50 GMT): shemnon (Wed, 28 Oct 2020 16:33:21 GMT): sankara 5 (Wed, 28 Oct 2020 16:54:54 GMT): somerb (Wed, 28 Oct 2020 18:54:20 GMT): EmcLab (Wed, 28 Oct 2020 20:44:56 GMT): EmcLab (Wed, 28 Oct 2020 21:07:35 GMT): EmcLab (Wed, 28 Oct 2020 21:29:24 GMT): shemnon (Wed, 28 Oct 2020 22:42:58 GMT): shemnon (Wed, 28 Oct 2020 22:43:15 GMT): EmcLab (Thu, 29 Oct 2020 06:15:15 GMT): EmcLab (Thu, 29 Oct 2020 06:15:46 GMT): EmcLab (Thu, 29 Oct 2020 06:16:22 GMT): sankara 5 (Thu, 29 Oct 2020 06:44:02 GMT): sankara 5 (Thu, 29 Oct 2020 13:28:17 GMT): sankara 5 (Thu, 29 Oct 2020 13:28:17 GMT): sankara 5 (Thu, 29 Oct 2020 13:28:17 GMT): EmcLab (Thu, 29 Oct 2020 18:28:05 GMT): shemnon (Thu, 29 Oct 2020 19:36:45 GMT): shemnon (Thu, 29 Oct 2020 19:37:52 GMT): antonispoulakis (Thu, 29 Oct 2020 21:54:18 GMT): joshuafernandes (Fri, 30 Oct 2020 03:55:23 GMT): joshuafernandes (Fri, 30 Oct 2020 04:05:18 GMT): joshuafernandes (Fri, 30 Oct 2020 04:05:18 GMT): joshuafernandes (Fri, 30 Oct 2020 04:06:58 GMT): antonispoulakis (Fri, 30 Oct 2020 09:41:41 GMT): antonispoulakis (Fri, 30 Oct 2020 09:46:52 GMT): carlosho17 (Fri, 30 Oct 2020 11:20:18 GMT): shemnon (Fri, 30 Oct 2020 14:01:28 GMT): joshuafernandes (Fri, 30 Oct 2020 22:30:44 GMT): EmcLab (Sat, 31 Oct 2020 06:51:49 GMT): EmcLab (Sat, 31 Oct 2020 06:51:49 GMT): carlosho17 (Sat, 31 Oct 2020 10:06:18 GMT): shemnon (Sat, 31 Oct 2020 15:33:37 GMT): shemnon (Sat, 31 Oct 2020 15:34:38 GMT): EmcLab (Sat, 31 Oct 2020 21:27:27 GMT): joshuafernandes (Sat, 31 Oct 2020 21:50:26 GMT): EmcLab (Sat, 31 Oct 2020 21:55:47 GMT): shemnon (Mon, 02 Nov 2020 06:12:03 GMT): EmcLab (Tue, 03 Nov 2020 06:25:49 GMT): joshuafernandes (Tue, 03 Nov 2020 09:49:45 GMT): joshuafernandes (Tue, 03 Nov 2020 09:50:34 GMT): shemnon (Tue, 03 Nov 2020 14:59:15 GMT): shemnon (Tue, 03 Nov 2020 15:03:16 GMT): shemnon (Tue, 03 Nov 2020 15:04:05 GMT): EmcLab (Wed, 04 Nov 2020 04:34:20 GMT): carlosho17 (Wed, 04 Nov 2020 12:04:28 GMT): shemnon (Wed, 04 Nov 2020 14:35:44 GMT): shemnon (Wed, 04 Nov 2020 14:37:09 GMT): carlosho17 (Wed, 04 Nov 2020 15:01:13 GMT): carlosho17 (Wed, 04 Nov 2020 15:01:43 GMT): carlosho17 (Wed, 04 Nov 2020 15:02:26 GMT): carlosho17 (Wed, 04 Nov 2020 15:02:46 GMT): carlosho17 (Wed, 04 Nov 2020 15:05:48 GMT): carlosho17 (Wed, 04 Nov 2020 15:07:05 GMT): carlosho17 (Wed, 04 Nov 2020 15:07:50 GMT): carlosho17 (Wed, 04 Nov 2020 15:49:31 GMT): shemnon (Wed, 04 Nov 2020 15:53:30 GMT): crypto_beep (Wed, 04 Nov 2020 17:07:53 GMT): shantaraam (Wed, 04 Nov 2020 17:28:15 GMT): rai (Wed, 04 Nov 2020 17:56:18 GMT): carlosho17 (Wed, 04 Nov 2020 17:58:44 GMT): carlosho17 (Wed, 04 Nov 2020 18:11:19 GMT): shemnon (Wed, 04 Nov 2020 18:38:45 GMT): shemnon (Wed, 04 Nov 2020 20:11:43 GMT): EmcLab (Wed, 04 Nov 2020 20:29:44 GMT): shantaraam (Wed, 04 Nov 2020 21:47:44 GMT): trent.mohay (Wed, 04 Nov 2020 23:10:51 GMT): shantaraam (Wed, 04 Nov 2020 23:13:10 GMT): trent.mohay (Wed, 04 Nov 2020 23:14:48 GMT): trent.mohay (Wed, 04 Nov 2020 23:17:51 GMT): trent.mohay (Wed, 04 Nov 2020 23:20:04 GMT): shantaraam (Wed, 04 Nov 2020 23:27:37 GMT): shantaraam (Wed, 04 Nov 2020 23:27:37 GMT): trent.mohay (Wed, 04 Nov 2020 23:46:21 GMT): mikiasda (Thu, 05 Nov 2020 08:33:05 GMT): mikiasda (Thu, 05 Nov 2020 08:33:18 GMT): mikiasda (Thu, 05 Nov 2020 08:33:44 GMT): mikiasda (Thu, 05 Nov 2020 08:34:26 GMT): mikiasda (Thu, 05 Nov 2020 08:35:38 GMT): lucassaldanha (Thu, 05 Nov 2020 20:11:13 GMT): lucassaldanha (Thu, 05 Nov 2020 20:11:34 GMT): shemnon (Fri, 06 Nov 2020 02:23:10 GMT): shemnon (Fri, 06 Nov 2020 02:23:52 GMT): shemnon (Fri, 06 Nov 2020 02:25:02 GMT): lucassaldanha (Fri, 06 Nov 2020 03:18:06 GMT): aim8526 (Sat, 07 Nov 2020 16:56:47 GMT): ramkri123 (Sun, 08 Nov 2020 00:58:38 GMT): VladLupashevskyi (Tue, 10 Nov 2020 14:37:07 GMT): shemnon (Tue, 10 Nov 2020 15:02:54 GMT): shemnon (Tue, 10 Nov 2020 15:02:54 GMT): VladLupashevskyi (Tue, 10 Nov 2020 15:31:58 GMT): mharrison (Tue, 10 Nov 2020 16:35:37 GMT): mharrison (Tue, 10 Nov 2020 16:35:38 GMT): shemnon (Tue, 10 Nov 2020 16:43:17 GMT): VladLupashevskyi (Tue, 10 Nov 2020 17:18:09 GMT): shemnon (Tue, 10 Nov 2020 19:12:44 GMT): shemnon (Tue, 10 Nov 2020 19:13:08 GMT): AchilleasRaptis (Thu, 12 Nov 2020 12:55:56 GMT): AchilleasRaptis (Thu, 12 Nov 2020 12:55:56 GMT): NicolasMassart (Thu, 12 Nov 2020 16:57:56 GMT): NicolasMassart (Thu, 12 Nov 2020 17:01:18 GMT): NicolasMassart (Thu, 12 Nov 2020 17:01:18 GMT): feazzu (Fri, 13 Nov 2020 08:41:04 GMT): feazzu (Fri, 13 Nov 2020 08:41:04 GMT): shemnon (Fri, 13 Nov 2020 14:23:12 GMT): feazzu (Fri, 13 Nov 2020 16:21:01 GMT): shemnon (Fri, 13 Nov 2020 17:10:58 GMT): madelinemurray (Mon, 16 Nov 2020 03:51:12 GMT): sankara 5 (Mon, 16 Nov 2020 12:52:42 GMT): shemnon (Mon, 16 Nov 2020 19:05:23 GMT): shemnon (Mon, 16 Nov 2020 19:05:23 GMT): shemnon (Mon, 16 Nov 2020 19:06:35 GMT): shemnon (Mon, 16 Nov 2020 19:07:10 GMT): shemnon (Mon, 16 Nov 2020 19:08:39 GMT): shemnon (Mon, 16 Nov 2020 19:09:28 GMT): andrewhong5297 (Mon, 16 Nov 2020 19:13:39 GMT): andrewhong5297 (Mon, 16 Nov 2020 19:13:39 GMT): andrewhong5297 (Mon, 16 Nov 2020 19:25:29 GMT): reviz0r (Mon, 16 Nov 2020 20:24:05 GMT): madelinemurray (Mon, 16 Nov 2020 22:07:23 GMT): andrewhong5297 (Mon, 16 Nov 2020 22:15:52 GMT): andrewhong5297 (Mon, 16 Nov 2020 22:17:40 GMT): andrewhong5297 (Mon, 16 Nov 2020 22:18:39 GMT): madelinemurray (Tue, 17 Nov 2020 01:16:06 GMT): andrewhong5297 (Tue, 17 Nov 2020 02:42:32 GMT): andrewhong5297 (Tue, 17 Nov 2020 02:42:35 GMT): andrewhong5297 (Tue, 17 Nov 2020 02:42:43 GMT): andrewhong5297 (Tue, 17 Nov 2020 02:43:01 GMT): andrewhong5297 (Tue, 17 Nov 2020 02:44:32 GMT): madelinemurray (Tue, 17 Nov 2020 03:22:20 GMT): madelinemurray (Tue, 17 Nov 2020 03:24:58 GMT): madelinemurray (Tue, 17 Nov 2020 03:27:18 GMT): sankara 5 (Tue, 17 Nov 2020 05:19:16 GMT): PriyaPillai (Tue, 17 Nov 2020 11:15:36 GMT): sankara 5 (Tue, 17 Nov 2020 13:24:23 GMT): sankara 5 (Tue, 17 Nov 2020 13:24:23 GMT): shemnon (Tue, 17 Nov 2020 18:19:41 GMT): shemnon (Tue, 17 Nov 2020 18:20:26 GMT): belmix (Wed, 18 Nov 2020 11:17:47 GMT): belmix (Wed, 18 Nov 2020 11:17:48 GMT): belmix (Wed, 18 Nov 2020 11:50:08 GMT): shemnon (Wed, 18 Nov 2020 14:51:59 GMT): shemnon (Wed, 18 Nov 2020 14:52:22 GMT): NicolasMassart (Wed, 18 Nov 2020 14:53:06 GMT): sichen (Wed, 18 Nov 2020 17:58:55 GMT): sichen (Wed, 18 Nov 2020 18:01:06 GMT): mharrison (Wed, 18 Nov 2020 19:19:56 GMT): sichen (Wed, 18 Nov 2020 19:42:19 GMT): sichen (Wed, 18 Nov 2020 19:42:19 GMT): sichen (Wed, 18 Nov 2020 19:43:23 GMT): madelinemurray (Wed, 18 Nov 2020 19:59:03 GMT): mharrison (Wed, 18 Nov 2020 20:01:31 GMT): sichen (Wed, 18 Nov 2020 20:13:43 GMT): Mightypenguin (Thu, 19 Nov 2020 06:05:58 GMT): Mightypenguin (Thu, 19 Nov 2020 06:05:59 GMT): eum602 (Thu, 19 Nov 2020 15:54:36 GMT): TillFruehauf (Thu, 19 Nov 2020 17:09:53 GMT): TillFruehauf (Thu, 19 Nov 2020 17:09:54 GMT): TillFruehauf (Thu, 19 Nov 2020 17:11:45 GMT): shemnon (Thu, 19 Nov 2020 17:21:40 GMT): shemnon (Thu, 19 Nov 2020 17:21:50 GMT): TillFruehauf (Thu, 19 Nov 2020 17:32:15 GMT): TillFruehauf (Thu, 19 Nov 2020 17:32:19 GMT): TillFruehauf (Thu, 19 Nov 2020 17:36:30 GMT): shemnon (Thu, 19 Nov 2020 20:30:22 GMT): shemnon (Thu, 19 Nov 2020 20:31:03 GMT): timbeiko (Thu, 19 Nov 2020 20:58:07 GMT): timbeiko (Thu, 19 Nov 2020 20:58:07 GMT): tasd (Thu, 19 Nov 2020 21:08:17 GMT): tasd (Thu, 19 Nov 2020 21:08:17 GMT): trent.mohay (Thu, 19 Nov 2020 21:12:20 GMT): trent.mohay (Thu, 19 Nov 2020 21:12:20 GMT): shemnon (Thu, 19 Nov 2020 21:45:48 GMT): tasd (Thu, 19 Nov 2020 21:50:39 GMT): shemnon (Thu, 19 Nov 2020 22:00:39 GMT): eum602 (Thu, 19 Nov 2020 22:57:38 GMT): belmix (Thu, 19 Nov 2020 23:22:29 GMT): belmix (Thu, 19 Nov 2020 23:28:54 GMT): belmix (Thu, 19 Nov 2020 23:28:54 GMT): belmix (Thu, 19 Nov 2020 23:28:54 GMT): belmix (Thu, 19 Nov 2020 23:28:54 GMT): belmix (Thu, 19 Nov 2020 23:28:54 GMT): belmix (Thu, 19 Nov 2020 23:28:54 GMT): shemnon (Thu, 19 Nov 2020 23:36:21 GMT): shemnon (Thu, 19 Nov 2020 23:37:25 GMT): belmix (Thu, 19 Nov 2020 23:37:52 GMT): belmix (Thu, 19 Nov 2020 23:38:35 GMT): belmix (Thu, 19 Nov 2020 23:41:45 GMT): shemnon (Thu, 19 Nov 2020 23:42:56 GMT): belmix (Thu, 19 Nov 2020 23:43:59 GMT): belmix (Thu, 19 Nov 2020 23:45:38 GMT): shemnon (Thu, 19 Nov 2020 23:46:51 GMT): belmix (Thu, 19 Nov 2020 23:51:32 GMT): belmix (Thu, 19 Nov 2020 23:53:09 GMT): shemnon (Thu, 19 Nov 2020 23:54:06 GMT): rjones (Fri, 20 Nov 2020 01:22:43 GMT): rjones (Fri, 20 Nov 2020 01:22:54 GMT): rjones (Fri, 20 Nov 2020 01:24:14 GMT): tasd (Fri, 20 Nov 2020 15:23:03 GMT): tasd (Fri, 20 Nov 2020 15:23:59 GMT): TillFruehauf (Fri, 20 Nov 2020 15:37:38 GMT): TillFruehauf (Fri, 20 Nov 2020 15:41:22 GMT): shemnon (Fri, 20 Nov 2020 16:34:38 GMT): mharrison (Fri, 20 Nov 2020 19:36:01 GMT): shemnon (Fri, 20 Nov 2020 19:44:53 GMT): shemnon (Fri, 20 Nov 2020 19:44:57 GMT): EmcLab (Mon, 23 Nov 2020 04:30:35 GMT): EmcLab (Mon, 23 Nov 2020 04:30:35 GMT): EmcLab (Mon, 23 Nov 2020 04:30:35 GMT): Manzik (Mon, 23 Nov 2020 05:58:37 GMT): madelinemurray (Mon, 23 Nov 2020 10:21:29 GMT): OliviaKenney (Mon, 23 Nov 2020 15:10:49 GMT): OliviaKenney (Mon, 23 Nov 2020 15:10:50 GMT): Manzik (Tue, 24 Nov 2020 01:17:09 GMT): shemnon (Tue, 24 Nov 2020 02:45:09 GMT): shemnon (Tue, 24 Nov 2020 02:46:43 GMT): Manzik (Tue, 24 Nov 2020 04:34:06 GMT): OliviaKenney (Tue, 24 Nov 2020 08:34:40 GMT): shemnon (Tue, 24 Nov 2020 13:11:22 GMT): OliviaKenney (Tue, 24 Nov 2020 14:08:59 GMT): shemnon (Tue, 24 Nov 2020 14:14:24 GMT): shemnon (Tue, 24 Nov 2020 15:03:28 GMT): OliviaKenney (Tue, 24 Nov 2020 15:23:01 GMT): OliviaKenney (Tue, 24 Nov 2020 15:26:17 GMT): Manzik (Wed, 25 Nov 2020 03:07:33 GMT): piyushmaheshwari65 (Wed, 25 Nov 2020 04:21:10 GMT): sankara 5 (Wed, 25 Nov 2020 13:42:15 GMT): shemnon (Wed, 25 Nov 2020 16:21:50 GMT): shemnon (Wed, 25 Nov 2020 16:22:56 GMT): shemnon (Wed, 25 Nov 2020 16:23:25 GMT): sankara 5 (Wed, 25 Nov 2020 16:49:14 GMT): sankara 5 (Wed, 25 Nov 2020 16:49:14 GMT): sankara 5 (Wed, 25 Nov 2020 16:49:14 GMT): shemnon (Wed, 25 Nov 2020 16:54:38 GMT): shemnon (Wed, 25 Nov 2020 16:55:11 GMT): shemnon (Wed, 25 Nov 2020 16:55:44 GMT): shemnon (Wed, 25 Nov 2020 16:57:03 GMT): sankara 5 (Wed, 25 Nov 2020 16:57:52 GMT): KIMSON (Thu, 26 Nov 2020 05:21:25 GMT): sankara 5 (Fri, 27 Nov 2020 06:41:08 GMT): sankara 5 (Fri, 27 Nov 2020 06:41:08 GMT): sankara 5 (Fri, 27 Nov 2020 06:41:27 GMT): shemnon (Fri, 27 Nov 2020 13:58:38 GMT): EmcLab (Sat, 28 Nov 2020 22:52:29 GMT): shemnon (Sat, 28 Nov 2020 23:27:53 GMT): EmcLab (Sun, 29 Nov 2020 07:25:59 GMT): EmcLab (Sun, 29 Nov 2020 07:26:28 GMT): shemnon (Sun, 29 Nov 2020 16:04:00 GMT): EmcLab (Sun, 29 Nov 2020 19:35:12 GMT): shemnon (Sun, 29 Nov 2020 19:37:15 GMT): EmcLab (Sun, 29 Nov 2020 20:21:19 GMT): EmcLab (Sun, 29 Nov 2020 20:28:00 GMT): EmcLab (Sun, 29 Nov 2020 20:28:00 GMT): lucassaldanha (Sun, 29 Nov 2020 20:48:37 GMT): EmcLab (Sun, 29 Nov 2020 20:51:55 GMT): lucassaldanha (Sun, 29 Nov 2020 20:52:07 GMT): lucassaldanha (Sun, 29 Nov 2020 20:52:09 GMT): EmcLab (Mon, 30 Nov 2020 02:15:46 GMT): sankara 5 (Mon, 30 Nov 2020 04:22:06 GMT): sankara 5 (Mon, 30 Nov 2020 04:22:17 GMT): shemnon (Mon, 30 Nov 2020 04:54:02 GMT): sankara 5 (Mon, 30 Nov 2020 06:07:25 GMT): sankara 5 (Mon, 30 Nov 2020 06:13:26 GMT): sankara 5 (Mon, 30 Nov 2020 06:13:37 GMT): EmcLab (Mon, 30 Nov 2020 18:45:51 GMT): EmcLab (Mon, 30 Nov 2020 18:46:00 GMT): EmcLab (Mon, 30 Nov 2020 20:18:53 GMT): shemnon (Mon, 30 Nov 2020 20:33:44 GMT): shemnon (Mon, 30 Nov 2020 20:34:02 GMT): shemnon (Mon, 30 Nov 2020 20:34:02 GMT): lucassaldanha (Mon, 30 Nov 2020 21:20:10 GMT): EmcLab (Tue, 01 Dec 2020 03:24:44 GMT): shemnon (Tue, 01 Dec 2020 03:25:21 GMT): EmcLab (Tue, 01 Dec 2020 03:29:12 GMT): EmcLab (Tue, 01 Dec 2020 03:32:36 GMT): shemnon (Tue, 01 Dec 2020 03:56:19 GMT): sankara 5 (Tue, 01 Dec 2020 04:40:00 GMT): shemnon (Tue, 01 Dec 2020 05:12:14 GMT): sankara 5 (Tue, 01 Dec 2020 05:48:31 GMT): sankara 5 (Tue, 01 Dec 2020 05:48:31 GMT): sankara 5 (Tue, 01 Dec 2020 12:52:55 GMT): shemnon (Tue, 01 Dec 2020 15:05:22 GMT): sankara 5 (Tue, 01 Dec 2020 16:10:27 GMT): EmcLab (Tue, 01 Dec 2020 20:13:30 GMT): shemnon (Tue, 01 Dec 2020 20:23:49 GMT): shemnon (Tue, 01 Dec 2020 20:23:49 GMT): EmcLab (Tue, 01 Dec 2020 21:04:54 GMT): shemnon (Tue, 01 Dec 2020 23:18:06 GMT): shemnon (Tue, 01 Dec 2020 23:18:42 GMT): EmcLab (Wed, 02 Dec 2020 05:01:53 GMT): EmcLab (Wed, 02 Dec 2020 05:03:47 GMT): clowestab (Wed, 02 Dec 2020 10:13:37 GMT): clowestab (Wed, 02 Dec 2020 10:13:38 GMT): cyrilnaves (Wed, 02 Dec 2020 10:18:42 GMT): cyrilnaves (Wed, 02 Dec 2020 10:18:43 GMT): cyrilnaves (Wed, 02 Dec 2020 10:18:43 GMT): cyrilnaves (Wed, 02 Dec 2020 10:18:54 GMT): shemnon (Wed, 02 Dec 2020 16:04:03 GMT): shemnon (Wed, 02 Dec 2020 16:04:30 GMT): shemnon (Wed, 02 Dec 2020 16:04:57 GMT): timbeiko (Wed, 02 Dec 2020 16:27:28 GMT): shemnon (Wed, 02 Dec 2020 16:28:22 GMT): shemnon (Wed, 02 Dec 2020 16:28:22 GMT): timbeiko (Wed, 02 Dec 2020 16:28:26 GMT): shemnon (Wed, 02 Dec 2020 16:28:30 GMT): timbeiko (Wed, 02 Dec 2020 16:29:28 GMT): timbeiko (Wed, 02 Dec 2020 16:45:27 GMT): timbeiko (Wed, 02 Dec 2020 16:45:27 GMT): timbeiko (Wed, 02 Dec 2020 16:46:08 GMT): EmcLab (Wed, 02 Dec 2020 19:10:45 GMT): EmcLab (Wed, 02 Dec 2020 19:13:16 GMT): EmcLab (Wed, 02 Dec 2020 19:13:52 GMT): EmcLab (Wed, 02 Dec 2020 19:16:14 GMT): shemnon (Wed, 02 Dec 2020 19:22:24 GMT): EmcLab (Wed, 02 Dec 2020 19:49:38 GMT): EmcLab (Wed, 02 Dec 2020 23:14:59 GMT): shemnon (Wed, 02 Dec 2020 23:32:25 GMT): EmcLab (Thu, 03 Dec 2020 00:21:25 GMT): mharrison (Thu, 03 Dec 2020 00:28:46 GMT): mharrison (Thu, 03 Dec 2020 00:28:46 GMT): Manzik (Thu, 03 Dec 2020 01:32:37 GMT): Manzik (Thu, 03 Dec 2020 01:32:37 GMT): shemnon (Thu, 03 Dec 2020 03:00:51 GMT): KIMSON (Thu, 03 Dec 2020 04:55:17 GMT): KIMSON (Thu, 03 Dec 2020 04:55:39 GMT): sankara 5 (Thu, 03 Dec 2020 05:54:58 GMT): sankara 5 (Thu, 03 Dec 2020 12:55:43 GMT): sankara 5 (Thu, 03 Dec 2020 12:55:43 GMT): shemnon (Thu, 03 Dec 2020 14:00:30 GMT): shemnon (Thu, 03 Dec 2020 14:00:55 GMT): clowestab (Thu, 03 Dec 2020 16:21:35 GMT): mharrison (Thu, 03 Dec 2020 16:33:21 GMT): mharrison (Thu, 03 Dec 2020 17:38:52 GMT): EmcLab (Thu, 03 Dec 2020 20:49:20 GMT): EmcLab (Thu, 03 Dec 2020 20:51:03 GMT): shemnon (Thu, 03 Dec 2020 21:06:41 GMT): shemnon (Thu, 03 Dec 2020 21:07:03 GMT): shemnon (Thu, 03 Dec 2020 21:07:57 GMT): EmcLab (Thu, 03 Dec 2020 21:27:38 GMT): shemnon (Thu, 03 Dec 2020 21:35:54 GMT): timbeiko (Thu, 03 Dec 2020 22:20:22 GMT): EmcLab (Fri, 04 Dec 2020 02:55:06 GMT): EmcLab (Fri, 04 Dec 2020 02:55:06 GMT): shemnon (Fri, 04 Dec 2020 03:11:12 GMT): EmcLab (Fri, 04 Dec 2020 05:58:04 GMT): EmcLab (Fri, 04 Dec 2020 05:58:19 GMT): EmcLab (Fri, 04 Dec 2020 05:58:43 GMT): EmcLab (Fri, 04 Dec 2020 05:58:43 GMT): urtuba (Fri, 04 Dec 2020 11:52:01 GMT): urtuba (Fri, 04 Dec 2020 11:52:02 GMT): NicolasMassart (Fri, 04 Dec 2020 11:52:38 GMT): urtuba (Fri, 04 Dec 2020 11:52:45 GMT): urtuba (Fri, 04 Dec 2020 11:53:06 GMT): urtuba (Fri, 04 Dec 2020 11:53:54 GMT): urtuba (Fri, 04 Dec 2020 11:54:08 GMT): urtuba (Fri, 04 Dec 2020 11:54:21 GMT): NicolasMassart (Fri, 04 Dec 2020 11:54:26 GMT): NicolasMassart (Fri, 04 Dec 2020 11:54:52 GMT): urtuba (Fri, 04 Dec 2020 11:55:11 GMT): urtuba (Fri, 04 Dec 2020 11:55:31 GMT): NicolasMassart (Fri, 04 Dec 2020 11:55:53 GMT): NicolasMassart (Fri, 04 Dec 2020 11:56:10 GMT): NicolasMassart (Fri, 04 Dec 2020 11:56:21 GMT): urtuba (Fri, 04 Dec 2020 11:56:28 GMT): urtuba (Fri, 04 Dec 2020 11:56:43 GMT): urtuba (Fri, 04 Dec 2020 11:56:48 GMT): NicolasMassart (Fri, 04 Dec 2020 11:57:04 GMT): urtuba (Fri, 04 Dec 2020 11:58:47 GMT): NicolasMassart (Fri, 04 Dec 2020 11:59:04 GMT): urtuba (Fri, 04 Dec 2020 12:00:11 GMT): urtuba (Fri, 04 Dec 2020 12:00:18 GMT): NicolasMassart (Fri, 04 Dec 2020 12:00:41 GMT): NicolasMassart (Fri, 04 Dec 2020 12:01:41 GMT): NicolasMassart (Fri, 04 Dec 2020 12:02:05 GMT): urtuba (Fri, 04 Dec 2020 12:02:26 GMT): urtuba (Fri, 04 Dec 2020 12:02:43 GMT): urtuba (Fri, 04 Dec 2020 12:04:13 GMT): NicolasMassart (Fri, 04 Dec 2020 12:04:27 GMT): NicolasMassart (Fri, 04 Dec 2020 12:05:10 GMT): urtuba (Fri, 04 Dec 2020 12:05:21 GMT): urtuba (Fri, 04 Dec 2020 12:05:28 GMT): NicolasMassart (Fri, 04 Dec 2020 12:05:36 GMT): urtuba (Fri, 04 Dec 2020 12:05:40 GMT): NicolasMassart (Fri, 04 Dec 2020 12:05:45 GMT): urtuba (Fri, 04 Dec 2020 12:05:55 GMT): NicolasMassart (Fri, 04 Dec 2020 12:06:22 GMT): urtuba (Fri, 04 Dec 2020 12:06:41 GMT): urtuba (Fri, 04 Dec 2020 12:31:54 GMT): urtuba (Fri, 04 Dec 2020 12:36:03 GMT): urtuba (Fri, 04 Dec 2020 12:36:03 GMT): urtuba (Fri, 04 Dec 2020 12:36:03 GMT): urtuba (Sat, 05 Dec 2020 07:29:26 GMT): urtuba (Sat, 05 Dec 2020 07:29:26 GMT): urtuba (Sat, 05 Dec 2020 07:29:26 GMT): urtuba (Sat, 05 Dec 2020 07:29:26 GMT): EmcLab (Sun, 06 Dec 2020 06:04:36 GMT): urtuba (Sun, 06 Dec 2020 16:27:34 GMT): krouspy (Sun, 06 Dec 2020 19:22:16 GMT): krouspy (Sun, 06 Dec 2020 19:54:52 GMT): EmcLab (Mon, 07 Dec 2020 02:12:17 GMT): raychan11111 (Mon, 07 Dec 2020 04:58:31 GMT): raychan11111 (Mon, 07 Dec 2020 04:58:31 GMT): NicolasMassart (Mon, 07 Dec 2020 07:32:24 GMT): gen_el (Mon, 07 Dec 2020 18:06:44 GMT): shemnon (Mon, 07 Dec 2020 18:46:13 GMT): shemnon (Mon, 07 Dec 2020 18:46:13 GMT): shemnon (Mon, 07 Dec 2020 18:46:51 GMT): shemnon (Mon, 07 Dec 2020 18:50:17 GMT): mharrison (Mon, 07 Dec 2020 20:53:39 GMT): EmcLab (Mon, 07 Dec 2020 22:25:13 GMT): EmcLab (Mon, 07 Dec 2020 22:25:13 GMT): EmcLab (Mon, 07 Dec 2020 22:25:19 GMT): EmcLab (Mon, 07 Dec 2020 22:27:42 GMT): EmcLab (Mon, 07 Dec 2020 22:28:05 GMT): EmcLab (Mon, 07 Dec 2020 22:28:49 GMT): EmcLab (Mon, 07 Dec 2020 22:30:54 GMT): EmcLab (Mon, 07 Dec 2020 22:34:30 GMT): EmcLab (Mon, 07 Dec 2020 22:34:30 GMT): shemnon (Mon, 07 Dec 2020 23:18:38 GMT): EmcLab (Tue, 08 Dec 2020 05:21:22 GMT): EmcLab (Tue, 08 Dec 2020 05:25:35 GMT): EmcLab (Tue, 08 Dec 2020 05:57:45 GMT): EmcLab (Tue, 08 Dec 2020 07:38:48 GMT): matkt (Tue, 08 Dec 2020 09:27:32 GMT): EmcLab (Wed, 09 Dec 2020 04:51:50 GMT): EmcLab (Wed, 09 Dec 2020 04:51:53 GMT): trent.mohay (Wed, 09 Dec 2020 20:49:18 GMT): sankara 5 (Thu, 10 Dec 2020 05:33:16 GMT): shemnon (Thu, 10 Dec 2020 05:47:10 GMT): EmcLab (Thu, 10 Dec 2020 07:27:31 GMT): sankara 5 (Thu, 10 Dec 2020 07:38:04 GMT): sankara 5 (Thu, 10 Dec 2020 07:38:04 GMT): sankara 5 (Thu, 10 Dec 2020 07:38:04 GMT): trent.mohay (Thu, 10 Dec 2020 08:02:03 GMT): trent.mohay (Thu, 10 Dec 2020 08:02:52 GMT): trent.mohay (Thu, 10 Dec 2020 08:02:52 GMT): sankara 5 (Thu, 10 Dec 2020 10:56:19 GMT): sankara 5 (Thu, 10 Dec 2020 10:56:19 GMT): sankara 5 (Thu, 10 Dec 2020 10:56:19 GMT): sankara 5 (Thu, 10 Dec 2020 11:30:36 GMT): sankara 5 (Thu, 10 Dec 2020 11:30:36 GMT): shemnon (Thu, 10 Dec 2020 14:12:33 GMT): EmcLab (Thu, 10 Dec 2020 15:40:42 GMT): aaltenbernd (Thu, 10 Dec 2020 17:35:55 GMT): shemnon (Thu, 10 Dec 2020 18:13:19 GMT): EmcLab (Thu, 10 Dec 2020 21:10:44 GMT): trent.mohay (Thu, 10 Dec 2020 22:23:55 GMT): trent.mohay (Thu, 10 Dec 2020 22:27:57 GMT): trent.mohay (Thu, 10 Dec 2020 22:28:42 GMT): trent.mohay (Thu, 10 Dec 2020 22:31:51 GMT): EmcLab (Thu, 10 Dec 2020 23:31:22 GMT): EmcLab (Thu, 10 Dec 2020 23:31:22 GMT): trent.mohay (Fri, 11 Dec 2020 00:03:03 GMT): trent.mohay (Fri, 11 Dec 2020 00:03:54 GMT): trent.mohay (Fri, 11 Dec 2020 00:03:54 GMT): Manzik (Fri, 11 Dec 2020 04:11:04 GMT): sankara 5 (Fri, 11 Dec 2020 04:53:21 GMT): trent.mohay (Fri, 11 Dec 2020 04:56:10 GMT): joshuafernandes (Fri, 11 Dec 2020 05:02:52 GMT): shemnon (Fri, 11 Dec 2020 05:40:09 GMT): shemnon (Fri, 11 Dec 2020 05:40:52 GMT): machadovilaca (Fri, 11 Dec 2020 17:06:20 GMT): shemnon (Fri, 11 Dec 2020 18:14:04 GMT): machadovilaca (Fri, 11 Dec 2020 19:24:11 GMT): EmcLab (Fri, 11 Dec 2020 22:26:49 GMT): Anomaly (Fri, 11 Dec 2020 23:09:53 GMT): Anomaly (Fri, 11 Dec 2020 23:09:53 GMT): Anomaly (Fri, 11 Dec 2020 23:10:01 GMT): shemnon (Fri, 11 Dec 2020 23:24:39 GMT): shemnon (Fri, 11 Dec 2020 23:25:07 GMT): RealDeanZhao (Sat, 12 Dec 2020 02:11:24 GMT): RealDeanZhao (Sat, 12 Dec 2020 02:50:07 GMT): shemnon (Sat, 12 Dec 2020 03:01:19 GMT): berik1978 (Sat, 12 Dec 2020 12:21:26 GMT): berik1978 (Sat, 12 Dec 2020 12:21:26 GMT): shemnon (Sat, 12 Dec 2020 15:23:23 GMT): RealDeanZhao (Mon, 14 Dec 2020 02:06:01 GMT): RealDeanZhao (Mon, 14 Dec 2020 02:06:01 GMT): RealDeanZhao (Mon, 14 Dec 2020 02:06:01 GMT): RealDeanZhao (Mon, 14 Dec 2020 02:24:20 GMT): RealDeanZhao (Mon, 14 Dec 2020 02:24:20 GMT): shemnon (Mon, 14 Dec 2020 05:08:52 GMT): RealDeanZhao (Mon, 14 Dec 2020 06:26:34 GMT): RealDeanZhao (Mon, 14 Dec 2020 06:26:55 GMT): RealDeanZhao (Mon, 14 Dec 2020 06:27:14 GMT): RealDeanZhao (Mon, 14 Dec 2020 06:28:14 GMT): RealDeanZhao (Mon, 14 Dec 2020 06:32:08 GMT): RealDeanZhao (Mon, 14 Dec 2020 08:37:54 GMT): Helder_jn_Pinto (Mon, 14 Dec 2020 10:28:50 GMT): sankara 5 (Mon, 14 Dec 2020 12:56:44 GMT): sankara 5 (Mon, 14 Dec 2020 12:56:44 GMT): sankara 5 (Mon, 14 Dec 2020 12:59:51 GMT): Alexandru-MihailAdam (Mon, 14 Dec 2020 13:47:46 GMT): Alexandru-MihailAdam (Mon, 14 Dec 2020 13:47:46 GMT): NicolasMassart (Mon, 14 Dec 2020 13:49:18 GMT): NicolasMassart (Mon, 14 Dec 2020 13:50:57 GMT): NicolasMassart (Mon, 14 Dec 2020 13:50:57 GMT): NicolasMassart (Mon, 14 Dec 2020 13:57:02 GMT): NicolasMassart (Mon, 14 Dec 2020 13:57:06 GMT): NicolasMassart (Mon, 14 Dec 2020 13:57:29 GMT): urtuba (Mon, 14 Dec 2020 20:42:39 GMT): urtuba (Mon, 14 Dec 2020 20:45:26 GMT): urtuba (Mon, 14 Dec 2020 20:45:32 GMT): shemnon (Mon, 14 Dec 2020 22:34:05 GMT): shemnon (Mon, 14 Dec 2020 22:35:25 GMT): Alexandru-MihailAdam (Tue, 15 Dec 2020 07:15:33 GMT): KIMSON (Tue, 15 Dec 2020 08:32:52 GMT): matkt (Tue, 15 Dec 2020 09:18:53 GMT): shemnon (Tue, 15 Dec 2020 17:12:33 GMT): EmcLab (Tue, 15 Dec 2020 18:59:31 GMT): EmcLab (Tue, 15 Dec 2020 18:59:31 GMT): EmcLab (Tue, 15 Dec 2020 19:11:41 GMT): shemnon (Tue, 15 Dec 2020 20:04:35 GMT): EmcLab (Tue, 15 Dec 2020 20:19:27 GMT): EmcLab (Tue, 15 Dec 2020 20:23:30 GMT): lucassaldanha (Tue, 15 Dec 2020 20:51:02 GMT): lucassaldanha (Tue, 15 Dec 2020 20:53:21 GMT): lucassaldanha (Wed, 16 Dec 2020 02:56:35 GMT): lucassaldanha (Wed, 16 Dec 2020 02:56:57 GMT): RealDeanZhao (Wed, 16 Dec 2020 04:38:25 GMT): sankara 5 (Wed, 16 Dec 2020 06:31:36 GMT): sankara 5 (Wed, 16 Dec 2020 06:31:36 GMT): ravinayag (Wed, 16 Dec 2020 08:38:35 GMT): matkt (Wed, 16 Dec 2020 10:11:41 GMT): ravinayag (Wed, 16 Dec 2020 10:18:02 GMT): matkt (Wed, 16 Dec 2020 10:21:05 GMT): matkt (Wed, 16 Dec 2020 10:21:05 GMT): matkt (Wed, 16 Dec 2020 10:21:39 GMT): kurthalex (Wed, 16 Dec 2020 12:00:12 GMT): kurthalex (Wed, 16 Dec 2020 12:00:13 GMT): kurthalex (Wed, 16 Dec 2020 12:00:13 GMT): kurthalex (Wed, 16 Dec 2020 12:00:13 GMT): kurthalex (Wed, 16 Dec 2020 12:00:13 GMT): kurthalex (Wed, 16 Dec 2020 12:00:13 GMT): kurthalex (Wed, 16 Dec 2020 12:00:13 GMT): NicolasMassart (Wed, 16 Dec 2020 14:40:39 GMT): ravinayag (Wed, 16 Dec 2020 15:28:23 GMT): ravinayag (Wed, 16 Dec 2020 15:29:44 GMT): ravinayag (Wed, 16 Dec 2020 15:30:43 GMT): shemnon (Wed, 16 Dec 2020 15:54:18 GMT): NicolasMassart (Wed, 16 Dec 2020 16:01:17 GMT): NicolasMassart (Wed, 16 Dec 2020 16:01:17 GMT): NicolasMassart (Wed, 16 Dec 2020 16:05:09 GMT): kurthalex (Wed, 16 Dec 2020 16:27:36 GMT): EmcLab (Wed, 16 Dec 2020 16:54:34 GMT): CameronWeston (Wed, 16 Dec 2020 18:19:51 GMT): CameronWeston (Wed, 16 Dec 2020 18:19:52 GMT): CameronWeston (Wed, 16 Dec 2020 19:36:13 GMT): EmcLab (Wed, 16 Dec 2020 19:43:42 GMT): shemnon (Wed, 16 Dec 2020 20:38:07 GMT): bgravenorst (Wed, 16 Dec 2020 22:18:28 GMT): RealDeanZhao (Wed, 16 Dec 2020 23:13:18 GMT): macfarla (Wed, 16 Dec 2020 23:40:14 GMT): bgravenorst (Thu, 17 Dec 2020 00:02:41 GMT): CameronWeston (Thu, 17 Dec 2020 00:35:30 GMT): shemnon (Thu, 17 Dec 2020 03:41:24 GMT): shemnon (Thu, 17 Dec 2020 03:42:32 GMT): shemnon (Thu, 17 Dec 2020 03:44:10 GMT): sankara 5 (Thu, 17 Dec 2020 15:23:10 GMT): sankara 5 (Thu, 17 Dec 2020 15:23:10 GMT): sankara 5 (Thu, 17 Dec 2020 15:31:22 GMT): sankara 5 (Thu, 17 Dec 2020 15:42:03 GMT): EmcLab (Thu, 17 Dec 2020 16:27:59 GMT): tasd (Thu, 17 Dec 2020 18:16:19 GMT): shemnon (Thu, 17 Dec 2020 18:53:16 GMT): EmcLab (Thu, 17 Dec 2020 19:39:39 GMT): tasd (Thu, 17 Dec 2020 20:00:34 GMT): EmcLab (Thu, 17 Dec 2020 20:20:20 GMT): timbeiko (Thu, 17 Dec 2020 20:46:50 GMT): macfarla (Thu, 17 Dec 2020 23:52:14 GMT): macfarla (Thu, 17 Dec 2020 23:53:18 GMT): macfarla (Thu, 17 Dec 2020 23:53:53 GMT): lucassaldanha (Fri, 18 Dec 2020 01:47:43 GMT): besu-bot (Fri, 18 Dec 2020 05:20:17 GMT): aaltenbernd (Fri, 18 Dec 2020 15:14:01 GMT): aaltenbernd (Fri, 18 Dec 2020 15:17:05 GMT): NicolasMassart (Fri, 18 Dec 2020 15:23:30 GMT): aaltenbernd (Fri, 18 Dec 2020 15:24:18 GMT): aaltenbernd (Fri, 18 Dec 2020 15:28:15 GMT): aaltenbernd (Fri, 18 Dec 2020 15:28:15 GMT): NicolasMassart (Fri, 18 Dec 2020 15:34:46 GMT): aaltenbernd (Fri, 18 Dec 2020 15:37:56 GMT): NicolasMassart (Fri, 18 Dec 2020 15:38:36 GMT): aaltenbernd (Fri, 18 Dec 2020 15:38:55 GMT): aaltenbernd (Fri, 18 Dec 2020 15:44:31 GMT): NicolasMassart (Fri, 18 Dec 2020 15:44:43 GMT): NicolasMassart (Fri, 18 Dec 2020 15:47:44 GMT): NicolasMassart (Fri, 18 Dec 2020 15:51:17 GMT): NicolasMassart (Fri, 18 Dec 2020 15:54:52 GMT): NicolasMassart (Fri, 18 Dec 2020 15:56:14 GMT): NicolasMassart (Fri, 18 Dec 2020 15:56:44 GMT): aaltenbernd (Fri, 18 Dec 2020 15:58:55 GMT): aaltenbernd (Fri, 18 Dec 2020 15:59:36 GMT): aaltenbernd (Fri, 18 Dec 2020 15:59:49 GMT): NicolasMassart (Fri, 18 Dec 2020 16:00:36 GMT): NicolasMassart (Fri, 18 Dec 2020 16:01:31 GMT): NicolasMassart (Fri, 18 Dec 2020 16:01:58 GMT): aaltenbernd (Fri, 18 Dec 2020 16:02:04 GMT): NicolasMassart (Fri, 18 Dec 2020 16:02:08 GMT): aaltenbernd (Fri, 18 Dec 2020 16:03:13 GMT): NicolasMassart (Fri, 18 Dec 2020 16:03:18 GMT): NicolasMassart (Fri, 18 Dec 2020 16:03:37 GMT): aaltenbernd (Fri, 18 Dec 2020 16:03:50 GMT): aaltenbernd (Fri, 18 Dec 2020 16:04:04 GMT): NicolasMassart (Fri, 18 Dec 2020 16:04:23 GMT): NicolasMassart (Fri, 18 Dec 2020 16:05:05 GMT): aaltenbernd (Fri, 18 Dec 2020 16:05:33 GMT): NicolasMassart (Fri, 18 Dec 2020 16:05:42 GMT): aaltenbernd (Fri, 18 Dec 2020 16:05:43 GMT): aaltenbernd (Fri, 18 Dec 2020 16:06:03 GMT): NicolasMassart (Fri, 18 Dec 2020 16:06:52 GMT): lucassaldanha (Sun, 20 Dec 2020 20:24:37 GMT): joshuafernandes (Mon, 21 Dec 2020 21:29:27 GMT): sankara 5 (Tue, 22 Dec 2020 16:48:07 GMT): raychan11111 (Wed, 23 Dec 2020 01:22:06 GMT): raychan11111 (Wed, 23 Dec 2020 01:22:06 GMT): kss-espeo (Wed, 23 Dec 2020 13:32:38 GMT): kss-espeo (Wed, 23 Dec 2020 13:32:38 GMT): kss-espeo (Wed, 23 Dec 2020 13:35:29 GMT): matkt (Wed, 23 Dec 2020 13:53:46 GMT): matkt (Wed, 23 Dec 2020 13:53:46 GMT): kss-espeo (Wed, 23 Dec 2020 14:04:44 GMT): kss-espeo (Wed, 23 Dec 2020 14:18:28 GMT): kss-espeo (Wed, 23 Dec 2020 14:24:06 GMT): Manzik (Fri, 25 Dec 2020 08:29:40 GMT): Manzik (Mon, 28 Dec 2020 05:23:21 GMT): Manzik (Mon, 28 Dec 2020 05:23:21 GMT): Manzik (Mon, 28 Dec 2020 05:23:21 GMT): RealDeanZhao (Wed, 30 Dec 2020 04:59:36 GMT): RealDeanZhao (Wed, 30 Dec 2020 04:59:36 GMT): trent.mohay (Mon, 04 Jan 2021 02:05:12 GMT): trent.mohay (Mon, 04 Jan 2021 02:06:42 GMT): trent.mohay (Mon, 04 Jan 2021 02:07:56 GMT): trent.mohay (Mon, 04 Jan 2021 02:10:53 GMT): raychan11111 (Mon, 04 Jan 2021 02:55:11 GMT): shemnon (Mon, 04 Jan 2021 04:00:35 GMT): shemnon (Mon, 04 Jan 2021 04:11:58 GMT): mwaser (Mon, 04 Jan 2021 17:15:29 GMT): mwaser (Mon, 04 Jan 2021 17:15:29 GMT): mwaser (Mon, 04 Jan 2021 17:19:57 GMT): shemnon (Mon, 04 Jan 2021 18:27:16 GMT): shemnon (Mon, 04 Jan 2021 18:27:50 GMT): krzyhoo (Mon, 04 Jan 2021 22:09:56 GMT): krzyhoo (Mon, 04 Jan 2021 22:10:18 GMT): krzyhoo (Mon, 04 Jan 2021 22:10:18 GMT): shemnon (Mon, 04 Jan 2021 22:52:36 GMT): shemnon (Mon, 04 Jan 2021 22:53:28 GMT): ahmedMokadem (Tue, 05 Jan 2021 12:10:33 GMT): ahmedMokadem (Tue, 05 Jan 2021 12:10:33 GMT): shemnon (Tue, 05 Jan 2021 16:47:12 GMT): shemnon (Tue, 05 Jan 2021 16:47:33 GMT): shemnon (Tue, 05 Jan 2021 16:49:07 GMT): krzyhoo (Tue, 05 Jan 2021 18:06:21 GMT): mwaser (Tue, 05 Jan 2021 20:36:31 GMT): al0818 (Wed, 06 Jan 2021 12:57:27 GMT): ahmedMokadem (Wed, 06 Jan 2021 15:08:44 GMT): ahmedMokadem (Wed, 06 Jan 2021 15:08:44 GMT): shemnon (Wed, 06 Jan 2021 15:42:22 GMT): Victorbesu (Wed, 06 Jan 2021 18:08:54 GMT): Victorbesu (Wed, 06 Jan 2021 18:08:54 GMT): Victorbesu (Wed, 06 Jan 2021 18:10:18 GMT): Victorbesu (Wed, 06 Jan 2021 18:10:25 GMT): Victorbesu (Wed, 06 Jan 2021 18:11:01 GMT): Victorbesu (Wed, 06 Jan 2021 18:11:15 GMT): NicolasMassart (Wed, 06 Jan 2021 18:12:14 GMT): NicolasMassart (Wed, 06 Jan 2021 18:13:36 GMT): NicolasMassart (Wed, 06 Jan 2021 18:14:23 GMT): Victorbesu (Wed, 06 Jan 2021 18:29:08 GMT): lucassaldanha (Wed, 06 Jan 2021 19:15:52 GMT): EmcLab (Wed, 06 Jan 2021 19:37:46 GMT): EmcLab (Wed, 06 Jan 2021 19:37:51 GMT): EmcLab (Wed, 06 Jan 2021 20:01:34 GMT): EmcLab (Wed, 06 Jan 2021 20:01:46 GMT): EmcLab (Wed, 06 Jan 2021 20:01:46 GMT): EmcLab (Wed, 06 Jan 2021 20:01:46 GMT): EmcLab (Wed, 06 Jan 2021 20:02:50 GMT): EmcLab (Wed, 06 Jan 2021 20:02:50 GMT): EmcLab (Wed, 06 Jan 2021 22:03:22 GMT): mharrison (Wed, 06 Jan 2021 22:34:45 GMT): mharrison (Wed, 06 Jan 2021 22:36:00 GMT): mharrison (Wed, 06 Jan 2021 22:36:00 GMT): lucassaldanha (Thu, 07 Jan 2021 02:40:33 GMT): al0818 (Thu, 07 Jan 2021 07:01:45 GMT): Helder_jn_Pinto (Thu, 07 Jan 2021 12:41:39 GMT): shemnon (Thu, 07 Jan 2021 13:53:04 GMT): shemnon (Thu, 07 Jan 2021 13:54:49 GMT): shemnon (Thu, 07 Jan 2021 13:54:49 GMT): shemnon (Thu, 07 Jan 2021 13:55:58 GMT): Helder_jn_Pinto (Thu, 07 Jan 2021 14:00:44 GMT): shemnon (Thu, 07 Jan 2021 14:36:57 GMT): mharrison (Thu, 07 Jan 2021 18:10:15 GMT): mharrison (Thu, 07 Jan 2021 20:28:50 GMT): mharrison (Thu, 07 Jan 2021 20:29:12 GMT): trent.mohay (Thu, 07 Jan 2021 21:37:07 GMT): trent.mohay (Thu, 07 Jan 2021 21:40:17 GMT): lucassaldanha (Thu, 07 Jan 2021 21:42:47 GMT): lucassaldanha (Thu, 07 Jan 2021 21:46:21 GMT): bmg (Fri, 08 Jan 2021 16:48:52 GMT): bmg (Fri, 08 Jan 2021 16:49:05 GMT): bmg (Fri, 08 Jan 2021 16:49:31 GMT): bmg (Fri, 08 Jan 2021 16:50:58 GMT): shemnon (Fri, 08 Jan 2021 17:27:48 GMT): bmg (Fri, 08 Jan 2021 17:53:02 GMT): bmg (Fri, 08 Jan 2021 17:53:17 GMT): christian.schepp (Sat, 09 Jan 2021 07:56:37 GMT): christian.schepp (Sat, 09 Jan 2021 07:56:37 GMT): christian.schepp (Sat, 09 Jan 2021 08:02:30 GMT): christian.schepp (Sat, 09 Jan 2021 08:02:30 GMT): huanniu (Sun, 10 Jan 2021 16:09:08 GMT): huanniu (Sun, 10 Jan 2021 16:09:09 GMT): shemnon (Mon, 11 Jan 2021 01:32:16 GMT): huanniu (Mon, 11 Jan 2021 09:42:14 GMT): NicolasMassart (Mon, 11 Jan 2021 11:26:21 GMT): Helder_jn_Pinto (Mon, 11 Jan 2021 16:04:30 GMT): shemnon (Mon, 11 Jan 2021 20:41:06 GMT): mharrison (Mon, 11 Jan 2021 23:43:55 GMT): Helder_jn_Pinto (Tue, 12 Jan 2021 12:07:18 GMT): atoulme (Tue, 12 Jan 2021 19:08:53 GMT): timbeiko (Thu, 14 Jan 2021 23:19:57 GMT): timbeiko (Thu, 14 Jan 2021 23:20:31 GMT): timbeiko (Thu, 14 Jan 2021 23:20:31 GMT): atoulme (Fri, 15 Jan 2021 02:10:13 GMT): atoulme (Fri, 15 Jan 2021 02:13:31 GMT): timbeiko (Fri, 15 Jan 2021 15:29:33 GMT): EmcLab (Fri, 15 Jan 2021 19:10:06 GMT): EmcLab (Sat, 16 Jan 2021 19:59:00 GMT): EmcLab (Sat, 16 Jan 2021 20:00:05 GMT): shemnon (Sun, 17 Jan 2021 00:42:06 GMT): shemnon (Mon, 18 Jan 2021 19:09:19 GMT): EmcLab (Tue, 19 Jan 2021 18:28:22 GMT): perusworld (Wed, 20 Jan 2021 02:24:06 GMT): KingAlawaka (Wed, 20 Jan 2021 12:19:59 GMT): KingAlawaka (Wed, 20 Jan 2021 12:25:42 GMT): BancuStefan (Wed, 20 Jan 2021 13:02:23 GMT): BancuStefan (Wed, 20 Jan 2021 13:02:24 GMT): BancuStefan (Wed, 20 Jan 2021 13:06:55 GMT): Nick (Thu, 21 Jan 2021 04:50:56 GMT): NicolasMassart (Thu, 21 Jan 2021 10:38:42 GMT): NicolasMassart (Thu, 21 Jan 2021 10:38:42 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 11:58:05 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:21:12 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:24:00 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:24:33 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:25:23 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:26:06 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:26:30 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:27:59 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:29:04 GMT): Helder_jn_Pinto (Thu, 21 Jan 2021 13:30:20 GMT): KingAlawaka (Thu, 21 Jan 2021 18:56:21 GMT): mwaser (Thu, 21 Jan 2021 20:15:59 GMT): mwaser (Thu, 21 Jan 2021 20:16:32 GMT): mwaser (Thu, 21 Jan 2021 20:17:45 GMT): mwaser (Thu, 21 Jan 2021 20:18:07 GMT): mwaser (Thu, 21 Jan 2021 20:20:18 GMT): mwaser (Thu, 21 Jan 2021 20:21:42 GMT): mwaser (Thu, 21 Jan 2021 22:56:52 GMT): mwaser (Thu, 21 Jan 2021 23:00:25 GMT): trent.mohay (Fri, 22 Jan 2021 01:02:08 GMT): jframe (Fri, 22 Jan 2021 01:44:22 GMT): DinDjarin (Fri, 22 Jan 2021 04:23:45 GMT): mwaser (Fri, 22 Jan 2021 13:23:12 GMT): mwaser (Fri, 22 Jan 2021 14:41:09 GMT): mwaser (Fri, 22 Jan 2021 14:50:56 GMT): Helder_jn_Pinto (Fri, 22 Jan 2021 14:59:03 GMT): Helder_jn_Pinto (Fri, 22 Jan 2021 15:58:07 GMT): Helder_jn_Pinto (Fri, 22 Jan 2021 15:59:05 GMT): Helder_jn_Pinto (Fri, 22 Jan 2021 15:59:38 GMT): Helder_jn_Pinto (Fri, 22 Jan 2021 15:59:38 GMT): Helder_jn_Pinto (Fri, 22 Jan 2021 15:59:38 GMT): perusworld (Fri, 22 Jan 2021 21:45:55 GMT): Helder_jn_Pinto (Mon, 25 Jan 2021 10:42:12 GMT): Helder_jn_Pinto (Mon, 25 Jan 2021 10:44:07 GMT): salbonico (Mon, 25 Jan 2021 17:51:06 GMT): EmcLab (Tue, 26 Jan 2021 06:45:16 GMT): EmcLab (Tue, 26 Jan 2021 06:45:21 GMT): Julian178 (Tue, 26 Jan 2021 11:11:15 GMT): Julian178 (Tue, 26 Jan 2021 11:11:15 GMT): Julian178 (Tue, 26 Jan 2021 11:12:13 GMT): diegoll (Tue, 26 Jan 2021 16:26:03 GMT): shemnon (Tue, 26 Jan 2021 16:30:35 GMT): rjones (Tue, 26 Jan 2021 17:03:50 GMT): mwaser (Tue, 26 Jan 2021 19:39:05 GMT): mwaser (Tue, 26 Jan 2021 20:36:27 GMT): mwaser (Tue, 26 Jan 2021 20:37:00 GMT): mwaser (Tue, 26 Jan 2021 22:14:45 GMT): EmcLab (Tue, 26 Jan 2021 23:24:59 GMT): EmcLab (Tue, 26 Jan 2021 23:24:59 GMT): EmcLab (Wed, 27 Jan 2021 00:33:08 GMT): EmcLab (Wed, 27 Jan 2021 00:50:01 GMT): lucassaldanha (Wed, 27 Jan 2021 01:55:52 GMT): macfarla (Wed, 27 Jan 2021 04:29:55 GMT): trent.mohay (Wed, 27 Jan 2021 04:31:19 GMT): EmilianoVernini (Wed, 27 Jan 2021 08:42:21 GMT): EmilianoVernini (Wed, 27 Jan 2021 08:42:21 GMT): EmilianoVernini (Wed, 27 Jan 2021 08:49:05 GMT): Julian178 (Wed, 27 Jan 2021 09:47:08 GMT): mwaser (Wed, 27 Jan 2021 12:02:14 GMT): mwaser (Wed, 27 Jan 2021 12:04:37 GMT): shemnon (Wed, 27 Jan 2021 17:02:42 GMT): EmcLab (Wed, 27 Jan 2021 18:40:42 GMT): EmcLab (Wed, 27 Jan 2021 18:42:42 GMT): shemnon (Wed, 27 Jan 2021 19:06:00 GMT): shemnon (Wed, 27 Jan 2021 19:06:23 GMT): EmcLab (Wed, 27 Jan 2021 19:50:53 GMT): EmcLab (Wed, 27 Jan 2021 19:50:53 GMT): EmcLab (Wed, 27 Jan 2021 19:51:09 GMT): EmcLab (Wed, 27 Jan 2021 19:52:27 GMT): EmcLab (Wed, 27 Jan 2021 19:57:08 GMT): EmcLab (Wed, 27 Jan 2021 19:57:10 GMT): lucassaldanha (Wed, 27 Jan 2021 21:08:15 GMT): lucassaldanha (Wed, 27 Jan 2021 21:08:40 GMT): EmilianoVernini (Thu, 28 Jan 2021 08:36:53 GMT): puppeteer701 (Thu, 28 Jan 2021 11:02:30 GMT): timbeiko (Thu, 28 Jan 2021 16:47:46 GMT): shemnon (Thu, 28 Jan 2021 18:31:36 GMT): macfarla (Fri, 29 Jan 2021 01:21:33 GMT): RobertJuhasST (Fri, 29 Jan 2021 14:16:32 GMT): RobertJuhasST (Fri, 29 Jan 2021 14:16:32 GMT): mwaser (Fri, 29 Jan 2021 17:15:29 GMT): mwaser (Fri, 29 Jan 2021 17:15:29 GMT): mwaser (Fri, 29 Jan 2021 17:16:09 GMT): diegoll (Fri, 29 Jan 2021 17:59:31 GMT): mwaser (Fri, 29 Jan 2021 18:41:15 GMT): mwaser (Fri, 29 Jan 2021 18:42:36 GMT): mwaser (Fri, 29 Jan 2021 19:55:01 GMT): mwaser (Fri, 29 Jan 2021 20:05:11 GMT): diegoll (Fri, 29 Jan 2021 20:16:27 GMT): diegoll (Fri, 29 Jan 2021 20:19:56 GMT): mwaser (Fri, 29 Jan 2021 20:55:22 GMT): mwaser (Fri, 29 Jan 2021 20:59:56 GMT): mwaser (Fri, 29 Jan 2021 21:00:40 GMT): diegoll (Fri, 29 Jan 2021 21:18:18 GMT): Koen84 (Fri, 29 Jan 2021 23:33:55 GMT): Koen84 (Fri, 29 Jan 2021 23:33:56 GMT): Koen84 (Fri, 29 Jan 2021 23:33:56 GMT): shemnon (Sat, 30 Jan 2021 17:32:43 GMT): shemnon (Sat, 30 Jan 2021 17:44:27 GMT): shemnon (Sat, 30 Jan 2021 17:44:41 GMT): shemnon (Sat, 30 Jan 2021 17:44:41 GMT): Koen84 (Sun, 31 Jan 2021 00:53:34 GMT): adityajoshi12 (Sun, 31 Jan 2021 16:18:58 GMT): macfarla (Mon, 01 Feb 2021 00:11:04 GMT): karthiksamaganam (Mon, 01 Feb 2021 14:44:57 GMT): shemnon (Mon, 01 Feb 2021 16:42:49 GMT): shemnon (Mon, 01 Feb 2021 16:42:49 GMT): Koen84 (Mon, 01 Feb 2021 20:15:14 GMT): SuzanaMaranhao (Mon, 01 Feb 2021 20:17:27 GMT): SuzanaMaranhao (Mon, 01 Feb 2021 20:41:44 GMT): SuzanaMaranhao (Mon, 01 Feb 2021 20:42:59 GMT): macfarla (Mon, 01 Feb 2021 23:12:33 GMT): macfarla (Mon, 01 Feb 2021 23:14:05 GMT): macfarla (Mon, 01 Feb 2021 23:14:38 GMT): SuzanaMaranhao (Mon, 01 Feb 2021 23:59:19 GMT): SuzanaMaranhao (Mon, 01 Feb 2021 23:59:28 GMT): timbeiko (Tue, 02 Feb 2021 00:33:13 GMT): shemnon (Tue, 02 Feb 2021 00:55:40 GMT): macfarla (Tue, 02 Feb 2021 02:37:35 GMT): SuzanaMaranhao (Tue, 02 Feb 2021 13:43:26 GMT): SuzanaMaranhao (Tue, 02 Feb 2021 14:10:20 GMT): mwaser (Tue, 02 Feb 2021 16:50:24 GMT): mwaser (Tue, 02 Feb 2021 16:51:12 GMT): mwaser (Tue, 02 Feb 2021 16:54:21 GMT): mwaser (Tue, 02 Feb 2021 17:03:00 GMT): mwaser (Tue, 02 Feb 2021 17:03:55 GMT): diegoll (Tue, 02 Feb 2021 17:35:51 GMT): diegoll (Tue, 02 Feb 2021 17:35:51 GMT): mwaser (Tue, 02 Feb 2021 17:47:05 GMT): mwaser (Tue, 02 Feb 2021 17:48:33 GMT): diegoll (Tue, 02 Feb 2021 18:31:53 GMT): mwaser (Tue, 02 Feb 2021 20:22:38 GMT): diegoll (Tue, 02 Feb 2021 20:27:41 GMT): diegoll (Tue, 02 Feb 2021 20:29:51 GMT): mwaser (Tue, 02 Feb 2021 20:32:18 GMT): mwaser (Tue, 02 Feb 2021 20:33:33 GMT): diegoll (Tue, 02 Feb 2021 20:42:01 GMT): mwaser (Tue, 02 Feb 2021 20:43:05 GMT): diegoll (Tue, 02 Feb 2021 20:43:29 GMT): diegoll (Tue, 02 Feb 2021 20:44:29 GMT): mwaser (Tue, 02 Feb 2021 20:44:44 GMT): mwaser (Tue, 02 Feb 2021 20:45:48 GMT): mwaser (Tue, 02 Feb 2021 20:46:22 GMT): diegoll (Tue, 02 Feb 2021 20:48:46 GMT): diegoll (Tue, 02 Feb 2021 20:50:13 GMT): diegoll (Tue, 02 Feb 2021 20:50:54 GMT): diegoll (Tue, 02 Feb 2021 20:50:54 GMT): diegoll (Tue, 02 Feb 2021 20:50:54 GMT): diegoll (Tue, 02 Feb 2021 20:53:28 GMT): diegoll (Tue, 02 Feb 2021 20:53:28 GMT): mwaser (Tue, 02 Feb 2021 20:53:39 GMT): diegoll (Tue, 02 Feb 2021 20:54:43 GMT): mwaser (Tue, 02 Feb 2021 20:57:07 GMT): mwaser (Tue, 02 Feb 2021 20:57:48 GMT): mwaser (Tue, 02 Feb 2021 20:58:35 GMT): diegoll (Tue, 02 Feb 2021 20:58:38 GMT): diegoll (Tue, 02 Feb 2021 20:59:24 GMT): mwaser (Tue, 02 Feb 2021 20:59:52 GMT): diegoll (Tue, 02 Feb 2021 21:00:32 GMT): diegoll (Tue, 02 Feb 2021 21:00:49 GMT): mwaser (Tue, 02 Feb 2021 21:01:13 GMT): shemnon (Tue, 02 Feb 2021 22:43:43 GMT): shemnon (Tue, 02 Feb 2021 22:43:52 GMT): mwaser (Tue, 02 Feb 2021 22:49:31 GMT): SuzanaMaranhao (Wed, 03 Feb 2021 01:21:13 GMT): Koen84 (Wed, 03 Feb 2021 02:17:12 GMT): diegoll (Wed, 03 Feb 2021 02:35:35 GMT): diegoll (Wed, 03 Feb 2021 02:35:35 GMT): shemnon (Wed, 03 Feb 2021 03:56:11 GMT): shemnon (Wed, 03 Feb 2021 03:56:35 GMT): adityajoshi12 (Wed, 03 Feb 2021 10:03:45 GMT): adityajoshi12 (Wed, 03 Feb 2021 10:03:55 GMT): mayankmk14 (Wed, 03 Feb 2021 11:24:42 GMT): mayankmk14 (Wed, 03 Feb 2021 11:24:43 GMT): arsulegai (Wed, 03 Feb 2021 11:34:37 GMT): mayankmk14 (Wed, 03 Feb 2021 11:41:19 GMT): Victorbesu (Wed, 03 Feb 2021 13:26:40 GMT): Victorbesu (Wed, 03 Feb 2021 13:26:40 GMT): Victorbesu (Wed, 03 Feb 2021 13:26:40 GMT): SuzanaMaranhao (Wed, 03 Feb 2021 16:28:48 GMT): mharrison (Wed, 03 Feb 2021 17:09:56 GMT): eum602 (Wed, 03 Feb 2021 18:39:27 GMT): eum602 (Wed, 03 Feb 2021 18:39:27 GMT): SuzanaMaranhao (Wed, 03 Feb 2021 19:59:30 GMT): diegoll (Wed, 03 Feb 2021 20:06:30 GMT): SuzanaMaranhao (Wed, 03 Feb 2021 20:32:57 GMT): SuzanaMaranhao (Wed, 03 Feb 2021 20:33:40 GMT): SuzanaMaranhao (Wed, 03 Feb 2021 21:40:16 GMT): macfarla (Wed, 03 Feb 2021 21:48:56 GMT): macfarla (Wed, 03 Feb 2021 21:50:40 GMT): macfarla (Wed, 03 Feb 2021 21:56:34 GMT): macfarla (Wed, 03 Feb 2021 22:03:39 GMT): macfarla (Wed, 03 Feb 2021 22:05:21 GMT): macfarla (Wed, 03 Feb 2021 22:07:41 GMT): macfarla (Wed, 03 Feb 2021 22:17:22 GMT): macfarla (Wed, 03 Feb 2021 22:19:21 GMT): macfarla (Wed, 03 Feb 2021 22:20:33 GMT): eum602 (Wed, 03 Feb 2021 22:24:20 GMT): macfarla (Wed, 03 Feb 2021 22:58:04 GMT): macfarla (Thu, 04 Feb 2021 00:35:31 GMT): trent.mohay (Thu, 04 Feb 2021 02:17:59 GMT): macfarla (Thu, 04 Feb 2021 04:56:21 GMT): shemnon (Thu, 04 Feb 2021 05:05:52 GMT): mayankmk14 (Thu, 04 Feb 2021 07:53:38 GMT): EmilianoVernini (Thu, 04 Feb 2021 13:40:12 GMT): diegoll (Thu, 04 Feb 2021 13:42:58 GMT): diegoll (Thu, 04 Feb 2021 13:42:58 GMT): diegoll (Thu, 04 Feb 2021 13:42:58 GMT): diegoll (Thu, 04 Feb 2021 13:45:59 GMT): diegoll (Thu, 04 Feb 2021 13:45:59 GMT): diegoll (Thu, 04 Feb 2021 13:45:59 GMT): diegoll (Thu, 04 Feb 2021 13:55:32 GMT): diegoll (Thu, 04 Feb 2021 13:55:32 GMT): helderjnpinto (Thu, 04 Feb 2021 14:23:02 GMT): helderjnpinto (Thu, 04 Feb 2021 14:23:02 GMT): shemnon (Thu, 04 Feb 2021 14:24:27 GMT): shemnon (Thu, 04 Feb 2021 14:26:42 GMT): shemnon (Thu, 04 Feb 2021 14:27:41 GMT): shemnon (Thu, 04 Feb 2021 14:28:50 GMT): shemnon (Thu, 04 Feb 2021 14:29:48 GMT): shemnon (Thu, 04 Feb 2021 14:31:13 GMT): shemnon (Thu, 04 Feb 2021 14:31:52 GMT): helderjnpinto (Thu, 04 Feb 2021 14:55:46 GMT): helderjnpinto (Thu, 04 Feb 2021 14:55:46 GMT): helderjnpinto (Thu, 04 Feb 2021 14:56:18 GMT): shemnon (Thu, 04 Feb 2021 15:00:43 GMT): shemnon (Thu, 04 Feb 2021 15:01:08 GMT): helderjnpinto (Thu, 04 Feb 2021 15:02:06 GMT): helderjnpinto (Thu, 04 Feb 2021 15:03:56 GMT): Helen_Garneau (Thu, 04 Feb 2021 15:11:23 GMT): SuzanaMaranhao (Thu, 04 Feb 2021 22:22:14 GMT): eum602 (Thu, 04 Feb 2021 22:39:18 GMT): eum602 (Thu, 04 Feb 2021 22:39:18 GMT): shemnon (Thu, 04 Feb 2021 22:45:18 GMT): mwaser (Thu, 04 Feb 2021 22:56:54 GMT): macfarla (Thu, 04 Feb 2021 23:01:01 GMT): macfarla (Thu, 04 Feb 2021 23:03:47 GMT): macfarla (Thu, 04 Feb 2021 23:06:01 GMT): macfarla (Thu, 04 Feb 2021 23:07:07 GMT): macfarla (Thu, 04 Feb 2021 23:07:22 GMT): macfarla (Thu, 04 Feb 2021 23:08:12 GMT): macfarla (Thu, 04 Feb 2021 23:09:33 GMT): macfarla (Thu, 04 Feb 2021 23:12:13 GMT): macfarla (Thu, 04 Feb 2021 23:12:25 GMT): shemnon (Thu, 04 Feb 2021 23:17:34 GMT): SandeepChalla (Fri, 05 Feb 2021 06:18:22 GMT): marco.cassandro (Fri, 05 Feb 2021 06:45:21 GMT): marco.cassandro (Fri, 05 Feb 2021 06:45:21 GMT): EmilianoVernini (Fri, 05 Feb 2021 09:14:51 GMT): SuzanaMaranhao (Fri, 05 Feb 2021 10:54:49 GMT): SuzanaMaranhao (Fri, 05 Feb 2021 10:57:35 GMT): SuzanaMaranhao (Fri, 05 Feb 2021 13:32:26 GMT): SuzanaMaranhao (Fri, 05 Feb 2021 13:32:26 GMT): diegoll (Fri, 05 Feb 2021 13:45:46 GMT): mayankmk14 (Fri, 05 Feb 2021 15:37:56 GMT): SuzanaMaranhao (Fri, 05 Feb 2021 16:23:21 GMT): SuzanaMaranhao (Fri, 05 Feb 2021 16:23:21 GMT): SuzanaMaranhao (Fri, 05 Feb 2021 22:23:47 GMT): rami.fatayri (Sat, 06 Feb 2021 19:50:02 GMT): rami.fatayri (Sat, 06 Feb 2021 19:51:30 GMT): rami.fatayri (Sat, 06 Feb 2021 19:51:30 GMT): atoulme (Sat, 06 Feb 2021 23:20:04 GMT): rami.fatayri (Sun, 07 Feb 2021 15:56:16 GMT): macfarla (Sun, 07 Feb 2021 22:38:52 GMT): macfarla (Sun, 07 Feb 2021 22:40:18 GMT): rami.fatayri (Sun, 07 Feb 2021 22:46:38 GMT): macfarla (Sun, 07 Feb 2021 23:29:18 GMT): helderjnpinto (Mon, 08 Feb 2021 16:59:29 GMT): helderjnpinto (Mon, 08 Feb 2021 17:00:14 GMT): helderjnpinto (Mon, 08 Feb 2021 17:00:14 GMT): helderjnpinto (Mon, 08 Feb 2021 17:02:29 GMT): SuzanaMaranhao (Mon, 08 Feb 2021 17:28:43 GMT): SuzanaMaranhao (Mon, 08 Feb 2021 17:28:43 GMT): SuzanaMaranhao (Mon, 08 Feb 2021 17:38:09 GMT): SuzanaMaranhao (Mon, 08 Feb 2021 17:57:02 GMT): atoulme (Mon, 08 Feb 2021 19:24:29 GMT): shemnon (Mon, 08 Feb 2021 20:50:24 GMT): SuzanaMaranhao (Mon, 08 Feb 2021 20:50:39 GMT): SuzanaMaranhao (Mon, 08 Feb 2021 20:50:43 GMT): trent.mohay (Mon, 08 Feb 2021 20:53:45 GMT): rami.fatayri (Mon, 08 Feb 2021 21:52:48 GMT): macfarla (Mon, 08 Feb 2021 22:13:07 GMT): lucassaldanha (Mon, 08 Feb 2021 23:02:22 GMT): lucassaldanha (Mon, 08 Feb 2021 23:02:22 GMT): lucassaldanha (Mon, 08 Feb 2021 23:11:13 GMT): atoulme (Tue, 09 Feb 2021 00:42:43 GMT): eum602 (Tue, 09 Feb 2021 02:39:40 GMT): trent.mohay (Tue, 09 Feb 2021 05:02:40 GMT): trent.mohay (Tue, 09 Feb 2021 05:02:40 GMT): trent.mohay (Tue, 09 Feb 2021 05:02:40 GMT): mayankmk14 (Tue, 09 Feb 2021 05:44:34 GMT): rami.fatayri (Tue, 09 Feb 2021 08:16:38 GMT): helderjnpinto (Tue, 09 Feb 2021 10:24:41 GMT): SuzanaMaranhao (Tue, 09 Feb 2021 13:08:24 GMT): SuzanaMaranhao (Tue, 09 Feb 2021 13:13:45 GMT): SuzanaMaranhao (Tue, 09 Feb 2021 13:23:46 GMT): SuzanaMaranhao (Tue, 09 Feb 2021 13:30:30 GMT): SuzanaMaranhao (Tue, 09 Feb 2021 19:41:05 GMT): lucassaldanha (Tue, 09 Feb 2021 20:56:06 GMT): mdwright88 (Wed, 10 Feb 2021 01:14:12 GMT): mdwright88 (Wed, 10 Feb 2021 01:17:35 GMT): shemnon (Wed, 10 Feb 2021 03:20:19 GMT): shemnon (Wed, 10 Feb 2021 03:20:19 GMT): besu-bot (Wed, 10 Feb 2021 04:03:04 GMT): SuzanaMaranhao (Wed, 10 Feb 2021 14:35:54 GMT): DVasin (Thu, 11 Feb 2021 13:54:15 GMT): tenghu 1 (Thu, 11 Feb 2021 15:53:23 GMT): tenghu 1 (Thu, 11 Feb 2021 15:54:08 GMT): tenghu 1 (Thu, 11 Feb 2021 15:54:29 GMT): tenghu 1 (Thu, 11 Feb 2021 16:01:50 GMT): besu-bot (Thu, 11 Feb 2021 16:13:48 GMT): adityajoshi12 (Thu, 11 Feb 2021 18:03:42 GMT): adityajoshi12 (Thu, 11 Feb 2021 18:03:50 GMT): mmaryo 1 (Thu, 11 Feb 2021 20:01:24 GMT): mmaryo 1 (Thu, 11 Feb 2021 20:01:34 GMT): mmaryo 1 (Thu, 11 Feb 2021 20:04:53 GMT): mmaryo 1 (Thu, 11 Feb 2021 20:04:53 GMT): mmaryo 1 (Thu, 11 Feb 2021 20:04:53 GMT): bgravenorst (Thu, 11 Feb 2021 21:23:22 GMT): lucassaldanha (Thu, 11 Feb 2021 22:03:42 GMT): macfarla (Thu, 11 Feb 2021 22:24:34 GMT): macfarla (Thu, 11 Feb 2021 22:25:16 GMT): macfarla (Thu, 11 Feb 2021 22:29:04 GMT): macfarla (Thu, 11 Feb 2021 22:39:16 GMT): spacecadet (Thu, 11 Feb 2021 23:26:00 GMT): spacecadet (Thu, 11 Feb 2021 23:26:01 GMT): mmaryo 1 (Fri, 12 Feb 2021 08:55:28 GMT): mmaryo 1 (Fri, 12 Feb 2021 08:56:09 GMT): mmaryo 1 (Fri, 12 Feb 2021 08:56:14 GMT): mmaryo 1 (Fri, 12 Feb 2021 08:56:14 GMT): spacecadet (Fri, 12 Feb 2021 08:58:39 GMT): mmaryo 1 (Fri, 12 Feb 2021 09:00:49 GMT): mmaryo 1 (Fri, 12 Feb 2021 09:02:11 GMT): marco.cassandro (Fri, 12 Feb 2021 09:12:05 GMT): spacecadet (Fri, 12 Feb 2021 09:28:33 GMT): spacecadet (Fri, 12 Feb 2021 09:28:40 GMT): spacecadet (Fri, 12 Feb 2021 09:28:56 GMT): spacecadet (Fri, 12 Feb 2021 09:29:17 GMT): spacecadet (Fri, 12 Feb 2021 09:29:52 GMT): spacecadet (Fri, 12 Feb 2021 09:30:01 GMT): diegoll (Fri, 12 Feb 2021 14:21:08 GMT): geleeroyale (Fri, 12 Feb 2021 16:28:50 GMT): geleeroyale (Fri, 12 Feb 2021 16:28:50 GMT): mmaryo 1 (Fri, 12 Feb 2021 17:18:29 GMT): NicolasMassart (Fri, 12 Feb 2021 19:13:31 GMT): NicolasMassart (Fri, 12 Feb 2021 19:13:58 GMT): NicolasMassart (Fri, 12 Feb 2021 19:13:58 GMT): NicolasMassart (Fri, 12 Feb 2021 19:13:58 GMT): helderjnpinto (Sat, 13 Feb 2021 15:24:32 GMT): helderjnpinto (Sat, 13 Feb 2021 15:24:35 GMT): helderjnpinto (Sat, 13 Feb 2021 15:25:40 GMT): helderjnpinto (Sat, 13 Feb 2021 15:26:15 GMT): helderjnpinto (Sat, 13 Feb 2021 15:31:29 GMT): shemnon (Sat, 13 Feb 2021 23:04:25 GMT): shemnon (Sat, 13 Feb 2021 23:06:03 GMT): shemnon (Sat, 13 Feb 2021 23:07:35 GMT): shemnon (Sat, 13 Feb 2021 23:09:19 GMT): helderjnpinto (Sun, 14 Feb 2021 11:22:12 GMT): helderjnpinto (Sun, 14 Feb 2021 11:25:01 GMT): IonutS (Sun, 14 Feb 2021 17:30:29 GMT): spacecadet (Sun, 14 Feb 2021 17:30:54 GMT): IonutS (Sun, 14 Feb 2021 17:32:54 GMT): IonutS (Sun, 14 Feb 2021 17:33:41 GMT): bgravenorst (Sun, 14 Feb 2021 20:28:48 GMT): IonutS (Sun, 14 Feb 2021 20:38:47 GMT): IonutS (Sun, 14 Feb 2021 20:38:47 GMT): IonutS (Sun, 14 Feb 2021 22:40:58 GMT): hmijail (Sun, 14 Feb 2021 23:28:53 GMT): hmijail (Sun, 14 Feb 2021 23:29:41 GMT): diegoll (Sun, 14 Feb 2021 23:41:51 GMT): IonutS (Sun, 14 Feb 2021 23:44:51 GMT): IonutS (Sun, 14 Feb 2021 23:46:06 GMT): diegoll (Sun, 14 Feb 2021 23:49:57 GMT): IonutS (Sun, 14 Feb 2021 23:51:21 GMT): trent.mohay (Mon, 15 Feb 2021 11:08:18 GMT): NicolasMassart (Mon, 15 Feb 2021 11:22:15 GMT): RobbeV 1 (Mon, 15 Feb 2021 11:34:51 GMT): RobbeV 1 (Mon, 15 Feb 2021 11:34:51 GMT): IonutS (Mon, 15 Feb 2021 12:05:52 GMT): IonutS (Mon, 15 Feb 2021 12:05:52 GMT): shemnon (Mon, 15 Feb 2021 15:13:11 GMT): shemnon (Mon, 15 Feb 2021 15:16:31 GMT): shemnon (Mon, 15 Feb 2021 15:19:38 GMT): shemnon (Mon, 15 Feb 2021 15:19:38 GMT): shemnon (Mon, 15 Feb 2021 15:20:01 GMT): IonutS (Mon, 15 Feb 2021 16:22:19 GMT): IonutS (Mon, 15 Feb 2021 16:22:19 GMT): shemnon (Mon, 15 Feb 2021 16:41:47 GMT): helderjnpinto (Mon, 15 Feb 2021 19:15:45 GMT): helderjnpinto (Mon, 15 Feb 2021 19:16:27 GMT): helderjnpinto (Mon, 15 Feb 2021 19:17:06 GMT): helderjnpinto (Mon, 15 Feb 2021 19:17:51 GMT): shemnon (Mon, 15 Feb 2021 20:37:21 GMT): shemnon (Mon, 15 Feb 2021 20:38:18 GMT): trent.mohay (Mon, 15 Feb 2021 21:07:50 GMT): shemnon (Mon, 15 Feb 2021 22:36:39 GMT): shemnon (Tue, 16 Feb 2021 01:17:21 GMT): aminghasemi (Tue, 16 Feb 2021 07:19:12 GMT): aminghasemi (Tue, 16 Feb 2021 07:19:13 GMT): aminghasemi (Tue, 16 Feb 2021 07:19:26 GMT): aminghasemi (Tue, 16 Feb 2021 07:19:45 GMT): aminghasemi (Tue, 16 Feb 2021 07:20:11 GMT): helderjnpinto (Tue, 16 Feb 2021 10:07:28 GMT): helderjnpinto (Tue, 16 Feb 2021 12:24:21 GMT): shemnon (Tue, 16 Feb 2021 14:00:24 GMT): shemnon (Tue, 16 Feb 2021 14:31:59 GMT): kvbik (Tue, 16 Feb 2021 16:19:52 GMT): Skyler827 (Tue, 16 Feb 2021 18:16:53 GMT): Skyler827 (Tue, 16 Feb 2021 18:16:53 GMT): Skyler827 (Tue, 16 Feb 2021 18:39:16 GMT): macfarla (Tue, 16 Feb 2021 22:57:39 GMT): bgravenorst (Wed, 17 Feb 2021 01:08:03 GMT): bgravenorst (Wed, 17 Feb 2021 01:09:53 GMT): bgravenorst (Wed, 17 Feb 2021 01:10:06 GMT): sankara 5 (Wed, 17 Feb 2021 07:36:49 GMT): sankara 5 (Wed, 17 Feb 2021 07:36:49 GMT): shemnon (Wed, 17 Feb 2021 14:33:15 GMT): shemnon (Wed, 17 Feb 2021 14:33:46 GMT): adityajoshi12 (Wed, 17 Feb 2021 17:50:09 GMT): adityajoshi12 (Wed, 17 Feb 2021 17:50:09 GMT): adityajoshi12 (Wed, 17 Feb 2021 17:50:09 GMT): adityajoshi12 (Wed, 17 Feb 2021 17:52:12 GMT): diegoll (Wed, 17 Feb 2021 18:17:16 GMT): adityajoshi12 (Wed, 17 Feb 2021 18:18:36 GMT): adityajoshi12 (Wed, 17 Feb 2021 18:19:47 GMT): diegoll (Wed, 17 Feb 2021 19:15:55 GMT): adityajoshi12 (Wed, 17 Feb 2021 19:24:52 GMT): rampatra (Wed, 17 Feb 2021 21:32:45 GMT): CodeReaper (Thu, 18 Feb 2021 06:54:44 GMT): CodeReaper (Thu, 18 Feb 2021 06:59:02 GMT): tomhay (Thu, 18 Feb 2021 15:33:02 GMT): shemnon (Thu, 18 Feb 2021 17:18:16 GMT): IonutS (Thu, 18 Feb 2021 18:54:53 GMT): mattheuspirovani (Thu, 18 Feb 2021 19:03:48 GMT): diegoll (Thu, 18 Feb 2021 19:07:17 GMT): IonutS (Thu, 18 Feb 2021 19:10:15 GMT): IonutS (Thu, 18 Feb 2021 19:10:15 GMT): diegoll (Thu, 18 Feb 2021 19:13:24 GMT): IonutS (Thu, 18 Feb 2021 19:14:43 GMT): IonutS (Thu, 18 Feb 2021 19:14:43 GMT): IonutS (Thu, 18 Feb 2021 19:50:33 GMT): SuzanaMaranhao (Thu, 18 Feb 2021 19:51:05 GMT): IonutS (Thu, 18 Feb 2021 19:52:22 GMT): shemnon (Thu, 18 Feb 2021 19:55:23 GMT): shemnon (Thu, 18 Feb 2021 19:56:16 GMT): shemnon (Thu, 18 Feb 2021 19:57:16 GMT): IonutS (Thu, 18 Feb 2021 19:58:29 GMT): IonutS (Thu, 18 Feb 2021 20:00:17 GMT): shemnon (Thu, 18 Feb 2021 20:52:57 GMT): shemnon (Thu, 18 Feb 2021 20:52:57 GMT): shemnon (Thu, 18 Feb 2021 20:53:20 GMT): IonutS (Thu, 18 Feb 2021 21:16:13 GMT): IonutS (Thu, 18 Feb 2021 21:16:13 GMT): EmcLab (Fri, 19 Feb 2021 03:38:27 GMT): CodeReaper (Fri, 19 Feb 2021 08:21:56 GMT): adovale (Fri, 19 Feb 2021 08:22:00 GMT): adovale (Fri, 19 Feb 2021 08:22:00 GMT): adovale (Fri, 19 Feb 2021 08:22:00 GMT): adovale (Fri, 19 Feb 2021 08:22:00 GMT): prashantgangwar (Fri, 19 Feb 2021 12:33:53 GMT): prashantgangwar (Fri, 19 Feb 2021 12:36:22 GMT): prashantgangwar (Fri, 19 Feb 2021 12:36:23 GMT): adityajoshi12 (Fri, 19 Feb 2021 12:40:53 GMT): IonutS (Fri, 19 Feb 2021 12:45:12 GMT): IonutS (Fri, 19 Feb 2021 12:48:25 GMT): IonutS (Fri, 19 Feb 2021 12:48:25 GMT): IonutS (Fri, 19 Feb 2021 12:48:25 GMT): diegoll (Fri, 19 Feb 2021 12:54:15 GMT): prashantgangwar (Fri, 19 Feb 2021 12:57:08 GMT): shemnon (Fri, 19 Feb 2021 13:59:53 GMT): SuzanaMaranhao (Fri, 19 Feb 2021 14:01:58 GMT): CodeReaper (Fri, 19 Feb 2021 14:07:06 GMT): diegoll (Fri, 19 Feb 2021 14:19:40 GMT): diegoll (Fri, 19 Feb 2021 15:22:59 GMT): diegoll (Fri, 19 Feb 2021 15:23:26 GMT): rjones (Fri, 19 Feb 2021 15:29:13 GMT): CodeReaper (Fri, 19 Feb 2021 16:04:09 GMT): diegoll (Fri, 19 Feb 2021 16:13:25 GMT): diegoll (Fri, 19 Feb 2021 16:13:48 GMT): diegoll (Fri, 19 Feb 2021 16:14:19 GMT): IonutS (Fri, 19 Feb 2021 17:43:23 GMT): shemnon (Fri, 19 Feb 2021 18:56:02 GMT): IonutS (Fri, 19 Feb 2021 19:05:55 GMT): stev 627 (Fri, 19 Feb 2021 20:48:48 GMT): IonutS (Fri, 19 Feb 2021 21:35:36 GMT): IonutS (Fri, 19 Feb 2021 21:35:36 GMT): mwaser (Sat, 20 Feb 2021 23:00:27 GMT): mwaser (Sat, 20 Feb 2021 23:00:27 GMT): CodeReaper (Sun, 21 Feb 2021 09:18:04 GMT): CodeReaper (Sun, 21 Feb 2021 09:23:32 GMT): CodeReaper (Sun, 21 Feb 2021 10:16:47 GMT): CodeReaper (Sun, 21 Feb 2021 11:01:54 GMT): CodeReaper (Sun, 21 Feb 2021 11:04:58 GMT): CodeReaper (Sun, 21 Feb 2021 11:05:04 GMT): mwaser (Sun, 21 Feb 2021 13:07:30 GMT): mwaser (Sun, 21 Feb 2021 13:07:30 GMT): mwaser (Sun, 21 Feb 2021 13:59:54 GMT): mwaser (Sun, 21 Feb 2021 14:06:12 GMT): shemnon (Sun, 21 Feb 2021 19:49:33 GMT): shemnon (Sun, 21 Feb 2021 19:49:53 GMT): prashantgangwar (Mon, 22 Feb 2021 03:38:39 GMT): prashantgangwar (Mon, 22 Feb 2021 03:38:39 GMT): cyberservicesindia (Mon, 22 Feb 2021 08:45:57 GMT): cyberservicesindia (Mon, 22 Feb 2021 08:45:58 GMT): cyberservicesindia (Mon, 22 Feb 2021 08:48:39 GMT): cyberservicesindia (Mon, 22 Feb 2021 08:48:45 GMT): cyberservicesindia (Mon, 22 Feb 2021 08:49:29 GMT): diegoll (Mon, 22 Feb 2021 10:24:15 GMT): prashantgangwar (Mon, 22 Feb 2021 13:32:40 GMT): prashantgangwar (Mon, 22 Feb 2021 13:32:40 GMT): mwaser (Mon, 22 Feb 2021 13:52:58 GMT): SuzanaMaranhao (Mon, 22 Feb 2021 14:12:49 GMT): diegoll (Mon, 22 Feb 2021 14:17:29 GMT): diegoll (Mon, 22 Feb 2021 14:17:29 GMT): SuzanaMaranhao (Mon, 22 Feb 2021 14:23:10 GMT): diegoll (Mon, 22 Feb 2021 14:28:02 GMT): diegoll (Mon, 22 Feb 2021 14:28:02 GMT): diegoll (Mon, 22 Feb 2021 14:30:35 GMT): SuzanaMaranhao (Mon, 22 Feb 2021 14:57:34 GMT): shemnon (Mon, 22 Feb 2021 16:37:23 GMT): prashantgangwar (Mon, 22 Feb 2021 19:06:45 GMT): shemnon (Mon, 22 Feb 2021 19:38:51 GMT): shemnon (Mon, 22 Feb 2021 19:40:00 GMT): shemnon (Mon, 22 Feb 2021 19:40:00 GMT): mwaser (Mon, 22 Feb 2021 21:37:15 GMT): lucassaldanha (Mon, 22 Feb 2021 21:42:26 GMT): mwaser (Mon, 22 Feb 2021 21:47:31 GMT): mwaser (Mon, 22 Feb 2021 21:47:56 GMT): mwaser (Mon, 22 Feb 2021 21:48:23 GMT): lucassaldanha (Mon, 22 Feb 2021 21:50:16 GMT): lucassaldanha (Mon, 22 Feb 2021 21:52:07 GMT): rampatra (Mon, 22 Feb 2021 22:52:23 GMT): atoulme (Mon, 22 Feb 2021 23:50:00 GMT): rampatra (Tue, 23 Feb 2021 00:12:39 GMT): rampatra (Tue, 23 Feb 2021 00:12:39 GMT): atoulme (Tue, 23 Feb 2021 00:12:52 GMT): atoulme (Tue, 23 Feb 2021 00:13:36 GMT): atoulme (Tue, 23 Feb 2021 00:13:45 GMT): atoulme (Tue, 23 Feb 2021 00:14:10 GMT): rampatra (Tue, 23 Feb 2021 00:14:58 GMT): rampatra (Tue, 23 Feb 2021 00:15:20 GMT): Koen84 (Tue, 23 Feb 2021 03:12:48 GMT): shemnon (Tue, 23 Feb 2021 04:52:19 GMT): shemnon (Tue, 23 Feb 2021 04:52:38 GMT): atoulme (Tue, 23 Feb 2021 07:03:37 GMT): rampatra (Tue, 23 Feb 2021 09:42:24 GMT): prashantgangwar (Tue, 23 Feb 2021 11:42:45 GMT): Koen84 (Tue, 23 Feb 2021 15:28:50 GMT): shemnon (Tue, 23 Feb 2021 17:10:40 GMT): mwaser (Wed, 24 Feb 2021 00:01:46 GMT): mwaser (Wed, 24 Feb 2021 00:24:23 GMT): mwaser (Wed, 24 Feb 2021 00:25:44 GMT): mwaser (Wed, 24 Feb 2021 00:26:32 GMT): mwaser (Wed, 24 Feb 2021 00:29:47 GMT): lucassaldanha (Wed, 24 Feb 2021 00:33:32 GMT): lucassaldanha (Wed, 24 Feb 2021 00:40:24 GMT): mwaser (Wed, 24 Feb 2021 00:48:31 GMT): lucassaldanha (Wed, 24 Feb 2021 00:53:24 GMT): madelinemurray (Wed, 24 Feb 2021 03:39:10 GMT): prashantgangwar (Wed, 24 Feb 2021 09:49:39 GMT): prashantgangwar (Wed, 24 Feb 2021 09:49:41 GMT): prashantgangwar (Wed, 24 Feb 2021 09:51:05 GMT): prashantgangwar (Wed, 24 Feb 2021 09:57:46 GMT): helderjnpinto (Wed, 24 Feb 2021 11:31:01 GMT): helderjnpinto (Wed, 24 Feb 2021 11:31:01 GMT): helderjnpinto (Wed, 24 Feb 2021 11:31:01 GMT): helderjnpinto (Wed, 24 Feb 2021 11:32:17 GMT): helderjnpinto (Wed, 24 Feb 2021 11:32:35 GMT): helderjnpinto (Wed, 24 Feb 2021 11:32:51 GMT): helderjnpinto (Wed, 24 Feb 2021 11:33:07 GMT): helderjnpinto (Wed, 24 Feb 2021 11:33:22 GMT): helderjnpinto (Wed, 24 Feb 2021 11:34:10 GMT): mwaser (Wed, 24 Feb 2021 12:41:04 GMT): mwaser (Wed, 24 Feb 2021 12:44:55 GMT): mwaser (Wed, 24 Feb 2021 12:44:55 GMT): mwaser (Wed, 24 Feb 2021 12:44:55 GMT): helderjnpinto (Wed, 24 Feb 2021 13:13:04 GMT): helderjnpinto (Wed, 24 Feb 2021 13:13:04 GMT): helderjnpinto (Wed, 24 Feb 2021 13:19:57 GMT): helderjnpinto (Wed, 24 Feb 2021 13:19:57 GMT): helderjnpinto (Wed, 24 Feb 2021 13:19:57 GMT): helderjnpinto (Wed, 24 Feb 2021 13:20:57 GMT): helderjnpinto (Wed, 24 Feb 2021 13:20:57 GMT): helderjnpinto (Wed, 24 Feb 2021 13:24:24 GMT): NicolasMassart (Wed, 24 Feb 2021 13:31:00 GMT): NicolasMassart (Wed, 24 Feb 2021 13:32:01 GMT): helderjnpinto (Wed, 24 Feb 2021 14:09:40 GMT): rampatra (Wed, 24 Feb 2021 14:10:22 GMT): helderjnpinto (Wed, 24 Feb 2021 14:13:22 GMT): rampatra (Wed, 24 Feb 2021 14:14:30 GMT): rampatra (Wed, 24 Feb 2021 14:14:49 GMT): diegoll (Wed, 24 Feb 2021 14:44:35 GMT): rampatra (Wed, 24 Feb 2021 14:47:18 GMT): rampatra (Wed, 24 Feb 2021 14:47:18 GMT): rampatra (Wed, 24 Feb 2021 14:47:18 GMT): diegoll (Wed, 24 Feb 2021 14:48:50 GMT): rampatra (Wed, 24 Feb 2021 14:50:11 GMT): shemnon (Wed, 24 Feb 2021 15:10:03 GMT): NicolasMassart (Wed, 24 Feb 2021 15:18:45 GMT): helderjnpinto (Wed, 24 Feb 2021 15:24:23 GMT): helderjnpinto (Wed, 24 Feb 2021 15:27:56 GMT): helderjnpinto (Wed, 24 Feb 2021 15:34:49 GMT): helderjnpinto (Wed, 24 Feb 2021 15:34:49 GMT): helderjnpinto (Wed, 24 Feb 2021 15:35:52 GMT): SuzanaMaranhao (Wed, 24 Feb 2021 19:57:12 GMT): josenogueiradalmeida (Wed, 24 Feb 2021 20:06:18 GMT): josenogueiradalmeida (Wed, 24 Feb 2021 20:42:19 GMT): RobbeV 1 (Wed, 24 Feb 2021 22:19:40 GMT): RobbeV 1 (Wed, 24 Feb 2021 22:23:01 GMT): trent.mohay (Wed, 24 Feb 2021 22:25:07 GMT): RobbeV 1 (Wed, 24 Feb 2021 22:25:44 GMT): RobbeV 1 (Wed, 24 Feb 2021 22:27:02 GMT): trent.mohay (Wed, 24 Feb 2021 22:27:39 GMT): diegoll (Wed, 24 Feb 2021 23:20:34 GMT): hesusruiz (Wed, 24 Feb 2021 23:23:59 GMT): hesusruiz (Wed, 24 Feb 2021 23:27:18 GMT): trent.mohay (Wed, 24 Feb 2021 23:34:57 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:05:34 GMT): prashantgangwar (Thu, 25 Feb 2021 06:54:55 GMT): prashantgangwar (Thu, 25 Feb 2021 06:54:55 GMT): hesusruiz (Thu, 25 Feb 2021 07:09:11 GMT): hesusruiz (Thu, 25 Feb 2021 07:12:34 GMT): hesusruiz (Thu, 25 Feb 2021 07:17:11 GMT): RobbeV 1 (Thu, 25 Feb 2021 08:00:23 GMT): RobbeV 1 (Thu, 25 Feb 2021 08:00:23 GMT): diegoll (Thu, 25 Feb 2021 11:09:00 GMT): RobbeV 1 (Thu, 25 Feb 2021 12:45:44 GMT): diegoll (Thu, 25 Feb 2021 13:25:50 GMT): RobbeV 1 (Thu, 25 Feb 2021 14:38:46 GMT): rampatra (Thu, 25 Feb 2021 15:11:30 GMT): rampatra (Thu, 25 Feb 2021 15:11:30 GMT): SuzanaMaranhao (Thu, 25 Feb 2021 17:21:33 GMT): SuzanaMaranhao (Thu, 25 Feb 2021 17:21:59 GMT): SuzanaMaranhao (Thu, 25 Feb 2021 17:22:12 GMT): SuzanaMaranhao (Thu, 25 Feb 2021 17:22:15 GMT): SuzanaMaranhao (Thu, 25 Feb 2021 17:33:02 GMT): SuzanaMaranhao (Thu, 25 Feb 2021 17:33:16 GMT): RobbeV 1 (Thu, 25 Feb 2021 17:33:35 GMT): RobbeV 1 (Thu, 25 Feb 2021 17:33:35 GMT): rampatra (Thu, 25 Feb 2021 18:02:21 GMT): diegoll (Thu, 25 Feb 2021 19:00:07 GMT): RobbeV 1 (Thu, 25 Feb 2021 19:20:31 GMT): diegoll (Thu, 25 Feb 2021 19:36:53 GMT): trent.mohay (Fri, 26 Feb 2021 01:20:35 GMT): trent.mohay (Fri, 26 Feb 2021 01:54:07 GMT): joshuafernandes (Fri, 26 Feb 2021 02:14:47 GMT): joshuafernandes (Fri, 26 Feb 2021 02:14:47 GMT): lemonsuy (Fri, 26 Feb 2021 03:44:46 GMT): adovale (Fri, 26 Feb 2021 08:00:21 GMT): rampatra (Fri, 26 Feb 2021 09:40:33 GMT): rampatra (Fri, 26 Feb 2021 09:40:33 GMT): rampatra (Fri, 26 Feb 2021 10:38:05 GMT): trent.mohay (Fri, 26 Feb 2021 10:39:31 GMT): trent.mohay (Fri, 26 Feb 2021 10:39:31 GMT): trent.mohay (Fri, 26 Feb 2021 10:40:18 GMT): trent.mohay (Fri, 26 Feb 2021 10:41:00 GMT): trent.mohay (Fri, 26 Feb 2021 10:41:34 GMT): rampatra (Fri, 26 Feb 2021 10:44:25 GMT): lemonsuy (Fri, 26 Feb 2021 10:50:05 GMT): RahulPrasad (Fri, 26 Feb 2021 11:45:25 GMT): RahulPrasad (Fri, 26 Feb 2021 11:45:27 GMT): mwaser (Fri, 26 Feb 2021 12:24:59 GMT): mwaser (Fri, 26 Feb 2021 12:24:59 GMT): mwaser (Fri, 26 Feb 2021 12:38:18 GMT): mwaser (Fri, 26 Feb 2021 12:49:30 GMT): lemonsuy (Fri, 26 Feb 2021 14:31:13 GMT): mwaser (Fri, 26 Feb 2021 14:52:11 GMT): lemonsuy (Fri, 26 Feb 2021 15:16:50 GMT): JPonna (Fri, 26 Feb 2021 15:24:36 GMT): JPonna (Fri, 26 Feb 2021 15:24:37 GMT): NicolasMassart (Fri, 26 Feb 2021 15:25:32 GMT): JPonna (Fri, 26 Feb 2021 15:26:45 GMT): JPonna (Fri, 26 Feb 2021 15:26:58 GMT): rampatra (Fri, 26 Feb 2021 15:27:36 GMT): rampatra (Fri, 26 Feb 2021 15:27:36 GMT): rampatra (Fri, 26 Feb 2021 15:28:53 GMT): rampatra (Fri, 26 Feb 2021 15:43:36 GMT): NicolasMassart (Fri, 26 Feb 2021 15:44:53 GMT): JPonna (Fri, 26 Feb 2021 15:45:44 GMT): NicolasMassart (Fri, 26 Feb 2021 15:45:59 GMT): NicolasMassart (Fri, 26 Feb 2021 15:48:13 GMT): NicolasMassart (Fri, 26 Feb 2021 15:49:30 GMT): NicolasMassart (Fri, 26 Feb 2021 15:50:33 GMT): JPonna (Fri, 26 Feb 2021 15:53:25 GMT): NicolasMassart (Fri, 26 Feb 2021 15:57:18 GMT): NicolasMassart (Fri, 26 Feb 2021 15:57:18 GMT): NicolasMassart (Fri, 26 Feb 2021 16:01:23 GMT): rampatra (Fri, 26 Feb 2021 16:04:22 GMT): rampatra (Fri, 26 Feb 2021 16:04:53 GMT): mwaser (Fri, 26 Feb 2021 16:05:58 GMT): NicolasMassart (Fri, 26 Feb 2021 16:07:35 GMT): rampatra (Fri, 26 Feb 2021 16:10:34 GMT): rampatra (Fri, 26 Feb 2021 16:12:39 GMT): rampatra (Fri, 26 Feb 2021 16:12:39 GMT): rampatra (Fri, 26 Feb 2021 16:14:29 GMT): NicolasMassart (Fri, 26 Feb 2021 16:15:29 GMT): rampatra (Fri, 26 Feb 2021 16:23:25 GMT): NicolasMassart (Fri, 26 Feb 2021 17:36:42 GMT): EmcLab (Fri, 26 Feb 2021 21:16:32 GMT): shemnon (Fri, 26 Feb 2021 21:24:51 GMT): shemnon (Fri, 26 Feb 2021 21:24:55 GMT): shemnon (Fri, 26 Feb 2021 21:27:26 GMT): shemnon (Fri, 26 Feb 2021 21:27:26 GMT): shemnon (Fri, 26 Feb 2021 21:28:08 GMT): atoulme (Fri, 26 Feb 2021 21:36:30 GMT): atoulme (Fri, 26 Feb 2021 21:36:49 GMT): mwaser (Sat, 27 Feb 2021 00:37:27 GMT): mwaser (Sat, 27 Feb 2021 01:03:03 GMT): mwaser (Sat, 27 Feb 2021 01:03:03 GMT): Koen84 (Sat, 27 Feb 2021 03:07:41 GMT): Koen84 (Sat, 27 Feb 2021 03:07:41 GMT): Koen84 (Sat, 27 Feb 2021 03:16:41 GMT): s157261 (Sat, 27 Feb 2021 09:06:29 GMT): s157261 (Sat, 27 Feb 2021 09:06:30 GMT): s157261 (Sat, 27 Feb 2021 09:08:12 GMT): s157261 (Sat, 27 Feb 2021 09:08:34 GMT): s157261 (Sat, 27 Feb 2021 09:09:00 GMT): s157261 (Sat, 27 Feb 2021 09:09:42 GMT): s157261 (Sat, 27 Feb 2021 09:09:49 GMT): mwaser (Sat, 27 Feb 2021 12:28:44 GMT): mwaser (Sat, 27 Feb 2021 12:28:44 GMT): mwaser (Sat, 27 Feb 2021 12:28:44 GMT): mwaser (Sat, 27 Feb 2021 13:08:41 GMT): mwaser (Sat, 27 Feb 2021 13:08:41 GMT): mwaser (Sat, 27 Feb 2021 13:59:34 GMT): mwaser (Sat, 27 Feb 2021 13:59:34 GMT): mwaser (Sat, 27 Feb 2021 13:59:34 GMT): mwaser (Sat, 27 Feb 2021 13:59:34 GMT): mwaser (Sat, 27 Feb 2021 13:59:34 GMT): mwaser (Sat, 27 Feb 2021 13:59:34 GMT): atoulme (Sun, 28 Feb 2021 08:01:47 GMT): devapanda (Sun, 28 Feb 2021 12:02:52 GMT): devapanda (Sun, 28 Feb 2021 12:03:19 GMT): Koen84 (Sun, 28 Feb 2021 12:53:46 GMT): mwaser (Sun, 28 Feb 2021 13:28:03 GMT): mwaser (Sun, 28 Feb 2021 13:28:03 GMT): mwaser (Sun, 28 Feb 2021 13:28:03 GMT): mwaser (Sun, 28 Feb 2021 13:28:03 GMT): Renaud404 (Sun, 28 Feb 2021 15:00:45 GMT): Renaud404 (Sun, 28 Feb 2021 15:01:49 GMT): atoulme (Sun, 28 Feb 2021 16:11:23 GMT): atoulme (Sun, 28 Feb 2021 16:11:38 GMT): mwaser (Sun, 28 Feb 2021 16:17:07 GMT): mwaser (Sun, 28 Feb 2021 16:20:51 GMT): atoulme (Sun, 28 Feb 2021 16:54:31 GMT): mwaser (Sun, 28 Feb 2021 16:55:49 GMT): mwaser (Sun, 28 Feb 2021 16:56:36 GMT): mwaser (Sun, 28 Feb 2021 16:57:57 GMT): mwaser (Sun, 28 Feb 2021 16:57:57 GMT): mwaser (Sun, 28 Feb 2021 16:57:57 GMT): atoulme (Sun, 28 Feb 2021 17:02:13 GMT): Renaud404 (Sun, 28 Feb 2021 17:09:42 GMT): Renaud404 (Sun, 28 Feb 2021 17:12:19 GMT): atoulme (Sun, 28 Feb 2021 17:33:51 GMT): mwaser (Sun, 28 Feb 2021 19:44:45 GMT): mwaser (Sun, 28 Feb 2021 19:47:17 GMT): shemnon (Sun, 28 Feb 2021 20:26:37 GMT): shemnon (Sun, 28 Feb 2021 20:29:42 GMT): mwaser (Sun, 28 Feb 2021 21:13:19 GMT): mwaser (Sun, 28 Feb 2021 22:08:17 GMT): mwaser (Sun, 28 Feb 2021 22:08:17 GMT): mwaser (Sun, 28 Feb 2021 23:20:37 GMT): mwaser (Sun, 28 Feb 2021 23:35:45 GMT): atoulme (Sun, 28 Feb 2021 23:53:25 GMT): atoulme (Sun, 28 Feb 2021 23:55:27 GMT): Renaud404 (Mon, 01 Mar 2021 07:16:38 GMT): atoulme (Mon, 01 Mar 2021 07:17:29 GMT): Renaud404 (Mon, 01 Mar 2021 07:18:31 GMT): q9f (Mon, 01 Mar 2021 08:30:43 GMT): q9f (Mon, 01 Mar 2021 08:30:44 GMT): q9f (Mon, 01 Mar 2021 08:31:47 GMT): q9f (Mon, 01 Mar 2021 08:32:23 GMT): q9f (Mon, 01 Mar 2021 08:32:37 GMT): marco.cassandro (Mon, 01 Mar 2021 09:51:44 GMT): Renaud404 (Mon, 01 Mar 2021 14:05:16 GMT): mwaser (Mon, 01 Mar 2021 14:59:05 GMT): mwaser (Mon, 01 Mar 2021 15:03:47 GMT): mwaser (Mon, 01 Mar 2021 15:06:17 GMT): rampatra (Mon, 01 Mar 2021 15:36:51 GMT): atoulme (Mon, 01 Mar 2021 16:42:46 GMT): atoulme (Mon, 01 Mar 2021 16:43:54 GMT): rampatra (Mon, 01 Mar 2021 16:47:10 GMT): atoulme (Mon, 01 Mar 2021 16:58:21 GMT): rampatra (Mon, 01 Mar 2021 17:04:58 GMT): rampatra (Mon, 01 Mar 2021 17:06:01 GMT): rampatra (Mon, 01 Mar 2021 17:06:01 GMT): atoulme (Mon, 01 Mar 2021 18:25:32 GMT): atoulme (Mon, 01 Mar 2021 18:26:13 GMT): atoulme (Mon, 01 Mar 2021 18:27:14 GMT): atoulme (Mon, 01 Mar 2021 18:28:48 GMT): atoulme (Mon, 01 Mar 2021 18:28:54 GMT): rampatra (Mon, 01 Mar 2021 18:29:08 GMT): atoulme (Mon, 01 Mar 2021 18:29:10 GMT): atoulme (Mon, 01 Mar 2021 18:29:21 GMT): atoulme (Mon, 01 Mar 2021 18:30:04 GMT): atoulme (Mon, 01 Mar 2021 18:30:24 GMT): mwaser (Mon, 01 Mar 2021 18:30:25 GMT): atoulme (Mon, 01 Mar 2021 18:31:05 GMT): atoulme (Mon, 01 Mar 2021 18:31:45 GMT): rampatra (Mon, 01 Mar 2021 18:32:23 GMT): atoulme (Mon, 01 Mar 2021 18:32:28 GMT): rampatra (Mon, 01 Mar 2021 18:32:45 GMT): mwaser (Mon, 01 Mar 2021 18:32:59 GMT): atoulme (Mon, 01 Mar 2021 18:33:30 GMT): atoulme (Mon, 01 Mar 2021 18:33:53 GMT): mwaser (Mon, 01 Mar 2021 18:35:55 GMT): mwaser (Mon, 01 Mar 2021 18:35:55 GMT): atoulme (Mon, 01 Mar 2021 18:36:25 GMT): atoulme (Mon, 01 Mar 2021 18:36:38 GMT): atoulme (Mon, 01 Mar 2021 18:36:45 GMT): atoulme (Mon, 01 Mar 2021 18:37:26 GMT): mwaser (Mon, 01 Mar 2021 18:37:44 GMT): atoulme (Mon, 01 Mar 2021 18:37:51 GMT): atoulme (Mon, 01 Mar 2021 18:38:37 GMT): atoulme (Mon, 01 Mar 2021 18:38:50 GMT): mwaser (Mon, 01 Mar 2021 18:40:57 GMT): atoulme (Mon, 01 Mar 2021 18:42:12 GMT): mwaser (Mon, 01 Mar 2021 18:43:48 GMT): mwaser (Mon, 01 Mar 2021 18:43:48 GMT): rampatra (Mon, 01 Mar 2021 18:46:06 GMT): atoulme (Mon, 01 Mar 2021 18:46:21 GMT): shemnon (Mon, 01 Mar 2021 19:05:16 GMT): rjones (Mon, 01 Mar 2021 19:16:01 GMT): joshuafernandes (Mon, 01 Mar 2021 21:13:15 GMT): joshuafernandes (Mon, 01 Mar 2021 21:13:15 GMT): joshuafernandes (Mon, 01 Mar 2021 21:40:16 GMT): joshuafernandes (Mon, 01 Mar 2021 21:47:15 GMT): joshuafernandes (Mon, 01 Mar 2021 21:47:15 GMT): joshuafernandes (Mon, 01 Mar 2021 21:47:15 GMT): mwaser (Mon, 01 Mar 2021 21:49:33 GMT): mwaser (Mon, 01 Mar 2021 21:51:11 GMT): joshuafernandes (Mon, 01 Mar 2021 21:55:41 GMT): mwaser (Mon, 01 Mar 2021 22:00:18 GMT): joshuafernandes (Mon, 01 Mar 2021 22:08:51 GMT): mwaser (Mon, 01 Mar 2021 22:13:38 GMT): mwaser (Mon, 01 Mar 2021 22:15:11 GMT): joshuafernandes (Mon, 01 Mar 2021 22:15:50 GMT): joshuafernandes (Mon, 01 Mar 2021 22:17:37 GMT): joshuafernandes (Mon, 01 Mar 2021 22:21:26 GMT): mwaser (Mon, 01 Mar 2021 22:24:24 GMT): joshuafernandes (Mon, 01 Mar 2021 23:28:28 GMT): trent.mohay (Tue, 02 Mar 2021 03:17:32 GMT): trent.mohay (Tue, 02 Mar 2021 03:19:18 GMT): trent.mohay (Tue, 02 Mar 2021 03:21:52 GMT): arijit_6 (Tue, 02 Mar 2021 05:54:21 GMT): arijit_6 (Tue, 02 Mar 2021 05:54:22 GMT): prashantgangwar (Tue, 02 Mar 2021 06:50:37 GMT): q9f (Tue, 02 Mar 2021 08:49:38 GMT): prashantgangwar (Tue, 02 Mar 2021 10:22:03 GMT): prashantgangwar (Tue, 02 Mar 2021 10:22:03 GMT): prashantgangwar (Tue, 02 Mar 2021 10:22:03 GMT): prashantgangwar (Tue, 02 Mar 2021 10:22:03 GMT): prashantgangwar (Tue, 02 Mar 2021 10:22:03 GMT): prashantgangwar (Tue, 02 Mar 2021 10:22:03 GMT): rampatra (Tue, 02 Mar 2021 11:27:50 GMT): shemnon (Tue, 02 Mar 2021 14:23:58 GMT): shemnon (Tue, 02 Mar 2021 14:24:53 GMT): shemnon (Tue, 02 Mar 2021 14:26:16 GMT): rampatra (Tue, 02 Mar 2021 14:27:58 GMT): atoulme (Tue, 02 Mar 2021 15:38:37 GMT): rampatra (Tue, 02 Mar 2021 16:05:56 GMT): rampatra (Tue, 02 Mar 2021 16:05:56 GMT): shemnon (Tue, 02 Mar 2021 17:15:13 GMT): rampatra (Tue, 02 Mar 2021 17:28:01 GMT): rampatra (Tue, 02 Mar 2021 17:28:27 GMT): shemnon (Tue, 02 Mar 2021 19:29:24 GMT): shemnon (Tue, 02 Mar 2021 20:10:15 GMT): shemnon (Tue, 02 Mar 2021 20:11:16 GMT): shemnon (Tue, 02 Mar 2021 20:11:40 GMT): shemnon (Tue, 02 Mar 2021 20:12:21 GMT): shemnon (Tue, 02 Mar 2021 20:12:31 GMT): shemnon (Tue, 02 Mar 2021 20:12:56 GMT): shemnon (Tue, 02 Mar 2021 20:13:08 GMT): shemnon (Tue, 02 Mar 2021 20:13:32 GMT): shemnon (Tue, 02 Mar 2021 20:13:54 GMT): shemnon (Tue, 02 Mar 2021 20:14:19 GMT): shemnon (Tue, 02 Mar 2021 20:14:27 GMT): shemnon (Tue, 02 Mar 2021 20:14:52 GMT): shemnon (Tue, 02 Mar 2021 20:15:04 GMT): shemnon (Tue, 02 Mar 2021 20:15:35 GMT): shemnon (Tue, 02 Mar 2021 20:15:46 GMT): shemnon (Tue, 02 Mar 2021 20:16:34 GMT): shemnon (Tue, 02 Mar 2021 20:16:49 GMT): shemnon (Tue, 02 Mar 2021 20:17:17 GMT): shemnon (Tue, 02 Mar 2021 20:17:35 GMT): shemnon (Tue, 02 Mar 2021 20:17:59 GMT): prashantgangwar (Wed, 03 Mar 2021 04:57:55 GMT): atoulme (Wed, 03 Mar 2021 05:01:39 GMT): sjin4you (Wed, 03 Mar 2021 08:17:43 GMT): sjin4you (Wed, 03 Mar 2021 08:17:43 GMT): prashantgangwar (Wed, 03 Mar 2021 11:26:15 GMT): prashantgangwar (Wed, 03 Mar 2021 11:26:15 GMT): mwaser (Wed, 03 Mar 2021 14:13:15 GMT): atoulme (Wed, 03 Mar 2021 14:25:57 GMT): RobbeV 1 (Wed, 03 Mar 2021 14:54:13 GMT): RobbeV 1 (Wed, 03 Mar 2021 14:54:13 GMT): RobbeV 1 (Wed, 03 Mar 2021 14:54:13 GMT): atoulme (Wed, 03 Mar 2021 20:55:10 GMT): atoulme (Wed, 03 Mar 2021 20:55:10 GMT): atoulme (Wed, 03 Mar 2021 20:55:10 GMT): trent.mohay (Thu, 04 Mar 2021 01:17:09 GMT): trent.mohay (Thu, 04 Mar 2021 01:17:55 GMT): trent.mohay (Thu, 04 Mar 2021 01:17:55 GMT): prashantgangwar (Thu, 04 Mar 2021 03:44:50 GMT): RobbeV 1 (Thu, 04 Mar 2021 08:52:41 GMT): shail_19 (Thu, 04 Mar 2021 09:20:46 GMT): shail_19 (Thu, 04 Mar 2021 09:20:47 GMT): shail_19 (Thu, 04 Mar 2021 09:35:14 GMT): shail_19 (Thu, 04 Mar 2021 09:39:55 GMT): shail_19 (Thu, 04 Mar 2021 09:39:55 GMT): RobbeV 1 (Thu, 04 Mar 2021 09:51:27 GMT): RobbeV 1 (Thu, 04 Mar 2021 09:51:59 GMT): mwaser (Thu, 04 Mar 2021 13:33:47 GMT): SuzanaMaranhao (Thu, 04 Mar 2021 17:29:08 GMT): atoulme (Thu, 04 Mar 2021 17:31:01 GMT): atoulme (Thu, 04 Mar 2021 17:34:31 GMT): atoulme (Thu, 04 Mar 2021 17:35:13 GMT): mwaser (Thu, 04 Mar 2021 17:38:14 GMT): atoulme (Thu, 04 Mar 2021 17:38:39 GMT): mwaser (Thu, 04 Mar 2021 17:38:59 GMT): atoulme (Thu, 04 Mar 2021 17:39:03 GMT): atoulme (Thu, 04 Mar 2021 17:39:16 GMT): atoulme (Thu, 04 Mar 2021 17:39:29 GMT): mwaser (Thu, 04 Mar 2021 17:39:54 GMT): atoulme (Thu, 04 Mar 2021 17:40:06 GMT): atoulme (Thu, 04 Mar 2021 17:40:19 GMT): mwaser (Thu, 04 Mar 2021 17:40:23 GMT): mwaser (Thu, 04 Mar 2021 17:40:45 GMT): atoulme (Thu, 04 Mar 2021 17:41:41 GMT): atoulme (Thu, 04 Mar 2021 17:42:04 GMT): mwaser (Thu, 04 Mar 2021 17:42:06 GMT): atoulme (Thu, 04 Mar 2021 17:42:40 GMT): mwaser (Thu, 04 Mar 2021 17:43:25 GMT): atoulme (Thu, 04 Mar 2021 17:43:48 GMT): mwaser (Thu, 04 Mar 2021 17:47:18 GMT): mwaser (Thu, 04 Mar 2021 17:47:53 GMT): mwaser (Thu, 04 Mar 2021 17:48:42 GMT): atoulme (Thu, 04 Mar 2021 17:49:07 GMT): atoulme (Thu, 04 Mar 2021 17:49:24 GMT): atoulme (Thu, 04 Mar 2021 17:49:38 GMT): atoulme (Thu, 04 Mar 2021 17:49:51 GMT): mwaser (Thu, 04 Mar 2021 17:50:10 GMT): SuzanaMaranhao (Thu, 04 Mar 2021 20:51:02 GMT): atoulme (Thu, 04 Mar 2021 21:50:47 GMT): alpkabac (Thu, 04 Mar 2021 23:30:56 GMT): alpkabac (Thu, 04 Mar 2021 23:30:57 GMT): alpkabac (Thu, 04 Mar 2021 23:52:58 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 10:49:45 GMT): prashantgangwar (Fri, 05 Mar 2021 11:18:07 GMT): prashantgangwar (Fri, 05 Mar 2021 11:21:36 GMT): susgut (Fri, 05 Mar 2021 11:24:33 GMT): susgut (Fri, 05 Mar 2021 11:28:16 GMT): susgut (Fri, 05 Mar 2021 11:28:46 GMT): HiteshSharma (Fri, 05 Mar 2021 11:30:55 GMT): SuzanaMaranhao (Fri, 05 Mar 2021 15:46:04 GMT): SuzanaMaranhao (Fri, 05 Mar 2021 15:47:47 GMT): atoulme (Fri, 05 Mar 2021 17:00:46 GMT): SuzanaMaranhao (Fri, 05 Mar 2021 19:16:51 GMT): HiteshSharma (Sat, 06 Mar 2021 06:08:50 GMT): HiteshSharma (Sat, 06 Mar 2021 06:35:23 GMT): HiteshSharma (Sat, 06 Mar 2021 06:35:23 GMT): HiteshSharma (Sat, 06 Mar 2021 08:30:15 GMT): HiteshSharma (Sat, 06 Mar 2021 10:00:25 GMT): HiteshSharma (Sat, 06 Mar 2021 10:00:25 GMT): HiteshSharma (Sat, 06 Mar 2021 10:04:18 GMT): HiteshSharma (Sat, 06 Mar 2021 16:28:55 GMT): HiteshSharma (Sat, 06 Mar 2021 16:28:55 GMT): HiteshSharma (Sat, 06 Mar 2021 16:28:55 GMT): RobbeV 1 (Sat, 06 Mar 2021 16:38:54 GMT): RobbeV 1 (Sat, 06 Mar 2021 16:38:54 GMT): RobbeV 1 (Sat, 06 Mar 2021 16:38:54 GMT): RobbeV 1 (Sat, 06 Mar 2021 16:38:54 GMT): RobbeV 1 (Sat, 06 Mar 2021 16:38:54 GMT): atoulme (Sat, 06 Mar 2021 18:39:16 GMT): HiteshSharma (Sun, 07 Mar 2021 19:07:22 GMT): HiteshSharma (Sun, 07 Mar 2021 19:07:22 GMT): HiteshSharma (Sun, 07 Mar 2021 19:11:20 GMT): HiteshSharma (Sun, 07 Mar 2021 19:13:50 GMT): HiteshSharma (Sun, 07 Mar 2021 19:13:50 GMT): shemnon (Mon, 08 Mar 2021 02:08:42 GMT): trent.mohay (Mon, 08 Mar 2021 03:42:57 GMT): trent.mohay (Mon, 08 Mar 2021 03:44:59 GMT): macfarla (Mon, 08 Mar 2021 04:04:37 GMT): HiteshSharma (Mon, 08 Mar 2021 09:21:32 GMT): HiteshSharma (Mon, 08 Mar 2021 14:56:07 GMT): rhart92 (Mon, 08 Mar 2021 23:47:08 GMT): Koen84 (Tue, 09 Mar 2021 01:12:06 GMT): prashantgangwar (Tue, 09 Mar 2021 08:55:43 GMT): NicolasMassart (Tue, 09 Mar 2021 09:43:33 GMT): HiteshSharma (Tue, 09 Mar 2021 09:55:51 GMT): HiteshSharma (Tue, 09 Mar 2021 09:56:42 GMT): NicolasMassart (Tue, 09 Mar 2021 10:03:01 GMT): HiteshSharma (Tue, 09 Mar 2021 10:12:15 GMT): NicolasMassart (Tue, 09 Mar 2021 10:19:36 GMT): HiteshSharma (Tue, 09 Mar 2021 10:26:29 GMT): NicolasMassart (Tue, 09 Mar 2021 10:27:30 GMT): HiteshSharma (Tue, 09 Mar 2021 10:30:33 GMT): HiteshSharma (Tue, 09 Mar 2021 10:31:09 GMT): NicolasMassart (Tue, 09 Mar 2021 10:49:19 GMT): NicolasMassart (Tue, 09 Mar 2021 10:52:22 GMT): prashantgangwar (Tue, 09 Mar 2021 11:29:47 GMT): prashantgangwar (Tue, 09 Mar 2021 11:29:47 GMT): prashantgangwar (Tue, 09 Mar 2021 11:29:47 GMT): trent.mohay (Tue, 09 Mar 2021 11:57:06 GMT): trent.mohay (Tue, 09 Mar 2021 11:59:48 GMT): trent.mohay (Tue, 09 Mar 2021 12:00:31 GMT): HiteshSharma (Tue, 09 Mar 2021 12:05:41 GMT): HiteshSharma (Tue, 09 Mar 2021 12:06:56 GMT): diegoll (Tue, 09 Mar 2021 12:17:39 GMT): diegoll (Tue, 09 Mar 2021 12:23:16 GMT): HiteshSharma (Tue, 09 Mar 2021 12:43:38 GMT): NicolasMassart (Tue, 09 Mar 2021 13:24:04 GMT): HiteshSharma (Tue, 09 Mar 2021 14:17:08 GMT): HiteshSharma (Tue, 09 Mar 2021 14:17:48 GMT): HiteshSharma (Tue, 09 Mar 2021 14:42:38 GMT): HiteshSharma (Tue, 09 Mar 2021 15:02:47 GMT): HiteshSharma (Tue, 09 Mar 2021 15:02:47 GMT): trent.mohay (Wed, 10 Mar 2021 00:34:53 GMT): trent.mohay (Wed, 10 Mar 2021 00:35:14 GMT): arash009 (Wed, 10 Mar 2021 01:38:27 GMT): arash009 (Wed, 10 Mar 2021 01:38:49 GMT): Weslito (Wed, 10 Mar 2021 10:27:12 GMT): Weslito (Wed, 10 Mar 2021 10:27:13 GMT): SuzanaMaranhao (Wed, 10 Mar 2021 13:29:41 GMT): SuzanaMaranhao (Wed, 10 Mar 2021 13:29:41 GMT): SuzanaMaranhao (Wed, 10 Mar 2021 13:30:16 GMT): shemnon (Wed, 10 Mar 2021 15:40:23 GMT): grace.hartley (Wed, 10 Mar 2021 16:37:03 GMT): atoulme (Wed, 10 Mar 2021 17:05:19 GMT): prashantgangwar (Wed, 10 Mar 2021 19:13:11 GMT): prashantgangwar (Wed, 10 Mar 2021 19:24:00 GMT): prashantgangwar (Wed, 10 Mar 2021 19:32:12 GMT): prashantgangwar (Wed, 10 Mar 2021 19:34:43 GMT): prashantgangwar (Wed, 10 Mar 2021 19:34:43 GMT): NicolasMassart (Wed, 10 Mar 2021 19:36:58 GMT): NicolasMassart (Wed, 10 Mar 2021 19:37:51 GMT): prashantgangwar (Wed, 10 Mar 2021 19:39:42 GMT): lucassaldanha (Wed, 10 Mar 2021 20:58:46 GMT): lucassaldanha (Wed, 10 Mar 2021 20:58:46 GMT): lucassaldanha (Wed, 10 Mar 2021 20:59:13 GMT): lucassaldanha (Wed, 10 Mar 2021 21:00:42 GMT): SuzanaMaranhao (Wed, 10 Mar 2021 21:43:49 GMT): SuzanaMaranhao (Wed, 10 Mar 2021 21:43:54 GMT): diegoll (Wed, 10 Mar 2021 22:02:51 GMT): prashantgangwar (Thu, 11 Mar 2021 07:08:38 GMT): prashantgangwar (Thu, 11 Mar 2021 07:11:03 GMT): prashantgangwar (Thu, 11 Mar 2021 07:11:03 GMT): prashantgangwar (Thu, 11 Mar 2021 07:20:42 GMT): prashantgangwar (Thu, 11 Mar 2021 07:20:42 GMT): prashantgangwar (Thu, 11 Mar 2021 07:20:42 GMT): shail_19 (Thu, 11 Mar 2021 13:21:36 GMT): shail_19 (Thu, 11 Mar 2021 13:21:36 GMT): shail_19 (Thu, 11 Mar 2021 13:21:36 GMT): shail_19 (Thu, 11 Mar 2021 13:21:36 GMT): shail_19 (Thu, 11 Mar 2021 13:21:36 GMT): shail_19 (Thu, 11 Mar 2021 13:21:36 GMT): shail_19 (Thu, 11 Mar 2021 13:30:15 GMT): SuzanaMaranhao (Thu, 11 Mar 2021 14:01:00 GMT): helderjnpinto (Thu, 11 Mar 2021 14:58:14 GMT): helderjnpinto (Thu, 11 Mar 2021 15:01:04 GMT): HiteshSharma (Thu, 11 Mar 2021 16:01:12 GMT): HiteshSharma (Thu, 11 Mar 2021 16:01:12 GMT): NicolasMassart (Thu, 11 Mar 2021 17:16:38 GMT): HiteshSharma (Thu, 11 Mar 2021 18:00:45 GMT): HiteshSharma (Thu, 11 Mar 2021 18:00:45 GMT): HiteshSharma (Thu, 11 Mar 2021 18:00:45 GMT): HiteshSharma (Thu, 11 Mar 2021 18:09:09 GMT): HiteshSharma (Thu, 11 Mar 2021 18:38:20 GMT): HiteshSharma (Thu, 11 Mar 2021 18:38:20 GMT): HiteshSharma (Thu, 11 Mar 2021 18:38:20 GMT): HiteshSharma (Thu, 11 Mar 2021 18:39:34 GMT): RobbeV 1 (Thu, 11 Mar 2021 19:23:53 GMT): arash009 (Thu, 11 Mar 2021 22:49:00 GMT): arash009 (Thu, 11 Mar 2021 22:51:27 GMT): HiteshSharma (Fri, 12 Mar 2021 08:12:25 GMT): NicolasMassart (Fri, 12 Mar 2021 08:13:00 GMT): NicolasMassart (Fri, 12 Mar 2021 08:13:11 GMT): NicolasMassart (Fri, 12 Mar 2021 08:14:40 GMT): NicolasMassart (Fri, 12 Mar 2021 08:16:19 GMT): helderjnpinto (Fri, 12 Mar 2021 11:03:12 GMT): helderjnpinto (Fri, 12 Mar 2021 11:03:28 GMT): helderjnpinto (Fri, 12 Mar 2021 11:03:37 GMT): helderjnpinto (Fri, 12 Mar 2021 11:03:43 GMT): helderjnpinto (Fri, 12 Mar 2021 11:06:00 GMT): helderjnpinto (Fri, 12 Mar 2021 11:06:00 GMT): helderjnpinto (Fri, 12 Mar 2021 11:06:28 GMT): helderjnpinto (Fri, 12 Mar 2021 11:07:28 GMT): Skoya (Fri, 12 Mar 2021 12:42:56 GMT): Skoya (Fri, 12 Mar 2021 12:42:57 GMT): HiteshSharma (Fri, 12 Mar 2021 18:27:33 GMT): HiteshSharma (Fri, 12 Mar 2021 18:29:21 GMT): HiteshSharma (Fri, 12 Mar 2021 18:29:21 GMT): HiteshSharma (Fri, 12 Mar 2021 18:29:21 GMT): HiteshSharma (Fri, 12 Mar 2021 19:36:15 GMT): HiteshSharma (Fri, 12 Mar 2021 19:37:39 GMT): HiteshSharma (Fri, 12 Mar 2021 19:46:43 GMT): HiteshSharma (Sat, 13 Mar 2021 08:56:51 GMT): shemnon (Sat, 13 Mar 2021 12:30:41 GMT): shemnon (Sat, 13 Mar 2021 12:31:04 GMT): lucassaldanha (Sun, 14 Mar 2021 19:57:58 GMT): lucassaldanha (Sun, 14 Mar 2021 20:07:27 GMT): lucassaldanha (Sun, 14 Mar 2021 20:07:38 GMT): lucassaldanha (Sun, 14 Mar 2021 20:08:52 GMT): macfarla (Sun, 14 Mar 2021 23:35:06 GMT): arijit_6 (Mon, 15 Mar 2021 06:51:35 GMT): arijit_6 (Mon, 15 Mar 2021 06:51:35 GMT): NicolasMassart (Mon, 15 Mar 2021 07:33:29 GMT): AliAbuHelal (Mon, 15 Mar 2021 08:34:20 GMT): AliAbuHelal (Mon, 15 Mar 2021 08:34:21 GMT): Dazel (Mon, 15 Mar 2021 16:54:25 GMT): Dazel (Mon, 15 Mar 2021 16:54:25 GMT): Dazel (Mon, 15 Mar 2021 16:54:25 GMT): lucassaldanha (Mon, 15 Mar 2021 20:17:22 GMT): Dazel (Mon, 15 Mar 2021 21:51:22 GMT): Dazel (Mon, 15 Mar 2021 21:52:36 GMT): lucassaldanha (Mon, 15 Mar 2021 22:32:37 GMT): shemnon (Tue, 16 Mar 2021 00:58:15 GMT): mohjam2004 (Tue, 16 Mar 2021 05:39:06 GMT): mohjam2004 (Tue, 16 Mar 2021 05:39:07 GMT): timbeiko (Tue, 16 Mar 2021 14:49:21 GMT): timbeiko (Tue, 16 Mar 2021 14:49:21 GMT): shemnon (Tue, 16 Mar 2021 15:03:42 GMT): Dazel (Tue, 16 Mar 2021 15:20:22 GMT): shemnon (Tue, 16 Mar 2021 16:12:48 GMT): HiteshSharma (Tue, 16 Mar 2021 18:19:26 GMT): Dazel (Tue, 16 Mar 2021 18:28:11 GMT): HiteshSharma (Tue, 16 Mar 2021 18:31:29 GMT): HiteshSharma (Tue, 16 Mar 2021 18:34:13 GMT): HiteshSharma (Tue, 16 Mar 2021 18:35:21 GMT): Dazel (Tue, 16 Mar 2021 18:37:28 GMT): Dazel (Tue, 16 Mar 2021 18:38:43 GMT): cbfh (Tue, 16 Mar 2021 20:35:03 GMT): cbfh (Tue, 16 Mar 2021 20:35:03 GMT): shemnon (Tue, 16 Mar 2021 20:37:36 GMT): shemnon (Tue, 16 Mar 2021 20:37:36 GMT): shemnon (Tue, 16 Mar 2021 20:38:14 GMT): shemnon (Tue, 16 Mar 2021 20:38:14 GMT): shemnon (Tue, 16 Mar 2021 20:39:37 GMT): cbfh (Tue, 16 Mar 2021 20:40:14 GMT): macfarla (Wed, 17 Mar 2021 00:03:25 GMT): rampatra (Thu, 18 Mar 2021 14:23:15 GMT): rampatra (Thu, 18 Mar 2021 15:53:17 GMT): rampatra (Thu, 18 Mar 2021 15:58:37 GMT): diegoll (Thu, 18 Mar 2021 16:14:08 GMT): diegoll (Thu, 18 Mar 2021 16:15:08 GMT): rampatra (Thu, 18 Mar 2021 16:24:26 GMT): rampatra (Thu, 18 Mar 2021 16:24:50 GMT): rampatra (Thu, 18 Mar 2021 16:25:44 GMT): rampatra (Thu, 18 Mar 2021 16:26:37 GMT): rampatra (Thu, 18 Mar 2021 16:28:25 GMT): rampatra (Thu, 18 Mar 2021 16:28:38 GMT): rampatra (Thu, 18 Mar 2021 16:28:44 GMT): diegoll (Thu, 18 Mar 2021 16:28:55 GMT): rampatra (Thu, 18 Mar 2021 16:31:08 GMT): rampatra (Thu, 18 Mar 2021 16:31:24 GMT): diegoll (Thu, 18 Mar 2021 16:31:34 GMT): rampatra (Thu, 18 Mar 2021 16:59:37 GMT): rampatra (Thu, 18 Mar 2021 16:59:37 GMT): shemnon (Fri, 19 Mar 2021 01:40:46 GMT): salbonico (Fri, 19 Mar 2021 22:29:07 GMT): shemnon (Fri, 19 Mar 2021 22:49:46 GMT): shemnon (Fri, 19 Mar 2021 22:51:31 GMT): shemnon (Sat, 20 Mar 2021 01:20:49 GMT): HiteshSharma (Sat, 20 Mar 2021 13:51:21 GMT): HiteshSharma (Sat, 20 Mar 2021 13:53:44 GMT): HiteshSharma (Sat, 20 Mar 2021 13:55:02 GMT): shemnon (Sat, 20 Mar 2021 15:19:08 GMT): shemnon (Sat, 20 Mar 2021 15:19:49 GMT): shemnon (Sat, 20 Mar 2021 15:20:30 GMT): VladLupashevskyi (Mon, 22 Mar 2021 18:19:44 GMT): GarySchulte (Mon, 22 Mar 2021 18:46:22 GMT): lucassaldanha (Mon, 22 Mar 2021 22:47:38 GMT): coenie (Tue, 23 Mar 2021 11:19:02 GMT): atoulme (Tue, 23 Mar 2021 16:48:38 GMT): diegoll (Tue, 23 Mar 2021 23:16:22 GMT): diegoll (Tue, 23 Mar 2021 23:16:22 GMT): diegoll (Tue, 23 Mar 2021 23:16:22 GMT): diegoll (Tue, 23 Mar 2021 23:24:28 GMT): diegoll (Wed, 24 Mar 2021 01:33:36 GMT): diegoll (Wed, 24 Mar 2021 01:33:36 GMT): cbfh (Wed, 24 Mar 2021 16:12:51 GMT): rampatra (Wed, 24 Mar 2021 21:14:17 GMT): rampatra (Wed, 24 Mar 2021 21:17:03 GMT): diegoll (Thu, 25 Mar 2021 00:30:19 GMT): RobbeV 1 (Thu, 25 Mar 2021 10:02:32 GMT): RobbeV 1 (Thu, 25 Mar 2021 10:02:32 GMT): RobbeV 1 (Thu, 25 Mar 2021 10:02:32 GMT): diegoll (Thu, 25 Mar 2021 11:34:14 GMT): RobbeV 1 (Thu, 25 Mar 2021 12:53:03 GMT): RobbeV 1 (Fri, 26 Mar 2021 15:27:49 GMT): RobbeV 1 (Fri, 26 Mar 2021 15:35:14 GMT): EmcLab (Sat, 27 Mar 2021 17:46:36 GMT): VijayMichalik (Mon, 29 Mar 2021 11:17:30 GMT): VijayMichalik (Mon, 29 Mar 2021 11:18:55 GMT): VijayMichalik (Mon, 29 Mar 2021 14:25:38 GMT): VijayMichalik (Mon, 29 Mar 2021 14:26:59 GMT): VijayMichalik (Mon, 29 Mar 2021 14:27:33 GMT): VijayMichalik (Mon, 29 Mar 2021 14:30:04 GMT): RobbeV 1 (Mon, 29 Mar 2021 17:19:44 GMT): mwaser (Tue, 30 Mar 2021 11:53:37 GMT): rai (Tue, 30 Mar 2021 12:40:07 GMT): rampatra (Tue, 30 Mar 2021 12:51:32 GMT): rai (Tue, 30 Mar 2021 13:03:00 GMT): rampatra (Tue, 30 Mar 2021 13:05:17 GMT): mwaser (Tue, 30 Mar 2021 13:06:14 GMT): mwaser (Tue, 30 Mar 2021 13:07:10 GMT): mwaser (Tue, 30 Mar 2021 13:08:52 GMT): mwaser (Tue, 30 Mar 2021 13:12:23 GMT): VladLupashevskyi (Tue, 30 Mar 2021 13:27:23 GMT): rampatra (Tue, 30 Mar 2021 13:29:03 GMT): rampatra (Tue, 30 Mar 2021 13:29:03 GMT): rai (Tue, 30 Mar 2021 13:29:08 GMT): mwaser (Tue, 30 Mar 2021 13:29:36 GMT): rampatra (Tue, 30 Mar 2021 16:06:16 GMT): rampatra (Tue, 30 Mar 2021 16:15:50 GMT): atoulme (Wed, 31 Mar 2021 03:58:12 GMT): EmilianoVernini (Wed, 31 Mar 2021 05:49:43 GMT): EmilianoVernini (Wed, 31 Mar 2021 05:49:43 GMT): rampatra (Wed, 31 Mar 2021 07:36:19 GMT): atoulme (Wed, 31 Mar 2021 07:36:39 GMT): atoulme (Wed, 31 Mar 2021 07:36:41 GMT): atoulme (Wed, 31 Mar 2021 07:36:41 GMT): jorgeRodriguez (Wed, 31 Mar 2021 13:08:27 GMT): VijayMichalik (Wed, 31 Mar 2021 19:30:47 GMT): macfarla (Wed, 31 Mar 2021 19:50:52 GMT): VijayMichalik (Thu, 01 Apr 2021 16:53:56 GMT): VijayMichalik (Thu, 01 Apr 2021 16:55:05 GMT): rampatra (Thu, 01 Apr 2021 19:22:27 GMT): rampatra (Thu, 01 Apr 2021 19:24:51 GMT): user216 (Fri, 02 Apr 2021 13:10:28 GMT): RobbeV 1 (Fri, 02 Apr 2021 13:15:22 GMT): taxmeifyoucan (Sun, 04 Apr 2021 14:48:31 GMT): taxmeifyoucan (Sun, 04 Apr 2021 14:48:32 GMT): mohjam2004 (Mon, 05 Apr 2021 07:41:26 GMT): ricardo.silva (Mon, 05 Apr 2021 15:50:40 GMT): EmcLab (Mon, 05 Apr 2021 17:05:30 GMT): lucassaldanha (Mon, 05 Apr 2021 21:28:52 GMT): shemnon (Mon, 05 Apr 2021 22:04:31 GMT): EmcLab (Mon, 05 Apr 2021 22:55:10 GMT): EmcLab (Mon, 05 Apr 2021 22:59:01 GMT): EmcLab (Mon, 05 Apr 2021 22:59:51 GMT): macfarla (Mon, 05 Apr 2021 23:24:26 GMT): lucassaldanha (Mon, 05 Apr 2021 23:55:28 GMT): lucassaldanha (Mon, 05 Apr 2021 23:56:15 GMT): EmcLab (Tue, 06 Apr 2021 03:28:20 GMT): lucassaldanha (Tue, 06 Apr 2021 03:30:13 GMT): lucassaldanha (Tue, 06 Apr 2021 03:30:42 GMT): lucassaldanha (Tue, 06 Apr 2021 03:30:42 GMT): lucassaldanha (Tue, 06 Apr 2021 03:31:05 GMT): lucassaldanha (Tue, 06 Apr 2021 03:32:15 GMT): EmcLab (Tue, 06 Apr 2021 03:34:49 GMT): EmcLab (Tue, 06 Apr 2021 03:35:03 GMT): EmcLab (Tue, 06 Apr 2021 03:35:35 GMT): EmcLab (Tue, 06 Apr 2021 03:41:31 GMT): EmcLab (Tue, 06 Apr 2021 03:44:58 GMT): EmcLab (Tue, 06 Apr 2021 05:56:26 GMT): lucassaldanha (Tue, 06 Apr 2021 05:59:27 GMT): lucassaldanha (Tue, 06 Apr 2021 06:05:34 GMT): lucassaldanha (Tue, 06 Apr 2021 06:06:33 GMT): ricardo.silva (Tue, 06 Apr 2021 08:46:23 GMT): achraf17 (Tue, 06 Apr 2021 08:51:29 GMT): taxmeifyoucan (Tue, 06 Apr 2021 09:56:15 GMT): VijayMichalik (Tue, 06 Apr 2021 11:30:38 GMT): VijayMichalik (Tue, 06 Apr 2021 11:34:24 GMT): taxmeifyoucan (Tue, 06 Apr 2021 11:35:09 GMT): VijayMichalik (Tue, 06 Apr 2021 11:47:25 GMT): taxmeifyoucan (Tue, 06 Apr 2021 11:47:45 GMT): VijayMichalik (Tue, 06 Apr 2021 11:47:56 GMT): VijayMichalik (Tue, 06 Apr 2021 11:48:14 GMT): mohjam2004 (Tue, 06 Apr 2021 11:58:40 GMT): mohjam2004 (Tue, 06 Apr 2021 11:58:42 GMT): mohjam2004 (Tue, 06 Apr 2021 11:59:18 GMT): mohjam2004 (Tue, 06 Apr 2021 11:59:20 GMT): mohjam2004 (Tue, 06 Apr 2021 11:59:28 GMT): mohjam2004 (Tue, 06 Apr 2021 12:00:46 GMT): matkt (Tue, 06 Apr 2021 12:06:54 GMT): matkt (Tue, 06 Apr 2021 12:10:35 GMT): reddevil (Tue, 06 Apr 2021 20:14:54 GMT): reddevil (Tue, 06 Apr 2021 20:14:54 GMT): reddevil (Tue, 06 Apr 2021 20:15:47 GMT): reddevil (Tue, 06 Apr 2021 20:33:10 GMT): reddevil (Tue, 06 Apr 2021 20:40:13 GMT): EmcLab (Wed, 07 Apr 2021 03:53:21 GMT): EmcLab (Wed, 07 Apr 2021 03:53:24 GMT): EmcLab (Wed, 07 Apr 2021 03:53:43 GMT): EmcLab (Wed, 07 Apr 2021 03:53:59 GMT): lucassaldanha (Wed, 07 Apr 2021 03:55:32 GMT): EmcLab (Wed, 07 Apr 2021 03:59:06 GMT): lucassaldanha (Wed, 07 Apr 2021 04:00:22 GMT): EmcLab (Wed, 07 Apr 2021 04:00:25 GMT): EmcLab (Wed, 07 Apr 2021 04:00:48 GMT): EmcLab (Wed, 07 Apr 2021 04:01:47 GMT): EmcLab (Wed, 07 Apr 2021 04:04:02 GMT): lucassaldanha (Wed, 07 Apr 2021 04:06:15 GMT): EmcLab (Wed, 07 Apr 2021 04:37:06 GMT): lucassaldanha (Wed, 07 Apr 2021 04:37:53 GMT): EmcLab (Wed, 07 Apr 2021 04:38:32 GMT): EmcLab (Wed, 07 Apr 2021 04:39:10 GMT): mohjam2004 (Wed, 07 Apr 2021 06:12:17 GMT): NicolasMassart (Wed, 07 Apr 2021 14:00:45 GMT): shemnon (Wed, 07 Apr 2021 14:06:27 GMT): shalinigpt (Wed, 07 Apr 2021 14:16:58 GMT): shalinigpt (Wed, 07 Apr 2021 14:16:59 GMT): rai (Wed, 07 Apr 2021 14:17:27 GMT): rai (Wed, 07 Apr 2021 14:54:39 GMT): reddevil (Wed, 07 Apr 2021 15:08:25 GMT): reddevil (Wed, 07 Apr 2021 15:09:04 GMT): rai (Wed, 07 Apr 2021 15:10:10 GMT): reddevil (Wed, 07 Apr 2021 15:12:02 GMT): ricardo.silva (Wed, 07 Apr 2021 15:21:51 GMT): reddevil (Wed, 07 Apr 2021 15:43:34 GMT): shemnon (Wed, 07 Apr 2021 15:56:31 GMT): EmcLab (Wed, 07 Apr 2021 16:30:11 GMT): EmcLab (Wed, 07 Apr 2021 16:30:11 GMT): rampatra (Wed, 07 Apr 2021 19:36:57 GMT): rampatra (Wed, 07 Apr 2021 19:37:47 GMT): zandercreations (Wed, 07 Apr 2021 20:04:27 GMT): zandercreations (Wed, 07 Apr 2021 20:04:28 GMT): EmcLab (Thu, 08 Apr 2021 06:32:10 GMT): VijayMichalik (Thu, 08 Apr 2021 09:02:49 GMT): VijayMichalik (Thu, 08 Apr 2021 09:03:08 GMT): VijayMichalik (Thu, 08 Apr 2021 09:07:59 GMT): GigoJoseph (Thu, 08 Apr 2021 09:53:32 GMT): nkl199 (Thu, 08 Apr 2021 16:18:25 GMT): EmcLab (Fri, 09 Apr 2021 16:41:27 GMT): vbhalerao (Fri, 09 Apr 2021 18:57:06 GMT): vbhalerao (Fri, 09 Apr 2021 18:57:07 GMT): vbhalerao (Fri, 09 Apr 2021 18:57:07 GMT): rampatra (Fri, 09 Apr 2021 20:20:09 GMT): rampatra (Fri, 09 Apr 2021 23:18:48 GMT): rampatra (Fri, 09 Apr 2021 23:19:04 GMT): oharthit (Fri, 09 Apr 2021 23:41:37 GMT): EmcLab (Sat, 10 Apr 2021 05:16:30 GMT): EmcLab (Sat, 10 Apr 2021 05:16:41 GMT): EmcLab (Sat, 10 Apr 2021 05:16:41 GMT): EmcLab (Sat, 10 Apr 2021 05:19:12 GMT): mohjam2004 (Sat, 10 Apr 2021 16:58:44 GMT): mohjam2004 (Sat, 10 Apr 2021 16:58:44 GMT): mohjam2004 (Sat, 10 Apr 2021 16:59:03 GMT): mohjam2004 (Sat, 10 Apr 2021 16:59:29 GMT): mohjam2004 (Sat, 10 Apr 2021 17:00:08 GMT): mohjam2004 (Sat, 10 Apr 2021 17:00:26 GMT): mohjam2004 (Sat, 10 Apr 2021 17:03:04 GMT): mohjam2004 (Sat, 10 Apr 2021 17:03:10 GMT): mohjam2004 (Sat, 10 Apr 2021 17:05:01 GMT): rampatra (Sat, 10 Apr 2021 21:24:50 GMT): rampatra (Sat, 10 Apr 2021 21:24:50 GMT): mohjam2004 (Sun, 11 Apr 2021 03:30:49 GMT): mohjam2004 (Sun, 11 Apr 2021 03:30:59 GMT): mohjam2004 (Sun, 11 Apr 2021 03:31:13 GMT): shemnon (Sun, 11 Apr 2021 03:42:02 GMT): shemnon (Sun, 11 Apr 2021 03:42:58 GMT): mohjam2004 (Sun, 11 Apr 2021 04:41:52 GMT): mohjam2004 (Sun, 11 Apr 2021 04:41:52 GMT): mohjam2004 (Sun, 11 Apr 2021 04:41:52 GMT): mohjam2004 (Sun, 11 Apr 2021 04:49:46 GMT): mohjam2004 (Sun, 11 Apr 2021 06:36:22 GMT): mohjam2004 (Sun, 11 Apr 2021 06:36:22 GMT): macfarla (Sun, 11 Apr 2021 19:50:08 GMT): rampatra (Sun, 11 Apr 2021 21:44:22 GMT): rampatra (Sun, 11 Apr 2021 21:44:33 GMT): rampatra (Mon, 12 Apr 2021 00:07:02 GMT): macfarla (Mon, 12 Apr 2021 01:58:09 GMT): shemnon (Mon, 12 Apr 2021 03:38:39 GMT): HiteshSharma (Mon, 12 Apr 2021 07:42:00 GMT): mohjam2004 (Mon, 12 Apr 2021 08:52:15 GMT): mohjam2004 (Mon, 12 Apr 2021 08:52:25 GMT): mohjam2004 (Mon, 12 Apr 2021 08:54:46 GMT): mohjam2004 (Mon, 12 Apr 2021 08:55:23 GMT): mohjam2004 (Mon, 12 Apr 2021 08:55:23 GMT): mohjam2004 (Mon, 12 Apr 2021 08:55:36 GMT): mohjam2004 (Mon, 12 Apr 2021 08:56:16 GMT): mohjam2004 (Mon, 12 Apr 2021 08:56:18 GMT): mohjam2004 (Mon, 12 Apr 2021 08:58:31 GMT): mohjam2004 (Mon, 12 Apr 2021 08:58:32 GMT): rampatra (Mon, 12 Apr 2021 08:59:29 GMT): rampatra (Mon, 12 Apr 2021 09:01:01 GMT): rampatra (Mon, 12 Apr 2021 09:02:47 GMT): HiteshSharma (Mon, 12 Apr 2021 11:44:33 GMT): ahmedMokadem (Mon, 12 Apr 2021 11:44:33 GMT): rampatra (Mon, 12 Apr 2021 13:37:22 GMT): mohjam2004 (Mon, 12 Apr 2021 14:23:10 GMT): mohjam2004 (Mon, 12 Apr 2021 14:25:30 GMT): mohjam2004 (Mon, 12 Apr 2021 14:27:03 GMT): mohjam2004 (Mon, 12 Apr 2021 14:27:09 GMT): mohjam2004 (Mon, 12 Apr 2021 14:31:22 GMT): mohjam2004 (Mon, 12 Apr 2021 14:31:22 GMT): mohjam2004 (Mon, 12 Apr 2021 14:31:48 GMT): mohjam2004 (Mon, 12 Apr 2021 15:20:52 GMT): mohjam2004 (Mon, 12 Apr 2021 15:21:28 GMT): mohjam2004 (Mon, 12 Apr 2021 15:22:05 GMT): mohjam2004 (Mon, 12 Apr 2021 15:22:20 GMT): mohjam2004 (Mon, 12 Apr 2021 15:23:29 GMT): mohjam2004 (Mon, 12 Apr 2021 15:23:42 GMT): mohjam2004 (Mon, 12 Apr 2021 15:24:53 GMT): mohjam2004 (Mon, 12 Apr 2021 15:31:02 GMT): mohjam2004 (Mon, 12 Apr 2021 15:31:03 GMT): VijayMichalik (Mon, 12 Apr 2021 17:31:12 GMT): NicolasMassart (Mon, 12 Apr 2021 17:40:24 GMT): mohjam2004 (Mon, 12 Apr 2021 18:04:54 GMT): mohjam2004 (Mon, 12 Apr 2021 18:04:54 GMT): mohjam2004 (Mon, 12 Apr 2021 18:04:56 GMT): mohjam2004 (Mon, 12 Apr 2021 18:05:56 GMT): mohjam2004 (Mon, 12 Apr 2021 18:23:43 GMT): NicolasMassart (Mon, 12 Apr 2021 18:47:27 GMT): mohjam2004 (Mon, 12 Apr 2021 18:47:58 GMT): NicolasMassart (Mon, 12 Apr 2021 18:48:02 GMT): mohjam2004 (Mon, 12 Apr 2021 18:48:38 GMT): mohjam2004 (Mon, 12 Apr 2021 18:48:52 GMT): mohjam2004 (Mon, 12 Apr 2021 19:27:11 GMT): mohjam2004 (Mon, 12 Apr 2021 19:27:15 GMT): mohjam2004 (Mon, 12 Apr 2021 19:27:53 GMT): mohjam2004 (Mon, 12 Apr 2021 19:33:55 GMT): mohjam2004 (Mon, 12 Apr 2021 19:33:55 GMT): rampatra (Mon, 12 Apr 2021 19:36:27 GMT): rampatra (Mon, 12 Apr 2021 20:02:08 GMT): lucassaldanha (Mon, 12 Apr 2021 21:47:35 GMT): lucassaldanha (Mon, 12 Apr 2021 21:48:08 GMT): lucassaldanha (Mon, 12 Apr 2021 21:49:30 GMT): lucassaldanha (Mon, 12 Apr 2021 21:50:09 GMT): lucassaldanha (Mon, 12 Apr 2021 21:50:09 GMT): lucassaldanha (Mon, 12 Apr 2021 21:50:49 GMT): lucassaldanha (Mon, 12 Apr 2021 21:52:19 GMT): lucassaldanha (Mon, 12 Apr 2021 21:54:05 GMT): rampatra (Mon, 12 Apr 2021 21:54:35 GMT): rampatra (Mon, 12 Apr 2021 21:55:00 GMT): lucassaldanha (Mon, 12 Apr 2021 21:56:44 GMT): rampatra (Mon, 12 Apr 2021 21:58:28 GMT): rampatra (Mon, 12 Apr 2021 21:58:49 GMT): rampatra (Mon, 12 Apr 2021 21:59:17 GMT): lucassaldanha (Mon, 12 Apr 2021 22:00:04 GMT): lucassaldanha (Mon, 12 Apr 2021 22:00:22 GMT): rampatra (Mon, 12 Apr 2021 22:00:30 GMT): rampatra (Mon, 12 Apr 2021 22:00:44 GMT): rampatra (Mon, 12 Apr 2021 22:00:55 GMT): lucassaldanha (Mon, 12 Apr 2021 22:01:10 GMT): lucassaldanha (Mon, 12 Apr 2021 22:01:38 GMT): rampatra (Mon, 12 Apr 2021 22:02:49 GMT): lucassaldanha (Mon, 12 Apr 2021 22:03:33 GMT): lucassaldanha (Mon, 12 Apr 2021 22:03:47 GMT): rampatra (Mon, 12 Apr 2021 22:03:56 GMT): rampatra (Mon, 12 Apr 2021 22:05:30 GMT): tomhay (Tue, 13 Apr 2021 00:44:25 GMT): lucassaldanha (Tue, 13 Apr 2021 01:42:46 GMT): mohjam2004 (Tue, 13 Apr 2021 04:14:17 GMT): mohjam2004 (Tue, 13 Apr 2021 04:35:09 GMT): mohjam2004 (Tue, 13 Apr 2021 04:35:13 GMT): vbhalerao (Tue, 13 Apr 2021 09:33:27 GMT): vbhalerao (Tue, 13 Apr 2021 09:33:27 GMT): mohjam2004 (Tue, 13 Apr 2021 10:39:51 GMT): HiteshSharma (Tue, 13 Apr 2021 11:41:35 GMT): HiteshSharma (Tue, 13 Apr 2021 14:36:43 GMT): HiteshSharma (Tue, 13 Apr 2021 14:38:19 GMT): IonutS (Tue, 13 Apr 2021 17:06:07 GMT): NicolasMassart (Tue, 13 Apr 2021 17:08:33 GMT): NicolasMassart (Tue, 13 Apr 2021 17:14:29 GMT): NicolasMassart (Tue, 13 Apr 2021 17:16:47 GMT): NicolasMassart (Tue, 13 Apr 2021 17:19:38 GMT): NicolasMassart (Tue, 13 Apr 2021 17:19:38 GMT): NicolasMassart (Tue, 13 Apr 2021 17:20:35 GMT): NicolasMassart (Tue, 13 Apr 2021 17:20:35 GMT): NicolasMassart (Tue, 13 Apr 2021 17:31:07 GMT): NicolasMassart (Tue, 13 Apr 2021 17:33:47 GMT): mdwright88 (Tue, 13 Apr 2021 17:51:17 GMT): joshuafernandes (Tue, 13 Apr 2021 20:57:52 GMT): joshuafernandes (Tue, 13 Apr 2021 21:01:57 GMT): joshuafernandes (Tue, 13 Apr 2021 22:15:22 GMT): joshuafernandes (Tue, 13 Apr 2021 22:17:46 GMT): joshuafernandes (Tue, 13 Apr 2021 22:19:21 GMT): joshuafernandes (Tue, 13 Apr 2021 22:22:04 GMT): joshuafernandes (Tue, 13 Apr 2021 22:23:07 GMT): joshuafernandes (Tue, 13 Apr 2021 22:25:24 GMT): markatag (Tue, 13 Apr 2021 22:29:26 GMT): markatag (Tue, 13 Apr 2021 22:29:26 GMT): markatag (Tue, 13 Apr 2021 22:31:18 GMT): markatag (Tue, 13 Apr 2021 22:32:26 GMT): markatag (Tue, 13 Apr 2021 22:33:48 GMT): markatag (Tue, 13 Apr 2021 22:35:00 GMT): markatag (Tue, 13 Apr 2021 22:35:24 GMT): markatag (Tue, 13 Apr 2021 22:36:19 GMT): markatag (Tue, 13 Apr 2021 22:37:33 GMT): drinkcoffee (Tue, 13 Apr 2021 22:53:33 GMT): drinkcoffee (Tue, 13 Apr 2021 22:53:33 GMT): drinkcoffee (Tue, 13 Apr 2021 22:53:33 GMT): drinkcoffee (Tue, 13 Apr 2021 22:53:33 GMT): drinkcoffee (Wed, 14 Apr 2021 04:58:35 GMT): atoulme (Wed, 14 Apr 2021 07:09:10 GMT): mohjam2004 (Wed, 14 Apr 2021 07:49:33 GMT): deluca-mike (Wed, 14 Apr 2021 07:50:21 GMT): deluca-mike (Wed, 14 Apr 2021 07:50:21 GMT): deluca-mike (Wed, 14 Apr 2021 07:50:21 GMT): mohjam2004 (Wed, 14 Apr 2021 07:50:21 GMT): mohjam2004 (Wed, 14 Apr 2021 08:22:21 GMT): joshuafernandes (Wed, 14 Apr 2021 08:38:35 GMT): joshuafernandes (Wed, 14 Apr 2021 08:38:35 GMT): joshuafernandes (Wed, 14 Apr 2021 08:41:20 GMT): joshuafernandes (Wed, 14 Apr 2021 08:43:21 GMT): mohjam2004 (Wed, 14 Apr 2021 09:32:34 GMT): mohjam2004 (Wed, 14 Apr 2021 09:32:34 GMT): mohjam2004 (Wed, 14 Apr 2021 10:05:58 GMT): IonutS (Wed, 14 Apr 2021 10:59:32 GMT): mohjam2004 (Wed, 14 Apr 2021 15:04:39 GMT): mohjam2004 (Wed, 14 Apr 2021 15:04:39 GMT): shemnon (Wed, 14 Apr 2021 16:04:18 GMT): NicolasMassart (Wed, 14 Apr 2021 16:07:37 GMT): deluca-mike (Wed, 14 Apr 2021 16:12:34 GMT): IonutS (Wed, 14 Apr 2021 16:41:04 GMT): IonutS (Wed, 14 Apr 2021 16:41:04 GMT): shemnon (Wed, 14 Apr 2021 17:43:23 GMT): shemnon (Wed, 14 Apr 2021 17:44:03 GMT): IonutS (Wed, 14 Apr 2021 18:14:54 GMT): shemnon (Wed, 14 Apr 2021 18:57:13 GMT): shemnon (Wed, 14 Apr 2021 18:57:32 GMT): joshuafernandes (Wed, 14 Apr 2021 20:49:00 GMT): joshuafernandes (Wed, 14 Apr 2021 21:16:20 GMT): arjanvaneersel (Thu, 15 Apr 2021 03:53:53 GMT): arjanvaneersel (Thu, 15 Apr 2021 03:57:46 GMT): arjanvaneersel (Thu, 15 Apr 2021 03:59:24 GMT): sownak (Thu, 15 Apr 2021 08:41:00 GMT): NicolasMassart (Thu, 15 Apr 2021 10:48:21 GMT): NicolasMassart (Thu, 15 Apr 2021 10:52:11 GMT): NicolasMassart (Thu, 15 Apr 2021 10:57:20 GMT): NicolasMassart (Thu, 15 Apr 2021 10:58:01 GMT): NicolasMassart (Thu, 15 Apr 2021 10:58:57 GMT): IonutS (Thu, 15 Apr 2021 12:55:02 GMT): atoulme (Thu, 15 Apr 2021 14:50:44 GMT): RobbeV 1 (Thu, 15 Apr 2021 20:43:14 GMT): drinkcoffee (Thu, 15 Apr 2021 21:33:55 GMT): RudraniAngira (Fri, 16 Apr 2021 16:58:26 GMT): RudraniAngira (Fri, 16 Apr 2021 16:58:46 GMT): shemnon (Fri, 16 Apr 2021 17:30:43 GMT): shemnon (Fri, 16 Apr 2021 17:31:00 GMT): mohjam2004 (Sat, 17 Apr 2021 06:06:46 GMT): mohjam2004 (Sat, 17 Apr 2021 08:11:41 GMT): mohjam2004 (Sat, 17 Apr 2021 08:11:41 GMT): mohjam2004 (Sat, 17 Apr 2021 08:12:34 GMT): mohjam2004 (Sat, 17 Apr 2021 08:12:36 GMT): cbfh (Sat, 17 Apr 2021 09:24:38 GMT): mohjam2004 (Sat, 17 Apr 2021 12:13:20 GMT): mohjam2004 (Sat, 17 Apr 2021 14:06:07 GMT): mohjam2004 (Sun, 18 Apr 2021 06:18:49 GMT): mohjam2004 (Sun, 18 Apr 2021 06:36:24 GMT): mohjam2004 (Sun, 18 Apr 2021 08:29:48 GMT): mohjam2004 (Sun, 18 Apr 2021 08:31:22 GMT): Nithronium (Sun, 18 Apr 2021 15:39:22 GMT): Nithronium (Sun, 18 Apr 2021 15:39:23 GMT): Nithronium (Sun, 18 Apr 2021 15:39:32 GMT): Nithronium (Sun, 18 Apr 2021 15:40:10 GMT): Nithronium (Sun, 18 Apr 2021 15:56:36 GMT): macfarla (Mon, 19 Apr 2021 00:33:50 GMT): arjanvaneersel (Mon, 19 Apr 2021 04:45:06 GMT): arjanvaneersel (Mon, 19 Apr 2021 04:45:06 GMT): arjanvaneersel (Mon, 19 Apr 2021 04:45:06 GMT): RobbeV 1 (Mon, 19 Apr 2021 11:16:37 GMT): A1forETH (Mon, 19 Apr 2021 15:05:42 GMT): A1forETH (Mon, 19 Apr 2021 15:05:42 GMT): A1forETH (Mon, 19 Apr 2021 15:19:03 GMT): rai (Mon, 19 Apr 2021 18:49:39 GMT): rai (Mon, 19 Apr 2021 18:50:29 GMT): rai (Mon, 19 Apr 2021 18:51:00 GMT): A1forETH (Mon, 19 Apr 2021 18:55:52 GMT): rai (Mon, 19 Apr 2021 19:05:10 GMT): rai (Mon, 19 Apr 2021 19:05:10 GMT): A1forETH (Mon, 19 Apr 2021 20:04:09 GMT): clzola (Mon, 19 Apr 2021 23:00:56 GMT): clzola (Mon, 19 Apr 2021 23:01:07 GMT): clzola (Mon, 19 Apr 2021 23:01:22 GMT): clzola (Mon, 19 Apr 2021 23:01:41 GMT): clzola (Mon, 19 Apr 2021 23:02:04 GMT): arjanvaneersel (Tue, 20 Apr 2021 10:57:04 GMT): shemnon (Tue, 20 Apr 2021 14:40:52 GMT): atoulme (Tue, 20 Apr 2021 16:50:49 GMT): shemnon (Tue, 20 Apr 2021 18:21:54 GMT): recarelee (Tue, 20 Apr 2021 21:18:35 GMT): recarelee (Tue, 20 Apr 2021 21:18:36 GMT): daniellehrner (Tue, 20 Apr 2021 23:12:56 GMT): daniellehrner (Tue, 20 Apr 2021 23:12:57 GMT): arjanvaneersel (Wed, 21 Apr 2021 07:09:28 GMT): mohjam2004 (Wed, 21 Apr 2021 08:18:47 GMT): mohjam2004 (Wed, 21 Apr 2021 08:19:06 GMT): mohjam2004 (Wed, 21 Apr 2021 08:19:23 GMT): neha.jajodia (Wed, 21 Apr 2021 09:46:11 GMT): neha.jajodia (Wed, 21 Apr 2021 09:46:12 GMT): neha.jajodia (Wed, 21 Apr 2021 09:46:47 GMT): HiteshSharma (Wed, 21 Apr 2021 12:37:14 GMT): HiteshSharma (Wed, 21 Apr 2021 12:37:14 GMT): Nithronium (Wed, 21 Apr 2021 13:12:42 GMT): Nithronium (Wed, 21 Apr 2021 13:14:07 GMT): Nithronium (Wed, 21 Apr 2021 13:16:27 GMT): Nithronium (Wed, 21 Apr 2021 13:18:38 GMT): Nithronium (Wed, 21 Apr 2021 13:19:23 GMT): Nithronium (Wed, 21 Apr 2021 13:20:20 GMT): RobbeV 1 (Wed, 21 Apr 2021 14:34:25 GMT): shemnon (Wed, 21 Apr 2021 14:39:03 GMT): shemnon (Wed, 21 Apr 2021 14:41:37 GMT): shemnon (Wed, 21 Apr 2021 14:42:00 GMT): HiteshSharma (Wed, 21 Apr 2021 15:01:47 GMT): HiteshSharma (Wed, 21 Apr 2021 15:01:47 GMT): shemnon (Wed, 21 Apr 2021 15:10:23 GMT): HiteshSharma (Thu, 22 Apr 2021 07:24:46 GMT): HiteshSharma (Thu, 22 Apr 2021 07:33:04 GMT): Nithronium (Thu, 22 Apr 2021 07:57:39 GMT): HiteshSharma (Thu, 22 Apr 2021 08:10:41 GMT): Nithronium (Thu, 22 Apr 2021 10:05:46 GMT): mohjam2004 (Thu, 22 Apr 2021 10:54:16 GMT): mohjam2004 (Thu, 22 Apr 2021 10:54:16 GMT): mohjam2004 (Thu, 22 Apr 2021 10:56:12 GMT): mohjam2004 (Thu, 22 Apr 2021 11:05:47 GMT): mohjam2004 (Thu, 22 Apr 2021 11:05:47 GMT): mohjam2004 (Thu, 22 Apr 2021 11:07:19 GMT): cbfh (Thu, 22 Apr 2021 11:27:04 GMT): cbfh (Thu, 22 Apr 2021 11:27:28 GMT): Nithronium (Thu, 22 Apr 2021 13:17:27 GMT): shemnon (Thu, 22 Apr 2021 13:59:14 GMT): Nithronium (Thu, 22 Apr 2021 14:43:50 GMT): Nithronium (Thu, 22 Apr 2021 14:44:54 GMT): Nithronium (Thu, 22 Apr 2021 14:45:36 GMT): Nithronium (Thu, 22 Apr 2021 14:45:48 GMT): shemnon (Thu, 22 Apr 2021 14:47:26 GMT): shemnon (Thu, 22 Apr 2021 14:48:00 GMT): shemnon (Thu, 22 Apr 2021 14:49:17 GMT): Nithronium (Thu, 22 Apr 2021 14:50:15 GMT): Nithronium (Thu, 22 Apr 2021 14:51:18 GMT): shemnon (Thu, 22 Apr 2021 15:07:55 GMT): shemnon (Thu, 22 Apr 2021 15:09:31 GMT): shemnon (Thu, 22 Apr 2021 15:11:20 GMT): andympd (Fri, 23 Apr 2021 09:23:04 GMT): helderjnpinto (Fri, 23 Apr 2021 11:00:51 GMT): mohjam2004 (Fri, 23 Apr 2021 11:11:30 GMT): mohjam2004 (Fri, 23 Apr 2021 11:12:05 GMT): mohjam2004 (Fri, 23 Apr 2021 11:12:55 GMT): mohjam2004 (Fri, 23 Apr 2021 11:12:56 GMT): mohjam2004 (Fri, 23 Apr 2021 11:27:06 GMT): mohjam2004 (Fri, 23 Apr 2021 12:29:46 GMT): bradmcbrayer (Fri, 23 Apr 2021 15:58:06 GMT): bradmcbrayer (Fri, 23 Apr 2021 15:58:07 GMT): shemnon (Fri, 23 Apr 2021 16:26:19 GMT): bradmcbrayer (Fri, 23 Apr 2021 16:39:19 GMT): bradmcbrayer (Fri, 23 Apr 2021 16:39:19 GMT): mohjam2004 (Sat, 24 Apr 2021 05:03:52 GMT): mohjam2004 (Sat, 24 Apr 2021 08:28:19 GMT): HiteshSharma (Sat, 24 Apr 2021 12:08:52 GMT): shemnon (Sat, 24 Apr 2021 13:51:55 GMT): shemnon (Sat, 24 Apr 2021 13:53:52 GMT): shemnon (Sat, 24 Apr 2021 13:54:40 GMT): HiteshSharma (Sat, 24 Apr 2021 14:14:11 GMT): HiteshSharma (Sat, 24 Apr 2021 14:14:11 GMT): mohjam2004 (Sun, 25 Apr 2021 05:54:07 GMT): mohjam2004 (Sun, 25 Apr 2021 05:54:07 GMT): mohjam2004 (Sun, 25 Apr 2021 06:03:37 GMT): arjanvaneersel (Sun, 25 Apr 2021 07:02:27 GMT): Nithronium (Sun, 25 Apr 2021 11:03:00 GMT): Nithronium (Sun, 25 Apr 2021 11:03:26 GMT): Nithronium (Sun, 25 Apr 2021 11:04:06 GMT): diegoll (Mon, 26 Apr 2021 02:38:04 GMT): Nithronium (Mon, 26 Apr 2021 03:55:14 GMT): Nithronium (Mon, 26 Apr 2021 04:46:44 GMT): arjanvaneersel (Mon, 26 Apr 2021 07:24:03 GMT): atoulme (Mon, 26 Apr 2021 16:24:14 GMT): atoulme (Mon, 26 Apr 2021 16:25:20 GMT): shemnon (Mon, 26 Apr 2021 16:44:28 GMT): Nithronium (Mon, 26 Apr 2021 17:11:58 GMT): shemnon (Mon, 26 Apr 2021 17:20:15 GMT): shemnon (Mon, 26 Apr 2021 17:20:15 GMT): arjanvaneersel (Mon, 26 Apr 2021 17:33:38 GMT): IGM 4 (Mon, 26 Apr 2021 17:33:49 GMT): IGM 4 (Mon, 26 Apr 2021 17:33:49 GMT): IGM 4 (Mon, 26 Apr 2021 17:33:59 GMT): IGM 4 (Mon, 26 Apr 2021 17:34:01 GMT): arjanvaneersel (Mon, 26 Apr 2021 17:34:28 GMT): IGM 4 (Mon, 26 Apr 2021 17:38:17 GMT): atoulme (Tue, 27 Apr 2021 05:09:00 GMT): IvanHomoliak (Tue, 27 Apr 2021 15:52:35 GMT): IvanHomoliak (Tue, 27 Apr 2021 15:52:36 GMT): shemnon (Tue, 27 Apr 2021 17:13:22 GMT): cbfh (Tue, 27 Apr 2021 18:18:46 GMT): cbfh (Tue, 27 Apr 2021 18:20:25 GMT): joshuafernandes (Tue, 27 Apr 2021 20:52:27 GMT): macfarla (Wed, 28 Apr 2021 03:49:52 GMT): macfarla (Wed, 28 Apr 2021 03:50:07 GMT): macfarla (Wed, 28 Apr 2021 03:56:01 GMT): macfarla (Wed, 28 Apr 2021 03:58:26 GMT): macfarla (Wed, 28 Apr 2021 04:27:07 GMT): macfarla (Wed, 28 Apr 2021 04:37:30 GMT): macfarla (Wed, 28 Apr 2021 04:39:14 GMT): macfarla (Wed, 28 Apr 2021 04:40:57 GMT): arjanvaneersel (Wed, 28 Apr 2021 07:43:28 GMT): arjanvaneersel (Wed, 28 Apr 2021 07:44:20 GMT): arjanvaneersel (Wed, 28 Apr 2021 07:46:21 GMT): arjanvaneersel (Wed, 28 Apr 2021 08:01:36 GMT): arjanvaneersel (Wed, 28 Apr 2021 08:02:27 GMT): cbfh (Wed, 28 Apr 2021 11:41:07 GMT): arjanvaneersel (Wed, 28 Apr 2021 13:26:16 GMT): arjanvaneersel (Wed, 28 Apr 2021 13:29:00 GMT): IvanHomoliak (Wed, 28 Apr 2021 14:09:59 GMT): Nithronium (Wed, 28 Apr 2021 15:56:26 GMT): shemnon (Wed, 28 Apr 2021 16:04:56 GMT): Nithronium (Wed, 28 Apr 2021 16:05:25 GMT): shemnon (Wed, 28 Apr 2021 16:05:57 GMT): shemnon (Wed, 28 Apr 2021 16:06:12 GMT): Nithronium (Wed, 28 Apr 2021 16:07:17 GMT): Nithronium (Wed, 28 Apr 2021 16:07:51 GMT): Nithronium (Wed, 28 Apr 2021 16:08:13 GMT): cbfh (Wed, 28 Apr 2021 16:18:21 GMT): Nithronium (Wed, 28 Apr 2021 16:19:32 GMT): RobbeV 1 (Wed, 28 Apr 2021 16:56:03 GMT): RobbeV 1 (Wed, 28 Apr 2021 16:59:38 GMT): lucassaldanha (Wed, 28 Apr 2021 22:15:33 GMT): lucassaldanha (Wed, 28 Apr 2021 22:17:05 GMT): lucassaldanha (Wed, 28 Apr 2021 22:22:49 GMT): Victorbesu (Wed, 28 Apr 2021 22:23:29 GMT): lucassaldanha (Wed, 28 Apr 2021 22:28:03 GMT): macfarla (Wed, 28 Apr 2021 23:33:36 GMT): macfarla (Wed, 28 Apr 2021 23:34:15 GMT): macfarla (Wed, 28 Apr 2021 23:35:24 GMT): Victorbesu (Thu, 29 Apr 2021 00:40:53 GMT): Nithronium (Thu, 29 Apr 2021 04:01:44 GMT): Nithronium (Thu, 29 Apr 2021 04:02:41 GMT): RobbeV 1 (Thu, 29 Apr 2021 09:22:23 GMT): RobbeV 1 (Thu, 29 Apr 2021 09:23:20 GMT): Dazel (Thu, 29 Apr 2021 10:04:12 GMT): Nithronium (Thu, 29 Apr 2021 12:10:20 GMT): Nithronium (Thu, 29 Apr 2021 12:10:39 GMT): Nithronium (Thu, 29 Apr 2021 12:12:03 GMT): SuzanaMaranhao (Thu, 29 Apr 2021 14:27:38 GMT): SuzanaMaranhao (Thu, 29 Apr 2021 14:27:38 GMT): SuzanaMaranhao (Thu, 29 Apr 2021 14:56:12 GMT): Nithronium (Thu, 29 Apr 2021 15:33:40 GMT): ClaudemirBrum (Thu, 29 Apr 2021 17:47:02 GMT): camilo.dotto (Thu, 29 Apr 2021 17:53:54 GMT): macfarla (Thu, 29 Apr 2021 19:52:41 GMT): macfarla (Thu, 29 Apr 2021 19:53:08 GMT): Nithronium (Fri, 30 Apr 2021 09:31:40 GMT): GuillaumeMjk (Fri, 30 Apr 2021 11:05:13 GMT): GuillaumeMjk (Fri, 30 Apr 2021 11:05:13 GMT): Nithronium (Fri, 30 Apr 2021 13:10:53 GMT): GuillaumeMjk (Fri, 30 Apr 2021 13:16:08 GMT): bradmcbrayer (Fri, 30 Apr 2021 15:21:29 GMT): SuzanaMaranhao (Fri, 30 Apr 2021 16:11:23 GMT): SuzanaMaranhao (Fri, 30 Apr 2021 16:19:40 GMT): alftom (Fri, 30 Apr 2021 18:11:21 GMT): alftom (Fri, 30 Apr 2021 18:11:22 GMT): chainsaw (Fri, 30 Apr 2021 19:52:50 GMT): chainsaw (Fri, 30 Apr 2021 19:52:51 GMT): SuzanaMaranhao (Fri, 30 Apr 2021 21:01:41 GMT): SuzanaMaranhao (Fri, 30 Apr 2021 21:05:53 GMT): SuzanaMaranhao (Fri, 30 Apr 2021 21:05:53 GMT): Nithronium (Sat, 01 May 2021 07:17:58 GMT): pkchai (Sun, 02 May 2021 14:54:30 GMT): pkchai (Sun, 02 May 2021 14:54:31 GMT): SuzanaMaranhao (Mon, 03 May 2021 13:32:26 GMT): SuzanaMaranhao (Mon, 03 May 2021 13:32:26 GMT): cbfh (Mon, 03 May 2021 18:05:55 GMT): cbfh (Mon, 03 May 2021 18:06:40 GMT): mdwright88 (Mon, 03 May 2021 18:08:59 GMT): mdwright88 (Mon, 03 May 2021 18:09:01 GMT): Nithronium (Mon, 03 May 2021 18:16:14 GMT): Nithronium (Mon, 03 May 2021 18:16:37 GMT): mdwright88 (Mon, 03 May 2021 18:27:48 GMT): cbfh (Mon, 03 May 2021 18:32:29 GMT): alftom (Mon, 03 May 2021 19:36:19 GMT): mdwright88 (Mon, 03 May 2021 19:36:57 GMT): drinkcoffee (Mon, 03 May 2021 21:28:51 GMT): lucassaldanha (Tue, 04 May 2021 02:00:55 GMT): Nithronium (Tue, 04 May 2021 08:32:28 GMT): GuillaumeMjk (Tue, 04 May 2021 11:40:54 GMT): cbfh (Tue, 04 May 2021 17:40:33 GMT): davidwboswell (Tue, 04 May 2021 22:02:00 GMT): RobbeV 1 (Wed, 05 May 2021 07:46:25 GMT): VijayMichalik (Wed, 05 May 2021 15:02:17 GMT): Nithronium (Thu, 06 May 2021 06:38:41 GMT): HiteshSharma (Thu, 06 May 2021 07:48:12 GMT): bradmcbrayer (Thu, 06 May 2021 12:01:37 GMT): Nithronium (Thu, 06 May 2021 13:23:01 GMT): shemnon (Thu, 06 May 2021 14:04:07 GMT): shemnon (Thu, 06 May 2021 14:05:17 GMT): bradmcbrayer (Thu, 06 May 2021 14:57:30 GMT): Nithronium (Thu, 06 May 2021 20:12:49 GMT): shemnon (Thu, 06 May 2021 20:15:30 GMT): shemnon (Thu, 06 May 2021 20:15:30 GMT): shemnon (Thu, 06 May 2021 20:17:04 GMT): Nithronium (Thu, 06 May 2021 20:19:06 GMT): Nithronium (Thu, 06 May 2021 20:19:43 GMT): Nithronium (Thu, 06 May 2021 20:21:00 GMT): Nithronium (Thu, 06 May 2021 22:16:46 GMT): shemnon (Thu, 06 May 2021 22:26:37 GMT): shemnon (Thu, 06 May 2021 22:26:42 GMT): RobbeV 1 (Fri, 07 May 2021 13:28:49 GMT): RobbeV 1 (Fri, 07 May 2021 13:29:41 GMT): VijayMichalik (Fri, 07 May 2021 13:37:33 GMT): antonydenyer (Fri, 07 May 2021 17:45:52 GMT): bradmcbrayer (Fri, 07 May 2021 18:44:20 GMT): bradmcbrayer (Fri, 07 May 2021 18:44:20 GMT): Nithronium (Sat, 08 May 2021 10:55:54 GMT): Nithronium (Sat, 08 May 2021 10:56:05 GMT): cbfh (Sat, 08 May 2021 11:22:03 GMT): RoboCopsGoneMad (Sat, 08 May 2021 23:11:46 GMT): RoboCopsGoneMad (Sat, 08 May 2021 23:11:47 GMT): RoboCopsGoneMad (Sat, 08 May 2021 23:12:23 GMT): RoboCopsGoneMad (Sat, 08 May 2021 23:13:11 GMT): RoboCopsGoneMad (Sun, 09 May 2021 00:05:27 GMT): RoboCopsGoneMad (Sun, 09 May 2021 00:56:41 GMT): atoulme (Sun, 09 May 2021 21:33:33 GMT): rampatra (Mon, 10 May 2021 16:26:58 GMT): Dazel (Mon, 10 May 2021 17:43:56 GMT): antonydenyer (Mon, 10 May 2021 20:46:57 GMT): rampatra (Mon, 10 May 2021 21:44:20 GMT): rampatra (Mon, 10 May 2021 21:45:34 GMT): macfarla (Tue, 11 May 2021 01:46:49 GMT): antonydenyer (Tue, 11 May 2021 05:37:48 GMT): antonydenyer (Tue, 11 May 2021 05:37:48 GMT): antonydenyer (Tue, 11 May 2021 05:39:03 GMT): antonydenyer (Tue, 11 May 2021 05:40:05 GMT): rampatra (Tue, 11 May 2021 07:12:01 GMT): antonydenyer (Tue, 11 May 2021 07:49:03 GMT): antonydenyer (Tue, 11 May 2021 07:49:42 GMT): rampatra (Tue, 11 May 2021 07:50:55 GMT): cbfh (Tue, 11 May 2021 07:56:35 GMT): cbfh (Tue, 11 May 2021 07:57:10 GMT): macfarla (Tue, 11 May 2021 07:58:17 GMT): cbfh (Tue, 11 May 2021 07:59:02 GMT): coenie (Tue, 11 May 2021 13:14:05 GMT): rampatra (Tue, 11 May 2021 13:53:12 GMT): VijayMichalik (Tue, 11 May 2021 15:45:13 GMT): VijayMichalik (Tue, 11 May 2021 16:38:55 GMT): Dazel (Tue, 11 May 2021 17:57:30 GMT): Dazel (Tue, 11 May 2021 17:57:30 GMT): Dazel (Tue, 11 May 2021 17:57:30 GMT): Dazel (Tue, 11 May 2021 17:57:30 GMT): Dazel (Tue, 11 May 2021 17:57:30 GMT): Dazel (Tue, 11 May 2021 17:57:30 GMT): macfarla (Tue, 11 May 2021 19:46:41 GMT): macfarla (Tue, 11 May 2021 19:46:43 GMT): macfarla (Tue, 11 May 2021 19:47:17 GMT): macfarla (Tue, 11 May 2021 19:48:04 GMT): jframe (Wed, 12 May 2021 03:15:48 GMT): gortaire (Wed, 12 May 2021 03:25:45 GMT): gortaire (Wed, 12 May 2021 03:25:46 GMT): gortaire (Wed, 12 May 2021 03:32:50 GMT): rjones (Wed, 12 May 2021 04:48:14 GMT): rjones (Wed, 12 May 2021 04:48:26 GMT): VijayMichalik (Wed, 12 May 2021 07:25:17 GMT): antonydenyer (Wed, 12 May 2021 12:35:00 GMT): gortaire (Wed, 12 May 2021 14:57:34 GMT): gortaire (Wed, 12 May 2021 15:22:41 GMT): gortaire (Wed, 12 May 2021 15:23:12 GMT): VijayMichalik (Wed, 12 May 2021 15:59:19 GMT): gortaire (Wed, 12 May 2021 16:04:04 GMT): gortaire (Wed, 12 May 2021 16:06:22 GMT): gortaire (Wed, 12 May 2021 16:06:51 GMT): VijayMichalik (Wed, 12 May 2021 16:42:07 GMT): gortaire (Wed, 12 May 2021 17:45:18 GMT): VijayMichalik (Wed, 12 May 2021 18:58:34 GMT): gortaire (Wed, 12 May 2021 19:15:39 GMT): rampatra (Thu, 13 May 2021 14:13:55 GMT): RoboCopsGoneMad (Thu, 13 May 2021 21:50:14 GMT): RoboCopsGoneMad (Thu, 13 May 2021 21:51:13 GMT): ajsutton (Thu, 13 May 2021 22:28:00 GMT): RoboCopsGoneMad (Thu, 13 May 2021 22:30:27 GMT): ajsutton (Thu, 13 May 2021 22:54:24 GMT): RoboCopsGoneMad (Thu, 13 May 2021 22:55:25 GMT): ajsutton (Thu, 13 May 2021 22:56:55 GMT): RoboCopsGoneMad (Thu, 13 May 2021 22:57:41 GMT): RoboCopsGoneMad (Thu, 13 May 2021 22:57:49 GMT): macfarla (Fri, 14 May 2021 02:58:45 GMT): rampatra (Fri, 14 May 2021 10:17:57 GMT): rampatra (Fri, 14 May 2021 10:18:39 GMT): antonydenyer (Fri, 14 May 2021 12:41:07 GMT): Dazel (Fri, 14 May 2021 14:00:08 GMT): Dazel (Fri, 14 May 2021 14:00:08 GMT): Dazel (Fri, 14 May 2021 14:00:16 GMT): roshan13046 (Sat, 15 May 2021 04:22:19 GMT): roshan13046 (Sat, 15 May 2021 04:22:19 GMT): charith1994 (Sat, 15 May 2021 17:03:44 GMT): EmcLab (Mon, 17 May 2021 05:02:18 GMT): VijayMichalik (Mon, 17 May 2021 09:54:56 GMT): mohjam2004 (Mon, 17 May 2021 11:53:18 GMT): mohjam2004 (Mon, 17 May 2021 14:15:21 GMT): EmcLab (Mon, 17 May 2021 14:58:52 GMT): coenie (Mon, 17 May 2021 19:33:11 GMT): coenie (Mon, 17 May 2021 19:33:11 GMT): indranil32 (Tue, 18 May 2021 14:10:20 GMT): Nithronium (Tue, 18 May 2021 17:08:35 GMT): Nithronium (Tue, 18 May 2021 17:09:05 GMT): Nithronium (Tue, 18 May 2021 17:09:19 GMT): VijayMichalik (Tue, 18 May 2021 17:11:20 GMT): VijayMichalik (Tue, 18 May 2021 17:11:20 GMT): jframe (Wed, 19 May 2021 01:44:53 GMT): jframe (Wed, 19 May 2021 01:44:53 GMT): RobbeV 1 (Wed, 19 May 2021 11:38:18 GMT): VijayMichalik (Wed, 19 May 2021 13:57:08 GMT): VijayMichalik (Wed, 19 May 2021 13:59:03 GMT): TravisPayne (Wed, 19 May 2021 16:02:17 GMT): TravisPayne (Wed, 19 May 2021 16:02:17 GMT): Nithronium (Wed, 19 May 2021 17:36:05 GMT): Nithronium (Wed, 19 May 2021 17:36:05 GMT): Nithronium (Wed, 19 May 2021 17:40:23 GMT): DavidMacFadyen (Wed, 19 May 2021 18:19:20 GMT): DavidMacFadyen (Wed, 19 May 2021 18:19:21 GMT): alftom (Wed, 19 May 2021 18:39:02 GMT): SajidaZ (Wed, 19 May 2021 18:55:55 GMT): rampatra (Wed, 19 May 2021 19:28:38 GMT): shemnon (Wed, 19 May 2021 19:34:21 GMT): DavidMacFadyen (Wed, 19 May 2021 19:36:50 GMT): SajidaZ (Wed, 19 May 2021 22:02:04 GMT): macfarla (Wed, 19 May 2021 23:22:22 GMT): macfarla (Wed, 19 May 2021 23:47:48 GMT): VijayMichalik (Thu, 20 May 2021 09:56:52 GMT): TravisPayne (Thu, 20 May 2021 10:29:50 GMT): TravisPayne (Thu, 20 May 2021 10:52:00 GMT): TravisPayne (Thu, 20 May 2021 10:52:00 GMT): TravisPayne (Thu, 20 May 2021 10:52:00 GMT): rampatra (Thu, 20 May 2021 12:07:29 GMT): rampatra (Thu, 20 May 2021 12:07:29 GMT): rampatra (Thu, 20 May 2021 12:18:58 GMT): rampatra (Thu, 20 May 2021 12:18:58 GMT): rampatra (Thu, 20 May 2021 12:18:58 GMT): shemnon (Thu, 20 May 2021 13:56:55 GMT): shemnon (Thu, 20 May 2021 13:57:17 GMT): rampatra (Thu, 20 May 2021 14:00:27 GMT): grace.hartley (Thu, 20 May 2021 15:00:20 GMT): rampatra (Thu, 20 May 2021 15:52:20 GMT): EmcLab (Thu, 20 May 2021 18:12:02 GMT): EmcLab (Thu, 20 May 2021 18:13:38 GMT): shemnon (Thu, 20 May 2021 18:47:29 GMT): GarySchulte (Thu, 20 May 2021 18:55:30 GMT): GarySchulte (Thu, 20 May 2021 18:57:22 GMT): GarySchulte (Thu, 20 May 2021 19:02:56 GMT): GarySchulte (Thu, 20 May 2021 19:02:56 GMT): EmcLab (Thu, 20 May 2021 19:17:54 GMT): EmcLab (Thu, 20 May 2021 19:18:04 GMT): atoulme (Thu, 20 May 2021 19:52:04 GMT): GarySchulte (Thu, 20 May 2021 20:35:21 GMT): SajidaZ (Thu, 20 May 2021 22:32:22 GMT): SajidaZ (Thu, 20 May 2021 22:32:22 GMT): SajidaZ (Thu, 20 May 2021 22:32:22 GMT): SajidaZ (Thu, 20 May 2021 22:32:22 GMT): EmcLab (Fri, 21 May 2021 03:47:25 GMT): atoulme (Fri, 21 May 2021 05:35:59 GMT): rampatra (Fri, 21 May 2021 13:37:01 GMT): DavidMacFadyen (Fri, 21 May 2021 14:48:39 GMT): EmcLab (Fri, 21 May 2021 18:24:34 GMT): EmcLab (Sat, 22 May 2021 04:34:48 GMT): EmcLab (Sat, 22 May 2021 04:34:50 GMT): Dazel (Sat, 22 May 2021 11:12:39 GMT): Dazel (Sat, 22 May 2021 12:25:11 GMT): Dazel (Sat, 22 May 2021 12:25:13 GMT): EmcLab (Sat, 22 May 2021 18:01:02 GMT): EmcLab (Sat, 22 May 2021 18:01:07 GMT): EmcLab (Sat, 22 May 2021 18:01:37 GMT): EmcLab (Sat, 22 May 2021 19:03:59 GMT): EmcLab (Sat, 22 May 2021 19:03:59 GMT): EmcLab (Sat, 22 May 2021 19:07:49 GMT): HiteshSharma (Sun, 23 May 2021 07:26:37 GMT): HiteshSharma (Sun, 23 May 2021 07:27:50 GMT): HiteshSharma (Sun, 23 May 2021 07:28:03 GMT): HiteshSharma (Sun, 23 May 2021 11:36:40 GMT): HiteshSharma (Sun, 23 May 2021 11:36:40 GMT): HiteshSharma (Sun, 23 May 2021 11:36:40 GMT): HiteshSharma (Sun, 23 May 2021 11:36:40 GMT): EmcLab (Mon, 24 May 2021 05:10:55 GMT): EmcLab (Mon, 24 May 2021 05:16:44 GMT): EmcLab (Mon, 24 May 2021 05:17:17 GMT): mohjam2004 (Mon, 24 May 2021 11:48:47 GMT): mohjam2004 (Mon, 24 May 2021 11:51:44 GMT): mohjam2004 (Mon, 24 May 2021 11:52:19 GMT): mohjam2004 (Mon, 24 May 2021 11:52:19 GMT): mohjam2004 (Mon, 24 May 2021 11:53:05 GMT): mohjam2004 (Mon, 24 May 2021 11:54:29 GMT): mohjam2004 (Mon, 24 May 2021 11:54:31 GMT): mohjam2004 (Mon, 24 May 2021 11:54:31 GMT): VijayMichalik (Mon, 24 May 2021 11:56:10 GMT): VijayMichalik (Mon, 24 May 2021 11:56:33 GMT): mohjam2004 (Mon, 24 May 2021 11:56:39 GMT): VijayMichalik (Mon, 24 May 2021 11:58:27 GMT): mohjam2004 (Mon, 24 May 2021 12:00:33 GMT): mohjam2004 (Mon, 24 May 2021 12:00:57 GMT): mohjam2004 (Mon, 24 May 2021 12:00:57 GMT): mohjam2004 (Mon, 24 May 2021 12:01:51 GMT): VijayMichalik (Mon, 24 May 2021 12:02:52 GMT): mohjam2004 (Mon, 24 May 2021 12:10:27 GMT): mohjam2004 (Mon, 24 May 2021 12:19:51 GMT): mohjam2004 (Mon, 24 May 2021 12:19:55 GMT): mohjam2004 (Mon, 24 May 2021 12:20:46 GMT): VijayMichalik (Mon, 24 May 2021 13:54:44 GMT): VijayMichalik (Mon, 24 May 2021 13:59:53 GMT): VijayMichalik (Mon, 24 May 2021 14:00:47 GMT): VijayMichalik (Mon, 24 May 2021 14:00:54 GMT): VijayMichalik (Mon, 24 May 2021 14:01:44 GMT): VijayMichalik (Mon, 24 May 2021 14:02:19 GMT): rampatra (Mon, 24 May 2021 14:08:11 GMT): VijayMichalik (Mon, 24 May 2021 15:25:29 GMT): VijayMichalik (Mon, 24 May 2021 15:32:18 GMT): rampatra (Mon, 24 May 2021 15:34:00 GMT): VijayMichalik (Mon, 24 May 2021 15:41:42 GMT): rampatra (Mon, 24 May 2021 15:44:16 GMT): VijayMichalik (Mon, 24 May 2021 15:54:00 GMT): jkcomment (Mon, 24 May 2021 16:53:23 GMT): lucassaldanha (Mon, 24 May 2021 20:49:41 GMT): lucassaldanha (Mon, 24 May 2021 20:50:28 GMT): lucassaldanha (Mon, 24 May 2021 20:52:43 GMT): rampatra (Mon, 24 May 2021 21:16:40 GMT): rampatra (Mon, 24 May 2021 21:17:55 GMT): lucassaldanha (Mon, 24 May 2021 21:20:09 GMT): lucassaldanha (Mon, 24 May 2021 21:21:25 GMT): lucassaldanha (Mon, 24 May 2021 21:22:16 GMT): lucassaldanha (Mon, 24 May 2021 21:23:21 GMT): rampatra (Mon, 24 May 2021 21:24:06 GMT): rampatra (Mon, 24 May 2021 21:24:49 GMT): rampatra (Mon, 24 May 2021 21:24:49 GMT): lucassaldanha (Mon, 24 May 2021 21:25:31 GMT): rampatra (Mon, 24 May 2021 21:27:06 GMT): joshuafernandes (Mon, 24 May 2021 21:27:24 GMT): lucassaldanha (Mon, 24 May 2021 21:27:42 GMT): lucassaldanha (Mon, 24 May 2021 21:28:18 GMT): rampatra (Mon, 24 May 2021 21:31:27 GMT): rampatra (Mon, 24 May 2021 21:31:27 GMT): lucassaldanha (Mon, 24 May 2021 21:33:16 GMT): lucassaldanha (Mon, 24 May 2021 21:33:39 GMT): rampatra (Mon, 24 May 2021 21:34:26 GMT): lucassaldanha (Mon, 24 May 2021 21:34:52 GMT): lucassaldanha (Mon, 24 May 2021 21:36:00 GMT): lucassaldanha (Mon, 24 May 2021 21:36:37 GMT): rampatra (Mon, 24 May 2021 21:37:35 GMT): rampatra (Mon, 24 May 2021 21:38:17 GMT): rampatra (Mon, 24 May 2021 21:38:28 GMT): lucassaldanha (Mon, 24 May 2021 21:38:58 GMT): rampatra (Mon, 24 May 2021 21:39:40 GMT): lucassaldanha (Mon, 24 May 2021 21:40:23 GMT): rampatra (Mon, 24 May 2021 21:41:14 GMT): rampatra (Mon, 24 May 2021 21:41:14 GMT): rampatra (Mon, 24 May 2021 21:41:14 GMT): lucassaldanha (Mon, 24 May 2021 21:41:43 GMT): lucassaldanha (Mon, 24 May 2021 21:42:02 GMT): rampatra (Mon, 24 May 2021 21:42:18 GMT): lucassaldanha (Mon, 24 May 2021 21:42:30 GMT): rampatra (Mon, 24 May 2021 21:42:57 GMT): lucassaldanha (Mon, 24 May 2021 21:44:05 GMT): rampatra (Mon, 24 May 2021 21:48:11 GMT): lucassaldanha (Mon, 24 May 2021 21:50:19 GMT): lucassaldanha (Mon, 24 May 2021 21:51:02 GMT): lucassaldanha (Mon, 24 May 2021 21:52:19 GMT): lucassaldanha (Mon, 24 May 2021 21:52:36 GMT): rampatra (Mon, 24 May 2021 21:54:33 GMT): rampatra (Mon, 24 May 2021 21:54:58 GMT): lucassaldanha (Mon, 24 May 2021 21:55:34 GMT): rampatra (Mon, 24 May 2021 22:21:07 GMT): rampatra (Mon, 24 May 2021 22:21:07 GMT): lucassaldanha (Mon, 24 May 2021 22:21:56 GMT): rampatra (Mon, 24 May 2021 22:24:30 GMT): lucassaldanha (Mon, 24 May 2021 22:25:48 GMT): lucassaldanha (Mon, 24 May 2021 22:26:45 GMT): rampatra (Mon, 24 May 2021 22:27:20 GMT): jkcomment (Tue, 25 May 2021 00:44:41 GMT): jkcomment (Tue, 25 May 2021 00:46:33 GMT): JavierMarchetti (Tue, 25 May 2021 01:52:18 GMT): mohjam2004 (Tue, 25 May 2021 03:46:44 GMT): mohjam2004 (Tue, 25 May 2021 04:08:43 GMT): mohjam2004 (Tue, 25 May 2021 04:08:48 GMT): mohjam2004 (Tue, 25 May 2021 04:09:43 GMT): mohjam2004 (Tue, 25 May 2021 04:15:13 GMT): mohjam2004 (Tue, 25 May 2021 04:22:28 GMT): joshuafernandes (Tue, 25 May 2021 07:50:06 GMT): joshuafernandes (Tue, 25 May 2021 07:50:06 GMT): joshuafernandes (Tue, 25 May 2021 07:52:20 GMT): joshuafernandes (Tue, 25 May 2021 07:52:20 GMT): mohjam2004 (Tue, 25 May 2021 08:00:00 GMT): mohjam2004 (Tue, 25 May 2021 08:10:46 GMT): mohjam2004 (Tue, 25 May 2021 08:10:46 GMT): VijayMichalik (Tue, 25 May 2021 08:21:12 GMT): HiteshSharma (Tue, 25 May 2021 08:29:39 GMT): HiteshSharma (Tue, 25 May 2021 08:30:43 GMT): VijayMichalik (Tue, 25 May 2021 08:32:24 GMT): alvaropicazo (Tue, 25 May 2021 08:34:29 GMT): mohjam2004 (Tue, 25 May 2021 09:41:37 GMT): mohjam2004 (Tue, 25 May 2021 09:47:38 GMT): mohjam2004 (Tue, 25 May 2021 12:50:12 GMT): mohjam2004 (Tue, 25 May 2021 12:50:23 GMT): HiteshSharma (Tue, 25 May 2021 13:39:15 GMT): HiteshSharma (Tue, 25 May 2021 13:39:15 GMT): HiteshSharma (Tue, 25 May 2021 13:39:15 GMT): HiteshSharma (Tue, 25 May 2021 13:40:42 GMT): HiteshSharma (Tue, 25 May 2021 13:42:07 GMT): HiteshSharma (Tue, 25 May 2021 13:46:17 GMT): EmcLab (Tue, 25 May 2021 18:16:39 GMT): EmcLab (Tue, 25 May 2021 18:16:41 GMT): EmcLab (Tue, 25 May 2021 18:17:22 GMT): EmcLab (Tue, 25 May 2021 18:18:37 GMT): EmcLab (Tue, 25 May 2021 19:14:41 GMT): Nithronium (Tue, 25 May 2021 21:58:36 GMT): shemnon (Tue, 25 May 2021 22:17:29 GMT): Nithronium (Tue, 25 May 2021 22:24:42 GMT): Nithronium (Tue, 25 May 2021 22:26:55 GMT): Nithronium (Tue, 25 May 2021 22:27:05 GMT): EmcLab (Wed, 26 May 2021 00:51:20 GMT): macfarla (Wed, 26 May 2021 04:57:30 GMT): macfarla (Wed, 26 May 2021 05:03:36 GMT): macfarla (Wed, 26 May 2021 05:03:56 GMT): mohjam2004 (Wed, 26 May 2021 05:08:07 GMT): macfarla (Wed, 26 May 2021 05:09:39 GMT): mohjam2004 (Wed, 26 May 2021 05:11:11 GMT): macfarla (Wed, 26 May 2021 05:14:10 GMT): macfarla (Wed, 26 May 2021 05:14:33 GMT): macfarla (Wed, 26 May 2021 05:16:20 GMT): mohjam2004 (Wed, 26 May 2021 05:16:52 GMT): mohjam2004 (Wed, 26 May 2021 05:16:52 GMT): mohjam2004 (Wed, 26 May 2021 05:16:52 GMT): macfarla (Wed, 26 May 2021 05:20:09 GMT): mohjam2004 (Wed, 26 May 2021 05:20:25 GMT): joshuafernandes (Wed, 26 May 2021 05:23:43 GMT): joshuafernandes (Wed, 26 May 2021 05:25:23 GMT): macfarla (Wed, 26 May 2021 05:28:05 GMT): mohjam2004 (Wed, 26 May 2021 05:38:58 GMT): mohjam2004 (Wed, 26 May 2021 05:45:57 GMT): mohjam2004 (Wed, 26 May 2021 05:46:59 GMT): joshuafernandes (Wed, 26 May 2021 05:48:07 GMT): joshuafernandes (Wed, 26 May 2021 05:49:46 GMT): mohjam2004 (Wed, 26 May 2021 05:51:57 GMT): joshuafernandes (Wed, 26 May 2021 05:52:55 GMT): joshuafernandes (Wed, 26 May 2021 05:58:43 GMT): mohjam2004 (Wed, 26 May 2021 06:03:06 GMT): mohjam2004 (Wed, 26 May 2021 07:35:51 GMT): mohjam2004 (Wed, 26 May 2021 07:35:55 GMT): mohjam2004 (Wed, 26 May 2021 07:37:05 GMT): mohjam2004 (Wed, 26 May 2021 07:37:35 GMT): mohjam2004 (Wed, 26 May 2021 07:38:29 GMT): madelinemurray (Wed, 26 May 2021 08:30:48 GMT): HiteshSharma (Wed, 26 May 2021 08:59:46 GMT): Nithronium (Wed, 26 May 2021 09:49:28 GMT): Nithronium (Wed, 26 May 2021 09:50:05 GMT): Nithronium (Wed, 26 May 2021 09:50:05 GMT): Nithronium (Wed, 26 May 2021 09:50:39 GMT): Nithronium (Wed, 26 May 2021 09:51:39 GMT): joshuafernandes (Wed, 26 May 2021 12:05:18 GMT): joshuafernandes (Wed, 26 May 2021 12:16:26 GMT): shemnon (Wed, 26 May 2021 15:08:46 GMT): Nithronium (Wed, 26 May 2021 15:20:52 GMT): macfarla (Thu, 27 May 2021 01:38:26 GMT): JavierMarchetti (Fri, 28 May 2021 02:22:36 GMT): JavierMarchetti (Fri, 28 May 2021 02:22:36 GMT): JavierMarchetti (Fri, 28 May 2021 02:22:36 GMT): JavierMarchetti (Fri, 28 May 2021 02:22:36 GMT): hugueitor (Fri, 28 May 2021 02:41:11 GMT): hugueitor (Fri, 28 May 2021 02:41:11 GMT): rampatra (Fri, 28 May 2021 10:36:18 GMT): rampatra (Fri, 28 May 2021 10:36:33 GMT): RobbeV 1 (Fri, 28 May 2021 10:46:56 GMT): shemnon (Fri, 28 May 2021 14:51:44 GMT): macfarla (Sat, 29 May 2021 01:26:25 GMT): hugueitor (Sat, 29 May 2021 02:05:47 GMT): EmcLab (Mon, 31 May 2021 00:20:57 GMT): macfarla (Mon, 31 May 2021 06:15:18 GMT): VijayMichalik (Mon, 31 May 2021 09:57:56 GMT): VijayMichalik (Mon, 31 May 2021 10:01:14 GMT): VijayMichalik (Mon, 31 May 2021 10:01:14 GMT): parivesh (Mon, 31 May 2021 12:48:51 GMT): parivesh (Mon, 31 May 2021 12:48:51 GMT): parivesh (Mon, 31 May 2021 12:51:43 GMT): NicolasMassart (Mon, 31 May 2021 12:52:13 GMT): macfarla (Mon, 31 May 2021 23:32:22 GMT): MaxFlowO2 (Tue, 01 Jun 2021 04:43:32 GMT): MaxFlowO2 (Tue, 01 Jun 2021 04:49:56 GMT): atoulme (Tue, 01 Jun 2021 06:14:00 GMT): HiteshSharma (Tue, 01 Jun 2021 12:50:10 GMT): parivesh (Tue, 01 Jun 2021 13:21:28 GMT): parivesh (Tue, 01 Jun 2021 13:21:38 GMT): RayInnoblocktech (Wed, 02 Jun 2021 03:58:08 GMT): RayInnoblocktech (Wed, 02 Jun 2021 03:58:09 GMT): raychan11111 (Wed, 02 Jun 2021 04:06:56 GMT): raychan11111 (Wed, 02 Jun 2021 08:14:11 GMT): VijayMichalik (Wed, 02 Jun 2021 08:58:29 GMT): bradmcbrayer (Wed, 02 Jun 2021 10:56:23 GMT): mohjam2004 (Wed, 02 Jun 2021 11:20:48 GMT): HiteshSharma (Wed, 02 Jun 2021 11:27:09 GMT): HiteshSharma (Wed, 02 Jun 2021 11:51:05 GMT): HiteshSharma (Wed, 02 Jun 2021 11:51:05 GMT): HiteshSharma (Wed, 02 Jun 2021 11:56:30 GMT): HiteshSharma (Wed, 02 Jun 2021 11:58:29 GMT): shemnon (Wed, 02 Jun 2021 18:58:31 GMT): shemnon (Wed, 02 Jun 2021 19:00:20 GMT): HiteshSharma (Thu, 03 Jun 2021 08:22:19 GMT): HiteshSharma (Thu, 03 Jun 2021 08:22:19 GMT): HiteshSharma (Thu, 03 Jun 2021 08:22:19 GMT): HiteshSharma (Thu, 03 Jun 2021 08:22:19 GMT): HiteshSharma (Thu, 03 Jun 2021 08:22:19 GMT): HiteshSharma (Thu, 03 Jun 2021 08:24:12 GMT): shemnon (Thu, 03 Jun 2021 14:20:21 GMT): jsjs77 (Fri, 04 Jun 2021 10:49:58 GMT): jsjs77 (Fri, 04 Jun 2021 10:49:58 GMT): jsjs77 (Fri, 04 Jun 2021 10:50:21 GMT): jsjs77 (Fri, 04 Jun 2021 10:51:03 GMT): jsjs77 (Fri, 04 Jun 2021 10:51:03 GMT): HiteshSharma (Fri, 04 Jun 2021 11:35:52 GMT): shemnon (Fri, 04 Jun 2021 14:33:08 GMT): shemnon (Fri, 04 Jun 2021 14:34:41 GMT): gortaire (Fri, 04 Jun 2021 20:18:18 GMT): jsjs77 (Sat, 05 Jun 2021 06:56:17 GMT): Shritesh99 (Sat, 05 Jun 2021 19:56:52 GMT): bradmcbrayer (Sun, 06 Jun 2021 16:13:51 GMT): bradmcbrayer (Sun, 06 Jun 2021 16:13:51 GMT): SuzanaMaranhao (Mon, 07 Jun 2021 19:12:39 GMT): SuzanaMaranhao (Mon, 07 Jun 2021 19:12:39 GMT): shemnon (Tue, 08 Jun 2021 00:20:08 GMT): raychan11111 (Tue, 08 Jun 2021 02:36:37 GMT): raychan11111 (Tue, 08 Jun 2021 02:36:37 GMT): raychan11111 (Tue, 08 Jun 2021 02:36:37 GMT): antonydenyer (Tue, 08 Jun 2021 08:06:56 GMT): antonydenyer (Tue, 08 Jun 2021 08:06:56 GMT): antonydenyer (Tue, 08 Jun 2021 08:06:56 GMT): VijayMichalik (Tue, 08 Jun 2021 10:21:04 GMT): VijayMichalik (Tue, 08 Jun 2021 10:21:04 GMT): VijayMichalik (Tue, 08 Jun 2021 10:21:49 GMT): mohjam2004 (Tue, 08 Jun 2021 11:19:59 GMT): mohjam2004 (Tue, 08 Jun 2021 11:26:33 GMT): mohjam2004 (Tue, 08 Jun 2021 11:28:31 GMT): mohjam2004 (Tue, 08 Jun 2021 11:29:06 GMT): mohjam2004 (Tue, 08 Jun 2021 11:29:06 GMT): mohjam2004 (Tue, 08 Jun 2021 11:29:06 GMT): bradmcbrayer (Tue, 08 Jun 2021 11:52:05 GMT): bradmcbrayer (Tue, 08 Jun 2021 11:59:21 GMT): NicolasMassart (Tue, 08 Jun 2021 14:16:29 GMT): bradmcbrayer (Tue, 08 Jun 2021 16:42:24 GMT): bradmcbrayer (Tue, 08 Jun 2021 17:46:10 GMT): SuzanaMaranhao (Tue, 08 Jun 2021 21:11:16 GMT): SuzanaMaranhao (Tue, 08 Jun 2021 21:12:03 GMT): shemnon (Tue, 08 Jun 2021 21:53:05 GMT): macfarla (Tue, 08 Jun 2021 22:03:05 GMT): bradmcbrayer (Wed, 09 Jun 2021 10:39:21 GMT): bradmcbrayer (Wed, 09 Jun 2021 10:52:14 GMT): VijayMichalik (Wed, 09 Jun 2021 10:55:35 GMT): bradmcbrayer (Wed, 09 Jun 2021 10:56:15 GMT): bradmcbrayer (Wed, 09 Jun 2021 11:06:02 GMT): matkt (Wed, 09 Jun 2021 11:25:56 GMT): bradmcbrayer (Wed, 09 Jun 2021 11:52:04 GMT): bradmcbrayer (Wed, 09 Jun 2021 11:59:47 GMT): matkt (Wed, 09 Jun 2021 12:34:20 GMT): bradmcbrayer (Wed, 09 Jun 2021 12:55:59 GMT): NicolasMassart (Wed, 09 Jun 2021 12:59:28 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:00:22 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:00:25 GMT): NicolasMassart (Wed, 09 Jun 2021 13:01:18 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:02:26 GMT): NicolasMassart (Wed, 09 Jun 2021 13:03:14 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:04:09 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:12:23 GMT): NicolasMassart (Wed, 09 Jun 2021 13:14:08 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:20:07 GMT): NicolasMassart (Wed, 09 Jun 2021 13:20:34 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:21:33 GMT): NicolasMassart (Wed, 09 Jun 2021 13:22:22 GMT): NicolasMassart (Wed, 09 Jun 2021 13:22:57 GMT): NicolasMassart (Wed, 09 Jun 2021 13:23:13 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:23:18 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:24:23 GMT): NicolasMassart (Wed, 09 Jun 2021 13:24:33 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:24:36 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:30:06 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:31:17 GMT): NicolasMassart (Wed, 09 Jun 2021 13:31:48 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:36:35 GMT): NicolasMassart (Wed, 09 Jun 2021 13:36:55 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:37:44 GMT): NicolasMassart (Wed, 09 Jun 2021 13:38:16 GMT): bradmcbrayer (Wed, 09 Jun 2021 13:40:16 GMT): SuzanaMaranhao (Wed, 09 Jun 2021 17:22:44 GMT): grace.hartley (Wed, 09 Jun 2021 18:34:41 GMT): SuzanaMaranhao (Wed, 09 Jun 2021 18:48:32 GMT): SuzanaMaranhao (Wed, 09 Jun 2021 18:48:32 GMT): SuzanaMaranhao (Wed, 09 Jun 2021 18:49:57 GMT): SuzanaMaranhao (Wed, 09 Jun 2021 18:49:57 GMT): NicolasMassart (Wed, 09 Jun 2021 20:16:20 GMT): NicolasMassart (Wed, 09 Jun 2021 20:16:20 GMT): bradmcbrayer (Thu, 10 Jun 2021 00:46:16 GMT): bradmcbrayer (Thu, 10 Jun 2021 00:46:42 GMT): bradmcbrayer (Thu, 10 Jun 2021 00:48:53 GMT): bradmcbrayer (Thu, 10 Jun 2021 01:04:52 GMT): macfarla (Thu, 10 Jun 2021 05:16:09 GMT): rampatra (Thu, 10 Jun 2021 10:32:11 GMT): rampatra (Thu, 10 Jun 2021 10:32:11 GMT): bradmcbrayer (Thu, 10 Jun 2021 10:49:52 GMT): rampatra (Thu, 10 Jun 2021 10:50:37 GMT): rampatra (Thu, 10 Jun 2021 12:26:42 GMT): chileanguy (Thu, 10 Jun 2021 14:51:05 GMT): chileanguy (Thu, 10 Jun 2021 14:51:06 GMT): chileanguy (Thu, 10 Jun 2021 14:51:06 GMT): chileanguy (Thu, 10 Jun 2021 14:51:06 GMT): matkt (Fri, 11 Jun 2021 08:36:21 GMT): matkt (Fri, 11 Jun 2021 08:36:21 GMT): matkt (Fri, 11 Jun 2021 08:36:21 GMT): NicolasMassart (Fri, 11 Jun 2021 08:41:07 GMT): NicolasMassart (Fri, 11 Jun 2021 08:43:14 GMT): matkt (Fri, 11 Jun 2021 08:52:14 GMT): matkt (Fri, 11 Jun 2021 10:00:15 GMT): matkt (Fri, 11 Jun 2021 10:00:15 GMT): matkt (Fri, 11 Jun 2021 10:11:40 GMT): matkt (Fri, 11 Jun 2021 10:11:40 GMT): bradmcbrayer (Fri, 11 Jun 2021 11:43:58 GMT): bradmcbrayer (Fri, 11 Jun 2021 12:07:30 GMT): matkt (Fri, 11 Jun 2021 12:12:35 GMT): bradmcbrayer (Fri, 11 Jun 2021 12:37:55 GMT): bradmcbrayer (Fri, 11 Jun 2021 12:43:49 GMT): bradmcbrayer (Fri, 11 Jun 2021 12:46:08 GMT): matkt (Fri, 11 Jun 2021 12:51:56 GMT): bradmcbrayer (Fri, 11 Jun 2021 13:23:57 GMT): bradmcbrayer (Fri, 11 Jun 2021 21:11:25 GMT): bradmcbrayer (Fri, 11 Jun 2021 21:11:28 GMT): bradmcbrayer (Fri, 11 Jun 2021 21:12:08 GMT): bradmcbrayer (Fri, 11 Jun 2021 21:12:46 GMT): bradmcbrayer (Fri, 11 Jun 2021 21:12:46 GMT): bradmcbrayer (Fri, 11 Jun 2021 21:13:32 GMT): bradmcbrayer (Fri, 11 Jun 2021 21:15:19 GMT): chileanguy (Sat, 12 Jun 2021 01:04:50 GMT): mohjam2004 (Sat, 12 Jun 2021 08:08:58 GMT): mohjam2004 (Sat, 12 Jun 2021 08:10:03 GMT): mohjam2004 (Sat, 12 Jun 2021 08:10:29 GMT): mohjam2004 (Sat, 12 Jun 2021 08:24:28 GMT): mohjam2004 (Sat, 12 Jun 2021 08:54:01 GMT): mohjam2004 (Sat, 12 Jun 2021 08:54:11 GMT): mohjam2004 (Sat, 12 Jun 2021 08:54:12 GMT): bradmcbrayer (Sat, 12 Jun 2021 10:41:23 GMT): pkchai (Sat, 12 Jun 2021 11:37:32 GMT): shemnon (Sat, 12 Jun 2021 22:07:59 GMT): pkchai (Sat, 12 Jun 2021 23:19:34 GMT): shemnon (Sat, 12 Jun 2021 23:25:22 GMT): shemnon (Sat, 12 Jun 2021 23:26:23 GMT): mohjam2004 (Sun, 13 Jun 2021 03:29:19 GMT): mohjam2004 (Sun, 13 Jun 2021 04:34:23 GMT): mohjam2004 (Sun, 13 Jun 2021 04:34:25 GMT): mohjam2004 (Sun, 13 Jun 2021 05:03:58 GMT): mohjam2004 (Sun, 13 Jun 2021 05:04:01 GMT): mohjam2004 (Sun, 13 Jun 2021 05:11:12 GMT): mohjam2004 (Sun, 13 Jun 2021 06:03:52 GMT): mohjam2004 (Sun, 13 Jun 2021 06:04:28 GMT): mohjam2004 (Sun, 13 Jun 2021 06:05:01 GMT): mohjam2004 (Sun, 13 Jun 2021 06:05:01 GMT): mohjam2004 (Sun, 13 Jun 2021 06:05:35 GMT): mohjam2004 (Sun, 13 Jun 2021 06:05:44 GMT): mohjam2004 (Sun, 13 Jun 2021 06:06:01 GMT): mohjam2004 (Sun, 13 Jun 2021 06:08:29 GMT): rahul_prasad (Sun, 13 Jun 2021 09:49:35 GMT): rahul_prasad (Sun, 13 Jun 2021 09:51:01 GMT): rahul_prasad (Sun, 13 Jun 2021 09:58:45 GMT): mohjam2004 (Sun, 13 Jun 2021 10:43:24 GMT): mohjam2004 (Sun, 13 Jun 2021 10:43:24 GMT): mohjam2004 (Sun, 13 Jun 2021 10:43:54 GMT): mohjam2004 (Sun, 13 Jun 2021 11:31:49 GMT): mohjam2004 (Sun, 13 Jun 2021 11:32:06 GMT): tusharbansal (Sun, 13 Jun 2021 18:31:48 GMT): macfarla (Sun, 13 Jun 2021 23:10:16 GMT): macfarla (Sun, 13 Jun 2021 23:11:14 GMT): macfarla (Sun, 13 Jun 2021 23:14:41 GMT): macfarla (Sun, 13 Jun 2021 23:18:46 GMT): macfarla (Sun, 13 Jun 2021 23:19:40 GMT): macfarla (Sun, 13 Jun 2021 23:23:13 GMT): macfarla (Sun, 13 Jun 2021 23:28:05 GMT): mohjam2004 (Mon, 14 Jun 2021 05:26:48 GMT): mohjam2004 (Mon, 14 Jun 2021 05:27:56 GMT): EmcLab (Mon, 14 Jun 2021 06:34:32 GMT): EmcLab (Mon, 14 Jun 2021 06:35:23 GMT): matkt (Mon, 14 Jun 2021 08:13:50 GMT): VijayMichalik (Mon, 14 Jun 2021 13:14:19 GMT): VijayMichalik (Mon, 14 Jun 2021 13:14:19 GMT): VijayMichalik (Mon, 14 Jun 2021 13:15:15 GMT): VijayMichalik (Mon, 14 Jun 2021 13:16:24 GMT): VijayMichalik (Mon, 14 Jun 2021 13:18:28 GMT): VijayMichalik (Mon, 14 Jun 2021 13:24:10 GMT): VijayMichalik (Mon, 14 Jun 2021 13:24:32 GMT): VijayMichalik (Mon, 14 Jun 2021 13:25:59 GMT): VijayMichalik (Mon, 14 Jun 2021 13:28:24 GMT): VijayMichalik (Mon, 14 Jun 2021 13:28:58 GMT): VijayMichalik (Mon, 14 Jun 2021 13:28:58 GMT): rampatra (Mon, 14 Jun 2021 17:20:08 GMT): rampatra (Mon, 14 Jun 2021 17:22:10 GMT): rampatra (Mon, 14 Jun 2021 17:22:10 GMT): EmcLab (Mon, 14 Jun 2021 20:55:35 GMT): mohjam2004 (Tue, 15 Jun 2021 03:54:27 GMT): mohjam2004 (Tue, 15 Jun 2021 03:57:55 GMT): mohjam2004 (Tue, 15 Jun 2021 03:57:55 GMT): mohjam2004 (Tue, 15 Jun 2021 04:21:04 GMT): rampatra (Tue, 15 Jun 2021 08:40:07 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): HiteshSharma (Tue, 15 Jun 2021 19:36:02 GMT): ahmedMokadem (Wed, 16 Jun 2021 09:38:57 GMT): ahmedMokadem (Wed, 16 Jun 2021 09:40:27 GMT): ahmedMokadem (Wed, 16 Jun 2021 09:40:27 GMT): ahmedMokadem (Wed, 16 Jun 2021 09:40:27 GMT): HiteshSharma (Wed, 16 Jun 2021 13:14:28 GMT): HiteshSharma (Wed, 16 Jun 2021 13:14:28 GMT): HiteshSharma (Wed, 16 Jun 2021 13:14:28 GMT): rampatra (Wed, 16 Jun 2021 15:44:45 GMT): HiteshSharma (Wed, 16 Jun 2021 16:22:31 GMT): HiteshSharma (Wed, 16 Jun 2021 16:31:47 GMT): brunomc 1 (Wed, 16 Jun 2021 23:23:11 GMT): brunomc 1 (Wed, 16 Jun 2021 23:23:12 GMT): brunomc 1 (Wed, 16 Jun 2021 23:24:09 GMT): nonameb3 (Thu, 17 Jun 2021 03:45:41 GMT): nonameb3 (Thu, 17 Jun 2021 03:45:43 GMT): azmi (Thu, 17 Jun 2021 06:11:42 GMT): azmi (Thu, 17 Jun 2021 06:11:42 GMT): VijayMichalik (Thu, 17 Jun 2021 08:09:23 GMT): VijayMichalik (Thu, 17 Jun 2021 08:15:37 GMT): VijayMichalik (Thu, 17 Jun 2021 09:26:19 GMT): HiteshSharma (Thu, 17 Jun 2021 12:10:34 GMT): VijayKrishnan (Fri, 18 Jun 2021 00:46:24 GMT): macfarla (Fri, 18 Jun 2021 01:25:00 GMT): macfarla (Fri, 18 Jun 2021 01:31:23 GMT): macfarla (Fri, 18 Jun 2021 01:31:52 GMT): HiteshSharma (Sat, 19 Jun 2021 07:37:26 GMT): HiteshSharma (Sat, 19 Jun 2021 07:38:50 GMT): HiteshSharma (Sat, 19 Jun 2021 07:39:29 GMT): dragnet (Sat, 19 Jun 2021 16:12:53 GMT): dragnet (Sat, 19 Jun 2021 16:12:54 GMT): dragnet (Sat, 19 Jun 2021 16:13:27 GMT): dragnet (Sat, 19 Jun 2021 16:14:02 GMT): NicolasMassart (Sat, 19 Jun 2021 16:15:09 GMT): dragnet (Sat, 19 Jun 2021 16:15:36 GMT): dragnet (Sat, 19 Jun 2021 16:16:11 GMT): dragnet (Sat, 19 Jun 2021 16:17:15 GMT): NicolasMassart (Sat, 19 Jun 2021 16:17:16 GMT): dragnet (Sat, 19 Jun 2021 16:17:31 GMT): dragnet (Sat, 19 Jun 2021 16:18:09 GMT): dragnet (Sat, 19 Jun 2021 16:18:14 GMT): dragnet (Sat, 19 Jun 2021 16:18:29 GMT): dragnet (Sat, 19 Jun 2021 16:19:09 GMT): dragnet (Sat, 19 Jun 2021 16:20:28 GMT): dragnet (Sat, 19 Jun 2021 16:20:48 GMT): NicolasMassart (Sat, 19 Jun 2021 16:21:30 GMT): dragnet (Sat, 19 Jun 2021 16:22:45 GMT): NicolasMassart (Sat, 19 Jun 2021 16:23:28 GMT): NicolasMassart (Sat, 19 Jun 2021 16:24:07 GMT): dragnet (Sat, 19 Jun 2021 16:24:09 GMT): dragnet (Sat, 19 Jun 2021 16:24:20 GMT): dragnet (Sat, 19 Jun 2021 16:24:29 GMT): dragnet (Sat, 19 Jun 2021 16:24:37 GMT): dragnet (Sat, 19 Jun 2021 16:24:58 GMT): dragnet (Sat, 19 Jun 2021 16:25:30 GMT): dragnet (Sat, 19 Jun 2021 16:25:51 GMT): dragnet (Sat, 19 Jun 2021 16:26:05 GMT): NicolasMassart (Sat, 19 Jun 2021 16:26:49 GMT): dragnet (Sat, 19 Jun 2021 16:32:39 GMT): dragnet (Sat, 19 Jun 2021 16:32:39 GMT): NicolasMassart (Sat, 19 Jun 2021 16:33:50 GMT): dragnet (Sat, 19 Jun 2021 16:34:33 GMT): dragnet (Sat, 19 Jun 2021 16:36:26 GMT): dragnet (Sat, 19 Jun 2021 16:37:01 GMT): NicolasMassart (Sat, 19 Jun 2021 16:37:02 GMT): dragnet (Sat, 19 Jun 2021 16:38:17 GMT): dragnet (Sat, 19 Jun 2021 16:38:35 GMT): NicolasMassart (Sat, 19 Jun 2021 16:38:55 GMT): fachamarchetti (Mon, 21 Jun 2021 03:06:15 GMT): Soul_man (Mon, 21 Jun 2021 11:19:19 GMT): Soul_man (Mon, 21 Jun 2021 11:19:20 GMT): Soul_man (Mon, 21 Jun 2021 11:26:45 GMT): Soul_man (Mon, 21 Jun 2021 11:27:06 GMT): Soul_man (Mon, 21 Jun 2021 11:58:04 GMT): rampatra (Mon, 21 Jun 2021 14:16:38 GMT): rampatra (Mon, 21 Jun 2021 14:26:31 GMT): rampatra (Mon, 21 Jun 2021 14:26:31 GMT): NicolasMassart (Mon, 21 Jun 2021 14:28:43 GMT): rampatra (Mon, 21 Jun 2021 14:32:27 GMT): rampatra (Mon, 21 Jun 2021 14:32:27 GMT): mdwright88 (Mon, 21 Jun 2021 18:58:51 GMT): SuzanaMaranhao (Mon, 21 Jun 2021 20:59:04 GMT): SuzanaMaranhao (Mon, 21 Jun 2021 20:59:04 GMT): lucassaldanha (Mon, 21 Jun 2021 21:41:09 GMT): knagware9 (Tue, 22 Jun 2021 07:24:33 GMT): crispcosine (Tue, 22 Jun 2021 09:53:59 GMT): crispcosine (Tue, 22 Jun 2021 09:54:00 GMT): crispcosine (Tue, 22 Jun 2021 09:55:05 GMT): crispcosine (Tue, 22 Jun 2021 09:55:17 GMT): crispcosine (Tue, 22 Jun 2021 09:55:26 GMT): crispcosine (Tue, 22 Jun 2021 09:55:43 GMT): SuzanaMaranhao (Tue, 22 Jun 2021 14:03:43 GMT): SuzanaMaranhao (Tue, 22 Jun 2021 14:03:46 GMT): SuzanaMaranhao (Tue, 22 Jun 2021 14:04:40 GMT): iamsdas (Tue, 22 Jun 2021 17:41:44 GMT): SuzanaMaranhao (Tue, 22 Jun 2021 19:11:15 GMT): SuzanaMaranhao (Tue, 22 Jun 2021 19:11:15 GMT): lucassaldanha (Wed, 23 Jun 2021 01:45:12 GMT): lucassaldanha (Wed, 23 Jun 2021 01:45:37 GMT): lucassaldanha (Wed, 23 Jun 2021 01:45:58 GMT): lucassaldanha (Wed, 23 Jun 2021 01:46:32 GMT): andic (Wed, 23 Jun 2021 06:23:30 GMT): andic (Wed, 23 Jun 2021 06:32:58 GMT): andic (Wed, 23 Jun 2021 06:34:35 GMT): andic (Wed, 23 Jun 2021 06:36:20 GMT): andic (Wed, 23 Jun 2021 06:36:49 GMT): SuzanaMaranhao (Wed, 23 Jun 2021 20:24:25 GMT): raychan11111 (Thu, 24 Jun 2021 02:06:12 GMT): raychan11111 (Thu, 24 Jun 2021 03:38:32 GMT): macfarla (Fri, 25 Jun 2021 03:51:33 GMT): zandercreations (Fri, 25 Jun 2021 04:49:43 GMT): zandercreations (Fri, 25 Jun 2021 04:49:43 GMT): saif_32 (Fri, 25 Jun 2021 06:09:45 GMT): sownak (Fri, 25 Jun 2021 08:15:26 GMT): matkt (Fri, 25 Jun 2021 08:57:30 GMT): SuzanaMaranhao (Fri, 25 Jun 2021 20:08:18 GMT): recarelee (Sat, 26 Jun 2021 02:29:43 GMT): shemnon (Sat, 26 Jun 2021 14:59:03 GMT): shemnon (Sat, 26 Jun 2021 14:59:03 GMT): macfarla (Mon, 28 Jun 2021 01:55:23 GMT): macfarla (Mon, 28 Jun 2021 01:57:33 GMT): raychan11111 (Mon, 28 Jun 2021 06:41:11 GMT): raychan11111 (Mon, 28 Jun 2021 06:41:58 GMT): raychan11111 (Mon, 28 Jun 2021 06:43:09 GMT): raychan11111 (Mon, 28 Jun 2021 08:41:42 GMT): VijayMichalik (Mon, 28 Jun 2021 12:08:48 GMT): VijayMichalik (Mon, 28 Jun 2021 12:08:48 GMT): sownak (Mon, 28 Jun 2021 14:36:16 GMT): sownak (Mon, 28 Jun 2021 14:38:23 GMT): SuzanaMaranhao (Mon, 28 Jun 2021 19:23:37 GMT): raychan11111 (Tue, 29 Jun 2021 04:23:31 GMT): machadovilaca (Tue, 29 Jun 2021 14:25:04 GMT): jframe (Wed, 30 Jun 2021 05:46:59 GMT): jframe (Wed, 30 Jun 2021 05:46:59 GMT): jframe (Wed, 30 Jun 2021 05:46:59 GMT): VijayMichalik (Wed, 30 Jun 2021 10:42:00 GMT): VijayMichalik (Wed, 30 Jun 2021 10:55:37 GMT): VijayMichalik (Fri, 02 Jul 2021 10:52:53 GMT): sownak (Fri, 02 Jul 2021 10:57:58 GMT): VijayMichalik (Fri, 02 Jul 2021 11:19:25 GMT): rjones (Fri, 02 Jul 2021 23:09:54 GMT): rjones (Fri, 02 Jul 2021 23:09:54 GMT): rjones (Fri, 02 Jul 2021 23:09:54 GMT): pmn2090 (Sat, 03 Jul 2021 01:08:19 GMT): vakster (Sat, 03 Jul 2021 07:01:03 GMT): BravoNatalie (Sat, 03 Jul 2021 10:55:01 GMT): BravoNatalie (Sat, 03 Jul 2021 10:56:55 GMT): AsifMesbah (Sun, 04 Jul 2021 01:00:45 GMT): EmcLab (Sun, 04 Jul 2021 04:52:14 GMT): IoanSlavu (Sun, 04 Jul 2021 17:21:29 GMT): sg1408 (Sun, 04 Jul 2021 19:01:33 GMT): Kenneth-Luster (Sun, 04 Jul 2021 23:21:49 GMT): raychan11111 (Mon, 05 Jul 2021 03:07:27 GMT): raychan11111 (Mon, 05 Jul 2021 03:07:47 GMT): raychan11111 (Mon, 05 Jul 2021 03:09:43 GMT): bphan (Mon, 05 Jul 2021 05:00:24 GMT): gokulraj17687 (Mon, 05 Jul 2021 05:14:14 GMT): gokulraj17687 (Mon, 05 Jul 2021 05:19:43 GMT): gokulraj17687 (Mon, 05 Jul 2021 05:20:16 GMT): antonydenyer (Mon, 05 Jul 2021 05:37:22 GMT): BravoNatalie (Mon, 05 Jul 2021 09:15:24 GMT): mturetchi (Mon, 05 Jul 2021 10:53:36 GMT): VijayMichalik (Mon, 05 Jul 2021 11:01:25 GMT): sharkrit (Mon, 05 Jul 2021 18:20:50 GMT): QuasiStellar (Mon, 05 Jul 2021 19:00:35 GMT): LikithS (Mon, 05 Jul 2021 19:51:40 GMT): sakthi.raju (Tue, 06 Jul 2021 04:39:14 GMT): mahendraswain (Tue, 06 Jul 2021 05:15:07 GMT): shanest (Tue, 06 Jul 2021 05:25:59 GMT): yujinpark (Tue, 06 Jul 2021 05:50:18 GMT): yujinpark (Tue, 06 Jul 2021 05:54:59 GMT): vshawn (Tue, 06 Jul 2021 07:06:54 GMT): ahmedMokadem (Tue, 06 Jul 2021 08:59:01 GMT): chhokra (Tue, 06 Jul 2021 09:38:57 GMT): cpsatav (Tue, 06 Jul 2021 10:14:16 GMT): vasile135 (Tue, 06 Jul 2021 15:36:45 GMT): VijayMichalik (Tue, 06 Jul 2021 19:47:36 GMT): CalebLiu (Wed, 07 Jul 2021 02:48:52 GMT): drewmattic (Wed, 07 Jul 2021 04:58:03 GMT): gt88 (Wed, 07 Jul 2021 11:40:04 GMT): tychobrailleur (Wed, 07 Jul 2021 12:26:05 GMT): alanveloso (Wed, 07 Jul 2021 12:52:14 GMT): ReufRujevic (Wed, 07 Jul 2021 14:08:44 GMT): yujinpark (Thu, 08 Jul 2021 07:10:17 GMT): yujinpark (Thu, 08 Jul 2021 07:41:31 GMT): AndreEsteves (Thu, 08 Jul 2021 10:56:17 GMT): matkt (Thu, 08 Jul 2021 11:20:04 GMT): mkm 14 (Thu, 08 Jul 2021 14:00:03 GMT): mkm 14 (Thu, 08 Jul 2021 14:02:08 GMT): VijayMichalik (Thu, 08 Jul 2021 14:23:32 GMT): VijayMichalik (Thu, 08 Jul 2021 14:26:47 GMT): VijayMichalik (Thu, 08 Jul 2021 14:27:55 GMT): mkm 14 (Thu, 08 Jul 2021 15:45:18 GMT): shemnon (Thu, 08 Jul 2021 15:48:36 GMT): mkm 14 (Thu, 08 Jul 2021 15:51:54 GMT): shemnon (Thu, 08 Jul 2021 15:58:22 GMT): Cryptohash (Thu, 08 Jul 2021 16:11:07 GMT): Cryptohash (Thu, 08 Jul 2021 16:11:21 GMT): Cryptohash (Thu, 08 Jul 2021 16:12:23 GMT): Cryptohash (Thu, 08 Jul 2021 16:13:09 GMT): Cryptohash (Thu, 08 Jul 2021 16:17:34 GMT): ahmedMokadem (Thu, 08 Jul 2021 16:22:06 GMT): Cryptohash (Thu, 08 Jul 2021 16:39:51 GMT): mkm 14 (Thu, 08 Jul 2021 17:35:25 GMT): mkm 14 (Thu, 08 Jul 2021 18:01:50 GMT): shemnon (Thu, 08 Jul 2021 18:57:03 GMT): Najetbh83 (Thu, 08 Jul 2021 19:33:56 GMT): mkm 14 (Thu, 08 Jul 2021 19:42:14 GMT): mkm 14 (Thu, 08 Jul 2021 20:28:54 GMT): hoang-innomizetech (Fri, 09 Jul 2021 03:56:49 GMT): msarres (Fri, 09 Jul 2021 11:33:51 GMT): VijayMichalik (Fri, 09 Jul 2021 15:03:29 GMT): VijayMichalik (Fri, 09 Jul 2021 15:03:39 GMT): VijayMichalik (Fri, 09 Jul 2021 15:04:43 GMT): Cryptohash (Fri, 09 Jul 2021 15:27:21 GMT): mkm 14 (Fri, 09 Jul 2021 15:40:06 GMT): VijayMichalik (Fri, 09 Jul 2021 16:20:43 GMT): VijayMichalik (Fri, 09 Jul 2021 16:36:42 GMT): AndrewStarling (Sat, 10 Jul 2021 03:58:53 GMT): cbfh (Sat, 10 Jul 2021 08:12:21 GMT): ritikbhandari (Sat, 10 Jul 2021 09:48:21 GMT): atirikt (Sat, 10 Jul 2021 09:54:10 GMT): CopyBilla (Sat, 10 Jul 2021 14:18:07 GMT): shemnon (Sat, 10 Jul 2021 18:18:30 GMT): shemnon (Sat, 10 Jul 2021 18:18:42 GMT): shemnon (Sat, 10 Jul 2021 18:18:42 GMT): danielszego (Sat, 10 Jul 2021 18:47:00 GMT): AkshatCy2012sn (Sat, 10 Jul 2021 21:14:31 GMT): tim-trutech (Sat, 10 Jul 2021 21:27:39 GMT): ritvij14 (Sun, 11 Jul 2021 03:37:53 GMT): TomRobertson1 (Sun, 11 Jul 2021 17:11:48 GMT): eharris128 (Sun, 11 Jul 2021 23:03:06 GMT): davidviejopomata (Mon, 12 Jul 2021 14:20:50 GMT): mkm 14 (Mon, 12 Jul 2021 15:00:54 GMT): IV12 (Mon, 12 Jul 2021 15:09:54 GMT): jmaric (Mon, 12 Jul 2021 15:47:58 GMT): mkm 14 (Mon, 12 Jul 2021 16:08:24 GMT): piyushap (Mon, 12 Jul 2021 16:21:48 GMT): shemnon (Mon, 12 Jul 2021 16:37:02 GMT): mkm 14 (Mon, 12 Jul 2021 16:40:55 GMT): mkm 14 (Mon, 12 Jul 2021 16:40:55 GMT): mkm 14 (Mon, 12 Jul 2021 16:41:44 GMT): mkm 14 (Mon, 12 Jul 2021 18:04:34 GMT): mkm 14 (Mon, 12 Jul 2021 18:59:29 GMT): shemnon (Mon, 12 Jul 2021 19:13:08 GMT): Aurelio 8 (Mon, 12 Jul 2021 20:21:13 GMT): NancyL 4 (Mon, 12 Jul 2021 20:24:03 GMT): mfrodriguezc (Mon, 12 Jul 2021 23:36:18 GMT): hkiridera (Tue, 13 Jul 2021 07:08:10 GMT): bt333 (Tue, 13 Jul 2021 11:42:30 GMT): VijayMichalik (Tue, 13 Jul 2021 16:34:07 GMT): grace.hartley (Tue, 13 Jul 2021 16:40:09 GMT): lfrattini (Tue, 13 Jul 2021 19:26:12 GMT): alebaffa (Wed, 14 Jul 2021 05:15:47 GMT): TuureLainen (Wed, 14 Jul 2021 06:25:32 GMT): MartinAulich (Wed, 14 Jul 2021 07:14:56 GMT): PatrickHerbke-TUBerlin (Wed, 14 Jul 2021 08:22:49 GMT): umeraqeel (Wed, 14 Jul 2021 10:36:01 GMT): jkbpvsc (Wed, 14 Jul 2021 12:41:08 GMT): tonybka (Wed, 14 Jul 2021 14:03:54 GMT): XINGYUZHU (Wed, 14 Jul 2021 14:37:01 GMT): janrockdev (Wed, 14 Jul 2021 15:53:07 GMT): janrockdev (Wed, 14 Jul 2021 15:55:43 GMT): KOttoni (Wed, 14 Jul 2021 17:53:17 GMT): mkm 14 (Wed, 14 Jul 2021 19:53:39 GMT): rcraswell (Wed, 14 Jul 2021 23:13:00 GMT): TIMO_ReDWit (Thu, 15 Jul 2021 05:42:03 GMT): bharathkumar_m (Thu, 15 Jul 2021 14:13:58 GMT): alextrafimau (Thu, 15 Jul 2021 14:24:46 GMT): sgpokala (Thu, 15 Jul 2021 16:44:24 GMT): mkm 14 (Thu, 15 Jul 2021 16:52:27 GMT): mkm 14 (Thu, 15 Jul 2021 16:54:40 GMT): VijayMichalik (Thu, 15 Jul 2021 17:16:15 GMT): brett7297 (Thu, 15 Jul 2021 17:35:49 GMT): pranjal23 (Thu, 15 Jul 2021 19:04:08 GMT): gokulraj17687 (Fri, 16 Jul 2021 05:47:53 GMT): richarde 7 (Fri, 16 Jul 2021 06:51:34 GMT): dominichawton (Fri, 16 Jul 2021 10:20:33 GMT): Sowjanya_Segu (Fri, 16 Jul 2021 10:45:50 GMT): DmitryHalahayeu (Fri, 16 Jul 2021 13:23:57 GMT): mdhasan (Fri, 16 Jul 2021 13:48:06 GMT): Lupusalix (Fri, 16 Jul 2021 13:57:20 GMT): Laichonious (Fri, 16 Jul 2021 16:20:03 GMT): pSchlarb (Fri, 16 Jul 2021 16:43:32 GMT): ChandramouliMaduri (Fri, 16 Jul 2021 20:58:23 GMT): mostafafares (Fri, 16 Jul 2021 21:46:55 GMT): hackerunet (Sat, 17 Jul 2021 01:51:08 GMT): phamhung (Sat, 17 Jul 2021 02:00:11 GMT): ederro (Sat, 17 Jul 2021 02:08:49 GMT): noe305 (Sat, 17 Jul 2021 02:10:53 GMT): itsbalamurali (Sat, 17 Jul 2021 08:45:48 GMT): Sowjanya_Segu (Sat, 17 Jul 2021 10:25:21 GMT): piratesmile (Sat, 17 Jul 2021 12:28:05 GMT): RajanHarshit (Sat, 17 Jul 2021 15:37:36 GMT): otfreetime (Sun, 18 Jul 2021 06:37:28 GMT): kaushambi (Sun, 18 Jul 2021 06:40:33 GMT): igorkrupczynski (Sun, 18 Jul 2021 08:31:50 GMT): fghiasy (Mon, 19 Jul 2021 00:59:58 GMT): bhavesh.c (Mon, 19 Jul 2021 04:58:02 GMT): grim 37 (Mon, 19 Jul 2021 08:27:10 GMT): grim 37 (Mon, 19 Jul 2021 08:30:16 GMT): grim 37 (Mon, 19 Jul 2021 08:30:45 GMT): Steit (Mon, 19 Jul 2021 09:59:16 GMT): GuntherWalden (Mon, 19 Jul 2021 13:13:15 GMT): shemnon (Mon, 19 Jul 2021 14:24:17 GMT): MatthiasGeihs.Perun (Mon, 19 Jul 2021 15:07:59 GMT): AtulPandeySaw (Tue, 20 Jul 2021 05:31:44 GMT): Prerana72 (Tue, 20 Jul 2021 05:43:25 GMT): JohnWick2704 (Tue, 20 Jul 2021 06:16:59 GMT): RositsaKrasteva (Tue, 20 Jul 2021 08:34:03 GMT): MaternaDev (Tue, 20 Jul 2021 08:48:12 GMT): RyanEckersfield (Tue, 20 Jul 2021 08:52:57 GMT): indisateesh (Tue, 20 Jul 2021 11:05:21 GMT): DeepaliGupta (Tue, 20 Jul 2021 12:54:28 GMT): gautamarora24 (Tue, 20 Jul 2021 16:14:53 GMT): dhoffman32 (Tue, 20 Jul 2021 18:11:38 GMT): romenon2703 (Wed, 21 Jul 2021 05:43:58 GMT): nehajain20683 (Wed, 21 Jul 2021 07:19:54 GMT): yaozhaoyuan (Wed, 21 Jul 2021 07:57:05 GMT): bhaaratkhatri (Wed, 21 Jul 2021 08:22:16 GMT): Maginaro (Wed, 21 Jul 2021 10:02:23 GMT): grim 37 (Wed, 21 Jul 2021 13:08:36 GMT): shemnon (Wed, 21 Jul 2021 14:01:14 GMT): shemnon (Wed, 21 Jul 2021 14:01:37 GMT): VijayMichalik (Wed, 21 Jul 2021 15:49:13 GMT): mkm 14 (Wed, 21 Jul 2021 16:18:28 GMT): yo-va-ni (Wed, 21 Jul 2021 18:06:55 GMT): ideree (Thu, 22 Jul 2021 11:41:43 GMT): septcinquante (Thu, 22 Jul 2021 15:21:41 GMT): mianko (Thu, 22 Jul 2021 15:52:29 GMT): faizulbari (Thu, 22 Jul 2021 16:00:29 GMT): AmarSrivastava1 (Thu, 22 Jul 2021 16:16:52 GMT): GarySchulte (Thu, 22 Jul 2021 17:30:33 GMT): GarySchulte (Thu, 22 Jul 2021 17:33:35 GMT): cpux07 (Thu, 22 Jul 2021 18:49:09 GMT): playswithblocks (Thu, 22 Jul 2021 19:06:31 GMT): allysonugarte (Thu, 22 Jul 2021 19:21:05 GMT): jframe (Thu, 22 Jul 2021 23:02:44 GMT): LucyLow (Fri, 23 Jul 2021 01:10:07 GMT): ManojTaleka (Fri, 23 Jul 2021 06:29:27 GMT): drinkcoffee (Fri, 23 Jul 2021 07:44:38 GMT): GrahamLeach (Fri, 23 Jul 2021 08:17:28 GMT): Shania-xian (Fri, 23 Jul 2021 10:28:15 GMT): Jess_Hurwitz (Fri, 23 Jul 2021 22:42:49 GMT): Alameenb (Sat, 24 Jul 2021 00:15:36 GMT): merq (Sat, 24 Jul 2021 01:12:20 GMT): ashutoshsharma01 (Sat, 24 Jul 2021 07:02:26 GMT): ashutosh1 (Sat, 24 Jul 2021 12:35:39 GMT): db2127 (Sat, 24 Jul 2021 15:04:14 GMT): slsanc (Sat, 24 Jul 2021 16:32:12 GMT): mirshahzad (Sat, 24 Jul 2021 16:33:57 GMT): mengxi123 (Sun, 25 Jul 2021 05:17:02 GMT): qiqo (Sun, 25 Jul 2021 05:17:10 GMT): NajetBENHAMOUDA (Sun, 25 Jul 2021 11:15:46 GMT): lavaicer (Sun, 25 Jul 2021 12:04:59 GMT): shumpeishimizu (Mon, 26 Jul 2021 04:21:04 GMT): amarnadh (Mon, 26 Jul 2021 10:53:22 GMT): aspannag (Mon, 26 Jul 2021 11:41:04 GMT): HelliHell (Mon, 26 Jul 2021 14:56:24 GMT): sukrutsathaye (Mon, 26 Jul 2021 16:24:15 GMT): cel (Mon, 26 Jul 2021 19:37:54 GMT): EmcLab (Mon, 26 Jul 2021 21:37:21 GMT): drinkcoffee (Tue, 27 Jul 2021 03:45:17 GMT): aymankhan (Tue, 27 Jul 2021 10:36:19 GMT): matkt (Tue, 27 Jul 2021 12:00:19 GMT): matkt (Tue, 27 Jul 2021 12:00:19 GMT): ueesha (Tue, 27 Jul 2021 14:15:30 GMT): ShashankKulkarni1 (Tue, 27 Jul 2021 14:41:48 GMT): DecentralLabs (Tue, 27 Jul 2021 19:41:05 GMT): robnik911 (Tue, 27 Jul 2021 21:10:20 GMT): knagware (Wed, 28 Jul 2021 04:38:44 GMT): ChristosPaschalidis (Wed, 28 Jul 2021 14:48:58 GMT): SuzanaMaranhao (Wed, 28 Jul 2021 21:00:49 GMT): zenilvaghasiya (Wed, 28 Jul 2021 22:40:55 GMT): nedaa2020 (Thu, 29 Jul 2021 07:19:48 GMT): LeslytH (Thu, 29 Jul 2021 08:01:25 GMT): joarder97 (Thu, 29 Jul 2021 09:14:14 GMT): Drilmo (Thu, 29 Jul 2021 11:58:15 GMT): thongtran (Thu, 29 Jul 2021 15:57:18 GMT): agentcooper75 (Thu, 29 Jul 2021 18:31:00 GMT): AnuragChauhan (Fri, 30 Jul 2021 03:29:17 GMT): JuanEstrada (Fri, 30 Jul 2021 03:36:38 GMT): rsharmajp (Fri, 30 Jul 2021 07:59:53 GMT): pp371 (Fri, 30 Jul 2021 09:42:26 GMT): krgko (Fri, 30 Jul 2021 10:06:43 GMT): janathraveendra (Fri, 30 Jul 2021 15:07:50 GMT): SuzanaMaranhao (Fri, 30 Jul 2021 15:15:36 GMT): SelvamaniGovindaraj (Fri, 30 Jul 2021 16:01:55 GMT): proberge (Fri, 30 Jul 2021 19:34:05 GMT): Minnu (Fri, 30 Jul 2021 20:15:38 GMT): adineshreddy1 (Sun, 01 Aug 2021 10:09:31 GMT): akash242891 (Sun, 01 Aug 2021 12:35:50 GMT): smfk (Sun, 01 Aug 2021 18:52:58 GMT): fboris (Sun, 01 Aug 2021 19:07:49 GMT): fboris (Sun, 01 Aug 2021 19:14:13 GMT): fboris (Sun, 01 Aug 2021 19:14:13 GMT): fboris (Sun, 01 Aug 2021 19:14:13 GMT): shemnon (Sun, 01 Aug 2021 20:39:51 GMT): fboris (Sun, 01 Aug 2021 21:14:15 GMT): fboris (Sun, 01 Aug 2021 21:14:15 GMT): fboris (Sun, 01 Aug 2021 21:14:15 GMT): fboris (Sun, 01 Aug 2021 21:16:16 GMT): fboris (Sun, 01 Aug 2021 21:16:16 GMT): fboris (Sun, 01 Aug 2021 21:16:53 GMT): shemnon (Sun, 01 Aug 2021 21:19:13 GMT): udaya.rkrish (Sun, 01 Aug 2021 21:44:55 GMT): KentBull (Mon, 02 Aug 2021 01:54:03 GMT): NgugsJohn (Mon, 02 Aug 2021 02:32:03 GMT): NgugsJohn (Mon, 02 Aug 2021 02:33:03 GMT): atoulme (Mon, 02 Aug 2021 03:57:06 GMT): maurolionp (Mon, 02 Aug 2021 06:39:07 GMT): wcc19840827 (Mon, 02 Aug 2021 07:55:33 GMT): TanguyLaucournet (Mon, 02 Aug 2021 10:39:40 GMT): TanguyLaucournet (Mon, 02 Aug 2021 10:39:40 GMT): NgugsJohn (Mon, 02 Aug 2021 12:11:12 GMT): NgugsJohn (Mon, 02 Aug 2021 12:11:12 GMT): NgugsJohn (Mon, 02 Aug 2021 12:11:12 GMT): DanielHaren (Mon, 02 Aug 2021 14:20:47 GMT): AlessandraC (Mon, 02 Aug 2021 14:33:10 GMT): GabrieleVitae (Mon, 02 Aug 2021 14:53:19 GMT): GabrieleVitae (Mon, 02 Aug 2021 15:03:43 GMT): AlessandraC (Mon, 02 Aug 2021 15:14:11 GMT): GabrieleVitae (Mon, 02 Aug 2021 15:20:56 GMT): GabrieleVitae (Mon, 02 Aug 2021 15:20:56 GMT): cod3rfabric (Mon, 02 Aug 2021 16:35:01 GMT): unnati (Mon, 02 Aug 2021 17:32:16 GMT): praveenkpandu (Mon, 02 Aug 2021 22:40:58 GMT): macfarla (Tue, 03 Aug 2021 00:05:20 GMT): macfarla (Tue, 03 Aug 2021 00:06:04 GMT): macfarla (Tue, 03 Aug 2021 00:23:42 GMT): macfarla (Tue, 03 Aug 2021 00:24:40 GMT): macfarla (Tue, 03 Aug 2021 00:25:23 GMT): macfarla (Tue, 03 Aug 2021 00:27:12 GMT): macfarla (Tue, 03 Aug 2021 00:34:22 GMT): rubix982 (Tue, 03 Aug 2021 02:30:46 GMT): areyal (Tue, 03 Aug 2021 05:06:06 GMT): pavithra8895 (Tue, 03 Aug 2021 05:49:09 GMT): pavithra8895 (Tue, 03 Aug 2021 06:06:36 GMT): AboliShinde (Tue, 03 Aug 2021 08:34:03 GMT): Bandana 1 (Tue, 03 Aug 2021 13:08:30 GMT): BrunoMartins3 (Tue, 03 Aug 2021 13:48:04 GMT): shemnon (Tue, 03 Aug 2021 14:26:18 GMT): BrunoMartins3 (Tue, 03 Aug 2021 15:42:34 GMT): PedroBranco (Tue, 03 Aug 2021 16:44:32 GMT): BrunoMartins3 (Tue, 03 Aug 2021 16:58:55 GMT): LAYLeangsros (Tue, 03 Aug 2021 17:01:18 GMT): NgugsJohn (Tue, 03 Aug 2021 19:10:18 GMT): NgugsJohn (Tue, 03 Aug 2021 19:10:18 GMT): rud9321 (Tue, 03 Aug 2021 19:32:31 GMT): shemnon (Tue, 03 Aug 2021 19:34:30 GMT): shemnon (Tue, 03 Aug 2021 19:38:02 GMT): alexandratran (Tue, 03 Aug 2021 21:26:48 GMT): lucassaldanha (Tue, 03 Aug 2021 21:32:03 GMT): lucassaldanha (Tue, 03 Aug 2021 21:33:02 GMT): lucassaldanha (Tue, 03 Aug 2021 21:40:45 GMT): shemnon (Tue, 03 Aug 2021 21:53:19 GMT): JfloConsensys (Tue, 03 Aug 2021 23:02:28 GMT): JfloConsensys (Tue, 03 Aug 2021 23:02:29 GMT): JfloConsensys (Tue, 03 Aug 2021 23:02:52 GMT): JfloConsensys (Tue, 03 Aug 2021 23:03:33 GMT): JfloConsensys (Tue, 03 Aug 2021 23:03:35 GMT): macfarla (Tue, 03 Aug 2021 23:21:13 GMT): macfarla (Tue, 03 Aug 2021 23:22:14 GMT): macfarla (Wed, 04 Aug 2021 00:32:19 GMT): macfarla (Wed, 04 Aug 2021 00:32:36 GMT): drinkcoffee (Wed, 04 Aug 2021 00:44:31 GMT): LuisaB 2 (Wed, 04 Aug 2021 05:19:24 GMT): mcourtin (Wed, 04 Aug 2021 07:41:46 GMT): jlochman (Wed, 04 Aug 2021 09:03:13 GMT): pavithra8895 (Wed, 04 Aug 2021 10:42:20 GMT): amitpadmani-awts (Wed, 04 Aug 2021 12:39:19 GMT): SuzanaMaranhao (Wed, 04 Aug 2021 14:32:08 GMT): SuzanaMaranhao (Wed, 04 Aug 2021 14:33:37 GMT): GarySchulte (Wed, 04 Aug 2021 15:43:42 GMT): GarySchulte (Wed, 04 Aug 2021 15:43:56 GMT): atoulme (Wed, 04 Aug 2021 18:26:28 GMT): atoulme (Wed, 04 Aug 2021 18:27:50 GMT): atoulme (Wed, 04 Aug 2021 18:28:26 GMT): atoulme (Wed, 04 Aug 2021 18:29:47 GMT): atoulme (Wed, 04 Aug 2021 18:30:36 GMT): amunoz (Wed, 04 Aug 2021 19:53:23 GMT): macfarla (Thu, 05 Aug 2021 00:44:59 GMT): cmstonecse (Thu, 05 Aug 2021 03:29:31 GMT): joshuafernandes (Thu, 05 Aug 2021 05:46:40 GMT): joshuafernandes (Thu, 05 Aug 2021 05:46:40 GMT): joshuafernandes (Thu, 05 Aug 2021 05:50:02 GMT): joshuafernandes (Thu, 05 Aug 2021 05:50:37 GMT): joshuafernandes (Thu, 05 Aug 2021 05:50:37 GMT): woodymk (Thu, 05 Aug 2021 09:33:03 GMT): sagaracharya (Thu, 05 Aug 2021 10:28:18 GMT): bd (Thu, 05 Aug 2021 10:50:25 GMT): bd (Thu, 05 Aug 2021 10:57:17 GMT): bd (Thu, 05 Aug 2021 10:57:20 GMT): bd (Thu, 05 Aug 2021 10:57:52 GMT): bd (Thu, 05 Aug 2021 10:58:16 GMT): abraxasccs (Thu, 05 Aug 2021 11:02:57 GMT): rsebastiany (Thu, 05 Aug 2021 11:27:48 GMT): hilyds (Thu, 05 Aug 2021 11:45:37 GMT): bd (Thu, 05 Aug 2021 12:05:19 GMT): MithunH 3 (Thu, 05 Aug 2021 12:17:28 GMT): shemnon (Thu, 05 Aug 2021 12:25:15 GMT): bd (Thu, 05 Aug 2021 12:26:30 GMT): bd (Thu, 05 Aug 2021 12:26:36 GMT): jlochman (Thu, 05 Aug 2021 12:49:48 GMT): BrunoMartins3 (Thu, 05 Aug 2021 15:46:23 GMT): SuzanaMaranhao (Thu, 05 Aug 2021 16:17:28 GMT): SuzanaMaranhao (Thu, 05 Aug 2021 16:26:32 GMT): SuzanaMaranhao (Thu, 05 Aug 2021 16:28:22 GMT): SuzanaMaranhao (Thu, 05 Aug 2021 16:29:17 GMT): SuzanaMaranhao (Thu, 05 Aug 2021 16:29:48 GMT): SuzanaMaranhao (Thu, 05 Aug 2021 16:33:42 GMT): merakh (Thu, 05 Aug 2021 17:39:31 GMT): oussema.gharsallaoui (Thu, 05 Aug 2021 17:48:40 GMT): patricioibarrag (Thu, 05 Aug 2021 18:56:28 GMT): atoulme (Fri, 06 Aug 2021 04:53:30 GMT): DanteCullari (Sat, 07 Aug 2021 07:09:31 GMT): wifimarketingsolutions (Sat, 07 Aug 2021 09:34:54 GMT): JesusMG (Sat, 07 Aug 2021 15:42:02 GMT): vova777 (Sat, 07 Aug 2021 18:57:30 GMT): IshanChowdhury (Sun, 08 Aug 2021 10:04:34 GMT): luisabrunhosa (Sun, 08 Aug 2021 21:55:45 GMT): ahmedalsalih (Mon, 09 Aug 2021 03:32:47 GMT): nskishore1993 (Mon, 09 Aug 2021 07:13:15 GMT): anhduck (Mon, 09 Aug 2021 08:41:24 GMT): jlochman (Mon, 09 Aug 2021 09:08:01 GMT): jlochman (Mon, 09 Aug 2021 09:08:01 GMT): Mr.S (Mon, 09 Aug 2021 09:43:29 GMT): shemnon (Mon, 09 Aug 2021 13:47:07 GMT): lucassaldanha (Tue, 10 Aug 2021 02:13:01 GMT): lucassaldanha (Tue, 10 Aug 2021 02:13:02 GMT): atoulme (Tue, 10 Aug 2021 04:12:02 GMT): Amit18 (Tue, 10 Aug 2021 07:00:59 GMT): jlochman (Tue, 10 Aug 2021 08:25:45 GMT): PuneetSivananda (Tue, 10 Aug 2021 11:36:50 GMT): VijayMichalik (Tue, 10 Aug 2021 13:16:17 GMT): VijayMichalik (Tue, 10 Aug 2021 13:16:17 GMT): VijayMichalik (Tue, 10 Aug 2021 13:19:18 GMT): rampatra (Tue, 10 Aug 2021 15:11:36 GMT): nmoskaleva (Tue, 10 Aug 2021 18:56:53 GMT): roshan.joseph (Tue, 10 Aug 2021 22:00:31 GMT): fernandobender (Tue, 10 Aug 2021 22:48:10 GMT): kkaur01 (Tue, 10 Aug 2021 23:48:31 GMT): VikiAnand (Wed, 11 Aug 2021 04:14:57 GMT): pkchai (Wed, 11 Aug 2021 07:44:17 GMT): pkchai (Wed, 11 Aug 2021 07:50:14 GMT): jlochman (Wed, 11 Aug 2021 08:31:32 GMT): cyrilnaves (Wed, 11 Aug 2021 10:04:48 GMT): AndreyShevchenko (Wed, 11 Aug 2021 11:35:09 GMT): rampatra (Wed, 11 Aug 2021 11:44:09 GMT): SandeepVankala (Wed, 11 Aug 2021 12:30:45 GMT): SandeepVankala (Wed, 11 Aug 2021 12:33:57 GMT): SandeepVankala (Wed, 11 Aug 2021 12:41:53 GMT): shemnon (Wed, 11 Aug 2021 14:04:13 GMT): shemnon (Wed, 11 Aug 2021 14:07:34 GMT): shemnon (Wed, 11 Aug 2021 14:07:34 GMT): atoulme (Wed, 11 Aug 2021 19:05:13 GMT): BrianRani (Wed, 11 Aug 2021 19:13:50 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): charlie.dev (Wed, 11 Aug 2021 20:08:09 GMT): bentoumia (Wed, 11 Aug 2021 21:53:59 GMT): GarySchulte (Thu, 12 Aug 2021 02:07:17 GMT): macfarla (Thu, 12 Aug 2021 02:47:18 GMT): manfredmeyer (Thu, 12 Aug 2021 09:21:25 GMT): marcocomo (Thu, 12 Aug 2021 11:16:31 GMT): andreolf1 (Thu, 12 Aug 2021 16:49:11 GMT): SuzanaMaranhao (Thu, 12 Aug 2021 17:03:03 GMT): phalves (Thu, 12 Aug 2021 17:08:11 GMT): shemnon (Thu, 12 Aug 2021 17:45:13 GMT): shemnon (Thu, 12 Aug 2021 17:46:45 GMT): SuzanaMaranhao (Thu, 12 Aug 2021 19:05:03 GMT): shemnon (Thu, 12 Aug 2021 19:24:26 GMT): macfarla (Thu, 12 Aug 2021 23:32:48 GMT): phearaeun (Fri, 13 Aug 2021 02:26:03 GMT): ahmetcakmak606 (Fri, 13 Aug 2021 08:19:02 GMT): ataberkozek (Fri, 13 Aug 2021 08:30:39 GMT): schlagtim (Fri, 13 Aug 2021 10:28:48 GMT): OzodbekXomidbekov (Fri, 13 Aug 2021 12:02:21 GMT): sebaleoperez (Fri, 13 Aug 2021 14:59:08 GMT): sebaleoperez (Fri, 13 Aug 2021 15:07:57 GMT): surya7 (Sat, 14 Aug 2021 14:17:58 GMT): nishantchandla (Sat, 14 Aug 2021 15:02:30 GMT): nits2k (Sun, 15 Aug 2021 02:44:41 GMT): ApoorvSingal (Sun, 15 Aug 2021 17:08:03 GMT): jeaninejue1 (Sun, 15 Aug 2021 21:54:05 GMT): joshuafernandes (Sun, 15 Aug 2021 23:21:29 GMT): sebaleoperez (Sun, 15 Aug 2021 23:36:35 GMT): sebaleoperez (Sun, 15 Aug 2021 23:37:09 GMT): joshuafernandes (Sun, 15 Aug 2021 23:42:59 GMT): joshuafernandes (Sun, 15 Aug 2021 23:44:29 GMT): joshuafernandes (Sun, 15 Aug 2021 23:44:52 GMT): joshuafernandes (Sun, 15 Aug 2021 23:45:08 GMT): sebaleoperez (Sun, 15 Aug 2021 23:49:13 GMT): joshuafernandes (Sun, 15 Aug 2021 23:50:08 GMT): joshuafernandes (Sun, 15 Aug 2021 23:50:25 GMT): sebaleoperez (Sun, 15 Aug 2021 23:50:32 GMT): sebaleoperez (Sun, 15 Aug 2021 23:51:04 GMT): sebaleoperez (Sun, 15 Aug 2021 23:51:05 GMT): joshuafernandes (Sun, 15 Aug 2021 23:51:29 GMT): sebaleoperez (Sun, 15 Aug 2021 23:51:41 GMT): sebaleoperez (Sun, 15 Aug 2021 23:52:16 GMT): sebaleoperez (Sun, 15 Aug 2021 23:52:40 GMT): sebaleoperez (Sun, 15 Aug 2021 23:52:50 GMT): joshuafernandes (Sun, 15 Aug 2021 23:54:45 GMT): sebaleoperez (Sun, 15 Aug 2021 23:55:35 GMT): joshuafernandes (Sun, 15 Aug 2021 23:56:16 GMT): sebaleoperez (Sun, 15 Aug 2021 23:57:35 GMT): joshuafernandes (Sun, 15 Aug 2021 23:59:56 GMT): joshuafernandes (Mon, 16 Aug 2021 00:04:02 GMT): sebaleoperez (Mon, 16 Aug 2021 00:38:14 GMT): sebaleoperez (Mon, 16 Aug 2021 00:38:38 GMT): joshuafernandes (Mon, 16 Aug 2021 01:34:28 GMT): fftkim (Mon, 16 Aug 2021 04:30:18 GMT): esther_pan (Mon, 16 Aug 2021 07:39:18 GMT): mklarmann (Mon, 16 Aug 2021 08:31:19 GMT): aditya.21991 (Mon, 16 Aug 2021 09:43:26 GMT): luandt1809 (Tue, 17 Aug 2021 04:08:57 GMT): N_Mizuki (Tue, 17 Aug 2021 05:12:47 GMT): hoily.dev (Tue, 17 Aug 2021 07:09:27 GMT): atodorov_kiwi (Tue, 17 Aug 2021 07:53:28 GMT): GuoshenKuang (Tue, 17 Aug 2021 09:14:36 GMT): samie (Tue, 17 Aug 2021 11:18:37 GMT): KevinKerkhoven (Tue, 17 Aug 2021 11:24:11 GMT): bharadwajambati172 (Tue, 17 Aug 2021 12:19:54 GMT): GereonHinz (Tue, 17 Aug 2021 13:34:45 GMT): HamzaHijazi (Tue, 17 Aug 2021 17:14:28 GMT): kevinhill (Tue, 17 Aug 2021 19:55:51 GMT): EmcLab (Tue, 17 Aug 2021 22:25:41 GMT): lucassaldanha (Wed, 18 Aug 2021 07:02:31 GMT): BouXez (Wed, 18 Aug 2021 09:35:01 GMT): EmcLab (Wed, 18 Aug 2021 17:04:35 GMT): bsustudent (Wed, 18 Aug 2021 19:39:15 GMT): sudng (Wed, 18 Aug 2021 21:49:59 GMT): sudng (Wed, 18 Aug 2021 21:51:56 GMT): shemnon (Wed, 18 Aug 2021 22:10:16 GMT): shemnon (Wed, 18 Aug 2021 22:10:24 GMT): lucassaldanha (Thu, 19 Aug 2021 00:36:16 GMT): lucassaldanha (Thu, 19 Aug 2021 00:36:27 GMT): hiroyukihonda (Thu, 19 Aug 2021 01:08:28 GMT): HUOH 1 (Thu, 19 Aug 2021 02:15:59 GMT): aravindrajck (Thu, 19 Aug 2021 07:51:51 GMT): kaveri (Thu, 19 Aug 2021 08:28:34 GMT): tuyendev (Thu, 19 Aug 2021 09:48:01 GMT): sudng (Thu, 19 Aug 2021 10:35:24 GMT): amitpadmani-awts (Thu, 19 Aug 2021 10:36:35 GMT): shemnon (Thu, 19 Aug 2021 12:51:33 GMT): knagware9 (Thu, 19 Aug 2021 13:06:37 GMT): VijayMichalik (Thu, 19 Aug 2021 14:00:37 GMT): VijayMichalik (Thu, 19 Aug 2021 14:01:01 GMT): DianaTique (Thu, 19 Aug 2021 17:36:54 GMT): mona15 (Thu, 19 Aug 2021 22:12:40 GMT): huangxiaoqi (Fri, 20 Aug 2021 01:48:24 GMT): huangxiaoqi (Fri, 20 Aug 2021 01:49:50 GMT): lucassaldanha (Fri, 20 Aug 2021 02:34:40 GMT): huangxiaoqi (Fri, 20 Aug 2021 02:54:30 GMT): huangxiaoqi (Fri, 20 Aug 2021 02:54:34 GMT): AnuragKumar10 (Fri, 20 Aug 2021 04:08:24 GMT): MatanNahmani (Fri, 20 Aug 2021 05:06:58 GMT): norswap (Fri, 20 Aug 2021 08:53:23 GMT): yigemaser (Fri, 20 Aug 2021 10:42:58 GMT): hishmad (Fri, 20 Aug 2021 11:10:38 GMT): bsu (Fri, 20 Aug 2021 11:45:15 GMT): w1g0 (Fri, 20 Aug 2021 13:28:40 GMT): Crispin-Sharkaroo (Fri, 20 Aug 2021 18:04:34 GMT): elman27 (Fri, 20 Aug 2021 19:11:11 GMT): sudng (Sun, 22 Aug 2021 13:14:59 GMT): yogesh.yadav (Sun, 22 Aug 2021 17:12:21 GMT): shemnon (Sun, 22 Aug 2021 22:04:12 GMT): mikexiour (Mon, 23 Aug 2021 06:39:14 GMT): Anasalamin (Mon, 23 Aug 2021 07:00:24 GMT): malarflower23 (Mon, 23 Aug 2021 07:37:24 GMT): cinhtw (Mon, 23 Aug 2021 09:45:20 GMT): wonderwoman11 (Mon, 23 Aug 2021 12:40:04 GMT): ffendt (Mon, 23 Aug 2021 13:02:02 GMT): svitzebec (Mon, 23 Aug 2021 13:43:53 GMT): biswa1 (Mon, 23 Aug 2021 18:24:07 GMT): no_one13 (Mon, 23 Aug 2021 20:13:35 GMT): EmcLab (Tue, 24 Aug 2021 02:30:53 GMT): EmcLab (Tue, 24 Aug 2021 02:30:56 GMT): EmcLab (Tue, 24 Aug 2021 02:32:04 GMT): atoulme (Tue, 24 Aug 2021 04:22:28 GMT): EmcLab (Tue, 24 Aug 2021 04:28:57 GMT): Oliver_Tahir (Tue, 24 Aug 2021 05:02:40 GMT): Matannah 1 (Tue, 24 Aug 2021 05:17:41 GMT): mirgaon (Tue, 24 Aug 2021 06:46:36 GMT): atoulme (Tue, 24 Aug 2021 06:52:28 GMT): tinkerbell (Tue, 24 Aug 2021 07:26:58 GMT): Jianglh (Tue, 24 Aug 2021 08:50:40 GMT): hfjohann (Tue, 24 Aug 2021 08:55:47 GMT): RuiYang (Tue, 24 Aug 2021 10:03:03 GMT): deathgod86 (Tue, 24 Aug 2021 10:42:31 GMT): fdiarra (Tue, 24 Aug 2021 11:04:45 GMT): drewmarshburn (Tue, 24 Aug 2021 12:00:05 GMT): kirstygoodary (Tue, 24 Aug 2021 15:25:48 GMT): EmcLab (Tue, 24 Aug 2021 17:58:37 GMT): EmcLab (Tue, 24 Aug 2021 17:58:56 GMT): EmcLab (Tue, 24 Aug 2021 18:07:00 GMT): anuragsingh (Tue, 24 Aug 2021 18:31:42 GMT): anuragsingh (Tue, 24 Aug 2021 18:42:46 GMT): EmcLab (Tue, 24 Aug 2021 19:46:24 GMT): jjordan-quantum (Tue, 24 Aug 2021 19:49:38 GMT): j-s (Tue, 24 Aug 2021 20:46:22 GMT): atoulme (Tue, 24 Aug 2021 21:56:11 GMT): prathampatil8119 (Wed, 25 Aug 2021 04:24:32 GMT): knagware9 (Wed, 25 Aug 2021 04:38:46 GMT): knagware9 (Wed, 25 Aug 2021 04:39:13 GMT): knagware9 (Wed, 25 Aug 2021 04:40:16 GMT): VisheshRaj (Wed, 25 Aug 2021 07:37:36 GMT): AlkaidCC (Wed, 25 Aug 2021 10:11:46 GMT): huzhiyang (Wed, 25 Aug 2021 12:29:30 GMT): VijayMichalik (Wed, 25 Aug 2021 14:13:36 GMT): balaji7777 (Wed, 25 Aug 2021 15:22:33 GMT): ShubhamUmate (Wed, 25 Aug 2021 17:01:13 GMT): NimiCorp (Wed, 25 Aug 2021 20:55:19 GMT): EmcLab (Wed, 25 Aug 2021 21:55:36 GMT): EmcLab (Wed, 25 Aug 2021 21:56:07 GMT): atoulme (Wed, 25 Aug 2021 22:02:31 GMT): shemnon (Wed, 25 Aug 2021 22:45:19 GMT): shemnon (Wed, 25 Aug 2021 22:45:50 GMT): shemnon (Wed, 25 Aug 2021 22:45:58 GMT): shemnon (Wed, 25 Aug 2021 22:47:05 GMT): macfarla (Thu, 26 Aug 2021 00:36:20 GMT): macfarla (Thu, 26 Aug 2021 00:43:47 GMT): macfarla (Thu, 26 Aug 2021 00:44:30 GMT): EmcLab (Thu, 26 Aug 2021 03:58:55 GMT): EmcLab (Thu, 26 Aug 2021 04:01:03 GMT): EmcLab (Thu, 26 Aug 2021 04:02:34 GMT): EmcLab (Thu, 26 Aug 2021 04:02:53 GMT): EmcLab (Thu, 26 Aug 2021 04:04:13 GMT): EmcLab (Thu, 26 Aug 2021 04:48:56 GMT): EmcLab (Thu, 26 Aug 2021 04:50:08 GMT): ashishspg (Thu, 26 Aug 2021 05:22:22 GMT): AskarAlmabek (Thu, 26 Aug 2021 06:02:22 GMT): EmcLab (Thu, 26 Aug 2021 06:10:49 GMT): EmcLab (Thu, 26 Aug 2021 06:11:00 GMT): Hasib_Linux (Thu, 26 Aug 2021 07:28:01 GMT): JongHyunPark (Thu, 26 Aug 2021 08:38:03 GMT): SatyamGupta1 (Thu, 26 Aug 2021 13:56:49 GMT): ElhamShammar (Thu, 26 Aug 2021 15:30:45 GMT): EmcLab (Thu, 26 Aug 2021 19:30:32 GMT): shemnon (Thu, 26 Aug 2021 19:36:17 GMT): EmcLab (Thu, 26 Aug 2021 22:12:33 GMT): atoulme (Thu, 26 Aug 2021 23:25:02 GMT): macfarla (Fri, 27 Aug 2021 00:01:02 GMT): atoulme (Fri, 27 Aug 2021 00:01:32 GMT): atoulme (Fri, 27 Aug 2021 00:01:36 GMT): macfarla (Fri, 27 Aug 2021 00:01:57 GMT): atoulme (Fri, 27 Aug 2021 00:02:40 GMT): macfarla (Fri, 27 Aug 2021 02:11:29 GMT): macfarla (Fri, 27 Aug 2021 02:12:33 GMT): macfarla (Fri, 27 Aug 2021 02:13:28 GMT): macfarla (Fri, 27 Aug 2021 02:35:56 GMT): macfarla (Fri, 27 Aug 2021 02:36:45 GMT): Princekumar4812 (Fri, 27 Aug 2021 03:02:21 GMT): bhuwanupadhyay (Fri, 27 Aug 2021 06:37:11 GMT): mohsinanees (Fri, 27 Aug 2021 09:51:06 GMT): sashankh (Fri, 27 Aug 2021 18:58:04 GMT): ShafiqIslam (Fri, 27 Aug 2021 22:34:38 GMT): thonexin (Sat, 28 Aug 2021 04:41:22 GMT): TrishPat (Sat, 28 Aug 2021 07:55:35 GMT): jk-tonycui (Sun, 29 Aug 2021 02:14:52 GMT): samson9993 (Sun, 29 Aug 2021 08:19:53 GMT): EmcLab (Sun, 29 Aug 2021 21:26:41 GMT): EmcLab (Sun, 29 Aug 2021 21:26:45 GMT): shemnon (Sun, 29 Aug 2021 22:11:04 GMT): EmcLab (Sun, 29 Aug 2021 22:45:35 GMT): EmcLab (Sun, 29 Aug 2021 22:47:02 GMT): EmcLab (Sun, 29 Aug 2021 22:47:41 GMT): EmcLab (Sun, 29 Aug 2021 22:48:25 GMT): macfarla (Sun, 29 Aug 2021 22:50:24 GMT): macfarla (Sun, 29 Aug 2021 22:50:24 GMT): macfarla (Sun, 29 Aug 2021 22:51:36 GMT): macfarla (Sun, 29 Aug 2021 23:08:54 GMT): EmcLab (Sun, 29 Aug 2021 23:15:53 GMT): EmcLab (Sun, 29 Aug 2021 23:17:06 GMT): macfarla (Sun, 29 Aug 2021 23:31:41 GMT): shemnon (Mon, 30 Aug 2021 01:01:40 GMT): maurosala (Mon, 30 Aug 2021 07:09:49 GMT): dsam82 (Mon, 30 Aug 2021 08:53:39 GMT): rroman 1 (Mon, 30 Aug 2021 09:12:34 GMT): rroman 1 (Mon, 30 Aug 2021 09:23:41 GMT): peppelinux (Mon, 30 Aug 2021 14:04:26 GMT): hckkid (Mon, 30 Aug 2021 17:20:08 GMT): hckkid (Mon, 30 Aug 2021 17:20:08 GMT): hckkid (Mon, 30 Aug 2021 17:20:51 GMT): shemnon (Mon, 30 Aug 2021 18:16:18 GMT): hckkid (Mon, 30 Aug 2021 18:17:48 GMT): hckkid (Mon, 30 Aug 2021 18:18:21 GMT): hckkid (Mon, 30 Aug 2021 18:18:47 GMT): shemnon (Mon, 30 Aug 2021 18:18:49 GMT): hckkid (Mon, 30 Aug 2021 18:20:54 GMT): hckkid (Mon, 30 Aug 2021 18:21:04 GMT): shemnon (Mon, 30 Aug 2021 18:22:14 GMT): hckkid (Mon, 30 Aug 2021 18:23:08 GMT): shemnon (Mon, 30 Aug 2021 18:24:38 GMT): hckkid (Mon, 30 Aug 2021 18:25:44 GMT): shemnon (Mon, 30 Aug 2021 18:34:19 GMT): shemnon (Mon, 30 Aug 2021 18:34:34 GMT): shemnon (Mon, 30 Aug 2021 18:34:34 GMT): hckkid (Mon, 30 Aug 2021 18:35:14 GMT): hckkid (Mon, 30 Aug 2021 18:35:32 GMT): shemnon (Mon, 30 Aug 2021 18:37:07 GMT): hckkid (Mon, 30 Aug 2021 19:56:03 GMT): shemnon (Mon, 30 Aug 2021 19:56:38 GMT): hckkid (Mon, 30 Aug 2021 19:56:41 GMT): shemnon (Mon, 30 Aug 2021 19:56:53 GMT): hckkid (Mon, 30 Aug 2021 19:59:20 GMT): hckkid (Mon, 30 Aug 2021 19:59:26 GMT): hkiridera (Tue, 31 Aug 2021 00:51:23 GMT): macfarla (Tue, 31 Aug 2021 01:25:49 GMT): macfarla (Tue, 31 Aug 2021 02:16:24 GMT): macfarla (Tue, 31 Aug 2021 02:16:47 GMT): EmcLab (Tue, 31 Aug 2021 04:22:01 GMT): EmcLab (Tue, 31 Aug 2021 04:22:03 GMT): EmcLab (Tue, 31 Aug 2021 04:28:44 GMT): WillimJames (Tue, 31 Aug 2021 05:56:25 GMT): lucassaldanha (Tue, 31 Aug 2021 06:50:11 GMT): macfarla (Tue, 31 Aug 2021 07:16:18 GMT): hkiridera (Tue, 31 Aug 2021 07:30:25 GMT): pipscobie (Tue, 31 Aug 2021 11:16:04 GMT): giorgiomecca (Tue, 31 Aug 2021 12:31:16 GMT): giorgiomecca (Tue, 31 Aug 2021 12:32:16 GMT): giorgiomecca (Tue, 31 Aug 2021 14:19:23 GMT): JJeffrey (Tue, 31 Aug 2021 14:35:26 GMT): VijayMichalik (Tue, 31 Aug 2021 15:31:26 GMT): VijayMichalik (Tue, 31 Aug 2021 15:37:02 GMT): birjoossh (Wed, 01 Sep 2021 00:53:18 GMT): EmcLab (Wed, 01 Sep 2021 06:12:11 GMT): EmcLab (Wed, 01 Sep 2021 06:13:53 GMT): EmcLab (Wed, 01 Sep 2021 06:13:59 GMT): EmcLab (Wed, 01 Sep 2021 06:14:17 GMT): EmcLab (Wed, 01 Sep 2021 06:15:28 GMT): EmcLab (Wed, 01 Sep 2021 06:18:02 GMT): clemhumb (Wed, 01 Sep 2021 06:20:01 GMT): roviso (Wed, 01 Sep 2021 07:05:06 GMT): antonydenyer (Wed, 01 Sep 2021 07:29:16 GMT): sunchiye (Wed, 01 Sep 2021 07:46:34 GMT): ohthemboats (Wed, 01 Sep 2021 08:03:49 GMT): giorgiomecca (Wed, 01 Sep 2021 08:12:15 GMT): MahaQahtani (Wed, 01 Sep 2021 08:38:23 GMT): antonydenyer (Wed, 01 Sep 2021 08:48:54 GMT): giorgiomecca (Wed, 01 Sep 2021 09:09:12 GMT): antonydenyer (Wed, 01 Sep 2021 09:10:36 GMT): antonydenyer (Wed, 01 Sep 2021 09:20:43 GMT): antonydenyer (Wed, 01 Sep 2021 09:21:22 GMT): antonydenyer (Wed, 01 Sep 2021 09:21:22 GMT): giorgiomecca (Wed, 01 Sep 2021 10:13:34 GMT): SheharYar (Wed, 01 Sep 2021 20:43:21 GMT): SheharYar (Wed, 01 Sep 2021 20:49:39 GMT): SheharYar (Wed, 01 Sep 2021 20:54:57 GMT): Harsh_Vekariya (Thu, 02 Sep 2021 05:31:49 GMT): ShekharGuptaEN (Thu, 02 Sep 2021 05:47:21 GMT): martinmaurer (Thu, 02 Sep 2021 06:11:09 GMT): sukrutsathaye (Thu, 02 Sep 2021 11:08:51 GMT): sukrutsathaye (Thu, 02 Sep 2021 11:09:19 GMT): ArchitaDasgupta (Thu, 02 Sep 2021 11:45:25 GMT): nikolas (Thu, 02 Sep 2021 13:32:17 GMT): smyyihvn (Thu, 02 Sep 2021 15:08:15 GMT): peter_somogyvari (Thu, 02 Sep 2021 19:10:19 GMT): ramu450 (Fri, 03 Sep 2021 05:12:52 GMT): Omen 8 (Fri, 03 Sep 2021 05:34:42 GMT): giorgiomecca (Fri, 03 Sep 2021 09:48:13 GMT): AdityaGupta150 (Fri, 03 Sep 2021 12:15:59 GMT): anil8753 (Fri, 03 Sep 2021 15:21:54 GMT): leebradley (Fri, 03 Sep 2021 15:42:06 GMT): FoamCactus (Fri, 03 Sep 2021 15:54:09 GMT): atoulme (Fri, 03 Sep 2021 16:31:02 GMT): atoulme (Fri, 03 Sep 2021 16:31:19 GMT): alagiesellu (Fri, 03 Sep 2021 20:27:03 GMT): rlnrajesh (Sat, 04 Sep 2021 03:27:10 GMT): frank-student (Sat, 04 Sep 2021 03:41:46 GMT): kutya (Sat, 04 Sep 2021 09:47:06 GMT): MiryangJung (Sat, 04 Sep 2021 14:41:21 GMT): pseudoyu (Sat, 04 Sep 2021 15:10:22 GMT): rohitcha (Sun, 05 Sep 2021 09:05:42 GMT): rohitcha (Sun, 05 Sep 2021 09:06:48 GMT): shemnon (Sun, 05 Sep 2021 14:01:23 GMT): RahulRajBarnwal (Sun, 05 Sep 2021 16:21:29 GMT): bhathiya (Sun, 05 Sep 2021 17:58:03 GMT): VijayMichalik (Sun, 05 Sep 2021 18:37:22 GMT): VijayMichalik (Sun, 05 Sep 2021 18:44:58 GMT): VijayMichalik (Sun, 05 Sep 2021 18:46:21 GMT): VijayMichalik (Sun, 05 Sep 2021 18:46:35 GMT): scnale (Sun, 05 Sep 2021 23:39:03 GMT): taccatisid (Mon, 06 Sep 2021 03:30:43 GMT): BovTricera (Mon, 06 Sep 2021 04:11:43 GMT): rohitcha (Mon, 06 Sep 2021 04:49:16 GMT): XINGYUZHU (Mon, 06 Sep 2021 06:44:20 GMT): ShaharinAhmed (Mon, 06 Sep 2021 09:52:57 GMT): iffathossain (Mon, 06 Sep 2021 09:53:01 GMT): ShaharinAhmed (Mon, 06 Sep 2021 09:54:22 GMT): omerabbas (Mon, 06 Sep 2021 11:09:05 GMT): Junior22 (Mon, 06 Sep 2021 11:48:05 GMT): VijayMichalik (Mon, 06 Sep 2021 19:43:10 GMT): peter_somogyvari (Mon, 06 Sep 2021 23:27:02 GMT): michael1203 (Tue, 07 Sep 2021 01:46:39 GMT): sasikanuri (Tue, 07 Sep 2021 03:15:10 GMT): ShaharinAhmed (Tue, 07 Sep 2021 03:44:48 GMT): VijayMichalik (Tue, 07 Sep 2021 09:25:21 GMT): MarcoOliveira (Tue, 07 Sep 2021 10:06:37 GMT): regiseloi (Tue, 07 Sep 2021 18:25:34 GMT): ShaharinAhmed (Wed, 08 Sep 2021 02:52:42 GMT): ShaharinAhmed (Wed, 08 Sep 2021 03:01:21 GMT): MarcoOliveira (Wed, 08 Sep 2021 08:10:50 GMT): ShaharinAhmed (Wed, 08 Sep 2021 09:09:30 GMT): BGerb27 (Wed, 08 Sep 2021 11:29:49 GMT): bfrech (Wed, 08 Sep 2021 12:00:08 GMT): fangxin (Wed, 08 Sep 2021 13:12:44 GMT): danilp (Wed, 08 Sep 2021 15:04:09 GMT): VijayMichalik (Wed, 08 Sep 2021 16:16:02 GMT): jan-law (Wed, 08 Sep 2021 21:36:36 GMT): EmcLab (Wed, 08 Sep 2021 21:46:50 GMT): EmcLab (Wed, 08 Sep 2021 21:49:00 GMT): Jason.Leach (Wed, 08 Sep 2021 22:06:04 GMT): Kharvok (Thu, 09 Sep 2021 00:43:08 GMT): subashnair (Thu, 09 Sep 2021 05:21:41 GMT): gseront (Thu, 09 Sep 2021 08:19:42 GMT): mianhammad (Thu, 09 Sep 2021 08:47:42 GMT): hkiridera (Thu, 09 Sep 2021 09:04:21 GMT): mianhammad (Thu, 09 Sep 2021 09:08:09 GMT): hkiridera (Thu, 09 Sep 2021 09:32:47 GMT): mianhammad (Thu, 09 Sep 2021 09:40:24 GMT): mianhammad (Thu, 09 Sep 2021 09:48:36 GMT): akankshadixit (Thu, 09 Sep 2021 10:31:26 GMT): sfukazu (Thu, 09 Sep 2021 22:51:38 GMT): justiny (Fri, 10 Sep 2021 01:27:50 GMT): Fang.Fang (Fri, 10 Sep 2021 02:13:31 GMT): LakshmanPalli (Fri, 10 Sep 2021 15:40:44 GMT): ShaharinAhmed (Fri, 10 Sep 2021 16:08:22 GMT): ricc.zappoli (Fri, 10 Sep 2021 16:16:02 GMT): Charly88554 (Fri, 10 Sep 2021 20:41:02 GMT): gameprofits (Fri, 10 Sep 2021 22:17:35 GMT): gameprofits (Fri, 10 Sep 2021 22:17:50 GMT): gameprofits (Fri, 10 Sep 2021 22:18:23 GMT): BlockchainTrainer (Sat, 11 Sep 2021 02:58:26 GMT): Pankil_Patel (Sat, 11 Sep 2021 06:27:52 GMT): Pankil_Patel (Sat, 11 Sep 2021 06:32:25 GMT): Pankil_Patel (Sat, 11 Sep 2021 14:52:10 GMT): Pankil_Patel (Sat, 11 Sep 2021 14:52:10 GMT): fernandosilvap96 (Sun, 12 Sep 2021 00:14:48 GMT): HarithKza (Sun, 12 Sep 2021 03:47:23 GMT): IbrahimBroachwala (Sun, 12 Sep 2021 11:28:00 GMT): macfarla (Mon, 13 Sep 2021 00:57:42 GMT): Tkonno (Mon, 13 Sep 2021 00:58:08 GMT): macfarla (Mon, 13 Sep 2021 01:03:05 GMT): macfarla (Mon, 13 Sep 2021 01:07:22 GMT): macfarla (Mon, 13 Sep 2021 01:10:04 GMT): takehypotenuses (Mon, 13 Sep 2021 01:12:41 GMT): ShaharinAhmed (Mon, 13 Sep 2021 02:08:00 GMT): rsayon (Mon, 13 Sep 2021 04:05:56 GMT): rsayon (Mon, 13 Sep 2021 04:07:04 GMT): mianhammad (Mon, 13 Sep 2021 06:35:32 GMT): rsayon (Mon, 13 Sep 2021 07:56:36 GMT): vlaca (Mon, 13 Sep 2021 08:56:34 GMT): siladu (Mon, 13 Sep 2021 12:45:23 GMT): Pankil_Patel (Mon, 13 Sep 2021 15:15:02 GMT): SargisDudaklyan (Mon, 13 Sep 2021 17:44:12 GMT): EmcLab (Mon, 13 Sep 2021 18:36:05 GMT): mukulverm4 (Mon, 13 Sep 2021 18:50:43 GMT): macfarla (Tue, 14 Sep 2021 01:54:52 GMT): macfarla (Tue, 14 Sep 2021 01:56:19 GMT): macfarla (Tue, 14 Sep 2021 01:57:50 GMT): macfarla (Tue, 14 Sep 2021 02:02:51 GMT): macfarla (Tue, 14 Sep 2021 02:03:15 GMT): macfarla (Tue, 14 Sep 2021 02:05:09 GMT): ShaharinAhmed (Tue, 14 Sep 2021 03:20:30 GMT): macfarla (Tue, 14 Sep 2021 03:52:59 GMT): macfarla (Tue, 14 Sep 2021 03:57:58 GMT): ajitspendse (Tue, 14 Sep 2021 04:03:56 GMT): ShaharinAhmed (Tue, 14 Sep 2021 05:21:46 GMT): ShaharinAhmed (Tue, 14 Sep 2021 05:25:45 GMT): macfarla (Tue, 14 Sep 2021 05:45:55 GMT): hkiridera (Tue, 14 Sep 2021 06:40:01 GMT): jframe (Tue, 14 Sep 2021 06:46:28 GMT): macfarla (Tue, 14 Sep 2021 06:55:09 GMT): ShaharinAhmed (Tue, 14 Sep 2021 06:59:52 GMT): ShaharinAhmed (Tue, 14 Sep 2021 06:59:52 GMT): hkiridera (Tue, 14 Sep 2021 07:07:03 GMT): VijayMichalik (Tue, 14 Sep 2021 08:00:18 GMT): fabio.henriques (Tue, 14 Sep 2021 08:33:39 GMT): sanket1211 (Tue, 14 Sep 2021 10:34:43 GMT): gfunchal (Tue, 14 Sep 2021 12:28:33 GMT): blessingkp (Tue, 14 Sep 2021 17:15:16 GMT): hjpn (Tue, 14 Sep 2021 19:10:07 GMT): hjpn (Tue, 14 Sep 2021 19:16:04 GMT): hjpn (Tue, 14 Sep 2021 19:16:50 GMT): hjpn (Tue, 14 Sep 2021 19:17:57 GMT): macfarla (Tue, 14 Sep 2021 23:02:56 GMT): hkiridera (Wed, 15 Sep 2021 00:55:54 GMT): asif123 (Wed, 15 Sep 2021 02:24:24 GMT): claracavalcante (Wed, 15 Sep 2021 07:46:45 GMT): claracavalcante (Wed, 15 Sep 2021 07:51:29 GMT): fkossiaras (Wed, 15 Sep 2021 09:27:00 GMT): grace.hartley (Wed, 15 Sep 2021 13:03:25 GMT): moisesjaramillo (Wed, 15 Sep 2021 16:28:31 GMT): bobbh (Wed, 15 Sep 2021 16:57:52 GMT): macfarla (Wed, 15 Sep 2021 23:01:05 GMT): macfarla (Wed, 15 Sep 2021 23:03:44 GMT): macfarla (Wed, 15 Sep 2021 23:06:32 GMT): macfarla (Wed, 15 Sep 2021 23:06:38 GMT): CherryHsu (Thu, 16 Sep 2021 02:55:52 GMT): knagware9 (Thu, 16 Sep 2021 04:47:35 GMT): knagware9 (Thu, 16 Sep 2021 04:47:59 GMT): mnill2 (Thu, 16 Sep 2021 06:21:38 GMT): kingstenzzz (Thu, 16 Sep 2021 07:04:06 GMT): Minnu (Thu, 16 Sep 2021 07:53:42 GMT): Minnu (Thu, 16 Sep 2021 07:54:27 GMT): hjpn (Thu, 16 Sep 2021 09:05:32 GMT): hjpn (Thu, 16 Sep 2021 09:06:13 GMT): hjpn (Thu, 16 Sep 2021 09:06:44 GMT): hjpn (Thu, 16 Sep 2021 09:07:39 GMT): grace.hartley (Thu, 16 Sep 2021 14:14:15 GMT): hjpn (Thu, 16 Sep 2021 14:59:18 GMT): hjpn (Thu, 16 Sep 2021 14:59:36 GMT): hjpn (Thu, 16 Sep 2021 14:59:36 GMT): hjpn (Thu, 16 Sep 2021 14:59:36 GMT): smbkd6 (Thu, 16 Sep 2021 15:00:06 GMT): smbkd6 (Thu, 16 Sep 2021 15:08:11 GMT): smbkd6 (Thu, 16 Sep 2021 15:08:32 GMT): danilp (Thu, 16 Sep 2021 15:14:38 GMT): danilp (Thu, 16 Sep 2021 15:14:38 GMT): fabio.henriques (Thu, 16 Sep 2021 15:42:48 GMT): hjpn (Thu, 16 Sep 2021 16:20:43 GMT): hjpn (Thu, 16 Sep 2021 16:35:41 GMT): hjpn (Thu, 16 Sep 2021 16:35:45 GMT): hjpn (Thu, 16 Sep 2021 16:37:11 GMT): hjpn (Thu, 16 Sep 2021 16:37:11 GMT): hjpn (Thu, 16 Sep 2021 16:37:11 GMT): regiseloi (Thu, 16 Sep 2021 17:56:55 GMT): aaronrbg (Thu, 16 Sep 2021 18:28:04 GMT): mlohr (Fri, 17 Sep 2021 07:21:54 GMT): mlohr (Fri, 17 Sep 2021 07:21:54 GMT): atoulme (Fri, 17 Sep 2021 07:24:31 GMT): atoulme (Fri, 17 Sep 2021 07:24:37 GMT): mlohr (Fri, 17 Sep 2021 07:27:25 GMT): mlohr (Fri, 17 Sep 2021 07:28:08 GMT): atoulme (Fri, 17 Sep 2021 07:29:54 GMT): atoulme (Fri, 17 Sep 2021 07:30:13 GMT): mlohr (Fri, 17 Sep 2021 07:30:24 GMT): atoulme (Fri, 17 Sep 2021 07:31:00 GMT): atoulme (Fri, 17 Sep 2021 07:31:10 GMT): atoulme (Fri, 17 Sep 2021 07:31:34 GMT): mlohr (Fri, 17 Sep 2021 07:41:14 GMT): mlohr (Fri, 17 Sep 2021 07:42:23 GMT): vberg 2 (Fri, 17 Sep 2021 08:48:16 GMT): vberg 2 (Fri, 17 Sep 2021 08:51:43 GMT): sharukh (Fri, 17 Sep 2021 11:21:58 GMT): cbfh (Fri, 17 Sep 2021 11:54:53 GMT): OscarTBallester (Fri, 17 Sep 2021 13:07:44 GMT): shemnon (Fri, 17 Sep 2021 14:13:20 GMT): vberg 2 (Fri, 17 Sep 2021 14:14:29 GMT): MullaAlmas (Fri, 17 Sep 2021 14:41:12 GMT): chikai (Fri, 17 Sep 2021 14:57:07 GMT): atoulme (Fri, 17 Sep 2021 15:20:15 GMT): atoulme (Fri, 17 Sep 2021 15:20:54 GMT): javieronishi (Fri, 17 Sep 2021 16:08:32 GMT): hckkid (Fri, 17 Sep 2021 16:31:35 GMT): atoulme (Fri, 17 Sep 2021 16:32:00 GMT): mollayii (Fri, 17 Sep 2021 16:32:04 GMT): atoulme (Fri, 17 Sep 2021 16:32:30 GMT): atoulme (Fri, 17 Sep 2021 16:32:44 GMT): hckkid (Fri, 17 Sep 2021 16:34:55 GMT): atoulme (Fri, 17 Sep 2021 16:36:10 GMT): atoulme (Fri, 17 Sep 2021 16:36:32 GMT): hckkid (Fri, 17 Sep 2021 16:37:03 GMT): hckkid (Fri, 17 Sep 2021 16:37:37 GMT): atoulme (Fri, 17 Sep 2021 16:37:55 GMT): atoulme (Fri, 17 Sep 2021 16:38:09 GMT): hckkid (Fri, 17 Sep 2021 16:38:33 GMT): atoulme (Fri, 17 Sep 2021 16:38:42 GMT): hckkid (Fri, 17 Sep 2021 16:39:18 GMT): atoulme (Fri, 17 Sep 2021 16:39:49 GMT): atoulme (Fri, 17 Sep 2021 16:39:59 GMT): atoulme (Fri, 17 Sep 2021 16:40:06 GMT): hckkid (Fri, 17 Sep 2021 16:40:22 GMT): shemnon (Fri, 17 Sep 2021 16:57:46 GMT): sanskarkhare (Fri, 17 Sep 2021 18:08:04 GMT): atoulme (Fri, 17 Sep 2021 18:53:57 GMT): Clippo 2 (Sat, 18 Sep 2021 04:26:19 GMT): Nufail (Sat, 18 Sep 2021 06:00:23 GMT): handao (Sat, 18 Sep 2021 06:30:13 GMT): iros75 (Sat, 18 Sep 2021 20:37:23 GMT): bardia (Sun, 19 Sep 2021 05:39:03 GMT): littlemouse (Sun, 19 Sep 2021 05:55:21 GMT): MrChainBlockz (Sun, 19 Sep 2021 06:52:42 GMT): arrey_damn (Sun, 19 Sep 2021 09:32:25 GMT): AmshumaanVarma (Sun, 19 Sep 2021 13:14:41 GMT): macfarla (Mon, 20 Sep 2021 01:06:13 GMT): macfarla (Mon, 20 Sep 2021 01:08:37 GMT): macfarla (Mon, 20 Sep 2021 01:11:03 GMT): macfarla (Mon, 20 Sep 2021 01:21:14 GMT): jcarlosusa (Mon, 20 Sep 2021 02:47:47 GMT): macfarla (Mon, 20 Sep 2021 07:13:24 GMT): VijayMichalik (Mon, 20 Sep 2021 10:21:43 GMT): cattanep (Mon, 20 Sep 2021 12:44:02 GMT): Noc0r (Mon, 20 Sep 2021 12:51:47 GMT): hjpn (Mon, 20 Sep 2021 14:50:03 GMT): chesta0703 (Mon, 20 Sep 2021 18:09:10 GMT): gravin10 (Mon, 20 Sep 2021 19:36:12 GMT): Zarquan314 (Tue, 21 Sep 2021 05:23:02 GMT): F4NES (Tue, 21 Sep 2021 08:16:36 GMT): TejaBanton (Tue, 21 Sep 2021 13:50:19 GMT): hiromaily (Tue, 21 Sep 2021 15:10:46 GMT): JonathanScialpi (Tue, 21 Sep 2021 17:42:48 GMT): scaraclette (Tue, 21 Sep 2021 21:43:44 GMT): iffathossain (Wed, 22 Sep 2021 03:30:56 GMT): iffathossain (Wed, 22 Sep 2021 03:30:56 GMT): a-i-to (Wed, 22 Sep 2021 06:19:38 GMT): kongwu 2 (Wed, 22 Sep 2021 08:50:33 GMT): bardia (Wed, 22 Sep 2021 09:08:00 GMT): kosarlatif (Wed, 22 Sep 2021 10:26:27 GMT): oding (Wed, 22 Sep 2021 14:21:00 GMT): CollinMeese (Wed, 22 Sep 2021 16:16:02 GMT): Andre_Augusto (Wed, 22 Sep 2021 16:27:21 GMT): PowellAndy (Wed, 22 Sep 2021 17:31:30 GMT): SamKrew (Wed, 22 Sep 2021 17:52:56 GMT): EmcLab (Wed, 22 Sep 2021 20:18:38 GMT): EmcLab (Wed, 22 Sep 2021 20:18:42 GMT): EmcLab (Wed, 22 Sep 2021 20:20:21 GMT): EmcLab (Wed, 22 Sep 2021 23:59:53 GMT): EmcLab (Wed, 22 Sep 2021 23:59:56 GMT): ssmxmss (Thu, 23 Sep 2021 07:52:49 GMT): Rafailk (Thu, 23 Sep 2021 08:00:03 GMT): vonpmg (Thu, 23 Sep 2021 08:31:17 GMT): GiovanniZanol (Thu, 23 Sep 2021 12:41:37 GMT): GiovanniZanol (Thu, 23 Sep 2021 12:43:24 GMT): shemnon (Thu, 23 Sep 2021 13:47:13 GMT): GiovanniZanol (Thu, 23 Sep 2021 14:59:28 GMT): danielpenagos (Thu, 23 Sep 2021 15:38:31 GMT): GiovanniZanol (Thu, 23 Sep 2021 17:00:07 GMT): GiovanniZanol (Thu, 23 Sep 2021 17:00:29 GMT): raushan.kumar (Thu, 23 Sep 2021 17:10:54 GMT): shemnon (Thu, 23 Sep 2021 17:16:22 GMT): lcc 3 (Fri, 24 Sep 2021 06:51:23 GMT): Bertho (Fri, 24 Sep 2021 10:23:54 GMT): hjpn (Fri, 24 Sep 2021 11:16:20 GMT): lainio (Fri, 24 Sep 2021 11:47:07 GMT): alvarodelaiglesia (Fri, 24 Sep 2021 13:40:38 GMT): alvarodelaiglesia (Fri, 24 Sep 2021 13:45:55 GMT): alvarodelaiglesia (Fri, 24 Sep 2021 13:48:03 GMT): t3x (Fri, 24 Sep 2021 13:48:28 GMT): ArnoldsBogdanovs (Fri, 24 Sep 2021 14:06:53 GMT): shemnon (Fri, 24 Sep 2021 14:28:35 GMT): spandolfi (Fri, 24 Sep 2021 14:32:00 GMT): alvarodelaiglesia (Fri, 24 Sep 2021 14:46:36 GMT): JNeedham (Fri, 24 Sep 2021 15:05:17 GMT): shadownetz (Sat, 25 Sep 2021 01:32:11 GMT): mohammed.alzuharey (Sat, 25 Sep 2021 11:11:57 GMT): chesta (Sat, 25 Sep 2021 13:34:38 GMT): PeterSkogh (Sat, 25 Sep 2021 20:33:01 GMT): GergelyLengyel (Sat, 25 Sep 2021 21:49:32 GMT): GergelyLengyel (Sat, 25 Sep 2021 21:54:36 GMT): sasschicken69 (Sun, 26 Sep 2021 11:36:44 GMT): brandongomezsanchez (Mon, 27 Sep 2021 00:45:04 GMT): macfarla (Mon, 27 Sep 2021 01:00:12 GMT): macfarla (Mon, 27 Sep 2021 01:00:15 GMT): macfarla (Mon, 27 Sep 2021 01:00:43 GMT): macfarla (Mon, 27 Sep 2021 01:01:50 GMT): macfarla (Mon, 27 Sep 2021 01:04:19 GMT): macfarla (Mon, 27 Sep 2021 01:08:06 GMT): Adisa123 (Mon, 27 Sep 2021 04:38:33 GMT): VijayMichalik (Mon, 27 Sep 2021 07:26:06 GMT): VijayMichalik (Mon, 27 Sep 2021 07:26:34 GMT): VijayMichalik (Mon, 27 Sep 2021 07:33:41 GMT): karayel (Mon, 27 Sep 2021 07:35:19 GMT): adn-misa (Mon, 27 Sep 2021 09:58:22 GMT): GiovanniZanol (Mon, 27 Sep 2021 11:50:23 GMT): GiovanniZanol (Mon, 27 Sep 2021 11:52:33 GMT): GiovanniZanol (Mon, 27 Sep 2021 12:36:02 GMT): GiovanniZanol (Mon, 27 Sep 2021 12:36:32 GMT): sapthasurendran (Mon, 27 Sep 2021 12:51:28 GMT): weiiv (Mon, 27 Sep 2021 15:00:56 GMT): weiiv (Mon, 27 Sep 2021 15:02:15 GMT): srihari.r (Mon, 27 Sep 2021 15:38:03 GMT): macfarla (Mon, 27 Sep 2021 23:05:47 GMT): HokitTang (Tue, 28 Sep 2021 02:18:02 GMT): Oznfc (Tue, 28 Sep 2021 08:33:26 GMT): XM.Jin (Tue, 28 Sep 2021 08:47:37 GMT): SamRutten (Tue, 28 Sep 2021 10:09:17 GMT): jexus7 (Tue, 28 Sep 2021 10:31:16 GMT): jexus7 (Tue, 28 Sep 2021 10:31:17 GMT): jexus7 (Tue, 28 Sep 2021 10:31:45 GMT): jexus7 (Tue, 28 Sep 2021 10:32:11 GMT): jexus7 (Tue, 28 Sep 2021 10:33:40 GMT): ranjan_paul (Tue, 28 Sep 2021 13:16:15 GMT): kylegrobinson (Tue, 28 Sep 2021 17:28:47 GMT): macfarla (Tue, 28 Sep 2021 23:53:14 GMT): gameprofits (Wed, 29 Sep 2021 15:08:37 GMT): gameprofits (Wed, 29 Sep 2021 15:08:56 GMT): gameprofits (Wed, 29 Sep 2021 15:09:33 GMT): gameprofits (Wed, 29 Sep 2021 15:09:53 GMT): gameprofits (Wed, 29 Sep 2021 15:11:19 GMT): gameprofits (Wed, 29 Sep 2021 15:11:31 GMT): gameprofits (Wed, 29 Sep 2021 15:11:47 GMT): gameprofits (Wed, 29 Sep 2021 15:12:47 GMT): gameprofits (Wed, 29 Sep 2021 15:15:57 GMT): matheus27 (Wed, 29 Sep 2021 20:14:39 GMT): matheus27 (Wed, 29 Sep 2021 20:15:42 GMT): macfarla (Wed, 29 Sep 2021 20:50:50 GMT): Parthavs (Thu, 30 Sep 2021 01:01:58 GMT): macfarla (Thu, 30 Sep 2021 05:07:56 GMT): gokulraj17687 (Thu, 30 Sep 2021 07:02:44 GMT): barnold (Thu, 30 Sep 2021 13:43:27 GMT): NkNs (Thu, 30 Sep 2021 18:23:32 GMT): danilp (Thu, 30 Sep 2021 18:38:08 GMT): danilp (Thu, 30 Sep 2021 18:38:08 GMT): shemnon (Thu, 30 Sep 2021 18:48:26 GMT): shemnon (Thu, 30 Sep 2021 18:48:26 GMT): danilp (Thu, 30 Sep 2021 18:51:52 GMT): AdrianAvila (Thu, 30 Sep 2021 21:32:58 GMT): JagannathAlur (Fri, 01 Oct 2021 01:11:21 GMT): marco.cassandro (Fri, 01 Oct 2021 09:03:28 GMT): bardia (Fri, 01 Oct 2021 10:11:18 GMT): AnuragKumar_10 (Fri, 01 Oct 2021 11:16:53 GMT): anilhelvaci (Fri, 01 Oct 2021 11:23:28 GMT): VladLupashevskyi (Fri, 01 Oct 2021 12:14:52 GMT): dmckay (Fri, 01 Oct 2021 14:11:13 GMT): geekcharming (Fri, 01 Oct 2021 16:45:31 GMT): azhang919 (Fri, 01 Oct 2021 17:26:38 GMT): mahnoormmalik (Fri, 01 Oct 2021 17:32:26 GMT): CrystalChun (Fri, 01 Oct 2021 17:35:32 GMT): imchaves10 (Fri, 01 Oct 2021 19:10:33 GMT): Leeyoungone (Fri, 01 Oct 2021 23:09:17 GMT): elenipartakki (Fri, 01 Oct 2021 23:24:02 GMT): guri (Sat, 02 Oct 2021 04:10:58 GMT): Z3R0097 (Sat, 02 Oct 2021 06:22:58 GMT): RakshitaKaulgud (Sat, 02 Oct 2021 18:42:24 GMT): fallenvalkyrie17 (Sat, 02 Oct 2021 19:14:15 GMT): OmarKhodr (Sun, 03 Oct 2021 06:52:57 GMT): quyenld176859 (Sun, 03 Oct 2021 08:39:27 GMT): DanielHaren1 (Sun, 03 Oct 2021 11:42:34 GMT): Pankaj_1 (Mon, 04 Oct 2021 06:31:48 GMT): glehmann (Mon, 04 Oct 2021 07:05:34 GMT): Priyadaharan107 (Mon, 04 Oct 2021 17:20:07 GMT): analia_meira (Mon, 04 Oct 2021 18:17:47 GMT): macfarla (Tue, 05 Oct 2021 01:32:06 GMT): macfarla (Tue, 05 Oct 2021 01:32:22 GMT): ringo156 (Tue, 05 Oct 2021 04:18:42 GMT): sbyits (Tue, 05 Oct 2021 05:04:25 GMT): SuzanaMaranhao (Tue, 05 Oct 2021 19:45:45 GMT): shivamraj6288 (Tue, 05 Oct 2021 19:51:47 GMT): lucassaldanha (Tue, 05 Oct 2021 20:49:11 GMT): lucassaldanha (Tue, 05 Oct 2021 20:49:51 GMT): lucassaldanha (Tue, 05 Oct 2021 20:50:25 GMT): macfarla (Tue, 05 Oct 2021 22:50:20 GMT): macfarla (Tue, 05 Oct 2021 23:32:22 GMT): guidam (Wed, 06 Oct 2021 08:22:46 GMT): hugebing (Wed, 06 Oct 2021 09:05:33 GMT): Nithronium (Wed, 06 Oct 2021 14:12:47 GMT): Nithronium (Wed, 06 Oct 2021 14:13:05 GMT): Nithronium (Wed, 06 Oct 2021 14:13:24 GMT): Nithronium (Wed, 06 Oct 2021 14:13:39 GMT): Nithronium (Wed, 06 Oct 2021 14:13:54 GMT): Nithronium (Wed, 06 Oct 2021 14:14:26 GMT): x6ein (Wed, 06 Oct 2021 20:52:18 GMT): CristianLorenzetto (Thu, 07 Oct 2021 06:05:40 GMT): CristianLorenzetto (Thu, 07 Oct 2021 06:05:47 GMT): CristianLorenzetto (Thu, 07 Oct 2021 06:06:38 GMT): Nithronium (Thu, 07 Oct 2021 06:34:11 GMT): damianlluch (Thu, 07 Oct 2021 08:56:44 GMT): Aneesha (Thu, 07 Oct 2021 08:59:11 GMT): antoinedz (Thu, 07 Oct 2021 13:58:37 GMT): antoinedz (Thu, 07 Oct 2021 14:01:09 GMT): antoinedz (Thu, 07 Oct 2021 14:01:09 GMT): antoinedz (Thu, 07 Oct 2021 14:01:53 GMT): antoinedz (Thu, 07 Oct 2021 14:01:53 GMT): SuzanaMaranhao (Thu, 07 Oct 2021 15:03:42 GMT): SuzanaMaranhao (Thu, 07 Oct 2021 15:16:26 GMT): jyfregramer (Thu, 07 Oct 2021 17:45:05 GMT): nataliasofia (Thu, 07 Oct 2021 20:29:22 GMT): diegoll (Thu, 07 Oct 2021 22:03:28 GMT): diegoll (Thu, 07 Oct 2021 22:03:28 GMT): diegoll (Thu, 07 Oct 2021 22:03:28 GMT): diegoll (Thu, 07 Oct 2021 22:03:51 GMT): yianco (Thu, 07 Oct 2021 22:28:22 GMT): ThinCrusts (Fri, 08 Oct 2021 01:37:33 GMT): macfarla (Fri, 08 Oct 2021 04:35:52 GMT): jframe (Fri, 08 Oct 2021 04:41:29 GMT): jframe (Fri, 08 Oct 2021 04:43:32 GMT): jframe (Fri, 08 Oct 2021 04:43:44 GMT): lucassaldanha (Fri, 08 Oct 2021 06:14:55 GMT): antoinedz (Fri, 08 Oct 2021 07:02:44 GMT): stephaneJ (Fri, 08 Oct 2021 07:50:44 GMT): Nithronium (Fri, 08 Oct 2021 10:32:45 GMT): Nithronium (Fri, 08 Oct 2021 10:33:02 GMT): Nithronium (Fri, 08 Oct 2021 10:34:24 GMT): Nithronium (Fri, 08 Oct 2021 10:34:41 GMT): Nithronium (Fri, 08 Oct 2021 10:35:31 GMT): Nithronium (Fri, 08 Oct 2021 10:36:00 GMT): Nithronium (Fri, 08 Oct 2021 10:37:13 GMT): Nithronium (Fri, 08 Oct 2021 10:37:39 GMT): Ishee (Fri, 08 Oct 2021 13:08:33 GMT): Ishee (Fri, 08 Oct 2021 13:08:35 GMT): Camilo12987 (Fri, 08 Oct 2021 15:21:30 GMT): jackmacloud (Sat, 09 Oct 2021 06:35:59 GMT): macfarla (Mon, 11 Oct 2021 01:58:11 GMT): macfarla (Mon, 11 Oct 2021 02:10:07 GMT): macfarla (Mon, 11 Oct 2021 02:10:24 GMT): lucassaldanha (Mon, 11 Oct 2021 02:15:04 GMT): lucassaldanha (Mon, 11 Oct 2021 02:18:25 GMT): lucassaldanha (Mon, 11 Oct 2021 02:18:48 GMT): lucassaldanha (Mon, 11 Oct 2021 02:32:17 GMT): jframe (Mon, 11 Oct 2021 06:38:53 GMT): Bhawikchawda (Mon, 11 Oct 2021 06:49:17 GMT): Bhawikchawda (Mon, 11 Oct 2021 07:02:09 GMT): OmarSaad (Mon, 11 Oct 2021 07:07:52 GMT): Ishee (Mon, 11 Oct 2021 08:58:59 GMT): Sa_Block98 (Mon, 11 Oct 2021 14:01:59 GMT): chris2222 (Mon, 11 Oct 2021 14:07:16 GMT): chris2222 (Mon, 11 Oct 2021 14:07:23 GMT): phalves (Mon, 11 Oct 2021 14:44:33 GMT): SuzanaMaranhao (Mon, 11 Oct 2021 15:32:30 GMT): SuzanaMaranhao (Mon, 11 Oct 2021 15:34:10 GMT): moorada (Mon, 11 Oct 2021 15:38:16 GMT): shemnon (Mon, 11 Oct 2021 15:57:49 GMT): SuzanaMaranhao (Mon, 11 Oct 2021 16:55:39 GMT): SuzanaMaranhao (Mon, 11 Oct 2021 16:55:54 GMT): MANARKASSOU (Mon, 11 Oct 2021 20:17:03 GMT): JoseeeM (Mon, 11 Oct 2021 22:04:27 GMT): macfarla (Mon, 11 Oct 2021 23:23:32 GMT): macfarla (Mon, 11 Oct 2021 23:26:23 GMT): jframe (Tue, 12 Oct 2021 00:28:57 GMT): Bhawikchawda (Tue, 12 Oct 2021 04:36:47 GMT): zero0097 (Tue, 12 Oct 2021 04:50:24 GMT): macfarla (Tue, 12 Oct 2021 05:19:48 GMT): Bhawikchawda (Tue, 12 Oct 2021 05:39:16 GMT): Bhawikchawda (Tue, 12 Oct 2021 05:50:41 GMT): Nithronium (Tue, 12 Oct 2021 05:52:24 GMT): Nithronium (Tue, 12 Oct 2021 05:52:33 GMT): chris2222 (Tue, 12 Oct 2021 08:56:16 GMT): ShaharinAhmed (Tue, 12 Oct 2021 09:46:52 GMT): prasadmnd (Tue, 12 Oct 2021 09:49:02 GMT): WeCanBeFriends (Tue, 12 Oct 2021 14:38:02 GMT): frostyfrog (Tue, 12 Oct 2021 20:23:39 GMT): bgravenorst (Wed, 13 Oct 2021 00:51:34 GMT): macfarla (Wed, 13 Oct 2021 03:39:40 GMT): Bhawikchawda (Wed, 13 Oct 2021 04:51:01 GMT): Ishee (Wed, 13 Oct 2021 05:10:42 GMT): Ishee (Wed, 13 Oct 2021 05:10:42 GMT): axays007 (Wed, 13 Oct 2021 05:22:53 GMT): Ishee (Wed, 13 Oct 2021 05:36:08 GMT): Ishee (Wed, 13 Oct 2021 05:36:08 GMT): axays007 (Wed, 13 Oct 2021 05:41:52 GMT): Bhawikchawda (Wed, 13 Oct 2021 06:51:52 GMT): FrancescoUrbano (Wed, 13 Oct 2021 08:01:18 GMT): charlie.dev (Wed, 13 Oct 2021 13:11:11 GMT): charlie.dev (Wed, 13 Oct 2021 13:14:13 GMT): Ilikecodes (Wed, 13 Oct 2021 17:04:56 GMT): priamv (Wed, 13 Oct 2021 18:11:35 GMT): Dazpel (Wed, 13 Oct 2021 18:19:00 GMT): bgravenorst (Wed, 13 Oct 2021 20:10:38 GMT): bgravenorst (Wed, 13 Oct 2021 20:28:13 GMT): rolandtyler (Wed, 13 Oct 2021 20:43:37 GMT): bs (Wed, 13 Oct 2021 21:07:42 GMT): joshuafernandes (Wed, 13 Oct 2021 23:28:43 GMT): joshuafernandes (Wed, 13 Oct 2021 23:31:49 GMT): joshuafernandes (Wed, 13 Oct 2021 23:32:39 GMT): alekseishcherbin (Thu, 14 Oct 2021 07:22:56 GMT): iorveth (Thu, 14 Oct 2021 08:51:06 GMT): FrancescoMemola (Thu, 14 Oct 2021 09:50:57 GMT): Nithronium (Thu, 14 Oct 2021 11:58:39 GMT): damianlluch (Thu, 14 Oct 2021 13:18:39 GMT): thejas.pavithran (Thu, 14 Oct 2021 14:35:31 GMT): SuzanaMaranhao (Thu, 14 Oct 2021 15:41:20 GMT): grace.hartley (Thu, 14 Oct 2021 16:38:12 GMT): EC983 (Thu, 14 Oct 2021 19:02:10 GMT): Librechain (Fri, 15 Oct 2021 01:26:09 GMT): Librechain (Fri, 15 Oct 2021 01:26:10 GMT): Librechain (Fri, 15 Oct 2021 01:26:17 GMT): Librechain (Fri, 15 Oct 2021 01:26:41 GMT): Librechain (Fri, 15 Oct 2021 01:28:01 GMT): Librechain (Fri, 15 Oct 2021 01:29:32 GMT): hyper-curious (Fri, 15 Oct 2021 02:06:15 GMT): Nithronium (Fri, 15 Oct 2021 02:38:49 GMT): Nithronium (Fri, 15 Oct 2021 02:39:00 GMT): spaturu2305 (Fri, 15 Oct 2021 02:47:16 GMT): Librechain (Fri, 15 Oct 2021 04:11:35 GMT): Librechain (Fri, 15 Oct 2021 04:11:58 GMT): Librechain (Fri, 15 Oct 2021 04:12:11 GMT): Librechain (Fri, 15 Oct 2021 04:12:25 GMT): Librechain (Fri, 15 Oct 2021 04:14:03 GMT): Librechain (Fri, 15 Oct 2021 04:15:57 GMT): bgravenorst (Fri, 15 Oct 2021 04:31:20 GMT): joshuafernandes (Fri, 15 Oct 2021 04:39:20 GMT): diegoll (Fri, 15 Oct 2021 12:39:18 GMT): cbfh (Fri, 15 Oct 2021 19:19:08 GMT): natedl98 (Sat, 16 Oct 2021 03:22:50 GMT): natedl98 (Sat, 16 Oct 2021 03:29:24 GMT): natedl98 (Sat, 16 Oct 2021 03:30:23 GMT): natedl98 (Sat, 16 Oct 2021 03:30:59 GMT): natedl98 (Sat, 16 Oct 2021 03:31:55 GMT): natedl98 (Sat, 16 Oct 2021 03:33:07 GMT): natedl98 (Sat, 16 Oct 2021 03:34:24 GMT): shemnon (Sat, 16 Oct 2021 03:47:48 GMT): shemnon (Sat, 16 Oct 2021 03:48:07 GMT): NaufalAlexander (Sat, 16 Oct 2021 04:26:33 GMT): natedl98 (Sat, 16 Oct 2021 04:32:28 GMT): kondo (Sat, 16 Oct 2021 05:05:52 GMT): ThomasTeo (Sat, 16 Oct 2021 08:09:32 GMT): ThomasTeo (Sat, 16 Oct 2021 08:21:42 GMT): ThomasTeo (Sat, 16 Oct 2021 08:21:42 GMT): AyhanSunar (Sat, 16 Oct 2021 14:12:31 GMT): hellboy03 (Sat, 16 Oct 2021 18:18:02 GMT): kdahya (Sun, 17 Oct 2021 02:50:45 GMT): natedl98 (Sun, 17 Oct 2021 03:46:37 GMT): sagarmylavarapu (Sun, 17 Oct 2021 10:26:43 GMT): manvendra (Sun, 17 Oct 2021 19:19:42 GMT): joshuafernandes (Sun, 17 Oct 2021 21:25:42 GMT): bgravenorst (Sun, 17 Oct 2021 22:59:33 GMT): bgravenorst (Sun, 17 Oct 2021 23:28:45 GMT): macfarla (Mon, 18 Oct 2021 00:59:21 GMT): lfklupp (Mon, 18 Oct 2021 03:15:52 GMT): John.Greenan (Mon, 18 Oct 2021 04:38:47 GMT): Bhawikchawda (Mon, 18 Oct 2021 05:22:57 GMT): Bhawikchawda (Mon, 18 Oct 2021 05:32:10 GMT): Bhawikchawda (Mon, 18 Oct 2021 05:32:10 GMT): Bhawikchawda (Mon, 18 Oct 2021 05:32:10 GMT): indong (Mon, 18 Oct 2021 06:08:00 GMT): starjara (Mon, 18 Oct 2021 08:10:16 GMT): lev_jac (Mon, 18 Oct 2021 09:50:26 GMT): Bhawikchawda (Mon, 18 Oct 2021 10:00:46 GMT): ThomasTeo (Mon, 18 Oct 2021 12:27:44 GMT): damianlluch (Mon, 18 Oct 2021 14:36:10 GMT): hossein.namazian (Mon, 18 Oct 2021 15:30:32 GMT): joshuafernandes (Mon, 18 Oct 2021 21:35:00 GMT): joshuafernandes (Mon, 18 Oct 2021 21:37:08 GMT): joshuafernandes (Mon, 18 Oct 2021 21:37:08 GMT): joshuafernandes (Mon, 18 Oct 2021 21:39:55 GMT): joshuafernandes (Mon, 18 Oct 2021 21:40:44 GMT): joshuafernandes (Mon, 18 Oct 2021 21:41:05 GMT): joshuafernandes (Mon, 18 Oct 2021 21:42:30 GMT): joshuafernandes (Mon, 18 Oct 2021 21:43:14 GMT): joshuafernandes (Mon, 18 Oct 2021 21:49:43 GMT): lawrenceabeyta (Mon, 18 Oct 2021 21:53:11 GMT): Vanderscycle (Mon, 18 Oct 2021 22:30:20 GMT): macfarla (Tue, 19 Oct 2021 00:37:53 GMT): multijik (Tue, 19 Oct 2021 03:18:18 GMT): pattycode (Tue, 19 Oct 2021 05:03:11 GMT): Bhawikchawda (Tue, 19 Oct 2021 05:06:23 GMT): Bhawikchawda (Tue, 19 Oct 2021 05:14:28 GMT): Bhawikchawda (Tue, 19 Oct 2021 05:21:24 GMT): Bhawikchawda (Tue, 19 Oct 2021 05:21:24 GMT): indongkim (Tue, 19 Oct 2021 06:29:53 GMT): amitchandra01 (Tue, 19 Oct 2021 08:08:24 GMT): mateokurti (Tue, 19 Oct 2021 08:41:26 GMT): Luis_Manuel_Cortes_Tirado (Tue, 19 Oct 2021 10:43:46 GMT): EliasKim (Tue, 19 Oct 2021 13:57:36 GMT): david.liu (Tue, 19 Oct 2021 16:47:32 GMT): joshuafernandes (Tue, 19 Oct 2021 22:15:33 GMT): joshuafernandes (Tue, 19 Oct 2021 22:21:58 GMT): joshuafernandes (Tue, 19 Oct 2021 22:21:58 GMT): joshuafernandes (Tue, 19 Oct 2021 22:25:01 GMT): joshuafernandes (Tue, 19 Oct 2021 22:26:03 GMT): joshuafernandes (Tue, 19 Oct 2021 22:33:36 GMT): OsamaAzmy (Tue, 19 Oct 2021 22:48:03 GMT): ralvarezalvarez (Wed, 20 Oct 2021 03:25:43 GMT): subin8899 (Wed, 20 Oct 2021 04:34:00 GMT): nbAmit (Wed, 20 Oct 2021 04:52:25 GMT): DarshilPatel (Wed, 20 Oct 2021 11:19:50 GMT): deepakgerawipro (Wed, 20 Oct 2021 12:13:08 GMT): webspeller (Wed, 20 Oct 2021 19:44:54 GMT): alieghmazi (Wed, 20 Oct 2021 21:07:41 GMT): jason_jaan (Wed, 20 Oct 2021 22:54:52 GMT): leonfrank (Thu, 21 Oct 2021 07:24:13 GMT): tpluck (Thu, 21 Oct 2021 07:56:07 GMT): garthr (Thu, 21 Oct 2021 08:34:40 GMT): garthr (Thu, 21 Oct 2021 08:36:22 GMT): garthr (Thu, 21 Oct 2021 08:36:29 GMT): garthr (Thu, 21 Oct 2021 08:36:33 GMT): CristianLorenzetto (Thu, 21 Oct 2021 09:43:33 GMT): CristianLorenzetto (Thu, 21 Oct 2021 09:43:59 GMT): sjana0 (Thu, 21 Oct 2021 10:34:40 GMT): outsidethecode (Thu, 21 Oct 2021 13:20:11 GMT): weihong.ou (Thu, 21 Oct 2021 18:00:10 GMT): lukasgem (Thu, 21 Oct 2021 20:46:16 GMT): cvarjao (Thu, 21 Oct 2021 22:24:45 GMT): macfarla (Thu, 21 Oct 2021 23:12:17 GMT): macfarla (Thu, 21 Oct 2021 23:13:32 GMT): sfiguereo (Fri, 22 Oct 2021 01:11:55 GMT): andra1996 (Fri, 22 Oct 2021 08:25:46 GMT): NikunjPurohit (Fri, 22 Oct 2021 13:47:05 GMT): khamdb (Fri, 22 Oct 2021 13:47:56 GMT): NikunjPurohit (Fri, 22 Oct 2021 13:48:31 GMT): NikunjPurohit (Fri, 22 Oct 2021 13:48:50 GMT): GeluUngur (Fri, 22 Oct 2021 18:05:31 GMT): acantrell (Fri, 22 Oct 2021 19:12:44 GMT): palacios (Fri, 22 Oct 2021 19:48:36 GMT): BrianBauska (Sat, 23 Oct 2021 05:16:31 GMT): marchelbudi.k (Sat, 23 Oct 2021 05:47:39 GMT): marchelbudi.k (Sat, 23 Oct 2021 05:55:04 GMT): marchelbudi.k (Sat, 23 Oct 2021 05:55:04 GMT): marchelbudi.k (Sat, 23 Oct 2021 05:55:04 GMT): KiranLakhotia (Sat, 23 Oct 2021 08:49:55 GMT): webzest (Sat, 23 Oct 2021 12:29:03 GMT): jrojek (Sun, 24 Oct 2021 05:27:44 GMT): jrd10 (Sun, 24 Oct 2021 06:04:32 GMT): lincyaw (Sun, 24 Oct 2021 08:03:37 GMT): amankr1619 (Sun, 24 Oct 2021 20:21:37 GMT): madelinemurray (Sun, 24 Oct 2021 22:16:07 GMT): macfarla (Sun, 24 Oct 2021 23:41:33 GMT): marchelbudi.k (Mon, 25 Oct 2021 04:22:29 GMT): marchelbudi.k (Mon, 25 Oct 2021 04:22:29 GMT): marchelbudi.k (Mon, 25 Oct 2021 04:22:29 GMT): marchelbudi.k (Mon, 25 Oct 2021 04:22:29 GMT): JorgeLuisAcosta (Mon, 25 Oct 2021 07:00:46 GMT): dovanan95 (Mon, 25 Oct 2021 08:26:33 GMT): Bhawikchawda (Mon, 25 Oct 2021 10:01:51 GMT): Bhawikchawda (Mon, 25 Oct 2021 10:01:51 GMT): Bhawikchawda (Mon, 25 Oct 2021 10:01:51 GMT): AtlasSMT (Mon, 25 Oct 2021 10:11:08 GMT): Bhawikchawda (Mon, 25 Oct 2021 10:43:44 GMT): shadiayoub (Mon, 25 Oct 2021 11:24:53 GMT): shadiayoub (Mon, 25 Oct 2021 11:29:53 GMT): joshuafernandes (Mon, 25 Oct 2021 11:49:39 GMT): joshuafernandes (Mon, 25 Oct 2021 11:51:31 GMT): joshuafernandes (Mon, 25 Oct 2021 11:56:27 GMT): shadiayoub (Mon, 25 Oct 2021 11:58:09 GMT): shadiayoub (Mon, 25 Oct 2021 12:13:16 GMT): Bhawikchawda (Mon, 25 Oct 2021 12:30:21 GMT): Bhawikchawda (Mon, 25 Oct 2021 12:37:03 GMT): joshuafernandes (Mon, 25 Oct 2021 13:16:17 GMT): joshuafernandes (Mon, 25 Oct 2021 13:18:12 GMT): joshuafernandes (Mon, 25 Oct 2021 13:19:40 GMT): joshuafernandes (Mon, 25 Oct 2021 13:30:48 GMT): joshuafernandes (Mon, 25 Oct 2021 13:31:17 GMT): jean-claudedalot (Mon, 25 Oct 2021 13:50:08 GMT): flaviocal (Mon, 25 Oct 2021 14:24:36 GMT): spunkymandar (Mon, 25 Oct 2021 16:50:38 GMT): dmimaz (Mon, 25 Oct 2021 17:36:09 GMT): macfarla (Tue, 26 Oct 2021 01:31:24 GMT): Tenno (Tue, 26 Oct 2021 03:42:20 GMT): madelinemurray (Tue, 26 Oct 2021 04:10:28 GMT): macfarla (Tue, 26 Oct 2021 04:12:54 GMT): Bhawikchawda (Tue, 26 Oct 2021 07:11:23 GMT): kamalraj2000 (Tue, 26 Oct 2021 07:17:43 GMT): dheerajbudhiraja (Tue, 26 Oct 2021 08:09:02 GMT): damianlluch (Tue, 26 Oct 2021 09:33:32 GMT): Bhawikchawda (Tue, 26 Oct 2021 10:51:44 GMT): Bhawikchawda (Tue, 26 Oct 2021 10:53:13 GMT): shadiayoub (Tue, 26 Oct 2021 11:33:15 GMT): shadiayoub (Tue, 26 Oct 2021 11:33:15 GMT): shadiayoub (Tue, 26 Oct 2021 11:33:15 GMT): shadiayoub (Tue, 26 Oct 2021 11:49:26 GMT): shadiayoub (Tue, 26 Oct 2021 11:57:48 GMT): shadiayoub (Tue, 26 Oct 2021 13:28:48 GMT): shadiayoub (Tue, 26 Oct 2021 17:19:19 GMT): artemgorev (Tue, 26 Oct 2021 18:18:08 GMT): trilawney (Tue, 26 Oct 2021 19:08:54 GMT): tomaspozo (Tue, 26 Oct 2021 21:55:29 GMT): joshuafernandes (Tue, 26 Oct 2021 22:10:38 GMT): joshuafernandes (Tue, 26 Oct 2021 22:12:28 GMT): joshuafernandes (Tue, 26 Oct 2021 22:17:21 GMT): Eric.Lin (Tue, 26 Oct 2021 23:27:04 GMT): macfarla (Wed, 27 Oct 2021 01:12:44 GMT): lyc9702 (Wed, 27 Oct 2021 06:36:20 GMT): shadiayoub (Wed, 27 Oct 2021 07:51:02 GMT): shadiayoub (Wed, 27 Oct 2021 07:55:12 GMT): Ferdinand.wittmann (Wed, 27 Oct 2021 09:39:25 GMT): MontassarNAGHMOUCHI (Wed, 27 Oct 2021 11:35:53 GMT): viktor.pulyak (Wed, 27 Oct 2021 15:31:36 GMT): rolandw (Wed, 27 Oct 2021 17:09:36 GMT): shadiayoub (Wed, 27 Oct 2021 20:51:35 GMT): shadiayoub (Wed, 27 Oct 2021 20:54:51 GMT): joshuafernandes (Wed, 27 Oct 2021 21:55:05 GMT): joshuafernandes (Wed, 27 Oct 2021 21:55:05 GMT): joshuafernandes (Wed, 27 Oct 2021 21:55:41 GMT): joshuafernandes (Wed, 27 Oct 2021 21:59:10 GMT): joshuafernandes (Wed, 27 Oct 2021 22:01:20 GMT): shadiayoub (Wed, 27 Oct 2021 22:12:57 GMT): joshuafernandes (Thu, 28 Oct 2021 04:25:29 GMT): joshuafernandes (Thu, 28 Oct 2021 04:25:49 GMT): Jotenks (Thu, 28 Oct 2021 10:16:27 GMT): important (Thu, 28 Oct 2021 11:05:10 GMT): shadiayoub (Thu, 28 Oct 2021 11:06:57 GMT): yukesong (Thu, 28 Oct 2021 12:20:46 GMT): SuzanaMaranhao (Thu, 28 Oct 2021 13:11:13 GMT): shadiayoub (Thu, 28 Oct 2021 14:11:36 GMT): shadiayoub (Thu, 28 Oct 2021 14:16:23 GMT): Acarcan (Thu, 28 Oct 2021 14:17:47 GMT): AlessandroPagliaro (Thu, 28 Oct 2021 15:06:02 GMT): Mellywins (Thu, 28 Oct 2021 15:28:18 GMT): TaylorBelk1 (Thu, 28 Oct 2021 16:57:52 GMT): SuzanaMaranhao (Thu, 28 Oct 2021 18:20:46 GMT): macfarla (Thu, 28 Oct 2021 19:58:36 GMT): chadmott (Thu, 28 Oct 2021 20:49:49 GMT): SuzanaMaranhao (Thu, 28 Oct 2021 21:01:29 GMT): KaranKulwal (Fri, 29 Oct 2021 05:07:15 GMT): hblockchain (Fri, 29 Oct 2021 05:50:01 GMT): BabitaBisht1 (Fri, 29 Oct 2021 07:54:34 GMT): MikaLammi (Fri, 29 Oct 2021 08:01:00 GMT): BabitaBisht1 (Fri, 29 Oct 2021 08:20:03 GMT): iffathossain (Fri, 29 Oct 2021 09:56:08 GMT): iffathossain (Fri, 29 Oct 2021 09:56:22 GMT): BabitaBisht1 (Fri, 29 Oct 2021 09:57:18 GMT): marcus.schoeller (Fri, 29 Oct 2021 10:17:04 GMT): hailx (Fri, 29 Oct 2021 12:59:32 GMT): Natinasss (Fri, 29 Oct 2021 13:07:38 GMT): shemnon (Fri, 29 Oct 2021 13:40:53 GMT): RajeshNavagare (Fri, 29 Oct 2021 16:39:54 GMT): deoalade (Fri, 29 Oct 2021 17:16:53 GMT): shadiayoub (Fri, 29 Oct 2021 17:42:10 GMT): omago123 (Sat, 30 Oct 2021 06:56:59 GMT): Kazuya.N (Sat, 30 Oct 2021 07:31:27 GMT): efrain (Sat, 30 Oct 2021 09:28:40 GMT): edouardfrance (Sat, 30 Oct 2021 14:40:05 GMT): Santiagotwm99 (Sat, 30 Oct 2021 21:18:54 GMT): JeremyChou0314 (Sun, 31 Oct 2021 11:12:35 GMT): tleonard1941 (Sun, 31 Oct 2021 17:06:14 GMT): macfarla (Mon, 01 Nov 2021 01:44:18 GMT): macfarla (Mon, 01 Nov 2021 01:45:02 GMT): macfarla (Mon, 01 Nov 2021 02:03:01 GMT): macfarla (Mon, 01 Nov 2021 02:05:41 GMT): rohan333 (Mon, 01 Nov 2021 03:55:24 GMT): macfarla (Mon, 01 Nov 2021 07:49:15 GMT): shadiayoub (Mon, 01 Nov 2021 10:01:36 GMT): szbalazs (Mon, 01 Nov 2021 11:12:11 GMT): pperez (Mon, 01 Nov 2021 11:23:58 GMT): pperez (Mon, 01 Nov 2021 11:26:33 GMT): andreolf1 (Mon, 01 Nov 2021 14:05:51 GMT): keithyweethy (Mon, 01 Nov 2021 16:52:11 GMT): keithyweethy (Mon, 01 Nov 2021 16:52:18 GMT): keithyweethy (Mon, 01 Nov 2021 16:53:06 GMT): keithyweethy (Mon, 01 Nov 2021 16:53:15 GMT): shadiayoub (Mon, 01 Nov 2021 17:25:20 GMT): shadiayoub (Mon, 01 Nov 2021 17:49:26 GMT): shadiayoub (Mon, 01 Nov 2021 17:49:26 GMT): shadiayoub (Mon, 01 Nov 2021 17:49:26 GMT): SuzanaMaranhao (Mon, 01 Nov 2021 20:06:46 GMT): shemnon (Mon, 01 Nov 2021 20:20:03 GMT): SuzanaMaranhao (Mon, 01 Nov 2021 20:22:49 GMT): shemnon (Mon, 01 Nov 2021 20:24:26 GMT): SuzanaMaranhao (Mon, 01 Nov 2021 20:37:29 GMT): SuzanaMaranhao (Mon, 01 Nov 2021 20:40:44 GMT): shemnon (Mon, 01 Nov 2021 20:52:44 GMT): SuzanaMaranhao (Mon, 01 Nov 2021 20:58:08 GMT): shemnon (Mon, 01 Nov 2021 21:26:21 GMT): shadiayoub (Mon, 01 Nov 2021 22:14:49 GMT): shadiayoub (Mon, 01 Nov 2021 22:14:49 GMT): taccatisid (Mon, 01 Nov 2021 23:11:59 GMT): macfarla (Mon, 01 Nov 2021 23:30:35 GMT): macfarla (Mon, 01 Nov 2021 23:33:59 GMT): teerakiat (Tue, 02 Nov 2021 05:00:40 GMT): Rigwarl (Tue, 02 Nov 2021 06:26:36 GMT): vinodhini (Tue, 02 Nov 2021 06:32:40 GMT): Rigwarl (Tue, 02 Nov 2021 06:37:35 GMT): y8l (Tue, 02 Nov 2021 11:57:15 GMT): kaveri (Tue, 02 Nov 2021 13:42:31 GMT): kaveri (Tue, 02 Nov 2021 13:43:10 GMT): kaveri (Tue, 02 Nov 2021 13:49:20 GMT): kaveri (Tue, 02 Nov 2021 13:49:20 GMT): kaveri (Tue, 02 Nov 2021 13:49:20 GMT): kaveri (Tue, 02 Nov 2021 13:49:20 GMT): kaveri (Tue, 02 Nov 2021 14:40:57 GMT): rafaadan6 (Tue, 02 Nov 2021 18:08:34 GMT): imillar99 (Tue, 02 Nov 2021 20:43:53 GMT): aarjav (Tue, 02 Nov 2021 20:54:47 GMT): ElisJacobson (Tue, 02 Nov 2021 23:06:13 GMT): macfarla (Tue, 02 Nov 2021 23:48:48 GMT): macfarla (Tue, 02 Nov 2021 23:49:01 GMT): terexitarius (Wed, 03 Nov 2021 02:45:43 GMT): Howie001 (Wed, 03 Nov 2021 02:48:24 GMT): frankliawesome (Wed, 03 Nov 2021 03:37:57 GMT): jaysonr (Wed, 03 Nov 2021 03:39:30 GMT): frankliawesome (Wed, 03 Nov 2021 03:42:42 GMT): SriniGovindaswamy (Wed, 03 Nov 2021 06:01:00 GMT): efrain (Wed, 03 Nov 2021 07:25:32 GMT): shadiayoub (Wed, 03 Nov 2021 07:36:46 GMT): shadiayoub (Wed, 03 Nov 2021 07:36:48 GMT): Luis_Manuel_Cortes_Tirado (Wed, 03 Nov 2021 07:37:03 GMT): shadiayoub (Wed, 03 Nov 2021 07:40:05 GMT): shadiayoub (Wed, 03 Nov 2021 07:40:05 GMT): efrain (Wed, 03 Nov 2021 07:42:41 GMT): efrain (Wed, 03 Nov 2021 07:49:42 GMT): shadiayoub (Wed, 03 Nov 2021 07:52:09 GMT): efrain (Wed, 03 Nov 2021 08:50:46 GMT): kaveri (Wed, 03 Nov 2021 09:17:42 GMT): kaveri (Wed, 03 Nov 2021 09:17:42 GMT): marchelbudi.k (Wed, 03 Nov 2021 11:56:29 GMT): marchelbudi.k (Wed, 03 Nov 2021 11:56:29 GMT): hhgfgg (Wed, 03 Nov 2021 12:05:55 GMT): marchelbudi.k (Wed, 03 Nov 2021 12:18:52 GMT): marchelbudi.k (Wed, 03 Nov 2021 12:18:52 GMT): SuzanaMaranhao (Wed, 03 Nov 2021 14:02:42 GMT): JiriPeinlich (Wed, 03 Nov 2021 14:35:25 GMT): SuzanaMaranhao (Wed, 03 Nov 2021 14:48:55 GMT): SuzanaMaranhao (Wed, 03 Nov 2021 14:48:55 GMT): SuzanaMaranhao (Wed, 03 Nov 2021 14:48:55 GMT): shemnon (Wed, 03 Nov 2021 16:57:58 GMT): shemnon (Wed, 03 Nov 2021 16:58:13 GMT): shemnon (Wed, 03 Nov 2021 16:58:24 GMT): Stevedimaras (Wed, 03 Nov 2021 17:05:20 GMT): shadiayoub (Wed, 03 Nov 2021 17:18:50 GMT): shadiayoub (Wed, 03 Nov 2021 17:18:50 GMT): alfahami (Wed, 03 Nov 2021 17:55:32 GMT): hellipps (Wed, 03 Nov 2021 18:03:46 GMT): cemmurphy (Wed, 03 Nov 2021 21:59:32 GMT): macfarla (Thu, 04 Nov 2021 03:56:50 GMT): macfarla (Thu, 04 Nov 2021 03:58:40 GMT): macfarla (Thu, 04 Nov 2021 04:01:16 GMT): macfarla (Thu, 04 Nov 2021 04:02:06 GMT): macfarla (Thu, 04 Nov 2021 04:05:42 GMT): frankliawesome (Thu, 04 Nov 2021 05:43:36 GMT): frankliawesome (Thu, 04 Nov 2021 05:45:16 GMT): frankliawesome (Thu, 04 Nov 2021 05:45:16 GMT): frankliawesome (Thu, 04 Nov 2021 05:53:38 GMT): shadiayoub (Thu, 04 Nov 2021 09:08:56 GMT): minsecprisoner (Thu, 04 Nov 2021 09:53:48 GMT): CarlosGarcia.Briones (Thu, 04 Nov 2021 10:26:27 GMT): marchelbudi.k (Thu, 04 Nov 2021 11:19:26 GMT): frankliawesome (Thu, 04 Nov 2021 11:35:21 GMT): frankliawesome (Thu, 04 Nov 2021 11:41:06 GMT): frankliawesome (Thu, 04 Nov 2021 12:12:02 GMT): marchelbudi.k (Thu, 04 Nov 2021 12:48:02 GMT): marchelbudi.k (Thu, 04 Nov 2021 12:48:02 GMT): marchelbudi.k (Thu, 04 Nov 2021 12:48:02 GMT): marchelbudi.k (Thu, 04 Nov 2021 12:48:02 GMT): marchelbudi.k (Thu, 04 Nov 2021 12:48:02 GMT): marchelbudi.k (Thu, 04 Nov 2021 12:48:02 GMT): marchelbudi.k (Thu, 04 Nov 2021 14:23:36 GMT): SuzanaMaranhao (Thu, 04 Nov 2021 14:36:28 GMT): marchelbudi.k (Thu, 04 Nov 2021 15:02:38 GMT): mafer_027 (Thu, 04 Nov 2021 15:38:06 GMT): macfarla (Thu, 04 Nov 2021 20:24:38 GMT): macfarla (Thu, 04 Nov 2021 20:25:23 GMT): macfarla (Thu, 04 Nov 2021 20:29:12 GMT): jframe (Thu, 04 Nov 2021 23:13:20 GMT): macfarla (Fri, 05 Nov 2021 01:34:36 GMT): macfarla (Fri, 05 Nov 2021 01:34:36 GMT): deathdealer007 (Fri, 05 Nov 2021 03:11:16 GMT): deathdealer007 (Fri, 05 Nov 2021 03:11:26 GMT): deathdealer007 (Fri, 05 Nov 2021 03:11:33 GMT): deathdealer007 (Fri, 05 Nov 2021 03:14:50 GMT): lucassaldanha (Fri, 05 Nov 2021 03:40:49 GMT): ksgr5566 (Fri, 05 Nov 2021 04:30:16 GMT): alvone01 (Fri, 05 Nov 2021 06:58:44 GMT): surabhi17 (Fri, 05 Nov 2021 08:45:59 GMT): tperes (Fri, 05 Nov 2021 10:56:14 GMT): Makabongwe (Fri, 05 Nov 2021 14:39:29 GMT): elDanielain (Fri, 05 Nov 2021 15:59:55 GMT): Nithronium (Fri, 05 Nov 2021 17:41:45 GMT): Nithronium (Fri, 05 Nov 2021 17:43:23 GMT): marchelbudi.k (Fri, 05 Nov 2021 18:50:03 GMT): marchelbudi.k (Fri, 05 Nov 2021 18:50:27 GMT): marchelbudi.k (Fri, 05 Nov 2021 18:50:27 GMT): marchelbudi.k (Fri, 05 Nov 2021 18:51:00 GMT): marchelbudi.k (Fri, 05 Nov 2021 19:08:58 GMT): marchelbudi.k (Fri, 05 Nov 2021 19:08:58 GMT): marchelbudi.k (Fri, 05 Nov 2021 19:08:58 GMT): marchelbudi.k (Fri, 05 Nov 2021 19:08:58 GMT): marchelbudi.k (Fri, 05 Nov 2021 19:08:58 GMT): marchelbudi.k (Fri, 05 Nov 2021 19:13:29 GMT): shadiayoub (Fri, 05 Nov 2021 22:42:43 GMT): shadiayoub (Fri, 05 Nov 2021 22:44:24 GMT): shadiayoub (Fri, 05 Nov 2021 22:44:24 GMT): shadiayoub (Fri, 05 Nov 2021 22:44:24 GMT): EmcLab (Sat, 06 Nov 2021 05:03:40 GMT): macfarla (Sat, 06 Nov 2021 09:24:41 GMT): macfarla (Sat, 06 Nov 2021 09:24:42 GMT): lucassaldanha (Sat, 06 Nov 2021 18:29:20 GMT): shadiayoub (Sat, 06 Nov 2021 19:32:31 GMT): SySagar (Sun, 07 Nov 2021 04:25:26 GMT): suisingLai (Sun, 07 Nov 2021 14:07:21 GMT): ceejaymi (Sun, 07 Nov 2021 18:42:13 GMT): usmansaleem (Sun, 07 Nov 2021 23:58:08 GMT): usmansaleem (Sun, 07 Nov 2021 23:58:08 GMT): usmansaleem (Mon, 08 Nov 2021 00:04:53 GMT): Ezzah 1 (Mon, 08 Nov 2021 01:10:36 GMT): usmansaleem (Mon, 08 Nov 2021 02:27:44 GMT): Jangto (Mon, 08 Nov 2021 03:27:46 GMT): macfarla (Mon, 08 Nov 2021 03:42:18 GMT): BabitaBisht1 (Mon, 08 Nov 2021 04:11:45 GMT): BabitaBisht1 (Mon, 08 Nov 2021 04:12:07 GMT): indongkim (Mon, 08 Nov 2021 05:19:11 GMT): ffendt (Mon, 08 Nov 2021 06:19:26 GMT): ThinhPhan (Mon, 08 Nov 2021 07:28:00 GMT): usmansaleem (Mon, 08 Nov 2021 07:53:57 GMT): jframe (Mon, 08 Nov 2021 08:30:37 GMT): sristhiassudani (Mon, 08 Nov 2021 09:22:21 GMT): NSagar (Mon, 08 Nov 2021 12:25:57 GMT): Nithronium (Mon, 08 Nov 2021 15:32:33 GMT): RyanJJones10 (Mon, 08 Nov 2021 17:13:45 GMT): usmansaleem (Mon, 08 Nov 2021 19:29:41 GMT): Nithronium (Tue, 09 Nov 2021 05:38:09 GMT): Nithronium (Tue, 09 Nov 2021 05:38:25 GMT): BabitaBisht1 (Tue, 09 Nov 2021 06:07:42 GMT): shin1yama (Tue, 09 Nov 2021 07:02:16 GMT): LakshmiMurali (Tue, 09 Nov 2021 07:50:21 GMT): Luis_Manuel_Cortes_Tirado (Tue, 09 Nov 2021 10:51:42 GMT): usmansaleem (Tue, 09 Nov 2021 11:57:59 GMT): Aljone (Tue, 09 Nov 2021 15:58:35 GMT): rockson (Tue, 09 Nov 2021 17:02:09 GMT): knguyenBC (Tue, 09 Nov 2021 17:17:59 GMT): ghastly (Tue, 09 Nov 2021 17:32:50 GMT): shadiayoub (Tue, 09 Nov 2021 17:34:24 GMT): sdunstan (Tue, 09 Nov 2021 20:47:43 GMT): LEOISHere (Wed, 10 Nov 2021 00:03:22 GMT): lucassaldanha (Wed, 10 Nov 2021 01:47:32 GMT): lucassaldanha (Wed, 10 Nov 2021 01:48:35 GMT): ffabregas (Wed, 10 Nov 2021 03:56:07 GMT): DeepromSomkiadcharoen (Wed, 10 Nov 2021 03:56:07 GMT): nikolas (Wed, 10 Nov 2021 08:24:56 GMT): Luis_Manuel_Cortes_Tirado (Wed, 10 Nov 2021 12:32:16 GMT): diegoll (Wed, 10 Nov 2021 12:41:25 GMT): Luis_Manuel_Cortes_Tirado (Wed, 10 Nov 2021 12:46:50 GMT): Luis_Manuel_Cortes_Tirado (Wed, 10 Nov 2021 12:50:28 GMT): diegoll (Wed, 10 Nov 2021 13:10:26 GMT): Luis_Manuel_Cortes_Tirado (Wed, 10 Nov 2021 13:12:01 GMT): Strohhut (Wed, 10 Nov 2021 17:27:06 GMT): loziniak (Thu, 11 Nov 2021 00:32:27 GMT): loziniak (Thu, 11 Nov 2021 00:36:59 GMT): jframe (Thu, 11 Nov 2021 01:35:13 GMT): jframe (Thu, 11 Nov 2021 01:35:15 GMT): jframe (Thu, 11 Nov 2021 01:36:16 GMT): ChangmingLiu (Thu, 11 Nov 2021 01:38:01 GMT): jframe (Thu, 11 Nov 2021 01:38:13 GMT): loziniak (Thu, 11 Nov 2021 02:50:06 GMT): loziniak (Thu, 11 Nov 2021 02:50:44 GMT): newbieTech (Thu, 11 Nov 2021 02:56:28 GMT): BabitaBisht1 (Thu, 11 Nov 2021 06:25:18 GMT): BabitaBisht1 (Thu, 11 Nov 2021 06:33:27 GMT): lucassaldanha (Thu, 11 Nov 2021 06:34:58 GMT): lucassaldanha (Thu, 11 Nov 2021 06:37:07 GMT): BabitaBisht1 (Thu, 11 Nov 2021 06:42:03 GMT): BabitaBisht1 (Thu, 11 Nov 2021 06:42:03 GMT): uguroney (Thu, 11 Nov 2021 08:38:29 GMT): BabitaBisht1 (Thu, 11 Nov 2021 09:51:27 GMT): Monavari (Thu, 11 Nov 2021 11:18:16 GMT): IgorSim (Thu, 11 Nov 2021 12:48:16 GMT): IgorSim (Thu, 11 Nov 2021 13:01:22 GMT): IgorSim (Thu, 11 Nov 2021 13:01:22 GMT): shadiayoub (Thu, 11 Nov 2021 13:32:48 GMT): leostereo (Thu, 11 Nov 2021 13:42:39 GMT): anuj-kh (Thu, 11 Nov 2021 14:01:40 GMT): sebposselt (Thu, 11 Nov 2021 14:44:53 GMT): fab-10 (Thu, 11 Nov 2021 15:10:10 GMT): ricc.zappoli (Thu, 11 Nov 2021 16:03:22 GMT): ArhangelSky999 (Thu, 11 Nov 2021 16:47:21 GMT): knichols (Thu, 11 Nov 2021 21:59:13 GMT): EmcLab (Fri, 12 Nov 2021 00:07:22 GMT): EmcLab (Fri, 12 Nov 2021 00:07:25 GMT): EmcLab (Fri, 12 Nov 2021 00:08:17 GMT): EmcLab (Fri, 12 Nov 2021 00:08:38 GMT): EmcLab (Fri, 12 Nov 2021 00:08:49 GMT): EmcLab (Fri, 12 Nov 2021 00:10:50 GMT): EmcLab (Fri, 12 Nov 2021 00:12:42 GMT): frankliawesome (Fri, 12 Nov 2021 00:28:06 GMT): frankliawesome (Fri, 12 Nov 2021 00:29:54 GMT): maurorambo (Fri, 12 Nov 2021 00:34:02 GMT): frankliawesome (Fri, 12 Nov 2021 00:40:58 GMT): frankliawesome (Fri, 12 Nov 2021 00:40:58 GMT): ChrisPaterson (Fri, 12 Nov 2021 02:35:32 GMT): EmcLab (Fri, 12 Nov 2021 03:24:58 GMT): Shubham-koli (Fri, 12 Nov 2021 05:04:22 GMT): frankliawesome (Fri, 12 Nov 2021 06:11:43 GMT): frankliawesome (Fri, 12 Nov 2021 06:13:36 GMT): EmcLab (Fri, 12 Nov 2021 06:18:36 GMT): EmcLab (Fri, 12 Nov 2021 06:18:46 GMT): EmcLab (Fri, 12 Nov 2021 06:20:58 GMT): EmcLab (Fri, 12 Nov 2021 06:20:58 GMT): frankliawesome (Fri, 12 Nov 2021 06:21:54 GMT): EmcLab (Fri, 12 Nov 2021 06:23:44 GMT): EmcLab (Fri, 12 Nov 2021 06:30:12 GMT): EmcLab (Fri, 12 Nov 2021 06:30:42 GMT): EmcLab (Fri, 12 Nov 2021 06:41:13 GMT): EmcLab (Fri, 12 Nov 2021 06:41:52 GMT): EmcLab (Fri, 12 Nov 2021 06:42:25 GMT): sekinosekai (Fri, 12 Nov 2021 09:17:01 GMT): RomanBorisov (Fri, 12 Nov 2021 14:04:59 GMT): somaningp (Fri, 12 Nov 2021 14:29:25 GMT): loziniak (Fri, 12 Nov 2021 15:04:07 GMT): loziniak (Fri, 12 Nov 2021 15:27:01 GMT): Andrewval (Fri, 12 Nov 2021 16:46:22 GMT): ChheunPhearaeun (Fri, 12 Nov 2021 17:48:40 GMT): Clippo 3 (Fri, 12 Nov 2021 17:56:22 GMT): Clippo 3 (Fri, 12 Nov 2021 17:56:40 GMT): Clippo 3 (Fri, 12 Nov 2021 17:57:24 GMT): matt.nelson.csi (Fri, 12 Nov 2021 20:56:07 GMT): EmcLab (Fri, 12 Nov 2021 21:37:27 GMT): loziniak (Fri, 12 Nov 2021 21:43:49 GMT): EmcLab (Fri, 12 Nov 2021 21:46:40 GMT): EmcLab (Fri, 12 Nov 2021 21:46:57 GMT): luoyu 1 (Fri, 12 Nov 2021 22:32:26 GMT): EmcLab (Sat, 13 Nov 2021 01:21:29 GMT): EmcLab (Sat, 13 Nov 2021 01:27:15 GMT): EmcLab (Sat, 13 Nov 2021 02:57:19 GMT): chandra100100 (Sat, 13 Nov 2021 06:58:25 GMT): Beshir (Sat, 13 Nov 2021 08:44:54 GMT): VladimirRadeski (Sat, 13 Nov 2021 09:32:26 GMT): Clippo 3 (Sun, 14 Nov 2021 03:29:52 GMT): Clippo 3 (Sun, 14 Nov 2021 03:31:15 GMT): Clippo 3 (Sun, 14 Nov 2021 03:32:17 GMT): manolaz (Sun, 14 Nov 2021 04:51:26 GMT): shadiayoub (Sun, 14 Nov 2021 06:15:18 GMT): shadiayoub (Sun, 14 Nov 2021 06:15:18 GMT): Clippo 3 (Sun, 14 Nov 2021 18:35:57 GMT): Clippo 3 (Sun, 14 Nov 2021 18:36:30 GMT): Clippo 3 (Sun, 14 Nov 2021 18:43:18 GMT): shadiayoub (Sun, 14 Nov 2021 18:47:07 GMT): Clippo 3 (Sun, 14 Nov 2021 20:04:33 GMT): ivicaa (Sun, 14 Nov 2021 21:01:19 GMT): ivicaa (Sun, 14 Nov 2021 21:25:14 GMT): ivicaa (Sun, 14 Nov 2021 21:55:56 GMT): jframe (Sun, 14 Nov 2021 22:26:10 GMT): jframe (Sun, 14 Nov 2021 22:30:02 GMT): frankliawesome (Mon, 15 Nov 2021 00:20:30 GMT): GarySchulte (Mon, 15 Nov 2021 01:04:24 GMT): GarySchulte (Mon, 15 Nov 2021 01:07:14 GMT): xeon123 (Mon, 15 Nov 2021 08:54:54 GMT): Salt4f (Mon, 15 Nov 2021 09:46:53 GMT): ivicaa (Mon, 15 Nov 2021 10:05:56 GMT): ybuser (Mon, 15 Nov 2021 12:06:48 GMT): matijasipek (Mon, 15 Nov 2021 12:21:34 GMT): amit1nayak (Mon, 15 Nov 2021 12:33:31 GMT): RajaDhanushkodi (Mon, 15 Nov 2021 12:48:59 GMT): sidharthan.j (Mon, 15 Nov 2021 14:08:36 GMT): MarioMichel (Mon, 15 Nov 2021 14:19:46 GMT): MarioMichel (Mon, 15 Nov 2021 14:20:56 GMT): matejstern (Mon, 15 Nov 2021 14:57:24 GMT): elenaizaguirre (Mon, 15 Nov 2021 15:54:06 GMT): matisalimba (Mon, 15 Nov 2021 17:24:38 GMT): RyanKoch (Mon, 15 Nov 2021 19:51:01 GMT): AlexTran (Mon, 15 Nov 2021 20:58:47 GMT): jframe (Mon, 15 Nov 2021 22:45:30 GMT): panicstyle (Tue, 16 Nov 2021 01:02:10 GMT): lucassaldanha (Tue, 16 Nov 2021 02:16:01 GMT): mamba2017 (Tue, 16 Nov 2021 02:24:05 GMT): shadiayoub (Tue, 16 Nov 2021 08:16:41 GMT): shadiayoub (Tue, 16 Nov 2021 08:19:13 GMT): PHAGUNJAIN (Tue, 16 Nov 2021 08:43:43 GMT): MiguelCabeza (Tue, 16 Nov 2021 10:17:07 GMT): Helsonkumar (Tue, 16 Nov 2021 13:49:35 GMT): xlswirlds (Tue, 16 Nov 2021 15:31:16 GMT): Clippo 3 (Tue, 16 Nov 2021 16:43:15 GMT): smannathan (Tue, 16 Nov 2021 17:11:28 GMT): diegoll (Tue, 16 Nov 2021 17:13:12 GMT): ivicaa (Tue, 16 Nov 2021 20:16:35 GMT): lucassaldanha (Tue, 16 Nov 2021 21:14:01 GMT): lucassaldanha (Tue, 16 Nov 2021 21:16:58 GMT): ivicaa (Tue, 16 Nov 2021 21:18:17 GMT): hegde.rahul (Wed, 17 Nov 2021 01:20:10 GMT): Bert (Wed, 17 Nov 2021 01:53:41 GMT): Arjen (Wed, 17 Nov 2021 09:23:29 GMT): reddevil (Wed, 17 Nov 2021 10:52:01 GMT): reddevil (Wed, 17 Nov 2021 10:53:49 GMT): beeraaron81 (Wed, 17 Nov 2021 13:01:11 GMT): beeraaron81 (Wed, 17 Nov 2021 13:03:54 GMT): ivicaa (Wed, 17 Nov 2021 13:09:35 GMT): samsonlarsson (Wed, 17 Nov 2021 14:02:08 GMT): EmilioFL (Wed, 17 Nov 2021 22:13:16 GMT): Clippo 3 (Wed, 17 Nov 2021 22:27:16 GMT): Clippo 3 (Wed, 17 Nov 2021 22:27:51 GMT): shemnon (Wed, 17 Nov 2021 22:32:34 GMT): Clippo 3 (Wed, 17 Nov 2021 22:45:11 GMT): shemnon (Wed, 17 Nov 2021 22:53:04 GMT): shemnon (Wed, 17 Nov 2021 22:53:42 GMT): macfarla (Wed, 17 Nov 2021 23:16:13 GMT): MarioMichel (Wed, 17 Nov 2021 23:37:52 GMT): MarioMichel (Wed, 17 Nov 2021 23:38:37 GMT): MarioMichel (Wed, 17 Nov 2021 23:38:37 GMT): shadiayoub (Thu, 18 Nov 2021 06:14:56 GMT): damianlluch (Thu, 18 Nov 2021 10:19:41 GMT): madelinemurray (Thu, 18 Nov 2021 10:33:52 GMT): joymondal (Thu, 18 Nov 2021 10:34:15 GMT): damianlluch (Thu, 18 Nov 2021 11:00:27 GMT): MarioMichel (Thu, 18 Nov 2021 11:22:20 GMT): loziniak (Thu, 18 Nov 2021 13:13:40 GMT): diegoll (Thu, 18 Nov 2021 13:29:53 GMT): RoboCopsGoneMad (Thu, 18 Nov 2021 14:22:39 GMT): ArneGebert (Thu, 18 Nov 2021 14:31:05 GMT): ArneGebert (Thu, 18 Nov 2021 14:35:54 GMT): ArneGebert (Thu, 18 Nov 2021 14:35:54 GMT): shadiayoub (Thu, 18 Nov 2021 14:36:46 GMT): ArneGebert (Thu, 18 Nov 2021 14:39:29 GMT): ayushraj8271 (Thu, 18 Nov 2021 15:52:47 GMT): reddevil (Thu, 18 Nov 2021 16:42:47 GMT): hitesh.sharma.06 (Thu, 18 Nov 2021 17:03:45 GMT): shadiayoub (Thu, 18 Nov 2021 17:05:02 GMT): AshokkumarMdx (Thu, 18 Nov 2021 17:46:21 GMT): LEOISHere (Thu, 18 Nov 2021 19:11:05 GMT): LEOISHere (Thu, 18 Nov 2021 19:12:33 GMT): LEOISHere (Thu, 18 Nov 2021 19:15:01 GMT): Adyntec (Thu, 18 Nov 2021 20:09:37 GMT): MarioMichel (Thu, 18 Nov 2021 20:13:53 GMT): bgravenorst (Thu, 18 Nov 2021 20:20:34 GMT): bgravenorst (Thu, 18 Nov 2021 20:21:01 GMT): shemnon (Thu, 18 Nov 2021 20:22:08 GMT): MarioMichel (Thu, 18 Nov 2021 20:23:25 GMT): jframe (Thu, 18 Nov 2021 22:39:34 GMT): jframe (Thu, 18 Nov 2021 22:41:56 GMT): gad0lim (Fri, 19 Nov 2021 01:22:34 GMT): gad0lim (Fri, 19 Nov 2021 01:22:35 GMT): indongkim (Fri, 19 Nov 2021 01:39:20 GMT): bgravenorst (Fri, 19 Nov 2021 03:48:58 GMT): frankliawesome (Fri, 19 Nov 2021 05:04:20 GMT): SanjayRS (Fri, 19 Nov 2021 07:44:05 GMT): NicolasMassart (Fri, 19 Nov 2021 10:04:00 GMT): ArneGebert (Fri, 19 Nov 2021 10:32:45 GMT): maciej_ol (Fri, 19 Nov 2021 10:41:31 GMT): bondasoup (Fri, 19 Nov 2021 12:43:12 GMT): SuzanaMaranhao (Fri, 19 Nov 2021 13:55:45 GMT): NicolasMassart (Fri, 19 Nov 2021 14:00:58 GMT): NicolasMassart (Fri, 19 Nov 2021 14:00:58 GMT): NicolasMassart (Fri, 19 Nov 2021 14:00:58 GMT): SuzanaMaranhao (Fri, 19 Nov 2021 14:02:45 GMT): NicolasMassart (Fri, 19 Nov 2021 14:06:20 GMT): NicolasMassart (Fri, 19 Nov 2021 14:06:20 GMT): NicolasMassart (Fri, 19 Nov 2021 14:06:20 GMT): SuzanaMaranhao (Fri, 19 Nov 2021 14:07:25 GMT): NicolasMassart (Fri, 19 Nov 2021 14:07:45 GMT): NicolasMassart (Fri, 19 Nov 2021 14:10:54 GMT): SuzanaMaranhao (Fri, 19 Nov 2021 14:11:17 GMT): NicolasMassart (Fri, 19 Nov 2021 14:14:11 GMT): NicolasMassart (Fri, 19 Nov 2021 14:14:11 GMT): SuzanaMaranhao (Fri, 19 Nov 2021 14:25:29 GMT): shadiayoub (Fri, 19 Nov 2021 14:46:47 GMT): gad0lim (Fri, 19 Nov 2021 17:22:58 GMT): gad0lim (Fri, 19 Nov 2021 17:22:58 GMT): gad0lim (Fri, 19 Nov 2021 17:22:58 GMT): gad0lim (Fri, 19 Nov 2021 17:22:58 GMT): gad0lim (Fri, 19 Nov 2021 17:22:58 GMT): shadiayoub (Fri, 19 Nov 2021 17:59:01 GMT): NicolasMassart (Fri, 19 Nov 2021 18:00:02 GMT): shadiayoub (Fri, 19 Nov 2021 18:00:49 GMT): NicolasMassart (Fri, 19 Nov 2021 18:02:09 GMT): Tim98390383 (Fri, 19 Nov 2021 20:53:22 GMT): uvdsl (Fri, 19 Nov 2021 22:24:46 GMT): MarioMichel (Fri, 19 Nov 2021 22:45:40 GMT): gad0lim (Sat, 20 Nov 2021 05:39:41 GMT): gad0lim (Sat, 20 Nov 2021 05:40:12 GMT): Kanishk-Kumar24 (Sat, 20 Nov 2021 05:45:19 GMT): ivicaa (Sat, 20 Nov 2021 06:50:51 GMT): ivicaa (Sat, 20 Nov 2021 06:50:51 GMT): ivicaa (Sat, 20 Nov 2021 06:50:51 GMT): ivicaa (Sat, 20 Nov 2021 06:52:49 GMT): ivicaa (Sat, 20 Nov 2021 06:59:16 GMT): ArneGebert (Sat, 20 Nov 2021 10:03:28 GMT): lonis (Sat, 20 Nov 2021 18:09:02 GMT): MarioMichel (Sat, 20 Nov 2021 21:06:25 GMT): markatag (Sun, 21 Nov 2021 10:02:24 GMT): markatag (Sun, 21 Nov 2021 10:05:14 GMT): markatag (Sun, 21 Nov 2021 10:05:14 GMT): shadiayoub (Sun, 21 Nov 2021 13:09:56 GMT): shadiayoub (Sun, 21 Nov 2021 13:10:19 GMT): shadiayoub (Sun, 21 Nov 2021 13:10:19 GMT): shadiayoub (Sun, 21 Nov 2021 13:17:04 GMT): lucassaldanha (Sun, 21 Nov 2021 20:12:31 GMT): ivicaa (Sun, 21 Nov 2021 22:10:23 GMT): lucassaldanha (Mon, 22 Nov 2021 00:40:22 GMT): indongkim (Mon, 22 Nov 2021 01:28:49 GMT): ShumanCapote (Mon, 22 Nov 2021 05:12:12 GMT): ThomasRitter (Mon, 22 Nov 2021 05:28:23 GMT): frankliawesome (Mon, 22 Nov 2021 06:17:26 GMT): saurabhSAG (Mon, 22 Nov 2021 08:31:14 GMT): antonydenyer (Mon, 22 Nov 2021 08:45:41 GMT): Sharonmunyao (Mon, 22 Nov 2021 09:46:40 GMT): ArneGebert (Mon, 22 Nov 2021 13:53:16 GMT): Clippo 3 (Mon, 22 Nov 2021 15:00:28 GMT): loziniak (Mon, 22 Nov 2021 15:02:20 GMT): Joesv (Mon, 22 Nov 2021 16:24:44 GMT): ArneGebert (Mon, 22 Nov 2021 16:41:07 GMT): krishnabayanna (Mon, 22 Nov 2021 17:14:52 GMT): TheoKneen (Mon, 22 Nov 2021 17:25:27 GMT): MarioMichel (Mon, 22 Nov 2021 17:52:36 GMT): MarioMichel (Mon, 22 Nov 2021 17:52:36 GMT): MarioMichel (Mon, 22 Nov 2021 17:52:36 GMT): MarioMichel (Mon, 22 Nov 2021 17:52:36 GMT): MarioMichel (Mon, 22 Nov 2021 17:54:37 GMT): MarioMichel (Mon, 22 Nov 2021 17:54:37 GMT): MarioMichel (Mon, 22 Nov 2021 17:54:37 GMT): MarioMichel (Mon, 22 Nov 2021 17:56:09 GMT): shadiayoub (Mon, 22 Nov 2021 17:58:23 GMT): MarioMichel (Mon, 22 Nov 2021 17:59:17 GMT): MarioMichel (Mon, 22 Nov 2021 17:59:55 GMT): MarioMichel (Mon, 22 Nov 2021 17:59:55 GMT): MarioMichel (Mon, 22 Nov 2021 17:59:55 GMT): MarioMichel (Mon, 22 Nov 2021 17:59:55 GMT): MarioMichel (Mon, 22 Nov 2021 18:00:54 GMT): shadiayoub (Mon, 22 Nov 2021 18:01:07 GMT): MarioMichel (Mon, 22 Nov 2021 18:01:23 GMT): shadiayoub (Mon, 22 Nov 2021 18:01:50 GMT): shadiayoub (Mon, 22 Nov 2021 18:01:59 GMT): shadiayoub (Mon, 22 Nov 2021 18:02:19 GMT): MarioMichel (Mon, 22 Nov 2021 18:03:14 GMT): MarioMichel (Mon, 22 Nov 2021 18:06:35 GMT): shadiayoub (Mon, 22 Nov 2021 18:07:22 GMT): MarioMichel (Mon, 22 Nov 2021 18:07:52 GMT): MarioMichel (Mon, 22 Nov 2021 18:07:52 GMT): MarioMichel (Mon, 22 Nov 2021 18:08:05 GMT): MarioMichel (Mon, 22 Nov 2021 18:08:05 GMT): MarioMichel (Mon, 22 Nov 2021 18:13:19 GMT): MarioMichel (Mon, 22 Nov 2021 18:13:23 GMT): shadiayoub (Mon, 22 Nov 2021 18:13:35 GMT): MarioMichel (Mon, 22 Nov 2021 18:13:42 GMT): RobinBeltran (Mon, 22 Nov 2021 18:49:35 GMT): jfbourque (Mon, 22 Nov 2021 19:18:55 GMT): shadiayoub (Mon, 22 Nov 2021 20:22:26 GMT): MarioMichel (Mon, 22 Nov 2021 21:42:54 GMT): frankliawesome (Tue, 23 Nov 2021 01:21:16 GMT): frankliawesome (Tue, 23 Nov 2021 01:21:16 GMT): LeonQiao (Tue, 23 Nov 2021 02:08:25 GMT): bjwswangmail (Tue, 23 Nov 2021 03:24:15 GMT): sankara 5 (Tue, 23 Nov 2021 04:32:45 GMT): sankara 5 (Tue, 23 Nov 2021 04:32:45 GMT): g.mishra-blockgemini (Tue, 23 Nov 2021 05:21:26 GMT): MarioMichel (Tue, 23 Nov 2021 07:36:26 GMT): MarioMichel (Tue, 23 Nov 2021 07:36:26 GMT): Prasad8 2 (Tue, 23 Nov 2021 08:58:22 GMT): GoreTushar (Tue, 23 Nov 2021 11:24:47 GMT): skenaja (Tue, 23 Nov 2021 11:56:45 GMT): jyoti.patel (Tue, 23 Nov 2021 15:31:25 GMT): anipaul2 (Tue, 23 Nov 2021 19:08:23 GMT): anipaul2 (Tue, 23 Nov 2021 19:10:18 GMT): sajz (Tue, 23 Nov 2021 19:16:55 GMT): SuzanaMaranhao (Tue, 23 Nov 2021 19:42:11 GMT): SuzanaMaranhao (Tue, 23 Nov 2021 19:42:11 GMT): SuzanaMaranhao (Tue, 23 Nov 2021 19:46:42 GMT): loziniak (Tue, 23 Nov 2021 22:08:28 GMT): dantetti (Tue, 23 Nov 2021 23:55:00 GMT): lucassaldanha (Wed, 24 Nov 2021 00:37:42 GMT): hacke (Wed, 24 Nov 2021 07:34:00 GMT): MarioMichel (Wed, 24 Nov 2021 09:05:49 GMT): KurosakiIchigo (Wed, 24 Nov 2021 09:14:58 GMT): efrain (Wed, 24 Nov 2021 09:19:00 GMT): macfarla (Wed, 24 Nov 2021 11:24:17 GMT): Kmm 4 (Wed, 24 Nov 2021 13:49:10 GMT): ShengChillie (Wed, 24 Nov 2021 14:05:45 GMT): shadiayoub (Wed, 24 Nov 2021 14:19:57 GMT): shadiayoub (Wed, 24 Nov 2021 14:20:08 GMT): shadiayoub (Wed, 24 Nov 2021 14:22:25 GMT): john.h.o.mantaring (Wed, 24 Nov 2021 15:02:17 GMT): SuzanaMaranhao (Wed, 24 Nov 2021 15:36:50 GMT): MarioMichel (Wed, 24 Nov 2021 18:10:47 GMT): shinnosuke.sonoda (Thu, 25 Nov 2021 01:12:32 GMT): RitikaKakkar (Thu, 25 Nov 2021 04:53:49 GMT): abhisheksavaliya (Thu, 25 Nov 2021 06:03:02 GMT): Haniff (Thu, 25 Nov 2021 09:33:10 GMT): gurkhaman (Thu, 25 Nov 2021 11:02:06 GMT): neves 2 (Thu, 25 Nov 2021 11:19:28 GMT): deetho (Thu, 25 Nov 2021 11:49:03 GMT): atsveloso (Thu, 25 Nov 2021 12:08:49 GMT): zhengxilong (Thu, 25 Nov 2021 12:21:09 GMT): shadiayoub (Thu, 25 Nov 2021 12:44:05 GMT): shadiayoub (Thu, 25 Nov 2021 12:44:05 GMT): ap13 (Thu, 25 Nov 2021 15:28:50 GMT): krishna2752 (Thu, 25 Nov 2021 15:40:15 GMT): shadiayoub (Thu, 25 Nov 2021 16:31:48 GMT): ArneGebert (Thu, 25 Nov 2021 23:16:56 GMT): SiddharthGupta (Fri, 26 Nov 2021 01:13:45 GMT): csum112 (Fri, 26 Nov 2021 08:20:05 GMT): Kayaba.Keita (Fri, 26 Nov 2021 10:38:47 GMT): efrain (Fri, 26 Nov 2021 11:41:39 GMT): efrain (Fri, 26 Nov 2021 11:41:39 GMT): efrain (Fri, 26 Nov 2021 11:41:39 GMT): hjpn (Fri, 26 Nov 2021 18:18:26 GMT): hjpn (Fri, 26 Nov 2021 18:18:40 GMT): shadiayoub (Fri, 26 Nov 2021 19:13:56 GMT): ankitsaurabh (Fri, 26 Nov 2021 21:47:21 GMT): shemnon (Fri, 26 Nov 2021 23:17:12 GMT): efrain (Sat, 27 Nov 2021 13:32:19 GMT): efrain (Sat, 27 Nov 2021 13:32:19 GMT): efrain (Sat, 27 Nov 2021 13:32:19 GMT): KiranLakhotia (Sat, 27 Nov 2021 15:34:16 GMT): KiranLakhotia (Sat, 27 Nov 2021 15:36:39 GMT): KiranLakhotia (Sat, 27 Nov 2021 15:36:39 GMT): loziniak (Sat, 27 Nov 2021 19:37:36 GMT): efrain (Sun, 28 Nov 2021 08:32:15 GMT): shadiayoub (Sun, 28 Nov 2021 11:39:21 GMT): gad0lim (Sun, 28 Nov 2021 18:57:26 GMT): gad0lim (Sun, 28 Nov 2021 18:59:04 GMT): Nithronium (Sun, 28 Nov 2021 21:19:48 GMT): Nithronium (Sun, 28 Nov 2021 21:19:54 GMT): Nithronium (Sun, 28 Nov 2021 21:21:21 GMT): Nithronium (Sun, 28 Nov 2021 21:28:35 GMT): gad0lim (Mon, 29 Nov 2021 00:19:03 GMT): macfarla (Mon, 29 Nov 2021 00:59:55 GMT): macfarla (Mon, 29 Nov 2021 01:02:58 GMT): macfarla (Mon, 29 Nov 2021 01:04:22 GMT): macfarla (Mon, 29 Nov 2021 01:06:55 GMT): iamchris1688 (Mon, 29 Nov 2021 03:43:53 GMT): SubashAnbazhagan (Mon, 29 Nov 2021 04:49:37 GMT): laolao (Mon, 29 Nov 2021 05:27:07 GMT): amithkk (Mon, 29 Nov 2021 06:05:41 GMT): loziniak (Mon, 29 Nov 2021 10:39:28 GMT): hjpn (Mon, 29 Nov 2021 11:16:30 GMT): hjpn (Mon, 29 Nov 2021 11:21:22 GMT): hjpn (Mon, 29 Nov 2021 11:22:14 GMT): s.vahidi (Mon, 29 Nov 2021 12:14:35 GMT): shadiayoub (Mon, 29 Nov 2021 13:14:15 GMT): shadiayoub (Mon, 29 Nov 2021 13:16:32 GMT): FotisMichalopoulos (Mon, 29 Nov 2021 13:51:49 GMT): MohammadHT (Mon, 29 Nov 2021 14:27:03 GMT): hjpn (Mon, 29 Nov 2021 16:02:40 GMT): hjpn (Mon, 29 Nov 2021 16:26:40 GMT): hjpn (Mon, 29 Nov 2021 16:44:11 GMT): hjpn (Mon, 29 Nov 2021 16:44:15 GMT): hjpn (Mon, 29 Nov 2021 16:44:33 GMT): shemnon (Mon, 29 Nov 2021 17:01:23 GMT): hjpn (Mon, 29 Nov 2021 17:12:58 GMT): shadiayoub (Mon, 29 Nov 2021 19:16:47 GMT): SuzanaMaranhao (Mon, 29 Nov 2021 19:23:03 GMT): hjpn (Mon, 29 Nov 2021 19:40:29 GMT): hjpn (Mon, 29 Nov 2021 19:40:29 GMT): hjpn (Mon, 29 Nov 2021 19:48:36 GMT): shemnon (Mon, 29 Nov 2021 20:07:21 GMT): shadiayoub (Mon, 29 Nov 2021 21:08:57 GMT): shadiayoub (Mon, 29 Nov 2021 21:10:12 GMT): lucassaldanha (Mon, 29 Nov 2021 21:55:22 GMT): lucassaldanha (Mon, 29 Nov 2021 21:56:20 GMT): macfarla (Tue, 30 Nov 2021 00:14:33 GMT): jframe (Tue, 30 Nov 2021 00:36:14 GMT): hjpn (Tue, 30 Nov 2021 09:25:53 GMT): hjpn (Tue, 30 Nov 2021 09:37:56 GMT): hjpn (Tue, 30 Nov 2021 09:37:56 GMT): hjpn (Tue, 30 Nov 2021 09:39:56 GMT): hjpn (Tue, 30 Nov 2021 09:39:56 GMT): hjpn (Tue, 30 Nov 2021 09:39:56 GMT): hjpn (Tue, 30 Nov 2021 09:42:30 GMT): hjpn (Tue, 30 Nov 2021 09:42:45 GMT): hjpn (Tue, 30 Nov 2021 09:43:28 GMT): dalan 2 (Tue, 30 Nov 2021 10:07:28 GMT): RouteSagar (Tue, 30 Nov 2021 12:08:10 GMT): hjpn (Tue, 30 Nov 2021 12:16:09 GMT): hjpn (Tue, 30 Nov 2021 15:55:10 GMT): hjpn (Tue, 30 Nov 2021 15:55:22 GMT): Clippo 3 (Tue, 30 Nov 2021 17:15:50 GMT): Clippo 3 (Tue, 30 Nov 2021 17:16:23 GMT): Clippo 3 (Tue, 30 Nov 2021 17:16:28 GMT): Clippo 3 (Tue, 30 Nov 2021 17:16:45 GMT): shadiayoub (Tue, 30 Nov 2021 17:53:18 GMT): Clippo 3 (Tue, 30 Nov 2021 18:23:51 GMT): Clippo 3 (Tue, 30 Nov 2021 18:24:05 GMT): shadiayoub (Tue, 30 Nov 2021 18:53:18 GMT): caglayan45 (Tue, 30 Nov 2021 20:00:07 GMT): Clippo 3 (Tue, 30 Nov 2021 20:29:17 GMT): Clippo 3 (Tue, 30 Nov 2021 20:29:33 GMT): shadiayoub (Tue, 30 Nov 2021 20:58:00 GMT): shadiayoub (Tue, 30 Nov 2021 20:58:00 GMT): SuzanaMaranhao (Tue, 30 Nov 2021 21:53:58 GMT): SuzanaMaranhao (Tue, 30 Nov 2021 21:54:15 GMT): diegoll (Tue, 30 Nov 2021 22:44:54 GMT): Clippo 3 (Tue, 30 Nov 2021 22:58:42 GMT): jframe (Tue, 30 Nov 2021 23:20:48 GMT): SuzanaMaranhao (Tue, 30 Nov 2021 23:26:23 GMT): macfarla (Tue, 30 Nov 2021 23:26:24 GMT): macfarla (Tue, 30 Nov 2021 23:33:50 GMT): macfarla (Wed, 01 Dec 2021 00:42:21 GMT): JunkF (Wed, 01 Dec 2021 02:58:09 GMT): lventi (Wed, 01 Dec 2021 12:41:31 GMT): efrain (Wed, 01 Dec 2021 13:34:08 GMT): andreolf1 (Wed, 01 Dec 2021 13:35:44 GMT): shadiayoub (Wed, 01 Dec 2021 13:48:42 GMT): joey_gogo (Wed, 01 Dec 2021 13:50:13 GMT): SuzanaMaranhao (Wed, 01 Dec 2021 14:20:52 GMT): SuzanaMaranhao (Wed, 01 Dec 2021 14:25:52 GMT): SuzanaMaranhao (Wed, 01 Dec 2021 15:20:58 GMT): SuzanaMaranhao (Wed, 01 Dec 2021 15:20:58 GMT): antonydenyer (Wed, 01 Dec 2021 15:25:52 GMT): SuzanaMaranhao (Wed, 01 Dec 2021 15:32:52 GMT): BigmoneyJoe (Wed, 01 Dec 2021 15:52:38 GMT): shadiayoub (Wed, 01 Dec 2021 16:42:26 GMT): antonydenyer (Wed, 01 Dec 2021 16:49:31 GMT): shadiayoub (Wed, 01 Dec 2021 16:50:43 GMT): antonydenyer (Wed, 01 Dec 2021 16:52:48 GMT): antonydenyer (Wed, 01 Dec 2021 16:54:24 GMT): shadiayoub (Wed, 01 Dec 2021 16:55:26 GMT): antonydenyer (Wed, 01 Dec 2021 16:56:36 GMT): shadiayoub (Wed, 01 Dec 2021 16:57:50 GMT): antonydenyer (Wed, 01 Dec 2021 17:05:21 GMT): efrain (Wed, 01 Dec 2021 19:04:43 GMT): JosephPotts (Wed, 01 Dec 2021 19:36:11 GMT): joey_gogo (Wed, 01 Dec 2021 21:53:38 GMT): thusithathilina (Wed, 01 Dec 2021 23:27:49 GMT): madelinemurray (Thu, 02 Dec 2021 01:38:43 GMT): Rp27 (Thu, 02 Dec 2021 03:52:55 GMT): SergioTorres (Thu, 02 Dec 2021 06:17:06 GMT): SergioTorres (Thu, 02 Dec 2021 06:17:38 GMT): Bhemeswararaoxcubelabs.com (Thu, 02 Dec 2021 06:27:15 GMT): fab-10 (Thu, 02 Dec 2021 08:43:36 GMT): macfarla (Thu, 02 Dec 2021 11:18:28 GMT): SergioTorres (Thu, 02 Dec 2021 12:36:58 GMT): BoJacobs (Thu, 02 Dec 2021 13:29:52 GMT): joey_gogo (Thu, 02 Dec 2021 13:56:46 GMT): kudzaishezana (Thu, 02 Dec 2021 15:45:47 GMT): fab-10 (Thu, 02 Dec 2021 16:31:32 GMT): fab-10 (Thu, 02 Dec 2021 16:32:36 GMT): joey_gogo (Thu, 02 Dec 2021 17:46:29 GMT): The_Science (Thu, 02 Dec 2021 18:28:15 GMT): fab-10 (Thu, 02 Dec 2021 18:41:28 GMT): macfarla (Thu, 02 Dec 2021 19:58:24 GMT): SuzanaMaranhao (Thu, 02 Dec 2021 21:42:54 GMT): SuzanaMaranhao (Thu, 02 Dec 2021 21:42:54 GMT): joey_gogo (Thu, 02 Dec 2021 22:37:09 GMT): F.Florian (Thu, 02 Dec 2021 23:11:39 GMT): PalanisamyChellappan (Fri, 03 Dec 2021 05:17:09 GMT): SergioTorres (Fri, 03 Dec 2021 05:26:10 GMT): SergioTorres (Fri, 03 Dec 2021 05:26:31 GMT): SergioTorres (Fri, 03 Dec 2021 05:26:53 GMT): ipepoi (Fri, 03 Dec 2021 07:07:26 GMT): shadiayoub (Fri, 03 Dec 2021 07:49:29 GMT): rohitsaikrishnan (Fri, 03 Dec 2021 08:22:32 GMT): antonydenyer (Fri, 03 Dec 2021 08:37:24 GMT): NB-PrasadKatkar (Fri, 03 Dec 2021 08:57:12 GMT): shadiayoub (Fri, 03 Dec 2021 09:57:37 GMT): efrain (Fri, 03 Dec 2021 11:45:20 GMT): efrain (Fri, 03 Dec 2021 11:45:20 GMT): shadiayoub (Fri, 03 Dec 2021 11:58:51 GMT): efrain (Fri, 03 Dec 2021 12:03:15 GMT): efrain (Fri, 03 Dec 2021 12:03:15 GMT): efrain (Fri, 03 Dec 2021 12:03:15 GMT): efrain (Fri, 03 Dec 2021 12:03:15 GMT): efrain (Fri, 03 Dec 2021 12:03:15 GMT): efrain (Fri, 03 Dec 2021 12:03:15 GMT): efrain (Fri, 03 Dec 2021 12:04:54 GMT): efrain (Fri, 03 Dec 2021 13:24:28 GMT): shadiayoub (Fri, 03 Dec 2021 13:58:11 GMT): cmalbas (Fri, 03 Dec 2021 14:06:03 GMT): KodeKamper (Fri, 03 Dec 2021 14:15:39 GMT): hjpn (Fri, 03 Dec 2021 15:19:56 GMT): hjpn (Fri, 03 Dec 2021 15:20:30 GMT): hjpn (Fri, 03 Dec 2021 15:20:30 GMT): hjpn (Fri, 03 Dec 2021 15:20:30 GMT): hjpn (Fri, 03 Dec 2021 15:20:30 GMT): hjpn (Fri, 03 Dec 2021 15:20:39 GMT): hjpn (Fri, 03 Dec 2021 15:21:13 GMT): x4v13r (Fri, 03 Dec 2021 15:44:29 GMT): SudeshBanskota (Fri, 03 Dec 2021 15:45:04 GMT): Clippo 3 (Fri, 03 Dec 2021 19:39:40 GMT): shadiayoub (Fri, 03 Dec 2021 19:43:15 GMT): SuzanaMaranhao (Fri, 03 Dec 2021 19:55:38 GMT): Clippo 3 (Fri, 03 Dec 2021 20:02:50 GMT): Clippo 3 (Fri, 03 Dec 2021 20:03:05 GMT): Clippo 3 (Fri, 03 Dec 2021 20:37:37 GMT): diegoll (Fri, 03 Dec 2021 20:48:40 GMT): shadiayoub (Fri, 03 Dec 2021 21:15:00 GMT): shadiayoub (Fri, 03 Dec 2021 21:40:07 GMT): Clippo 3 (Fri, 03 Dec 2021 22:00:57 GMT): Clippo 3 (Fri, 03 Dec 2021 22:01:07 GMT): shadiayoub (Fri, 03 Dec 2021 23:06:55 GMT): lazaridis.com (Sat, 04 Dec 2021 07:08:56 GMT): shadiayoub (Sat, 04 Dec 2021 13:00:07 GMT): efrain (Sat, 04 Dec 2021 17:49:39 GMT): shadiayoub (Sat, 04 Dec 2021 18:40:25 GMT): efrain (Sat, 04 Dec 2021 19:20:28 GMT): shadiayoub (Sat, 04 Dec 2021 19:29:32 GMT): shadiayoub (Sat, 04 Dec 2021 22:30:56 GMT): saibot940 (Sun, 05 Dec 2021 14:38:29 GMT): bhupatbheda (Sun, 05 Dec 2021 17:52:18 GMT): joshuafernandes (Sun, 05 Dec 2021 23:22:45 GMT): joshuafernandes (Sun, 05 Dec 2021 23:35:21 GMT): shadiayoub (Mon, 06 Dec 2021 00:02:19 GMT): shadiayoub (Mon, 06 Dec 2021 00:02:48 GMT): madelinemurray (Mon, 06 Dec 2021 00:43:54 GMT): joshuafernandes (Mon, 06 Dec 2021 00:48:10 GMT): jframe (Mon, 06 Dec 2021 00:48:36 GMT): jframe (Mon, 06 Dec 2021 00:48:36 GMT): jframe (Mon, 06 Dec 2021 00:48:51 GMT): jframe (Mon, 06 Dec 2021 00:50:14 GMT): babamatmat (Mon, 06 Dec 2021 04:21:50 GMT): shadiayoub (Mon, 06 Dec 2021 09:20:26 GMT): JOHNNYDOE (Mon, 06 Dec 2021 13:49:26 GMT): SuzanaMaranhao (Mon, 06 Dec 2021 14:04:23 GMT): binodpandey (Mon, 06 Dec 2021 16:25:52 GMT): gustavosales (Mon, 06 Dec 2021 17:45:42 GMT): MarioMichel (Mon, 06 Dec 2021 17:47:40 GMT): Rp27 (Tue, 07 Dec 2021 02:26:21 GMT): tuan072090 (Tue, 07 Dec 2021 02:56:51 GMT): YeMyint (Tue, 07 Dec 2021 05:22:48 GMT): jainamsha (Tue, 07 Dec 2021 07:31:49 GMT): jandaman (Tue, 07 Dec 2021 08:57:31 GMT): TejaSatyanarayana (Tue, 07 Dec 2021 09:31:34 GMT): TejaSatyanarayana (Tue, 07 Dec 2021 09:34:12 GMT): TejaSatyanarayana (Tue, 07 Dec 2021 09:34:12 GMT): TejaSatyanarayana (Tue, 07 Dec 2021 09:34:12 GMT): ashritha2410 (Tue, 07 Dec 2021 10:06:29 GMT): Ivanaa9 (Tue, 07 Dec 2021 10:13:47 GMT): urahara (Tue, 07 Dec 2021 10:17:31 GMT): carlosalca94 (Tue, 07 Dec 2021 14:14:31 GMT): Clippo 3 (Tue, 07 Dec 2021 14:48:19 GMT): vasiksim (Tue, 07 Dec 2021 20:06:35 GMT): kennylau89 (Wed, 08 Dec 2021 01:27:05 GMT): SuzanaMaranhao (Wed, 08 Dec 2021 01:39:18 GMT): shemnon (Wed, 08 Dec 2021 03:55:10 GMT): shemnon (Wed, 08 Dec 2021 03:55:28 GMT): AJAR (Wed, 08 Dec 2021 05:31:44 GMT): bajerm (Wed, 08 Dec 2021 08:40:13 GMT): StrangeDays (Wed, 08 Dec 2021 09:19:24 GMT): iffathossain (Wed, 08 Dec 2021 09:26:25 GMT): iffathossain (Wed, 08 Dec 2021 09:26:25 GMT): TejaSatyanarayana (Wed, 08 Dec 2021 10:19:29 GMT): SujithSu 2 (Wed, 08 Dec 2021 12:18:46 GMT): MateC89 (Wed, 08 Dec 2021 13:30:45 GMT): SuzanaMaranhao (Wed, 08 Dec 2021 15:26:31 GMT): shemnon (Wed, 08 Dec 2021 15:33:07 GMT): SuzanaMaranhao (Wed, 08 Dec 2021 16:15:02 GMT): shemnon (Wed, 08 Dec 2021 16:15:53 GMT): shemnon (Wed, 08 Dec 2021 16:16:19 GMT): SuzanaMaranhao (Wed, 08 Dec 2021 16:17:47 GMT): shemnon (Wed, 08 Dec 2021 16:26:44 GMT): mdshahbazalam (Wed, 08 Dec 2021 17:33:10 GMT): george.patterson (Thu, 09 Dec 2021 01:37:44 GMT): Jerry.Bach (Thu, 09 Dec 2021 03:22:18 GMT): JamesYL (Thu, 09 Dec 2021 05:38:09 GMT): marco.cassandro (Thu, 09 Dec 2021 08:45:55 GMT): markatag (Thu, 09 Dec 2021 09:32:46 GMT): markatag (Thu, 09 Dec 2021 09:33:10 GMT): markatag (Thu, 09 Dec 2021 09:33:10 GMT): markatag (Thu, 09 Dec 2021 09:37:21 GMT): hjpn (Thu, 09 Dec 2021 10:00:26 GMT): nathanbn (Thu, 09 Dec 2021 11:48:02 GMT): murilo_silva (Thu, 09 Dec 2021 15:07:10 GMT): KMM 6 (Thu, 09 Dec 2021 15:13:09 GMT): diane.lockhart2 (Thu, 09 Dec 2021 16:26:07 GMT): nikusingh (Thu, 09 Dec 2021 18:01:55 GMT): SuzanaMaranhao (Thu, 09 Dec 2021 19:55:49 GMT): mahdiabdian (Thu, 09 Dec 2021 20:40:22 GMT): BoranCar (Thu, 09 Dec 2021 21:45:50 GMT): mvasavi (Fri, 10 Dec 2021 03:07:24 GMT): Aqusa (Fri, 10 Dec 2021 03:42:38 GMT): TejaSatyanarayana (Fri, 10 Dec 2021 04:57:31 GMT): rmdnsd (Fri, 10 Dec 2021 11:29:45 GMT): nebucaz (Fri, 10 Dec 2021 12:24:43 GMT): wlhowell (Fri, 10 Dec 2021 14:40:39 GMT): tabouzid (Fri, 10 Dec 2021 15:19:06 GMT): Koen84 (Fri, 10 Dec 2021 19:01:55 GMT): Koen84 (Fri, 10 Dec 2021 19:02:15 GMT): AutoMAttic (Fri, 10 Dec 2021 19:10:31 GMT): shemnon (Fri, 10 Dec 2021 19:51:50 GMT): matt.nelson.csi (Fri, 10 Dec 2021 20:22:42 GMT): matt.nelson.csi (Fri, 10 Dec 2021 20:23:16 GMT): matt.nelson.csi (Fri, 10 Dec 2021 21:00:07 GMT): Koen84 (Sat, 11 Dec 2021 00:38:26 GMT): shadiayoub (Sat, 11 Dec 2021 18:34:32 GMT): shadiayoub (Sat, 11 Dec 2021 18:34:32 GMT): HyperledgerNewbie (Sat, 11 Dec 2021 23:52:04 GMT): HyperledgerNewbie (Sat, 11 Dec 2021 23:57:36 GMT): brnhrd89 (Sun, 12 Dec 2021 03:18:25 GMT): sairanjitaw (Sun, 12 Dec 2021 13:47:07 GMT): HyperledgerNewbie (Sun, 12 Dec 2021 14:02:55 GMT): frankliawesome (Sun, 12 Dec 2021 23:57:21 GMT): frankliawesome (Sun, 12 Dec 2021 23:58:16 GMT): macfarla (Mon, 13 Dec 2021 04:17:26 GMT): macfarla (Mon, 13 Dec 2021 04:20:30 GMT): macfarla (Mon, 13 Dec 2021 04:22:43 GMT): macfarla (Mon, 13 Dec 2021 04:24:38 GMT): macfarla (Mon, 13 Dec 2021 04:25:10 GMT): macfarla (Mon, 13 Dec 2021 04:26:53 GMT): macfarla (Mon, 13 Dec 2021 04:29:13 GMT): macfarla (Mon, 13 Dec 2021 04:32:10 GMT): ArneGebert (Mon, 13 Dec 2021 11:15:38 GMT): ArneGebert (Mon, 13 Dec 2021 11:15:38 GMT): efrain (Mon, 13 Dec 2021 12:45:07 GMT): efrain (Mon, 13 Dec 2021 12:45:07 GMT): PaulHaynes (Mon, 13 Dec 2021 12:55:48 GMT): arshdebian (Mon, 13 Dec 2021 14:44:02 GMT): Clippo 3 (Mon, 13 Dec 2021 16:34:59 GMT): SuzanaMaranhao (Mon, 13 Dec 2021 19:13:14 GMT): shemnon (Mon, 13 Dec 2021 19:50:19 GMT): shemnon (Mon, 13 Dec 2021 19:50:58 GMT): SuzanaMaranhao (Mon, 13 Dec 2021 20:09:20 GMT): shemnon (Mon, 13 Dec 2021 20:39:33 GMT): shemnon (Mon, 13 Dec 2021 20:40:02 GMT): Clippo 3 (Mon, 13 Dec 2021 22:56:14 GMT): Clippo 3 (Mon, 13 Dec 2021 22:56:15 GMT): Clippo 3 (Mon, 13 Dec 2021 22:56:24 GMT): talgar (Mon, 13 Dec 2021 23:33:21 GMT): macfarla (Mon, 13 Dec 2021 23:44:24 GMT): macfarla (Mon, 13 Dec 2021 23:45:13 GMT): macfarla (Mon, 13 Dec 2021 23:47:46 GMT): kbyokin (Tue, 14 Dec 2021 07:22:31 GMT): MehdiIda (Tue, 14 Dec 2021 08:12:14 GMT): fabric (Tue, 14 Dec 2021 12:40:25 GMT): whcjst (Tue, 14 Dec 2021 13:34:17 GMT): Clippo 3 (Tue, 14 Dec 2021 14:58:18 GMT): Clippo 3 (Tue, 14 Dec 2021 14:58:27 GMT): TarsoQueiroz (Tue, 14 Dec 2021 16:52:33 GMT): MattProto (Tue, 14 Dec 2021 22:34:58 GMT): AshwiniD 1 (Wed, 15 Dec 2021 05:14:59 GMT): baron0426 (Wed, 15 Dec 2021 08:47:45 GMT): macfarla (Thu, 16 Dec 2021 01:00:14 GMT): macfarla (Thu, 16 Dec 2021 01:00:31 GMT): Anthony022 (Thu, 16 Dec 2021 02:50:23 GMT): beifangfazhanlu (Thu, 16 Dec 2021 08:33:00 GMT): StepniowskiP (Thu, 16 Dec 2021 08:52:14 GMT): leonardoPereira (Thu, 16 Dec 2021 14:08:15 GMT): leonardoPereira (Thu, 16 Dec 2021 14:13:55 GMT): leonardoPereira (Thu, 16 Dec 2021 14:13:55 GMT): tdiesler (Thu, 16 Dec 2021 17:24:25 GMT): grzegorz.drozda (Thu, 16 Dec 2021 18:54:11 GMT): daiki.nakashima (Fri, 17 Dec 2021 04:18:29 GMT): taccatisid (Fri, 17 Dec 2021 05:59:43 GMT): Abcold (Fri, 17 Dec 2021 06:11:55 GMT): Abcold (Fri, 17 Dec 2021 06:17:45 GMT): IgorSim (Fri, 17 Dec 2021 06:37:32 GMT): Amits1 (Fri, 17 Dec 2021 11:10:59 GMT): UnparagonedWisdom (Fri, 17 Dec 2021 13:02:27 GMT): UnparagonedWisdom (Fri, 17 Dec 2021 13:05:23 GMT): UnparagonedWisdom (Fri, 17 Dec 2021 13:05:23 GMT): leonardoPereira (Fri, 17 Dec 2021 14:48:30 GMT): diegoll (Fri, 17 Dec 2021 16:11:11 GMT): diegoll (Fri, 17 Dec 2021 16:11:11 GMT): ThreeJam (Fri, 17 Dec 2021 18:02:54 GMT): SeanBohan (Fri, 17 Dec 2021 19:55:42 GMT): barcellosrod (Fri, 17 Dec 2021 21:24:19 GMT): markatag (Sat, 18 Dec 2021 14:30:07 GMT): markatag (Sat, 18 Dec 2021 14:30:50 GMT): TheRealJimShady (Sat, 18 Dec 2021 15:33:55 GMT): EdditLemons (Sat, 18 Dec 2021 17:43:11 GMT): JeenaDevasia (Sun, 19 Dec 2021 13:23:35 GMT): ayushridhar (Sun, 19 Dec 2021 18:02:22 GMT): samih 5 (Sun, 19 Dec 2021 18:04:25 GMT): jkvargas (Sun, 19 Dec 2021 18:52:01 GMT): taccatisid (Sun, 19 Dec 2021 21:59:04 GMT): macfarla (Sun, 19 Dec 2021 23:35:09 GMT): macfarla (Sun, 19 Dec 2021 23:35:15 GMT): siladu (Mon, 20 Dec 2021 00:34:49 GMT): lucassaldanha (Mon, 20 Dec 2021 02:29:25 GMT): macfarla (Mon, 20 Dec 2021 02:48:07 GMT): macfarla (Mon, 20 Dec 2021 02:50:21 GMT): macfarla (Mon, 20 Dec 2021 02:51:30 GMT): IgorSim (Mon, 20 Dec 2021 06:20:39 GMT): macfarla (Mon, 20 Dec 2021 06:45:10 GMT): sbohanlf (Mon, 20 Dec 2021 14:06:18 GMT): FabienFF (Mon, 20 Dec 2021 16:35:30 GMT): TejaSatyanarayana (Mon, 20 Dec 2021 18:35:59 GMT): EmcLab (Mon, 20 Dec 2021 23:40:31 GMT): EmcLab (Mon, 20 Dec 2021 23:41:02 GMT): EmcLab (Mon, 20 Dec 2021 23:42:24 GMT): MBurnes (Mon, 20 Dec 2021 23:42:47 GMT): EmcLab (Mon, 20 Dec 2021 23:43:53 GMT): macfarla (Tue, 21 Dec 2021 04:20:46 GMT): macfarla (Tue, 21 Dec 2021 04:25:57 GMT): macfarla (Tue, 21 Dec 2021 04:26:15 GMT): macfarla (Tue, 21 Dec 2021 04:26:43 GMT): Yangshuangxi (Tue, 21 Dec 2021 06:57:19 GMT): elchastro (Tue, 21 Dec 2021 10:46:26 GMT): Clippo 3 (Tue, 21 Dec 2021 15:30:26 GMT): Clippo 3 (Tue, 21 Dec 2021 15:30:39 GMT): Clippo 3 (Tue, 21 Dec 2021 15:30:48 GMT): Clippo 3 (Tue, 21 Dec 2021 15:31:00 GMT): shadiayoub (Tue, 21 Dec 2021 15:35:53 GMT): Clippo 3 (Tue, 21 Dec 2021 15:37:59 GMT): Clippo 3 (Tue, 21 Dec 2021 15:38:00 GMT): Clippo 3 (Tue, 21 Dec 2021 15:39:02 GMT): Clippo 3 (Tue, 21 Dec 2021 15:39:25 GMT): shadiayoub (Tue, 21 Dec 2021 15:40:43 GMT): Clippo 3 (Tue, 21 Dec 2021 15:41:01 GMT): Clippo 3 (Tue, 21 Dec 2021 15:41:11 GMT): shadiayoub (Tue, 21 Dec 2021 15:42:31 GMT): shadiayoub (Tue, 21 Dec 2021 15:45:51 GMT): shadiayoub (Tue, 21 Dec 2021 15:45:51 GMT): Clippo 3 (Tue, 21 Dec 2021 15:51:50 GMT): Clippo 3 (Tue, 21 Dec 2021 15:51:53 GMT): IgorSim (Tue, 21 Dec 2021 16:29:16 GMT): IgorSim (Tue, 21 Dec 2021 16:29:30 GMT): skbalahere (Tue, 21 Dec 2021 16:49:35 GMT): Clippo 3 (Tue, 21 Dec 2021 22:00:25 GMT): macfarla (Tue, 21 Dec 2021 22:45:40 GMT): frankliawesome (Wed, 22 Dec 2021 02:44:34 GMT): Clippo 3 (Wed, 22 Dec 2021 04:53:52 GMT): a-p-petrosyan (Wed, 22 Dec 2021 08:11:42 GMT): ammaarpatel99 (Wed, 22 Dec 2021 10:07:16 GMT): Abhi-Mynam (Wed, 22 Dec 2021 11:34:09 GMT): DinuraSeneviratne1 (Wed, 22 Dec 2021 12:16:11 GMT): shadiayoub (Wed, 22 Dec 2021 18:18:05 GMT): shadiayoub (Wed, 22 Dec 2021 18:19:44 GMT): leonardoPereira (Wed, 22 Dec 2021 21:02:57 GMT): shemnon (Wed, 22 Dec 2021 21:28:54 GMT): shemnon (Wed, 22 Dec 2021 21:28:54 GMT): shadiayoub (Wed, 22 Dec 2021 21:48:12 GMT): shadiayoub (Wed, 22 Dec 2021 21:48:12 GMT): p.amrith (Thu, 23 Dec 2021 05:18:54 GMT): krishna1982 (Thu, 23 Dec 2021 06:20:21 GMT): Dixit 13 (Thu, 23 Dec 2021 07:06:44 GMT): KavyaR (Thu, 23 Dec 2021 11:44:40 GMT): tahyonline (Thu, 23 Dec 2021 16:40:53 GMT): SkandaGurunathanR (Thu, 23 Dec 2021 19:10:44 GMT): mgrant (Fri, 24 Dec 2021 12:14:53 GMT): nandrews283 (Fri, 24 Dec 2021 13:59:04 GMT): shadiayoub (Sat, 25 Dec 2021 17:54:04 GMT): lvillar (Sun, 26 Dec 2021 03:30:53 GMT): friendlyhacker (Sun, 26 Dec 2021 07:12:36 GMT): skittlez1522 (Mon, 27 Dec 2021 03:32:38 GMT): sudharsan.s (Mon, 27 Dec 2021 09:42:17 GMT): yogi-cw (Mon, 27 Dec 2021 12:07:41 GMT): marya1 (Mon, 27 Dec 2021 14:19:56 GMT): GrzegorzDrozda (Mon, 27 Dec 2021 19:18:55 GMT): omkar-mohanty (Tue, 28 Dec 2021 04:07:33 GMT): Chuancy (Tue, 28 Dec 2021 07:03:53 GMT): marchelbudi.k (Tue, 28 Dec 2021 08:19:06 GMT): hejte (Tue, 28 Dec 2021 11:00:16 GMT): EmSpireInc (Tue, 28 Dec 2021 11:52:59 GMT): Xcerla (Tue, 28 Dec 2021 21:24:50 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 14:05:37 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 14:08:06 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 14:08:06 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 14:08:06 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 14:08:06 GMT): shadiayoub (Wed, 29 Dec 2021 14:22:19 GMT): Ranbowhu (Wed, 29 Dec 2021 14:25:51 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 17:29:18 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 17:29:18 GMT): GrzegorzDrozda (Wed, 29 Dec 2021 18:40:08 GMT): IraqReshi (Thu, 30 Dec 2021 07:27:29 GMT): dev2020 (Thu, 30 Dec 2021 09:09:04 GMT): JiriPeinlich (Thu, 30 Dec 2021 13:24:52 GMT): JiriPeinlich (Thu, 30 Dec 2021 13:24:52 GMT): devonartis (Thu, 30 Dec 2021 15:55:27 GMT): IgorSim (Thu, 30 Dec 2021 17:42:44 GMT): IgorSim (Thu, 30 Dec 2021 17:43:06 GMT): gaurav471 (Thu, 30 Dec 2021 19:06:16 GMT): MojoCoderBo (Fri, 31 Dec 2021 07:11:55 GMT): Ojas365 (Fri, 31 Dec 2021 09:16:25 GMT): parnika24 (Fri, 31 Dec 2021 10:59:12 GMT): JiriPeinlich (Fri, 31 Dec 2021 11:16:49 GMT): JiriPeinlich (Fri, 31 Dec 2021 11:17:00 GMT): kareemikassab (Fri, 31 Dec 2021 12:33:00 GMT): MaximeBarbet (Fri, 31 Dec 2021 15:16:54 GMT): vp10905353 (Fri, 31 Dec 2021 19:14:17 GMT): jsolderitsch (Fri, 31 Dec 2021 21:49:56 GMT): manjinder98 (Sat, 01 Jan 2022 14:36:47 GMT): bshada (Sat, 01 Jan 2022 20:36:04 GMT): kma-blockchain (Sun, 02 Jan 2022 09:20:05 GMT): yangzifeng1995 (Sun, 02 Jan 2022 10:14:14 GMT): ManjinderSingh (Sun, 02 Jan 2022 10:43:32 GMT): Nishantsharma12 (Sun, 02 Jan 2022 13:25:13 GMT): HackyCoder0951 (Mon, 03 Jan 2022 08:24:19 GMT): macfarla (Mon, 03 Jan 2022 10:56:48 GMT): macfarla (Mon, 03 Jan 2022 10:58:44 GMT): macfarla (Mon, 03 Jan 2022 11:03:48 GMT): shadiayoub (Mon, 03 Jan 2022 13:01:48 GMT): tanujdev (Mon, 03 Jan 2022 16:22:38 GMT): kinagimanju (Mon, 03 Jan 2022 16:42:30 GMT): richardspeter (Mon, 03 Jan 2022 19:05:44 GMT): loganb 6 (Mon, 03 Jan 2022 21:45:18 GMT): macfarla (Mon, 03 Jan 2022 22:04:12 GMT): haruharu (Tue, 04 Jan 2022 01:10:29 GMT): zondervan.v.calvez (Tue, 04 Jan 2022 01:43:37 GMT): micoferdinand (Tue, 04 Jan 2022 01:50:08 GMT): aldous.arvin.alvarez (Tue, 04 Jan 2022 01:53:10 GMT): charellesandig (Tue, 04 Jan 2022 02:09:52 GMT): suomea (Tue, 04 Jan 2022 08:36:08 GMT): suomea (Tue, 04 Jan 2022 08:55:12 GMT): mr3e (Tue, 04 Jan 2022 09:23:40 GMT): vborisik (Tue, 04 Jan 2022 11:18:11 GMT): AlaeEddineLahlali (Tue, 04 Jan 2022 14:04:34 GMT): billet75 (Tue, 04 Jan 2022 15:14:29 GMT): billet75 (Tue, 04 Jan 2022 15:23:29 GMT): billet75 (Tue, 04 Jan 2022 15:23:29 GMT): billet75 (Tue, 04 Jan 2022 15:23:29 GMT): arvieira (Tue, 04 Jan 2022 15:41:51 GMT): atoulme (Tue, 04 Jan 2022 17:24:58 GMT): billet75 (Tue, 04 Jan 2022 18:20:33 GMT): damiandennis (Tue, 04 Jan 2022 18:46:57 GMT): shadiayoub (Tue, 04 Jan 2022 23:12:48 GMT): Nocturne (Wed, 05 Jan 2022 00:22:10 GMT): jframe (Wed, 05 Jan 2022 01:26:51 GMT): jframe (Wed, 05 Jan 2022 01:27:04 GMT): jframe (Wed, 05 Jan 2022 01:27:04 GMT): jframe (Wed, 05 Jan 2022 01:29:29 GMT): macfarla (Wed, 05 Jan 2022 03:37:07 GMT): IgorSim (Wed, 05 Jan 2022 07:39:02 GMT): PunleuChomnan (Wed, 05 Jan 2022 09:22:18 GMT): shadiayoub (Wed, 05 Jan 2022 09:49:23 GMT): VenessaK (Wed, 05 Jan 2022 14:38:11 GMT): gladsjr (Wed, 05 Jan 2022 15:09:14 GMT): gladsjr (Wed, 05 Jan 2022 15:09:14 GMT): gladsjr (Wed, 05 Jan 2022 15:09:14 GMT): JiriPeinlich (Wed, 05 Jan 2022 15:39:40 GMT): Zeddrich (Wed, 05 Jan 2022 15:59:11 GMT): IgorSim (Wed, 05 Jan 2022 16:09:18 GMT): RoboCopsGoneMad (Wed, 05 Jan 2022 20:36:32 GMT): macfarla (Wed, 05 Jan 2022 21:02:15 GMT): RoboCopsGoneMad (Wed, 05 Jan 2022 21:04:18 GMT): macfarla (Wed, 05 Jan 2022 21:05:06 GMT): macfarla (Wed, 05 Jan 2022 21:06:04 GMT): macfarla (Wed, 05 Jan 2022 21:07:00 GMT): RoboCopsGoneMad (Wed, 05 Jan 2022 21:08:15 GMT): gladsjr (Wed, 05 Jan 2022 21:23:00 GMT): gladsjr (Wed, 05 Jan 2022 21:24:29 GMT): macfarla (Wed, 05 Jan 2022 21:42:28 GMT): macfarla (Wed, 05 Jan 2022 21:42:39 GMT): gladsjr (Wed, 05 Jan 2022 21:48:17 GMT): gladsjr (Wed, 05 Jan 2022 21:50:30 GMT): macfarla (Wed, 05 Jan 2022 21:58:10 GMT): macfarla (Wed, 05 Jan 2022 22:00:02 GMT): macfarla (Wed, 05 Jan 2022 22:00:44 GMT): gladsjr (Wed, 05 Jan 2022 22:00:54 GMT): macfarla (Wed, 05 Jan 2022 22:14:42 GMT): gladsjr (Wed, 05 Jan 2022 22:16:50 GMT): gladsjr (Wed, 05 Jan 2022 22:18:46 GMT): macfarla (Wed, 05 Jan 2022 22:24:55 GMT): macfarla (Wed, 05 Jan 2022 22:25:22 GMT): PureBlack (Thu, 06 Jan 2022 01:07:47 GMT): esainty (Thu, 06 Jan 2022 01:20:07 GMT): GarySchulte (Thu, 06 Jan 2022 01:47:30 GMT): pvsmagbojos (Thu, 06 Jan 2022 04:37:42 GMT): ntlm (Thu, 06 Jan 2022 05:38:38 GMT): obioram (Thu, 06 Jan 2022 06:36:50 GMT): ayush5936 (Thu, 06 Jan 2022 06:38:39 GMT): SwapnaliDive (Thu, 06 Jan 2022 06:47:07 GMT): madfu (Thu, 06 Jan 2022 07:27:43 GMT): Teharjula (Thu, 06 Jan 2022 09:59:20 GMT): DIBYENDUBAG (Thu, 06 Jan 2022 11:51:23 GMT): Paul_Tabled (Thu, 06 Jan 2022 12:09:11 GMT): nikolas (Thu, 06 Jan 2022 13:13:30 GMT): jas191 (Thu, 06 Jan 2022 14:12:47 GMT): JiriPeinlich (Thu, 06 Jan 2022 14:14:50 GMT): nikolas (Thu, 06 Jan 2022 14:17:52 GMT): nikolas (Thu, 06 Jan 2022 14:17:52 GMT): gladsjr (Thu, 06 Jan 2022 14:21:40 GMT): JiriPeinlich (Thu, 06 Jan 2022 14:21:48 GMT): nikolas (Thu, 06 Jan 2022 14:23:13 GMT): JiriPeinlich (Thu, 06 Jan 2022 14:23:35 GMT): MyeongheeJoung (Thu, 06 Jan 2022 18:37:47 GMT): gladsjr (Thu, 06 Jan 2022 18:47:24 GMT): gladsjr (Thu, 06 Jan 2022 18:50:22 GMT): Sergioco 2 (Thu, 06 Jan 2022 19:50:04 GMT): macfarla (Thu, 06 Jan 2022 21:14:07 GMT): gladsjr (Thu, 06 Jan 2022 21:16:10 GMT): gladsjr (Thu, 06 Jan 2022 21:16:58 GMT): Tenno (Fri, 07 Jan 2022 01:58:12 GMT): mzago (Fri, 07 Jan 2022 16:04:36 GMT): pawlak (Fri, 07 Jan 2022 17:12:47 GMT): gouthamdk (Sat, 08 Jan 2022 07:03:23 GMT): iraq17 (Sat, 08 Jan 2022 09:47:37 GMT): neetusharma (Sat, 08 Jan 2022 11:26:00 GMT): mjs19780 (Sat, 08 Jan 2022 20:14:40 GMT): SAYED94 (Sat, 08 Jan 2022 20:33:45 GMT): wifisunset94 (Sat, 08 Jan 2022 22:06:03 GMT): sayraj (Sun, 09 Jan 2022 08:49:21 GMT): Tushar199 1 (Sun, 09 Jan 2022 13:26:11 GMT): akhmad_219 (Mon, 10 Jan 2022 08:27:50 GMT): iamit-singh (Mon, 10 Jan 2022 09:18:23 GMT): arieger (Mon, 10 Jan 2022 10:44:51 GMT): amitgarg12 (Mon, 10 Jan 2022 11:44:30 GMT): antauloglou (Mon, 10 Jan 2022 15:38:19 GMT): inttrading (Mon, 10 Jan 2022 17:11:44 GMT): yangzifeng1995 (Mon, 10 Jan 2022 20:20:29 GMT): macfarla (Tue, 11 Jan 2022 03:42:25 GMT): macfarla (Tue, 11 Jan 2022 03:43:00 GMT): samyakjain (Tue, 11 Jan 2022 04:42:54 GMT): KodeCracker (Tue, 11 Jan 2022 04:52:15 GMT): tongYuSir (Tue, 11 Jan 2022 06:49:37 GMT): hrishiballal (Tue, 11 Jan 2022 08:54:28 GMT): prashantr (Tue, 11 Jan 2022 09:26:11 GMT): Rahul11132133 (Tue, 11 Jan 2022 10:29:42 GMT): p10010 (Tue, 11 Jan 2022 12:10:09 GMT): samyak314 (Tue, 11 Jan 2022 12:35:59 GMT): Ammar1974 (Tue, 11 Jan 2022 18:20:46 GMT): raghunathanp95 (Tue, 11 Jan 2022 20:17:40 GMT): raghunathanp95 (Tue, 11 Jan 2022 20:19:17 GMT): JeffCantores (Wed, 12 Jan 2022 02:56:07 GMT): macfarla (Wed, 12 Jan 2022 03:00:14 GMT): macfarla (Wed, 12 Jan 2022 03:04:02 GMT): macfarla (Wed, 12 Jan 2022 03:21:35 GMT): macfarla (Wed, 12 Jan 2022 03:22:21 GMT): macfarla (Wed, 12 Jan 2022 03:24:49 GMT): yangzifeng1995 (Wed, 12 Jan 2022 11:41:58 GMT): loziniak (Wed, 12 Jan 2022 12:27:51 GMT): lbradley (Wed, 12 Jan 2022 14:29:30 GMT): akshitgoyal (Wed, 12 Jan 2022 17:26:12 GMT): StefanBratanov93 (Wed, 12 Jan 2022 19:26:57 GMT): HaBerber (Thu, 13 Jan 2022 07:59:20 GMT): shaikh47 (Thu, 13 Jan 2022 10:12:00 GMT): rfleschenberg (Thu, 13 Jan 2022 16:01:53 GMT): RoboCopsGoneMad (Thu, 13 Jan 2022 22:13:13 GMT): diegoll (Thu, 13 Jan 2022 22:35:23 GMT): shemnon (Thu, 13 Jan 2022 22:35:29 GMT): iliketurtles69 (Fri, 14 Jan 2022 05:09:12 GMT): huonghope (Fri, 14 Jan 2022 08:48:14 GMT): veaceslav.dimitroglo (Fri, 14 Jan 2022 10:07:17 GMT): kimzter (Fri, 14 Jan 2022 12:58:17 GMT): Cassius87 (Fri, 14 Jan 2022 13:23:53 GMT): leonardoPereira (Fri, 14 Jan 2022 15:19:51 GMT): shemnon (Fri, 14 Jan 2022 15:33:05 GMT): shemnon (Fri, 14 Jan 2022 15:35:23 GMT): SeanConnolly (Fri, 14 Jan 2022 17:39:19 GMT): dhruvsharma (Fri, 14 Jan 2022 19:22:13 GMT): AdamEikman (Fri, 14 Jan 2022 19:45:20 GMT): dakata (Sat, 15 Jan 2022 13:56:52 GMT): dakata (Sat, 15 Jan 2022 14:41:30 GMT): dakata (Sat, 15 Jan 2022 14:41:30 GMT): dakata (Sat, 15 Jan 2022 14:41:30 GMT): luisnaranjo733 (Sat, 15 Jan 2022 15:34:28 GMT): luisnaranjo733 (Sat, 15 Jan 2022 15:38:21 GMT): dakata (Sat, 15 Jan 2022 16:19:36 GMT): shadiayoub (Sat, 15 Jan 2022 16:33:41 GMT): dakata (Sat, 15 Jan 2022 16:38:34 GMT): shadiayoub (Sat, 15 Jan 2022 16:41:42 GMT): shadiayoub (Sat, 15 Jan 2022 16:41:42 GMT): shadiayoub (Sat, 15 Jan 2022 16:43:09 GMT): dakata (Sat, 15 Jan 2022 16:45:07 GMT): g4gekkouga (Sun, 16 Jan 2022 07:36:04 GMT): boozden (Sun, 16 Jan 2022 10:11:09 GMT): roberto.porfiro (Sun, 16 Jan 2022 11:11:38 GMT): HuzMS (Sun, 16 Jan 2022 22:42:30 GMT): dakata (Mon, 17 Jan 2022 11:02:35 GMT): shadiayoub (Mon, 17 Jan 2022 11:18:15 GMT): dakata (Mon, 17 Jan 2022 11:19:18 GMT): dakata (Mon, 17 Jan 2022 11:19:18 GMT): dakata (Mon, 17 Jan 2022 11:19:27 GMT): shadiayoub (Mon, 17 Jan 2022 11:23:21 GMT): dakata (Mon, 17 Jan 2022 11:24:57 GMT): dakata (Mon, 17 Jan 2022 11:25:10 GMT): shadiayoub (Mon, 17 Jan 2022 11:28:07 GMT): dakata (Mon, 17 Jan 2022 11:29:25 GMT): shadiayoub (Mon, 17 Jan 2022 11:30:22 GMT): dakata (Mon, 17 Jan 2022 11:30:59 GMT): dakata (Mon, 17 Jan 2022 11:31:03 GMT): dakata (Mon, 17 Jan 2022 11:31:12 GMT): dakata (Mon, 17 Jan 2022 11:32:08 GMT): shadiayoub (Mon, 17 Jan 2022 11:32:27 GMT): dakata (Mon, 17 Jan 2022 11:32:43 GMT): shadiayoub (Mon, 17 Jan 2022 11:39:56 GMT): dakata (Mon, 17 Jan 2022 11:41:58 GMT): dakata (Mon, 17 Jan 2022 11:43:35 GMT): shadiayoub (Mon, 17 Jan 2022 11:43:37 GMT): dakata (Mon, 17 Jan 2022 11:43:48 GMT): shadiayoub (Mon, 17 Jan 2022 11:44:22 GMT): dakata (Mon, 17 Jan 2022 11:44:40 GMT): shadiayoub (Mon, 17 Jan 2022 11:45:22 GMT): dakata (Mon, 17 Jan 2022 11:46:15 GMT): shadiayoub (Mon, 17 Jan 2022 11:46:41 GMT): tdiesler (Mon, 17 Jan 2022 13:24:19 GMT): AAlzaabi (Mon, 17 Jan 2022 14:41:17 GMT): newbusybee (Tue, 18 Jan 2022 01:01:56 GMT): sudojhill (Tue, 18 Jan 2022 05:37:15 GMT): DevalShah (Tue, 18 Jan 2022 07:05:12 GMT): adaephonben (Tue, 18 Jan 2022 08:40:16 GMT): IgorSim (Tue, 18 Jan 2022 09:07:42 GMT): christianatmueller (Tue, 18 Jan 2022 14:10:19 GMT): Affin-Ajanthan (Tue, 18 Jan 2022 14:35:03 GMT): nglf (Tue, 18 Jan 2022 15:23:35 GMT): macfarla (Tue, 18 Jan 2022 20:58:28 GMT): macfarla (Tue, 18 Jan 2022 21:01:00 GMT): Clippo 3 (Tue, 18 Jan 2022 21:43:01 GMT): Clippo 3 (Tue, 18 Jan 2022 21:44:51 GMT): HariN 35 (Wed, 19 Jan 2022 03:44:49 GMT): macfarla (Wed, 19 Jan 2022 05:20:13 GMT): harikrishnashk (Wed, 19 Jan 2022 06:29:39 GMT): sumiteshnaithani (Wed, 19 Jan 2022 07:18:44 GMT): seancm69 (Wed, 19 Jan 2022 07:24:45 GMT): Tipu_Singh (Wed, 19 Jan 2022 07:41:33 GMT): sergedh (Wed, 19 Jan 2022 07:57:50 GMT): shadiayoub (Wed, 19 Jan 2022 07:59:31 GMT): cheul123a (Wed, 19 Jan 2022 08:28:39 GMT): souksou (Wed, 19 Jan 2022 10:06:12 GMT): ouyangwenli (Wed, 19 Jan 2022 13:46:59 GMT): robbesettlemint (Wed, 19 Jan 2022 16:15:05 GMT): Clippo 3 (Wed, 19 Jan 2022 16:33:29 GMT): Clippo 3 (Wed, 19 Jan 2022 16:33:42 GMT): shadiayoub (Wed, 19 Jan 2022 16:34:24 GMT): shadiayoub (Wed, 19 Jan 2022 16:35:50 GMT): Clippo 3 (Wed, 19 Jan 2022 17:00:21 GMT): Clippo 3 (Wed, 19 Jan 2022 17:28:25 GMT): Clippo 3 (Wed, 19 Jan 2022 17:28:29 GMT): Clippo 3 (Wed, 19 Jan 2022 17:28:32 GMT): Gluwa_DavidLebee (Wed, 19 Jan 2022 17:42:11 GMT): Clippo 3 (Wed, 19 Jan 2022 17:47:44 GMT): ManishReddyN (Wed, 19 Jan 2022 18:03:16 GMT): norbertrogers (Wed, 19 Jan 2022 18:19:01 GMT): Clippo 3 (Wed, 19 Jan 2022 21:12:15 GMT): Clippo 3 (Wed, 19 Jan 2022 21:12:31 GMT): e-nikolov (Thu, 20 Jan 2022 00:19:07 GMT): mgdotonl (Thu, 20 Jan 2022 01:20:36 GMT): lucassaldanha (Thu, 20 Jan 2022 04:02:14 GMT): lucassaldanha (Thu, 20 Jan 2022 04:02:15 GMT): fl0x (Thu, 20 Jan 2022 06:32:13 GMT): sung-il (Thu, 20 Jan 2022 07:35:18 GMT): daohan (Thu, 20 Jan 2022 07:59:47 GMT): fsatsuki (Thu, 20 Jan 2022 08:00:18 GMT): guodadada (Thu, 20 Jan 2022 08:41:12 GMT): ESiat (Thu, 20 Jan 2022 09:03:41 GMT): SebastianKe (Thu, 20 Jan 2022 09:53:18 GMT): shadiayoub (Thu, 20 Jan 2022 10:31:44 GMT): shadiayoub (Thu, 20 Jan 2022 10:32:40 GMT): prasanthdotv (Thu, 20 Jan 2022 11:17:16 GMT): prasanthdotv (Thu, 20 Jan 2022 11:19:10 GMT): siladu (Thu, 20 Jan 2022 11:53:16 GMT): prasanthdotv (Thu, 20 Jan 2022 12:13:13 GMT): ShubhamShukla31752 (Thu, 20 Jan 2022 13:07:58 GMT): ScottHarris (Thu, 20 Jan 2022 15:51:37 GMT): adipata (Thu, 20 Jan 2022 15:55:27 GMT): ffuentes (Thu, 20 Jan 2022 16:00:49 GMT): mks4343 (Thu, 20 Jan 2022 16:02:24 GMT): shehanp72 (Thu, 20 Jan 2022 16:02:58 GMT): singhhp1069 (Thu, 20 Jan 2022 16:04:33 GMT): paulyp (Thu, 20 Jan 2022 16:05:00 GMT): rz (Thu, 20 Jan 2022 16:06:26 GMT): awuttke (Thu, 20 Jan 2022 16:07:45 GMT): Torben.Zick (Thu, 20 Jan 2022 16:14:57 GMT): malfaris (Thu, 20 Jan 2022 16:17:17 GMT): bp99 (Thu, 20 Jan 2022 16:33:15 GMT): sanjikumar (Thu, 20 Jan 2022 16:39:22 GMT): aymanejabrane (Thu, 20 Jan 2022 17:04:32 GMT): CharlesDS (Thu, 20 Jan 2022 17:29:38 GMT): Clippo 3 (Thu, 20 Jan 2022 19:01:12 GMT): Clippo 3 (Thu, 20 Jan 2022 19:01:17 GMT): diegoll (Thu, 20 Jan 2022 19:14:34 GMT): Clippo 3 (Thu, 20 Jan 2022 20:54:05 GMT): Clippo 3 (Thu, 20 Jan 2022 20:54:15 GMT): GarySchulte (Thu, 20 Jan 2022 23:30:32 GMT): jackiepeters (Fri, 21 Jan 2022 02:02:21 GMT): shashwot2 (Fri, 21 Jan 2022 04:55:58 GMT): daohan (Fri, 21 Jan 2022 06:44:09 GMT): GiorgosSiachamis (Fri, 21 Jan 2022 08:05:19 GMT): AnanayNarang (Fri, 21 Jan 2022 08:10:42 GMT): AnanayNarang (Fri, 21 Jan 2022 08:13:43 GMT): VNCheck (Fri, 21 Jan 2022 08:19:23 GMT): MinMail (Fri, 21 Jan 2022 09:32:24 GMT): JonasKreusch (Fri, 21 Jan 2022 12:02:42 GMT): Nischitha (Fri, 21 Jan 2022 13:22:25 GMT): RodrigoGarcia1 (Fri, 21 Jan 2022 14:18:10 GMT): RodrigoGarcia1 (Fri, 21 Jan 2022 14:20:06 GMT): mpg (Fri, 21 Jan 2022 14:40:27 GMT): shadiayoub (Fri, 21 Jan 2022 15:18:14 GMT): shadiayoub (Fri, 21 Jan 2022 15:18:14 GMT): Gag 131 (Fri, 21 Jan 2022 17:07:25 GMT): angmunoz (Fri, 21 Jan 2022 19:02:22 GMT): ramkapoor (Fri, 21 Jan 2022 19:47:14 GMT): Clippo 3 (Fri, 21 Jan 2022 20:59:20 GMT): Clippo 3 (Fri, 21 Jan 2022 20:59:28 GMT): ebaldivias (Fri, 21 Jan 2022 21:16:05 GMT): Vamsikn (Fri, 21 Jan 2022 21:26:43 GMT): himanisingla (Fri, 21 Jan 2022 21:29:50 GMT): mgamal (Sat, 22 Jan 2022 09:42:06 GMT): marchelbudi.k (Sat, 22 Jan 2022 16:56:26 GMT): macfarla (Sun, 23 Jan 2022 00:57:56 GMT): macfarla (Sun, 23 Jan 2022 00:58:51 GMT): macfarla (Sun, 23 Jan 2022 01:01:08 GMT): macfarla (Sun, 23 Jan 2022 01:02:50 GMT): macfarla (Sun, 23 Jan 2022 01:06:30 GMT): pratikc (Sun, 23 Jan 2022 13:46:53 GMT): rtatton (Sun, 23 Jan 2022 15:58:22 GMT): dave-beck (Sun, 23 Jan 2022 17:17:47 GMT): anilraj27 (Sun, 23 Jan 2022 20:09:17 GMT): bweymouth (Mon, 24 Jan 2022 01:53:56 GMT): jaymhc (Mon, 24 Jan 2022 03:46:27 GMT): jjlee (Mon, 24 Jan 2022 07:22:44 GMT): jjlee (Mon, 24 Jan 2022 07:35:23 GMT): jechae (Mon, 24 Jan 2022 08:04:13 GMT): JiriPeinlich (Mon, 24 Jan 2022 08:05:19 GMT): JiriPeinlich (Mon, 24 Jan 2022 08:05:42 GMT): IgorSim (Mon, 24 Jan 2022 08:52:04 GMT): IgorSim (Mon, 24 Jan 2022 08:52:04 GMT): IgorSim (Mon, 24 Jan 2022 08:53:23 GMT): JiriPeinlich (Mon, 24 Jan 2022 10:53:06 GMT): JiriPeinlich (Mon, 24 Jan 2022 10:54:31 GMT): pbusch42 (Mon, 24 Jan 2022 16:50:12 GMT): ftrsau (Tue, 25 Jan 2022 03:15:59 GMT): errorfourten (Tue, 25 Jan 2022 03:25:47 GMT): errorfourten (Tue, 25 Jan 2022 03:28:40 GMT): ravip.singh (Tue, 25 Jan 2022 06:29:02 GMT): shemnon (Tue, 25 Jan 2022 06:57:36 GMT): shemnon (Tue, 25 Jan 2022 06:57:48 GMT): errorfourten (Tue, 25 Jan 2022 07:20:40 GMT): aj3 (Tue, 25 Jan 2022 09:06:33 GMT): shemnon (Tue, 25 Jan 2022 12:53:20 GMT): billet75 (Tue, 25 Jan 2022 15:41:05 GMT): shemnon (Tue, 25 Jan 2022 16:03:35 GMT): itsnavpreet (Tue, 25 Jan 2022 16:15:37 GMT): gladsjr (Tue, 25 Jan 2022 19:38:11 GMT): shemnon (Tue, 25 Jan 2022 20:01:41 GMT): GarySchulte (Tue, 25 Jan 2022 20:02:07 GMT): gladsjr (Tue, 25 Jan 2022 22:53:39 GMT): gladsjr (Tue, 25 Jan 2022 23:27:24 GMT): GarySchulte (Tue, 25 Jan 2022 23:40:26 GMT): errorfourten (Wed, 26 Jan 2022 02:27:29 GMT): atoulme (Wed, 26 Jan 2022 04:24:06 GMT): atoulme (Wed, 26 Jan 2022 04:24:23 GMT): atoulme (Wed, 26 Jan 2022 04:24:40 GMT): atoulme (Wed, 26 Jan 2022 04:25:06 GMT): atoulme (Wed, 26 Jan 2022 04:25:23 GMT): AravindVoruganti (Wed, 26 Jan 2022 14:16:16 GMT): gladsjr (Wed, 26 Jan 2022 18:24:59 GMT): sandeep20 (Thu, 27 Jan 2022 04:32:36 GMT): Alen_Sebastian (Thu, 27 Jan 2022 09:14:31 GMT): winterking (Thu, 27 Jan 2022 09:50:12 GMT): StefanBratanov (Thu, 27 Jan 2022 09:52:26 GMT): kaijuneer (Thu, 27 Jan 2022 09:54:03 GMT): rejnol93 (Thu, 27 Jan 2022 10:01:21 GMT): kaijuneer (Thu, 27 Jan 2022 10:04:24 GMT): NicolasMassart (Thu, 27 Jan 2022 10:07:37 GMT): kaijuneer (Thu, 27 Jan 2022 10:08:42 GMT): kaijuneer (Thu, 27 Jan 2022 10:27:40 GMT): NicolasMassart (Thu, 27 Jan 2022 10:38:38 GMT): NicolasMassart (Thu, 27 Jan 2022 10:41:39 GMT): NicolasMassart (Thu, 27 Jan 2022 10:41:39 GMT): kaijuneer (Thu, 27 Jan 2022 11:28:54 GMT): antonydenyer (Thu, 27 Jan 2022 11:46:45 GMT): kaijuneer (Thu, 27 Jan 2022 13:25:45 GMT): antonydenyer (Thu, 27 Jan 2022 14:09:49 GMT): isavelli (Thu, 27 Jan 2022 14:27:07 GMT): loziniak (Thu, 27 Jan 2022 16:16:59 GMT): loziniak (Thu, 27 Jan 2022 16:16:59 GMT): loziniak (Thu, 27 Jan 2022 16:20:47 GMT): kaijuneer (Thu, 27 Jan 2022 16:44:58 GMT): isavelli (Thu, 27 Jan 2022 18:38:47 GMT): isavelli (Thu, 27 Jan 2022 18:38:55 GMT): isavelli (Thu, 27 Jan 2022 18:41:30 GMT): isavelli (Thu, 27 Jan 2022 18:54:33 GMT): dci (Thu, 27 Jan 2022 20:36:06 GMT): alamin25 1 (Thu, 27 Jan 2022 20:53:14 GMT): LunarM 1 (Thu, 27 Jan 2022 21:44:15 GMT): brettd (Fri, 28 Jan 2022 01:21:56 GMT): heysatya (Fri, 28 Jan 2022 07:01:53 GMT): helderjnpinto (Fri, 28 Jan 2022 10:10:19 GMT): helderjnpinto (Fri, 28 Jan 2022 10:12:27 GMT): helderjnpinto (Fri, 28 Jan 2022 10:13:03 GMT): helderjnpinto (Fri, 28 Jan 2022 13:01:30 GMT): helderjnpinto (Fri, 28 Jan 2022 13:01:32 GMT): helderjnpinto (Fri, 28 Jan 2022 13:01:50 GMT): helderjnpinto (Fri, 28 Jan 2022 13:02:22 GMT): helderjnpinto (Fri, 28 Jan 2022 13:02:22 GMT): helderjnpinto (Fri, 28 Jan 2022 13:02:55 GMT): Avijeet_15 (Fri, 28 Jan 2022 13:35:22 GMT): Avijeet_15 (Fri, 28 Jan 2022 13:36:12 GMT): helderjnpinto (Fri, 28 Jan 2022 14:45:30 GMT): romanr (Fri, 28 Jan 2022 14:51:38 GMT): helderjnpinto (Fri, 28 Jan 2022 14:58:42 GMT): helderjnpinto (Fri, 28 Jan 2022 14:58:42 GMT): Swarnim 1 (Fri, 28 Jan 2022 16:29:21 GMT): Swarnim 1 (Fri, 28 Jan 2022 16:29:22 GMT): diegoll (Fri, 28 Jan 2022 16:35:34 GMT): vijayr24 (Sat, 29 Jan 2022 06:20:07 GMT): vijayr24 (Sat, 29 Jan 2022 06:20:07 GMT): Avijeet_15 (Sat, 29 Jan 2022 07:21:01 GMT): Trisham_Bharat_Patil (Sat, 29 Jan 2022 16:57:36 GMT): aminst (Sat, 29 Jan 2022 19:03:00 GMT): rajan-31 (Sat, 29 Jan 2022 19:20:17 GMT): itsnavpreet (Sun, 30 Jan 2022 10:48:32 GMT): cxk934 (Sun, 30 Jan 2022 13:42:46 GMT): Swarnim 1 (Sun, 30 Jan 2022 16:02:10 GMT): macfarla (Sun, 30 Jan 2022 21:48:41 GMT): macfarla (Sun, 30 Jan 2022 21:56:03 GMT): siladu (Sun, 30 Jan 2022 22:27:53 GMT): jframe (Mon, 31 Jan 2022 01:22:44 GMT): prasanthdotv (Mon, 31 Jan 2022 03:59:48 GMT): prasanthdotv (Mon, 31 Jan 2022 03:59:48 GMT): prasanthdotv (Mon, 31 Jan 2022 03:59:48 GMT): prasanthdotv (Mon, 31 Jan 2022 03:59:48 GMT): frankliawesome (Mon, 31 Jan 2022 08:08:10 GMT): prasanthdotv (Mon, 31 Jan 2022 09:28:39 GMT): prasanthdotv (Mon, 31 Jan 2022 09:29:15 GMT): prasanthdotv (Mon, 31 Jan 2022 09:29:19 GMT): helderjnpinto (Mon, 31 Jan 2022 10:36:53 GMT): Junior-nitcheu (Mon, 31 Jan 2022 11:36:29 GMT): rameshmiriyala (Mon, 31 Jan 2022 12:45:56 GMT): hamoT (Mon, 31 Jan 2022 15:25:05 GMT): GarySchulte (Mon, 31 Jan 2022 16:03:14 GMT): isavelli (Mon, 31 Jan 2022 18:34:16 GMT): isavelli (Mon, 31 Jan 2022 18:34:33 GMT): isavelli (Mon, 31 Jan 2022 18:40:16 GMT): sudarsan.immadi (Tue, 01 Feb 2022 01:30:45 GMT): Avijeet_15 (Tue, 01 Feb 2022 08:05:59 GMT): SobhikaR (Tue, 01 Feb 2022 08:59:55 GMT): MathiasBaumgartinger (Tue, 01 Feb 2022 10:53:02 GMT): Biradi (Tue, 01 Feb 2022 13:01:56 GMT): yusakrabin (Tue, 01 Feb 2022 14:09:36 GMT): dovidkopel (Tue, 01 Feb 2022 14:48:39 GMT): IgorSim (Tue, 01 Feb 2022 20:27:35 GMT): IgorSim (Tue, 01 Feb 2022 20:28:05 GMT): jacobgorman613 (Tue, 01 Feb 2022 20:57:20 GMT): BalarajuBalu (Wed, 02 Feb 2022 06:08:42 GMT): chetanambi (Wed, 02 Feb 2022 07:52:31 GMT): EduOliveira (Wed, 02 Feb 2022 10:40:26 GMT): GiacomoDisalvo (Wed, 02 Feb 2022 11:01:23 GMT): devratapuri (Wed, 02 Feb 2022 13:41:16 GMT): jayzhan (Wed, 02 Feb 2022 14:40:12 GMT): chetanhanda (Wed, 02 Feb 2022 16:24:09 GMT): mayurthosar11 (Wed, 02 Feb 2022 19:20:43 GMT): wontondon (Wed, 02 Feb 2022 19:59:39 GMT): kakaupke (Thu, 03 Feb 2022 00:01:39 GMT): dioxis (Thu, 03 Feb 2022 01:05:00 GMT): vsh1982 (Thu, 03 Feb 2022 02:59:35 GMT): vsh1982 (Thu, 03 Feb 2022 03:01:13 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:23:47 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:24:54 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:26:10 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:26:51 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:33:10 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:33:11 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:39:26 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:39:42 GMT): RyanJJones10 (Thu, 03 Feb 2022 03:39:43 GMT): drichard2 (Thu, 03 Feb 2022 10:06:52 GMT): makikato (Thu, 03 Feb 2022 13:08:31 GMT): kaissfr (Thu, 03 Feb 2022 13:08:36 GMT): sohansamant (Thu, 03 Feb 2022 14:39:21 GMT): devg (Thu, 03 Feb 2022 15:09:54 GMT): Siltes (Thu, 03 Feb 2022 15:17:33 GMT): agiove (Thu, 03 Feb 2022 15:57:35 GMT): grittyronin (Thu, 03 Feb 2022 16:06:59 GMT): adambabs (Thu, 03 Feb 2022 16:10:23 GMT): sergm (Thu, 03 Feb 2022 16:11:39 GMT): kyilintun (Thu, 03 Feb 2022 16:11:50 GMT): gosankar (Thu, 03 Feb 2022 16:13:26 GMT): senthil.akshay27 (Thu, 03 Feb 2022 16:15:02 GMT): mepeltier (Thu, 03 Feb 2022 16:15:06 GMT): devin007 (Thu, 03 Feb 2022 16:23:20 GMT): ngwlf (Thu, 03 Feb 2022 16:23:38 GMT): sanjichained (Thu, 03 Feb 2022 16:26:36 GMT): Ben208N (Thu, 03 Feb 2022 17:03:03 GMT): kwollo (Thu, 03 Feb 2022 18:07:33 GMT): DurgaKVS (Thu, 03 Feb 2022 19:55:02 GMT): vsh1982 (Fri, 04 Feb 2022 02:13:12 GMT): vsh1982 (Fri, 04 Feb 2022 02:13:12 GMT): JonasRasmussen (Fri, 04 Feb 2022 08:20:18 GMT): ThomasFR89 (Fri, 04 Feb 2022 08:20:26 GMT): LucasCanaro (Fri, 04 Feb 2022 08:29:03 GMT): iamchirag45 (Fri, 04 Feb 2022 12:18:56 GMT): vsh1982 (Fri, 04 Feb 2022 12:28:17 GMT): freddylarag (Fri, 04 Feb 2022 16:39:07 GMT): MarioMichel (Fri, 04 Feb 2022 18:41:23 GMT): CaixiangFan (Fri, 04 Feb 2022 18:51:20 GMT): LucasCosta (Fri, 04 Feb 2022 19:16:52 GMT): gladsjr (Fri, 04 Feb 2022 22:23:09 GMT): gladsjr (Fri, 04 Feb 2022 22:24:50 GMT): rizy (Sat, 05 Feb 2022 03:21:39 GMT): DeepakMuthekar (Sat, 05 Feb 2022 11:48:50 GMT): alih27140 (Sat, 05 Feb 2022 15:53:04 GMT): VasileiosK (Sat, 05 Feb 2022 17:19:54 GMT): jmb (Sat, 05 Feb 2022 19:15:48 GMT): gaganbabber (Sun, 06 Feb 2022 01:01:24 GMT): Rafeu (Sun, 06 Feb 2022 08:03:42 GMT): siddhantprateek (Sun, 06 Feb 2022 09:28:57 GMT): degex (Sun, 06 Feb 2022 10:31:26 GMT): govindlahoti (Sun, 06 Feb 2022 12:42:13 GMT): govindlahoti (Sun, 06 Feb 2022 12:43:40 GMT): YU.I (Sun, 06 Feb 2022 13:52:22 GMT): png_savvy (Sun, 06 Feb 2022 19:40:48 GMT): PhilippThater (Sun, 06 Feb 2022 22:25:30 GMT): rramon (Sun, 06 Feb 2022 22:41:17 GMT): abwh2 (Mon, 07 Feb 2022 03:19:20 GMT): macfarla (Mon, 07 Feb 2022 06:57:49 GMT): cacaocal (Mon, 07 Feb 2022 09:28:28 GMT): prasanthdotv (Mon, 07 Feb 2022 10:21:27 GMT): AntonYamkovoy (Mon, 07 Feb 2022 12:16:33 GMT): AhmadKh (Mon, 07 Feb 2022 14:08:44 GMT): jonathan1204 (Mon, 07 Feb 2022 15:02:12 GMT): salikzquidz (Mon, 07 Feb 2022 16:54:17 GMT): gabrielsdev (Mon, 07 Feb 2022 17:17:01 GMT): gabrielsdev (Mon, 07 Feb 2022 17:43:42 GMT): isavelli (Mon, 07 Feb 2022 21:37:25 GMT): macfarla (Tue, 08 Feb 2022 04:51:00 GMT): macfarla (Tue, 08 Feb 2022 04:56:00 GMT): khushalkunjir (Tue, 08 Feb 2022 05:51:44 GMT): SwapnilDeshmukh (Tue, 08 Feb 2022 11:17:37 GMT): Cai 238 (Tue, 08 Feb 2022 11:32:34 GMT): bruno_evaristo (Tue, 08 Feb 2022 19:58:25 GMT): macfarla (Tue, 08 Feb 2022 23:33:30 GMT): HamidTariq (Tue, 08 Feb 2022 23:50:34 GMT): macfarla (Wed, 09 Feb 2022 01:16:28 GMT): khushalkunjir (Wed, 09 Feb 2022 05:44:10 GMT): MuteMan (Wed, 09 Feb 2022 07:59:41 GMT): Cai 238 (Wed, 09 Feb 2022 08:13:38 GMT): harikishantk (Wed, 09 Feb 2022 09:22:36 GMT): diegoll (Wed, 09 Feb 2022 12:21:07 GMT): theNatassa (Wed, 09 Feb 2022 12:34:36 GMT): Cai 238 (Wed, 09 Feb 2022 12:47:08 GMT): Cai 238 (Wed, 09 Feb 2022 12:54:24 GMT): Cai 238 (Wed, 09 Feb 2022 12:54:24 GMT): Cai 238 (Wed, 09 Feb 2022 12:56:55 GMT): diegoll (Wed, 09 Feb 2022 13:03:04 GMT): Cai 238 (Wed, 09 Feb 2022 13:04:53 GMT): SwapnilPakhare (Wed, 09 Feb 2022 16:55:54 GMT): gabrielsdev (Wed, 09 Feb 2022 17:28:39 GMT): LiXu 17 (Wed, 09 Feb 2022 18:06:50 GMT): joseucarvajal (Wed, 09 Feb 2022 23:16:07 GMT): kaushikkumarbora (Thu, 10 Feb 2022 06:25:59 GMT): eeeeegik (Thu, 10 Feb 2022 07:38:30 GMT): Koraycill (Thu, 10 Feb 2022 11:49:56 GMT): jann2005 (Thu, 10 Feb 2022 12:07:43 GMT): jann2005 (Thu, 10 Feb 2022 12:09:06 GMT): jann2005 (Thu, 10 Feb 2022 12:10:37 GMT): AngelEscudero (Thu, 10 Feb 2022 12:58:13 GMT): macfarla (Fri, 11 Feb 2022 01:47:16 GMT): mgmgwi (Fri, 11 Feb 2022 09:22:19 GMT): ethereal1m (Fri, 11 Feb 2022 09:38:56 GMT):
Also after exposing the loadbalance to UDP service of `besu-validator1` which is bootnode as well. I am able to find the peers from external node which is sending packets to all node but connection is not establishing, Is it because TCP service is not exposed on loadbalancer?
Sending packet to cluster logs:
`<<< Sending PING packet to peer 0xc0ebab5********** (enode://
@faraggi Also after exposing the loadbalance to UDP service of `besu-validator1` which is bootnode as well. I am able to find the peers from external node which is sending packets to all node but connection is not establishing, Is it because TCP service is not exposed on loadbalancer?
Sending packet to cluster logs:
`<<< Sending PING packet to peer 0xc0ebab5********** (enode://
there is no known fix for double nat situations.
https://kb.netgear.com/30186/What-is-Double-NAT
google double nat, it's good stuff.
Anybody available to review https://github.com/hyperledger/besu/pull/725 ? It's a simple change, I swear.
Hi guys, I am trying to implement an application that requires multiple parties to sign a transaction offline before sending it to the Blockchain. Does besu support multi signature transaction ?
that would happen before besu sees the transaction. Look for ethsigner.
@atoulme Thank you. I had a look at EthSigner. But could not be sure if it provides what i am looking for. When i saied mutisignature transaction, I was referring to a transaction that is signed by multiple independent private keys belonging to different public keys. Does EthSigner supports that or it only allows signing a transaction using multiple private keys that belong to the same public key (address)?
@atoulme Thank you. I had a look at EthSigner. But could not be sure if it provides what i am looking for. When i said mutisignature transaction, I was referring to a transaction that is signed by multiple independent private keys belonging to different public keys. Does EthSigner supports that or it only allows signing a transaction using multiple private keys that belong to the same public key (address)?
Hello @rohitgupta027 from what you've described, your loadbalancer provides a route from your external node (lets call this 'ext') to your validator/bootnode (lets call this 'vb'). So when you start 'ext' you specify 'vb' as the bootnode and that works
After that, 'vb' sends a list of peers [v2, v3, v4, n1, n2.....] which 'ext' must try and connect to
How does your current setup route those? i.e 'ext' will see the ip addresses of [v2, v3....] but has no knowledge of how to connect to them
you would have to look at it, but one thing for sure, you would want the transaction to be signed prior to having it being sent to besu
Hence the suggestion of the vpn in the k8s issue, where 'ext' knows how to route to 'bv' but also [v1, v2, n1 ....] basically any nodes you create in the future. Hope this helps
@Jemal - the EthSigner gitter is best place for EthSigner questions - https://gitter.im/PegaSysEng/EthSigner
@madelinemurray and atoulme okay thanks. I will ask my questions there
@madelinemurray and atoulme okay thanks. I will ask my questions there, https://gitter.im/PegaSysEng/EthSigner
Has joined the channel.
Has joined the channel.
Hi, everyone, I have a network now,
The configuration is as follows:
PC1: validator1 ~ validator4, PC2: node, PC3: node.
Now, I want to convert PC2 node to validator through ibft voting.
I did use `ibft_proposeValidatorVote` on validator1 ~ validator4,
And using `ibft_getValidatorsByBlockNumber` to query, I have seen PC2 node's validator address.
But, when I check the log of validator1 ~ validator4, the PC2 node does not rotate blocks
The message is as follows:
`pool-10-thread-1 | INFO | MessageValidator | Invalid Proposal message, block did not pass validation.`
I'm sure all four of my validators have voted.
Am I missing something?
Hello @joshuafernandes It does help to understand why it is not working. Based on what you mentioned above can you recommend any solution, the ones which I see are below
1. If I expose all the peers [v2,v3,v4,n1,n2....] IP to public ip then 'ext' knows how to connect to public IP
2. Right now k8n limitation is that you cannot expose a service with mix-protocol - UDP & TCP in our case. Thats why I have enabled the loadbalancer to UDP port where peer discovery is working but for listening TCP still not working. Not sure if you have experienced something similar.
3. For private permission network, is k8n not an ideal candidate as VPN to k8n is not an ideal solution.
Not sure if thats a good idea but we can have a short call/Skype as well.
Hello @joshuafernandes It does help to understand why it is not working. Based on what you mentioned above can you recommend any solution, the ones which I see are below
1. If I expose all the peers [v2,v3,v4,n1,n2....] IP to public ip then 'ext' knows how to connect to public IP
2. Right now k8n limitation is that you cannot expose a service with mix-protocol - UDP & TCP in our case. Thats why I have enabled the loadbalancer to UDP port where peer discovery is working but for listening TCP still not working. Not sure if you have experienced something similar.
3. For private permission network, is k8n not an ideal candidate as VPN to k8n is not an ideal solution for us as we want external partners to host their node and connect to our cluster using enode://
Has joined the channel.
Hello... I'm following a simple tutorial to create a privacy group and I'm hitting an error
[ERROR] [DefaultDispatcher-worker-2] 04-21-2020 15:20:41 n.c.o.h.s.v.HttpErrorHandler - null failed HttpError{error='PrivacyGroupNotFound'}
net.consensys.orion.exception.OrionException: null
at net.consensys.orion.http.handler.privacy.RetrievePrivacyGroupHandler.responseWithNotFoundError(RetrievePrivacyGroupHandler.java:89) ~[orion-1.5.2-SNAPSHOT.jar:1.5.2-SNAPSHOT]
at net.consensys.orion.http.handler.privacy.RetrievePrivacyGroupHandler.lambda$handleRequest$0(RetrievePrivacyGroupHandler.java:70) ~[orion-1.5.2-SNAPSHOT.jar:1.5.2-SNAPSHOT]
I'm using web3j to make the calls so I don't know wether this is an issue with the web3j code or Besu/Orion. Can someone help?
Here's the information I have so far:
git clone https://github.com/PegaSysEng/besu-quickstart.git
run-privacy.sh
Following: http://docs.web3j.io/privacy/
---------------------------------------------------------------------------------------------------
web3j: 4.5.17
besu: v1.4.3/linux-x86_64/oracle_openjdk-java-11
orion: 1.5.2-SNAPSHOT
---------------------------------------------------------------------------------------------------
import org.web3j.tx.response.PollingPrivateTransactionReceiptProcessor
import org.web3j.crypto.Wallet
import org.web3j.utils.Base64String
import org.web3j.crypto.Credentials
import org.web3j.protocol.besu.Besu
import org.web3j.protocol.http.HttpService
def ALICE_ENCLAVE_KEY = Base64String.wrap('A1aVtMxLCUHmBVHXoZzzBgPbW/wj5axDpW9X8l91SGo=')
def BOB_ENCLAVE_KEY = Base64String.wrap('Ko2bVqD+nNlNYL5EE7y3IdOnviftjiizpjRt+HTuFBs=')
def nodeAlice = Besu.build(new HttpService("http://localhost:20000"))
def credentialsAlice = Credentials.create("8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63")
def aliceBobGroup = Base64String.wrap(Wallet.generateRandomBytes(32))
def createTxHash = nodeAlice.privOnChainCreatePrivacyGroup(aliceBobGroup, credentialsAlice, ALICE_ENCLAVE_KEY, Collections.singletonList(BOB_ENCLAVE_KEY)).send().getTransactionHash()
---------------------------------------------------------------------------------------------------
org.web3j.protocol.exceptions.ClientConnectionException: Invalid response received: 400; {
"jsonrpc" : "2.0",
"id" : 31,
"error" : {
"code" : -50100,
"message" : "Unable to decode the private signed raw transaction"
}
}
---------------------------------------------------------------------------------------------------
$docker logs besu-quickstart_orion1_1
[ERROR] [DefaultDispatcher-worker-2] 04-21-2020 15:20:41 n.c.o.h.s.v.HttpErrorHandler - null failed HttpError{error='PrivacyGroupNotFound'}
net.consensys.orion.exception.OrionException: null
at net.consensys.orion.http.handler.privacy.RetrievePrivacyGroupHandler.responseWithNotFoundError(RetrievePrivacyGroupHandler.java:89) ~[orion-1.5.2-SNAPSHOT.jar:1.5.2-SNAPSHOT]
at net.consensys.orion.http.handler.privacy.RetrievePrivacyGroupHandler.lambda$handleRequest$0(RetrievePrivacyGroupHandler.java:70) ~[orion-1.5.2-SNAPSHOT.jar:1.5.2-SNAPSHOT]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714) [?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) [?:?]
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) [?:?]
at org.apache.tuweni.concurrent.DefaultCompletableAsyncResult.complete(DefaultCompletableAsyncResult.java:45) [tuweni-concurrent-1.0.0.jar:1.0.0]
at org.apache.tuweni.concurrent.coroutines.AsyncResultCoroutine.resumeWith(AsyncResult.kt:85) [tuweni-concurrent-coroutines-1.0.0.jar:1.0.0]
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:46) [kotlin-stdlib-1.3.30.jar:1.3.30-release-171 (1.3.30)]
at kotlinx.coroutines.DispatchedTask.run(Dispatched.kt:233) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:594) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler.access$runSafely(CoroutineScheduler.kt:60) [kotlinx-coroutines-core-1.1.1.jar:?]
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:742) [kotlinx-coroutines-core-1.1.1.jar:?]
Hello, same problems for me. I wrote few weeks ago. https://chat.hyperledger.org/channel/besu?msg=vXkG3KastJ26RrtYG
Hello @rohitgupta027 @arunog I think
Hello @rohitgupta027 @arunog I think you've got a couple of options based on what you're trying to do:
1. on k8s this could work but you will likely need an ingress for each node and the nodes use public interfaces - I think nginx does one that does tcp & udp? You get all the k8s benefits of management, storage via PVC's, design patterns etc but you've got this little bit more of management to do
Hello @rohitgupta027 I think you've got a couple of options based on what you're trying to do:
1. on k8s this could work but you will likely need an ingress for each node and the nodes use public interfaces - I think nginx does one that does tcp & udp? You get all the k8s benefits of management, storage via PVC's, design patterns etc but you've got this little bit more of management to do
2. run independant nodes also on public interfaces
You cant get around the fact that 'ext' still needs to talk to [vb, v1,v2,....n] and if they're all private nothing will work. So the way forward is to make them all public and apply permissioning to them
Hello @arunog, haven't seen your message so apologise for that - the ingresses can be modified to suit your needs. ie you can add/change ports as required . The repo has examples only intended for users to customise to their needs. For discovery you need 30303 TCP & UDP. The initial p2p phase of discovery and finding peers is done via UDP, connecting to them for syncing is done via TCP. As with this problem to get nodes exposed to the public you have to expose both and probably require the same approach of an ingress per node - am not sure what your requirements are per say though so cant say for sure
Hello @joshuafernandes Thanks for you message. The point I am trying to press here is that there is no issue of exposing TCP and UDP on loadbalancer (ngnix) but k8n doesn't allow to create service for mix protocol. As you mentioned to @arunog as well that UDP is used for peer discovery and then TCP is used for syncing.
Also there is no command line arguments for besu to point TCP and UDP on different ports/IP. As per enode specification `enode://
Hello @joshuafernandes Thanks for you message. The point I am trying to press here is that there is no issue of exposing TCP and UDP on loadbalancer (ngnix) but k8n doesn't allow to create service for mix protocol. As you mentioned to @arunog as well that UDP is used for peer discovery and then TCP is used for syncing.
Also there is no command line arguments for besu to point TCP and UDP on different ports. As per enode specification `enode://
@rohitgupta027 Are you trying to setup and IBFT of Clique network?
Also
> I have expose the UDP service from cluster but currently TCP and UDP is not supported by kubernetes
This is nit quite right. K8s does support TCP and UDP. You can do wither with a NodePort service or even Ingress itself.
Also can you share the instructions you followed to setup the network? Are you sure your genesis file is correct e.g. have you made sure that things like `extraData` are set properly
@ppoliani I am trying to setup IBFT network. Yes I am using the same genesis file to connect 'ext' with 'cluster nodes'. `extra data` is specified as mentioned in besu documentations.
k8n github open issue link (https://github.com/kubernetes/kubernetes/pull/75831), also I have with me Microsoft support team as well they also mentioned that creating loadbalancer with TCP & UDP is not an issue but k8n will not let create a service.
Setup instruction:
1. Install `besu-kubernetes` on Azure with 4 validators and 1 node service
2. Create nginx ingress controller for 1 bootnode(validator1) UDP port (as combined with TCP gives error that cannot create mix protocol)
3. Create another nginx ingress for TCP port (validator1)
4. From my local machine start besu node with the configuration similar to cluster - with that the peers discovery works with UDP as TCP is on another public IP. There is no way to specify different ip's & ports for TCP and UDP connection.
4. As
> Create nginx ingress controller for 1 bootnode(validator1)
Can you share a bit more information about this. Do you mean an k8s `Ingress` object? if so what is the service it's pointing to? Is it a LoadBalancer or ClusterIP service.
Could you share the manifest files so we can have a look?
Also do the intra-cluster peers discover each other?
Do you run a local Besu validator and if so has it been added to the list of validators for your netwrok?
Just reid running besu 1.4.3 with eth/65 in a mixed Besu version network... am seeing this in the logs EthScheduler-Workers-132 | ERROR | Besu | Uncaught exception in thread "EthScheduler-Workers-132"
java.lang.UnsupportedOperationException: Attempt to send unsupported message (8) via cap eth/63
Hello @joshuafernandes @ppoliani, Issue is fixed with the help of @arunog
We only need ingress on UDP port after that we need to use `admin_addPeer` API to add external node enode address
as a Peer.
yes I was assuming that as well that's why I asked if you've added the peer to the list of validators
good to hear that it works now :thumbsup:
Thanks :thumbup:
hello @joshuafernandes @ppoliani, it works if the external nodes are in VMs (docker or binary), but I can't connect nodes in other k8s cluster.
I found another method nodeAlice.privCreatePrivacyGroup() that works! Not sure what the 'OnChain' variants provide, but my problem is now resolved.
Has joined the channel.
Hi, I have the same problem, with the same tutorial. I just copied the following script:
https://besu.hyperledger.org/en/stable/scripts/transactions/create_value_raw_transaction.js
And change addressFrom, addressTo and privKey. The error is:
******************************************
Value transaction sent, waiting for receipt.
******************************************
Error: Returned error: Invalid params
I try with ganache and the trasaction works fine. Any idea?
tx.serialize(); Is uncommented
Thx!
Has joined the channel.
Onchain privacy groups are a new feature that have been released in 1.4
You can learn more about them here: https://besu.hyperledger.org/en/stable/Concepts/Privacy/Onchain-PrivacyGroups/
Onchain privacy groups is a new feature that have been released in 1.4
You can learn more about them here: https://besu.hyperledger.org/en/stable/Concepts/Privacy/Onchain-PrivacyGroups/
Onchain privacy groups is a new feature that have been released in 1.4
You can learn more about it here: https://besu.hyperledger.org/en/stable/Concepts/Privacy/Onchain-PrivacyGroups/
I resolved that using:
```
const customCommon = Common.default.forCustomChain(
'mainnet',
{
name: 'name',
networkId: 123,
chainId: 1981
},
'petersburg'
);
```
and
```
```
I resolved that using:
```
const customCommon = Common.default.forCustomChain(
'mainnet',
{
name: 'name',
networkId: 123,
chainId: 1981
},
'petersburg'
);
```
and
```
var tx = new ethTx.Transaction(txObject , {common: customCommon});
tx.sign(privKey);
```
I am thinking about running my own mainnet Besu node, to be able to run arbitrary queries, possibly modifying Besu to customize the data that is returned.
I would have to either buy an external big fast drive for the DB (and suffer the laptop fan whine), or get some cloud VM - of which I have no experience.
Does anyone know of some guide or cost estimation?
The plan is to fast-sync and prune keeping the last 4M blocks
hi @magooster - we have a known issue in v1.4.3 with eth/65 not being backwards compatible -> https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#143
The technical release of 1.4.4 was done today and we're currently doing burn-in testing.
Thanks this didn't show in the release notes
Thanks this didn't show in the release notes https://github.com/hyperledger/besu/releases/tag/1.4.3
Also, does anyone know how doable it is to migrate the DB between Besu and Parity, given that both use RocksDB?
It was identified a few days after the release (April 17) and we updated the changelog/posted in here and besu-contributors when that happened.
Mainnet ETH for online VMs will cost you about $50/m+
A 1TB SSD for a laptop is about $150- not sure if external is fast enough- depends on the transfer interface.
Hi, I deployed Besu on K8S (on an AWS EC2 instance) using kubectl following the instructions mentioned here: https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2.
Now, the issue I am facing is that in case the EC2 volume is shut down (NOT terminated) & restarted, all information about previously deployed contracts, including the data stored in the smart contracts, etc. is lost. Given that AWS (or any server for that matter) has its downtimes, how should I tackle this issue when going into production?
Has joined the channel.
DB schemas are different, so no.
thank you
and do you think it´d be possible to create some simple script to convert them (with the Python bindings for example)? I'm assuming that what the applications store is at the end of the day a rather straight implementation of the Yellow Paper...
Not simple. It would require deep understanding of Parity's DB structure, which changes about once a year.
huh... ok, good to know. Thank you!
I found the problem. It was with the ethereumjs-tx version. If you install the version 1.3.7 without ^ or ~ works fine for me. Thx!!
I found the problem. It was with the ethereumjs-tx version. If you install the version 1.3.7 without ^ or ~ works fine for me. (NPM install ^2.1.2 version by default) Thx!!
Has left the channel.
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 send transaction) does not work in my environment.
I got the following error messages.
```bash
node1 | 2020-04-17 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone know how to set some parameters?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 send transaction) does not work in my environment.
I got the following error messages.
```bash
node1 | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone know how to set some parameters?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 1.x send transaction) does not work in my environment.
I got the following error messages.
```bash
node1 | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone know how to set some parameters?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 1.x send transaction) does not work in my environment.
`Error: Transaction has been reverted by the EVM`
I got the following error messages.
```bash
node1 | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone know how to set some parameters?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 1.x send transaction) does not work in my environment.
```bash
Error: Transaction has been reverted by the EVM:
...
```
I got the following error messages.
```bash
node1 | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
node1 | java.util.NoSuchElementException: No value present
node1 | at java.util.Optional.get(Optional.java:148) ~[?:?]
node1 | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
node1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone know how to set some parameters?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 1.x send transaction) does not work in my environment.
```bash
Error: Transaction has been reverted by the EVM:
...
```
I got the following error messages.
```bash
besu | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
besu | java.util.NoSuchElementException: No value present
besu | at java.util.Optional.get(Optional.java:148) ~[?:?]
besu | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
besu | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone know how to set some parameters?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 1.x send transaction) does not work in my environment.
```bash
Error: Transaction has been reverted by the EVM:
...
```
I got the following error messages.
```bash
besu | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
besu | java.util.NoSuchElementException: No value present
besu | at java.util.Optional.get(Optional.java:148) ~[?:?]
besu | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
besu | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone have some information?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 1.x send transaction) does not work in my environment.
```bash
Error: Transaction has been reverted by the EVM:
...
```
(The test code works well for geth.)
I got the following error messages.
```bash
besu | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
besu | java.util.NoSuchElementException: No value present
besu | at java.util.Optional.get(Optional.java:148) ~[?:?]
besu | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
besu | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone have some information?
hey guys, I’m trying to `truffle test` for Besu.
This article helps `truffle migrate`.
https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
But `truffle test`(web3 1.x send transaction) does not work in my environment.
```bash
Error: Transaction has been reverted by the EVM:
...
```
(The test code works well for Geth.)
I got the following error messages.
```bash
besu | 2020-04-24 00:00:00.000+00:00 | vert.x-worker-thread-10 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
besu | java.util.NoSuchElementException: No value present
besu | at java.util.Optional.get(Optional.java:148) ~[?:?]
besu | at org.hyperledger.besu.ethereum.mainnet.ValidationResult.getInvalidReason(ValidationResult.java:40) ~[besu-core-1.4.3.jar:1.4.3]
besu | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.errorResponse(EthEstimateGas.java:103) ~[besu-api-1.4.3.jar:1.4.3]
…
```
Does anyone have some information?
Has joined the channel.
Has joined the channel.
Hi, I'm wondering what is the latest stable release of Besu?
As far I know events and logs aren't implemented for now in private transactions , then why in the eventEmitter example inside the getPrivateTransactionReceipt function it is trying to read result.logs[0].data)?
1.4.4 was cut this week.
Thanks @atoulme - I had seen that this is the latest release. Is this a stable release?
Thanks @atoulme for the info. What would you say is the latest stable release given that 1.4.4 is not yet stable ? Can't find this info
it's undergoing testing right now.
https://chat.hyperledger.org/channel/besu-contributors?msg=NCsDaeK7muiqYt5kc
[ ](https://chat.hyperledger.org/channel/besu?msg=hzAyQLj7njDHamafK) Thanks for the info @atoulme . Is there somewhere that the latest stable release is indicated? Can't
* Can't find this info
@EdJoJob might be better placed to know
Thanks @atoulme. Hi @EdJoJob , would you know where the latest stable release is indicated? Can't seem to find this info
I would recommend 1.4.2 until we get the 1.4.4 tests complete.
hi @niliakis - logs and filters have been implemented for private contracts in v1.4.4 (currently being tested) https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#144
Has joined the channel.
B0rken link ... I was looking at https://github.com/PegaSysEng/besu-sample-networks and I followed the link at the top to https://besu.hyperledger.org/en/stable/Tutorials/Quickstarts/Private-Network-Quickstart/ which is 404...
This looks like a bug, possibly introduced in 1.4.1. I've opened a bug to track this: https://github.com/hyperledger/besu/issues/787
Hi Team, i set up a 4-node ibft network and sent 300 transactions. It was very slow to process all the transactions.
Hi Team, i set up a 4-node ibft network and sent 300 transactions. It was very slow to process all the transactions. There is only one transaction in every block.
Hi Team, i set up a 4-node ibft network and sent 300 transactions. It was very slow to process all the transactions. There is only one transaction in every block. Could anyone help me with this performance issue?
Hi Team, i set up a 4-node ibft network and sent 300 transactions from 100 accounts. It was very slow to process all the transactions. There is only one transaction in every block. Could anyone help me with this performance issue?
Hi Team, i set up a 4-node ibft network and sent 300 transactions from 100 accounts. It took almost 10 minutes to process all the transactions. I checked the explorer and found there was only one transaction per block. Could anyone help me with this performance issue?
Clipboard - April 26, 2020 2:39 PM
The most likely cause is that the transactions had a very large gas limit. A transaction can only be included in a block if it's gas *limit* plus the sum of gas *used* for transactions already in the block is less than the block gas limit. The comparison is done before the transaction is ever executed so the transaction may be excluded because of a large gas limit even if it would only have used a small amount of gas when it runs.
```final RawTransaction rtx = RawTransaction.createTransaction(
txCount,
BigInteger.ZERO,
BigInteger.valueOf(9007199254740990L),
contractAddress,
encoded
);``` I will try reduce the gaslimit.
Thanks a lot!!!!! It works.
Clipboard - April 26, 2020 5:39 PM
@NicolasMassart - should we have a redirect in place for this?
Hello @arunog @rohitgupta027 good to hear that it works :thumbsup:
What issues are you seeing when adding nodes from another cluster - I would have thought that the process would be the same more and you'd have to use the right endpoint ip of the joining node?
Also, that 404 page gives a Jira link for filing issues - I thought it moved to Github. If so, the 404 page needs to be updated (maybe other response pages too)
Thanks @shemnon
when I'm running the eventEmitter example in my nodes(running v1.4.4) I get the error: TypeError: Cannot read property 'data' of undefined
at web3.priv.getTransactionReceipt.then.result (/home/nikos/Desktop/web3js-eea/example/eventEmitter.js:89:51)
FOxed
Fixed
Besu contributor call in about 5 1/2 hours (1am UTC) - https://consensys.zoom.us/j/524697595
:mega: We just released a new version of Besu, 1.4.4 :mega:
1.4.4 includes logs and filters for private contracts, EIP-2315, Splunk logging integration, and optional native library encryption.
We've disabled `eth/65` support by default and performed additional testing on 1.4.4 to ensure the issues with 1.4.3 are no longer occurring.
Changes and known issues are listed in the Changelong - https://github.com/hyperledger/besu/blob/master/CHANGELOG.md
Has joined the channel.
Thank you!
Has joined the channel.
Hello everyone! I would like to test a project using Private Transactions on a public network (Rinkeby for example, or Ropsten). I started a full node (VM on GCP, Docker image version 1.4) but the sync is very long and I can't enable FastSync or Pruning (because of Private Transactions). Is there a dump (for use with `besu import` for example) available somewhere that would allow me to speed up the sync?
Also for your information, I published a plugin for the Alethio Lite block explorer that supports a Hyperledger Besu node with authentication enabled on JSON-RPC endpoints. This plugin manages the authentication on the web3 provider from the block explorer. See https://github.com/adetante/explorer-besu-plugin
Has joined the channel.
Hey guys, new to Besu here and I have 4 questions. It says Besu is a client for an Ethereum network.
1. Is it just like Mist?
2. Do I have to be running an Ethereum network for Besu to connect to?
3. Does Besu create an Ethereum network from within?
4. In the architecture page on the wiki, There are many components, does Besu englobe them all or just Dapp/Wallet item?
I dropped a PR just now. Happy to chat here about it as well not just the GH comments (in case anybody prefers one over the other).
https://github.com/hyperledger/besu/pull/821
hello Peter, not sure what the intent of the contribution is. I think it might be best to have this out of the repository into your own.
I also see a couple of efforts on this type of configuration:
https://github.com/lucassaldanha/besu-three-nodes-example
https://github.com/PegaSysEng/besu-sample-networks
@atoulme Thanks for the reply! I'm happy to host it in my own repository, but I will also need to publish it on DockerHub. Is this okay with the Besu team? I just want to make sure there's no issues with it afterwards if I go down that route.
fine by me
I'll close down the PR then. Thank you for the info.
no worries. Please come back with even more fixes, and thanks for helping!
You got it
Hi @antoinedz unfortunately not. Using the import function you would still need to process the blocks, so speed gain wouldnt been too dramatic. Hopefully if you running this on a testnet though the sync should be faster compared to Mainnet.
Hi @lepar . I will try and answer your questions:
1. No. Mist communicated with an ethereum client such as go-ethereum (geth). You can use Mist to communicate with Besu intead of go-ethereum.
2. Besu allows you to connect to an ethereum network.
3. You can use Besu to join an existing ethereum network such as mainnet, or establish your own private ethereum network.
4. All the components listed are what make up Besu. A Dapp/Wallet connects to Besu as its ethereum client to connect to the network.
Please refer to the besu documentation for extensive information on various concepts: https://besu.hyperledger.org/
@arash009 Hey man, thanks for the reply.
I'm still a little confused but some things we cleared.
So a Dapp/Wallet connects to Besu.
Something that I'm still confused. Besu can create an Ethereum network OR connect it to an existing one, is that i?
Hello there! A question on privacy group: as far as I understand, once created no further participants can be added. Right? So basically, it is not possible to let another party join later and sync the the existing private state?
Hello everyone, I am trying to deploy k8s using minikube I use this repository https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2 . Everything goes well but now I want to deploy a smart contract... I am using truffle. I need to ssh the minikube to interact with the blockchain(curl requests to the API). What should I do to deploy a smart contract?
Should Install truffle and clone the project repository inside minikube(after minikube ssh) to deploy the contract?
Should I install truffle and clone the project repository inside minikube(after minikube ssh) to deploy the contract?
Correct. An Ethereum client is what makes up the network. You can either start your own, or join an existing one using Besu.
Yes that is correct for all versions up to Besu v1.4. From v1.4 however, Besu supports onchain privacy groups using smart contracts. Using this new functionality you can add/remove members from an existing group. Please note that this is still early access and under further development: https://besu.hyperledger.org/en/stable/Concepts/Privacy/Onchain-PrivacyGroups/
Awesome, thanks for the info
Hello guys! Thank u all the support!
I have little question regarding "multi-tenancy"
So, I ran besu network with "privacy enabled" and "multi-tenancy-enabled" with Orion node as well. Everything seems working fine and mining new blocks. So I used jwt.io to generate token with privacyPublicKey=OrionPublic. The issue is that when i call to node with Bearer Authorization through Postman, the following error is coming.
``` {
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -40100,
"message": "Unauthorized"
}
}
```
Has joined the channel.
Thanks for the answer @arash009 - unchain privacy groups sounds nice.. so with this feature, if I later add someone to the group, he will be able to sync all the private state of that privacy group?
Thanks for the answer @arash009 - onchain privacy groups sounds nice.. so with this feature, if I later add someone to the group, he will be able to sync all the private state of that privacy group?
Okay Thanks!
@faraggi Okay Thanks!
@ivicaa - yes that's right. When a new member is added to the privacy group, all previous transactions in the group are pushed to the new member and sync'd so the new member has the private state of the group.
If one more question is allowed: how heavy- or light-weighted are such onchain/offchain privacy groups? From hyperledger fabric state channels, we know that we can run into some combinatorial explosion. Can we run with Besu into same issues? Let's say, we have a network of N=100 banks, which can potentially have a connection to each other via nostro/vostro account. Would it be feasible to mange the vostro/nostro accounts with privacy groups?
HI Bobur,
There could a few reasons why you are getting an unauthorized error. If you are creating the JWT yourself then you must specify the corresponding public key to Besu using public key key file option either for rpc https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-authentication-jwt-public-key-file or websockets https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-ws-authentication-jwt-public-key-file.
It could also be that your permissions in the JWT aren't correct. If the permissions aren't included then it defaults not allowing any RPC access. What are JWT claims do you have in your token? You must have permissions, exp and privacyPublicKey claims in the token you create https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/#2-create-the-jwt
More questions are definitely allowed :-)
There's two variables to consider:
1. Number of members in a group (when sending a tx it must be distributed to all members of the group)
2. Number of transactions in a group (when a new member is added to a group, all existing transactions in the group are pushed to the new member)
So, 100 banks where each one has a private group with each other should be fine.
It is probably better having 4950 privacy groups each with 2 members than having one privacy group with 100 members.
As far as I understand, private transactions are distributed via orion. Do orion nodes of the same privacy group need a direct point-to-point connection to each other or can private messages be relayed via other orion nodes not directly participating in the private transactions?
As far as I understand, private transactions are distributed via orion. Do orion nodes of the same privacy group need a direct point-to-point connection to each other or can private messages be safely relayed via other orion nodes not directly participating in the private transactions?
Hi @ivicaa atm they need a point-to-point connection to each other.
We can't really have non-participants relaying the messages 'cause that would break some of the EEA requirements around privacy.
We could relay the msg between participants to reduce the load on the sender node (e.g. when you have a privacy group id with 100's of participans). But this is something that we haven't implemented.
I see. Could the whisper protocol solve the problem of relaying? AFAIK that's the way EY baseline protocol for instance is targeting.
Maybe. We have looked at a few options, but we'd like to have more users to get a feeling of the different requirements that might show up before committing to one approach.
That's why it is awsome to hear back from you and others! :D
I was asking this, because our current PoA network in finledger for instance is not designed in a way that every bank in the network has a direct connection to every other, so it could get difficult for us to install an orion network without having to redesign our topology.
I know it's a very special case, and actually the redesign of the topology is feasible, however, just wanted to collect the infos on the possibilities.
I know it's a very special case, and actually the redesign of the topology is feasible at our side, however, just wanted to collect the infos on the possibilities.
Anyway, the orion node would have to be able to work in the DMZ
Interesting, we'd love if you could provide more details on that.
The Besu nodes won't need to be connected to each other, only the Orion nodes. I'm not sure if this makes any difference for you or not.
Topology.jpg
if you're interested in it... the diagram shows the current setup.. so to be able to have point to point connection the orion node would have to go to DMZ too..
but it's not typical at least for us to also hold sensitive data in DMZ too.. not sure what everything orion node is storing.
but it's not typical, at least for us, to also hold sensitive data in DMZ too.. not sure what everything orion node is storing.
I am guessing now, but I think, an orion node has to go to intranet too, but than it needs some kind of a relay component in the DMZ, to make it accesible for point to point connection from the partner banks.
Yeah, I think the way to go could be something like putting a proxy component in the DMZ relaying requests to the Orion instance. And also relaying requests from the Orion node to other Orion nodes through the same proxy.
All Orion comms can be secured using TLS so the data should be safe in transit. And this could also benefit by using certificates to validate Orion requests from trusted parties (assuming you know before hand the Orion nodes in the network).
As for the data, Orion also supports external relational db (Postgres or Oracle). So the data can live inside your intranet, it doesn't need to be exposed.
This is a really interesting use case. If you decide to use Besu/Orion for it I'd be super keen to hear more about your progress.
currently, we're in production with geth+clique. At the time that we started with the project there was no besu yet and also no professional enterprise-grade node provider.. however, with besu the gap is closing now. Good job so far!
orion dmz.JPG
This is how I see that we could use Orion in your setup. I forgot to add the lines to represent Orion <-> Besu comm.
Thanks for bringing up this use case for us
yep.. that's what I was also thinking of!
for orion proxy.. is there something that could be used already, or would this be soem new component to be built?
Orion has to be highly available. In our recommended production setup we have an example of using HAProxy as a LB in front of Orion. I guess this could be used to achieve this.
it's also good that we have no connections going out of DMZ to some internal database.
ah ok.. so the protocol is plain https?
Yep
https://docs.orion.pegasys.tech/en/stable/HowTo/High-Availability/
in that case it should not be a problem to setup a reverse proxy
Correct!
and how's the besu node communicating with orion node? also https?
Yes
although, if they are both in the same "safe zone", it could be just http
so.. i would have to have a connection from my api node to orion... sealer and relayer do not need it I guess
Only nodes that are "members" can see the content of private txs. If your API node is the only one that needs access to the private txs than this would be enough.
One option would be setting up more than one node with the same Orion key, so they are all "1 participant" from the network point of view
ah I see.. so it's depending on the node key
Not the Ethereum node key
The Orion key :D
(we have too many keys in Ethereum haha)
I see.. is this key held externaly to the node?
Participants for private txs are identified by their Orion public key
The private key is owned by the Orion node
there is one more point than troubling me... our api server component uses rpc/ws to access the node.. for security reasons that node holds no keys in our setup... not sure if it has to be like that with besu too.
there is one more point then troubling me... our api server component uses rpc/ws to access the node.. for security reasons that node holds no keys in our setup... not sure if it has to be like that with besu too.
wgt private txs, the API node only needs the Orion public key.
Whenever it needs to access a private tx, it will request it from Orion.
So Orion is the one that keeps the key
but the node has to authenticate somehow at the orion node, right?
In most setups, only one Besu node has access to the Orion node. So there is no need for authentication. You can sort out everything with network access rules.
It is worth mentioning that Orion has separate endpoints for the Orion <-> Orion and for the Orion <-> Besu comms
So you can apply very specific rules around what nodes can read data from Orion
I see.. will think about this in our context.. in any case thank you very much for the discussion! It was enlightening for me.
No worries! Thanks!
Hello guys!
I get this error in besu logs:
``` vertx-blocked-thread-checker | WARN | BlockedThreadChecker | Thread Thread[vert.x-worker-thread-4,5,main]=Thread[vert.x-worker-thread-4,5,main] has been blocked for 98011 ms, time limit is 60000 ms
io.vertx.core.VertxException: Thread blocked ```
Could anybody provide any insight? thanks
do you see any more logs around this? This simply indicates a request you made against besu took longer than 60 seconds.
What RPCs were you calling?
I first encoutered this when I called a function of a private smart contract, but I still get this hours after.
@niliakis please open a bug report with as much detail as you can allow, and with a reproduction case if possible.
We might need to do a bit of instrumentation on our end to determine when threads block for a long time.
Recently I was introduced to opentelemetry.io which takes from openTracing, which allows tracing of applications. Would that be an interesting instrumentation path to look at?
@niliakis also we've recently published some documentation on how to capture a Java Flight Recorder dump - you might try collecting one of those and adding it to your bug report
https://besu.hyperledger.org/en/latest/HowTo/Troubleshoot/Java-Flight-Recording/
I've actually seen the same error myself recently, but it was due to an OutOfMemoryException that I had missed further up in the logs
Hello Team, completely new to Besu and still exploring ethereum and token concepts.
Wanted to check if it is possible to transfer non-fungible tokens/assets (ERC721 standards may be ?) between two entities in a private transaction using Besu ?
Any reference implementations/documentation would be really helpful. Thanks
Thanks for the support guys! I'll try both of them and update! Could the error be because the transaction remained in the tx pool, besu was trying to proceed it and always exeeded time limit?
Has joined the channel.
Hi Team, I'm would like to generate the Account and Node Ingress contracts code to put inside my genesis instead of just copying it from the example genesis file. Is there some documentation on how to do it properly? I think I can play around with truffle for doing it but maybe you already have an script or something to solve this
I think there is an ERC20 example in the web3js-eea library
Private transactions support the whole spectrum of Ethereum, so you can transfer anything, including ERC721 based tokens.
Thanks for the inputs. Are there any samples available which explains end-to-end process like : development of application and smart contract, running a private besu network, deploying the contract on the network and doing some private transaction between the nodes?
these are orthogonal topics
development of application and smart contract are probably best explained with Truffle.
Running a private besu network, probably good resources from PegaSys on that. https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
hanks for sharing the links. To get started on Besu, I just want to demonstrate transferring of an asset between 2 participants (participant 1 of Node 1 and participant 2 or Node 2) in a network of 3 Nodes. This asset transfer should be done in a private transaction between participant 1 and 2 so that participant 3 (of Node-3) is not able to view the transaction.
So to achieve this, what should be the approach/tools required? I am guessing, I would be using Truffle for application development, solidity for smart contracts and a private besu network (free gas network ?) for running the 3 nodes with an appropriate consensus algorithm (may be IBFT2.0?).
Wanted to confirm if my understanding is correct ? Do I need some other tools for doing this ?
Thanks for sharing the links. To get started on Besu, I just want to demonstrate transferring of an asset between 2 participants (participant 1 of Node 1 and participant 2 or Node 2) in a network of 3 Nodes. This asset transfer should be done in a private transaction between participant 1 and 2 so that participant 3 (of Node-3) is not able to view the transaction.
So to achieve this, what should be the approach/tools required? I am guessing, I would be using Truffle for application development, solidity for smart contracts and a private besu network (free gas network ?) for running the 3 nodes with an appropriate consensus algorithm (may be IBFT2.0?).
Wanted to confirm if my understanding is correct ? Do I need some other tools for doing this ?
yep, looks like what you'd need imo.
You can start with one of our sample networks. There is a specific one for private txs
https://github.com/PegaSysEng/besu-sample-networks
For the network deployment, you can start with one of our sample networks. There is a specific one for private txs
https://github.com/PegaSysEng/besu-sample-networks
Be aware that in your example, not only node 3 won't be able to see the private tx but it won't be able to see anything related to the contract or the tokens.
From node3 point of view, the contract doesn't exist.
btw with 3 nodes, you might want to use clique consensus, ibft has a min requirement of 4, right Lucas?
I belive you can have 3 validator and it should be fine with ibft.
If you don't wanna use the genesis to have the contracts since the beggining of history, you can take this approach:
1. Start your network with permissioning off
2. Deploy your implementation of smart contract. They must implement the interfaces as specified by the EEA spec (https://entethalliance.github.io/client-spec/spec.html#sec-permissioning-smart-contract)
3. Stop Besu and update the config with the correct account and node permissioning contract addresses (https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-accounts-contract-address and https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-nodes-contract-address).
4. Update the config to enable onchain permissioning for nodes and account (https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-accounts-contract-enabled and https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-nodes-contract-enabled)
5. This should do the trick!
I recommend that you implement your permissioning smart contracts using a proxy approach so you are able to upgrade the contract in the future of the chain. Take a look on how we did it in the reference implementation (https://github.com/PegaSysEng/permissioning-smart-contracts/tree/master/contracts).
Let me know how it goes!
Hello Lucas, thank you for your time. I want to have the contracts since the beggining, but I don't want to c&p the code from the sample genesis but to generate it myself
The code in the genesis file is the compiled contract. All you need is to compile your contracts and change the code section for the contract accordingly.
Bear in mind that the storage section of the allocation is dependent on your implementation so you'll need to ensure you set it accordingly.
One way to find the "right" storage config for the contract is using Remix do deploy the contract, andwith the debug tx tool, check the final storage memory layout.
One way to find the "right" storage config for the contract is using Remix do deploy the contract (you can deploy it to the JS vm), and with the debug tx tool, check the final storage memory layout.
excellent, I'll go that way then. Thanks again!
Screen Shot 2020-05-08 at 9.15.38 AM.png
Debug the deploy tx, go to the final step (return), cehck the storage values and update the genesis file to use them.
awesome, that helps a lot
Cheers!
I was referring this : https://github.com/PegaSysEng/besu-sample-networks#basic-4-node-network-with-privacy-orion-node-sets-the-block-explorer-and-prometheus--grafana
As per my understanding, 4 validator nodes are minimum requirement to run IBFT consensus and apart from this we would need 3 Orion nodes to have private transaction between the participants.
Is it correct ?
Also wanted to check if we can use Truffle for dapp development as I read somewhere that it does not support EEA private transactions at the moment. Can we use web3js-eea library as an alternate for that purpose?
@faraggi @joshuafernandes
Hello @HLFPOC I'll have to check re truffle & EEA tx support. By all means please use the web3js-eea libs. As a follow on to the ./run-privacy.sh in the sample-networks repo, we've also got a tutorial using web3js here https://besu.hyperledger.org/en/stable/Tutorials/Examples/Privacy-Example/ and a video link in the main readme of the sample networks
Thanks for sharing it @joshuafernandes . Will go through the links. Can you please validate the network configurations also? I need to simulate private transactions between 3 participants (belonging to 3 different organizations) so I am planning to run 4 validator nodes (for IBFT) and 3 Orion nodes (each for 1 entity for private txns) as part of besu network. Is it correct way of doing or am I missing something here ?
Has joined the channel.
Hello all, trying to setup a clique private network with besu using docker ... Here are the steps followed:created accounts using myetherwallet.com, extracted the private key
Hello all, trying to setup a clique private network with besu using docker ... Here are the steps followed:```
```
```
Trying to set up a clique private network using docker. Here are the steps followed:
```
Trying to setup a clique private network using docker ... created accounts using myetherwallet.com, extracted the accounts and private keys... created the genesis.json file... started node-1 ... got the enode url and started the node-2 with the enode address of node-1 as the boot node and dont see them connecting ... stuck in waiting for peers ... Here is the command for the *first* node: [ _docker run --rm --name bank -p 30303:30303 -p 8545:8545 -u $(id -u $USER):$(id -g $USER) -v $BESU_HOME:/root hyperledger/besu:1.4.4 --data-path=/root/data/bank --genesis-file=/root/genesis-21.json --network-id 21 --nat-method=DOCKER --p2p-host="0.0.0.0" --rpc-http-host="0.0.0.0" --rpc-http-port=8545 --rpc-http-enabled --rpc-http-api=WEB3,ETH,NET,ADMIN,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"_ ] and here is the command for the *second*: [ _docker run --rm --name buyer -p 30304:30304 -p 8546:8546 -u $(id -u $USER):$(id -g $USER) -v $BESU_HOME:/root hyperledger/besu:1.4.4 --data-path=/root/data/buyer --genesis-file=/root/genesis-21.json --bootnodes=enode://db91c66ac7a69ced5d4b8c224892bf94203cc7f79bbec443562d8ee2badf49ac96fddf1376f43556a11ca71ed84d0a6e556d9c51b6fb418db99a14c134f6fca5@92.242.140.21:30303 --network-id 21 --nat-method=DOCKER --p2p-host="0.0.0.0" --p2p-port=30304 --rpc-http-host="0.0.0.0" --rpc-http-port=8546 --rpc-http-enabled --rpc-http-api=WEB3,ETH,NET,ADMIN,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"_ ] ... any help appreciated
Trying to setup a clique private network using docker ... created accounts using myetherwallet.com, extracted the accounts and private keys... created the genesis.json file... started node-1 ... got the enode url and started the node-2 with the enode address of node-1 as the boot node and dont see them connecting ... stuck in waiting for peers ... Here is the command for the *first* node: [ ```docker run --rm --name bank -p 30303:30303 -p 8545:8545 -u $(id -u $USER):$(id -g $USER) -v $BESU_HOME:/root hyperledger/besu:1.4.4 --data-path=/root/data/bank --genesis-file=/root/genesis-21.json --network-id 21 --nat-method=DOCKER --p2p-host="0.0.0.0" --rpc-http-host="0.0.0.0" --rpc-http-port=8545 --rpc-http-enabled --rpc-http-api=WEB3,ETH,NET,ADMIN,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"``` ] and here is the command for the *second*: [ ```docker run --rm --name buyer -p 30304:30304 -p 8546:8546 -u $(id -u $USER):$(id -g $USER) -v $BESU_HOME:/root hyperledger/besu:1.4.4 --data-path=/root/data/buyer --genesis-file=/root/genesis-21.json --bootnodes=enode://db91c66ac7a69ced5d4b8c224892bf94203cc7f79bbec443562d8ee2badf49ac96fddf1376f43556a11ca71ed84d0a6e556d9c51b6fb418db99a14c134f6fca5@92.242.140.21:30303 --network-id 21 --nat-method=DOCKER --p2p-host="0.0.0.0" --p2p-port=30304 --rpc-http-host="0.0.0.0" --rpc-http-port=8546 --rpc-http-enabled --rpc-http-api=WEB3,ETH,NET,ADMIN,CLIQUE --host-whitelist="*" --rpc-http-cors-origins="all"```] ... any help appreciated
Trying to setup a clique private network using docker ... waiting for peers
Hello @HLFPOC that should be fine. The typical use case for multiple organisations is the validators in one pool so to speak with a set of besu & orion nodes per organisation. This keeps separation of concerns clear and what a few consortiums generally follow. However there is no strict rule and each network is different so there are quite a few configs you can use based on your requirements. Hope that helps
Has joined the channel.
@jframe thank you! I solved it!
I was proving wrong public key to jwt.io when generating token
@jframe thank you! I solved it!
I was providing wrong public key to jwt.io when generating token
Hi all. I've found an edge case that the FlatTraceGenerator doesn't handle. I want to put together a test case to demonstrate it before raising the issue. I'm trying to figure out how the test blocks are generated for the rpc tests so I can add an extra one to the test data export. Can someone point me in the right direction?
Hi guys, I was trying to make a deployment code that deploys a contract using its ABI, I did it easily before on testnets using web3js, or using truffle ".new()" function, Although, these ways doesn't seem to work with besu, I need to know a proper way please.
Besu contributor call in ~19 hours, EMEA/AMER friendly time - https://wiki.hyperledger.org/display/BESU/2020-05-12+Contributor+Call
Hi, is there an option to set the coinbase address when using ibft2, other than the validator node's address?
Hi, is there an option to set the coinbase address when using ibft2, other than the validator node's address? - that is, for non zero gas priced networks
Is there perhaps a design related reason for ignoring the coinbase address specified on the command line?
@coenie The coinbase header in IBFT2 and Clique got repurposed as part of the voting mechanism to add and remove validators and the standard says that the transaction fees and block rewards go to the block producer (recovered from the block signature). There's no way to specify a different coinbase address.
okay thanks for that!
@ajsutton might it be possible to use the EXTRA_VANITY space inside the extraData to include an address to which the fees should go?
It would be possible to shove more stuff into the extra data field but it would be a consensus affecting change - the rewards going to a different account would change the state root so all clients would have to support the change. At that point, you could pretty much put the value anywhere you like.
So basically, it's possible to modify IBFT2 and Clique to support custom beneficiaries, but that's not how they work today so you'd basically be creating an IBFT3 or Clique2.
okay thanks for that.
On a separate, but related node, can validators use something like ethsigner (or an HSM) instead of needing key files?
On a separate, but related node, can validators use something like ethsigner (or an HSM) instead of needing key files to sign for blocks?
On a separate, but related note, can validators use something like ethsigner (or an HSM) instead of needing key files to sign for blocks?
So to send the fees to an address, is it not simply the first (or special) transaction? or that only with ethash? If not, does every node need to get the address from the signature of the block and give that address the fees?
nvm, I think I've figured it out :)
flattrace
You can add your blocks here: https://github.com/hyperledger/besu/tree/master/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/chain-data
And add your test cases here: https://github.com/hyperledger/besu/tree/master/ethereum/api/src/test/resources/org/hyperledger/besu/ethereum/api/jsonrpc/trace/specs/replay-trace-transaction/flat
@abdelhamidbakhta ok thanks
Besu contributor call in > 1hour, EMEA/AMER friendly time - https://wiki.hyperledger.org/display/BESU/2020-05-12+Contributor+Call
https://consensys.zoom.us/j/199741148
Added the issue https://github.com/hyperledger/besu/issues/911
Just added a separate tracing bug that I found https://github.com/hyperledger/besu/issues/915
Hi everyone, is there any official documentation describing the performance capilities of BESU in terms of tps - tx/s ? If not, any bench / test metrics to share ? thanks
Thank you very much.
No problem
No problem
@bmg you parisitize all the discussions with your query it's not a good way to do that because people forget the intial query...
??
Has joined the channel.
Hi All. I have a naive question, but I hope I can get some clarity here. When I propose a new Validator to my IBFT2.0 validator pool, i can do this by sending a proposeNewValidator RPC call. What I'm struggling to understand is are the security measures. anyone can send the `curl` call...
I've been trying to find some more infos on that in the docs, but it is very sparse
I'd love to better understand this process. The voting is not so intuitive to me....
There's a few ways you can lock down the rpc:: https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/
OK, clear on that, but does it mean that to vote, I need to send rpc calls to each node acting as validator?
I'm not clear on this one
so assumung I have 4 validators running in my test environment on the same machine: `192.168.88.10:8545`, `192.168.88.10:8546`, `192.168.88.10:8547`, `192.168.88.10:8548`, do I need to send an RPC call to each of those endpoints?
As I understand it a majority is required before a new validator is approved, so yes, you need to propose the new validator within a given number of blocks (epoch) on all the validators.
Disclaimer: I haven't used besu much with PoA
Interestingly - I have made the test and this is the *before*
```curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://192.168.88.10:8545 kradecki@MacSzyszka
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ "0x3db79b2d7178531b3a6606340b8cd4179b6d306d", "0x6f1b0f3614bdf26ff6489cef5e7f86841f2851e6", "0x815fee310b75615172fce4c2c9b93c85678c8119", "0xbc2d69d59c7a65c3c793d2fb5b13a5a46449eb5c" ]
}%```
this is the *after*:
```curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://192.168.88.10:8545 kradecki@MacSzyszka
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ "0x3db79b2d7178531b3a6606340b8cd4179b6d306d", "0x6f1b0f3614bdf26ff6489cef5e7f86841f2851e6", "0x815fee310b75615172fce4c2c9b93c85678c8119" ]
}%```
*BUT*:
```curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getPendingVotes","params":[], "id":1}' http://192.168.88.10:8545 kradecki@MacSzyszka
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : {
"0xbc2d69d59c7a65c3c793d2fb5b13a5a46449eb5c" : false
}
}%```
the vode to remove a validator is still pending
:(
any idea why...?
even though all 3 remaining validators have voted to remove thr fourth one
please, please not at all at once :P
Hi @krzyhoo, I'll take a look at the code (its been a while) - but I think the short answer is that a vote exist until the next epoch, not just until it has been actioned. Given the way voting works - voting for a node to be "out", even if they are already "out" doesn't have an affect on the system.
In addition the RPC for the validators may be on a firewalled network segment that only appropriately authenticated users would be able to access, as opposed to the P2P interface that the other nodes need access to
But that would mean that validators can't serve as endpoints for Metamask, for example, @trent.mohay
unless this is exactly the desired good practice one should follow
Has joined the channel.
Hi, we're having issues removing validators from our Besu network.
We have one party in the network running one validator and two edge nodes. When party two joins the network, also with one validator and two edge nodes, we call `ibft_proposeValidatorVote` (with parameter true) on the first validator node, which successfully makes the new node an actual validator.
However, when party two wants to leave the network and we do the exact reverse, things seem to go wrong.
We call `ibft_proposeValidatorVote` (with paramater false this time) on the first validator, but as soon as the nodes of party two go offline, the network seems to stop mining.
Not sure what's happening here, or if we're missing a step in the process? Please let me know if you need more info.
Could it be because the nodes are removed before the next block was mined in which they are no longer validators?
That is not true at all. @bmg Your contribution is very valuable.
Has joined the channel.
Hi. all. I've question.
"https://besu.hyperledger.org/en/stable/Concepts/Privacy/Onchain-PrivacyGroups/"
>> Onchain privacy groups are not supported with multi-tenancy.
Is it because the function has not been developed yet? Or is it not possible to develop in the future because the concept is different?
Hi Benjamin, Onchain privacy groups are a new feature that is not production ready yet. One of the limitations of this new feature is that it is not supported with multi-tenancy. The work to support onchain privacy with multi-tenancy is in our backlog.
Hey @whatasillyworld, When voting a validator in/out, you need to have >50% voting in the same direction - thus, in a validator-pool of 2, you must get both nodes to vote one validator out (yes, you can vote yourself out).
This may not be ideal - however, for a production system to be byzantine fault tolerant, you need at least 4 validators; so we're dealing with a bit of a corner case here.
Sorry if it's caused heart-ache, and praying it hasn't cost you too much time.
Hey @krzyhoo, _personally_ I'd probably not expose my validator RPC port to the world. I would suggest you may be able to use the Besu RPC permissioning (https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/) to only allow access to the IBFT RPC API group to a select set of logins ... however, I haven't used Metamask <-> PermissionedBesu, so can't comment as to how/if that may operate.
Hey @krzyhoo, _personally_ I'd probably not expose my validator RPC port to the world. I would suggest you may be able to use the "Besu RPC Authentication and Authorisation" (https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/) to only allow access to the IBFT RPC API group to a select set of logins ... however, I haven't used Metamask <-> PermissionedBesu, so can't comment as to how/if that may operate.
Hi @trent.mohay, that absolutely makes sense! It also works for our use case, so we'll try that approach. Thanks for the tip!
We re working on it and targeting to release this on our 1.5 release (June).
@krzyhoo using JSON RPC Authentication and Authorization with Metamask is not supported.
Thanks @trent.mohay
@madelinemurray - after brief discussions here I would opt for a solution where validators are used only to - you know, perform validations and would not serve es entry points for _regular_ RPC cala from metamask for example
@madelinemurray - after brief discussions here I would opt for a solution where validators are used only to - you know - perform validations and would not serve es entry points for _regular_ RPC calls from metamask for example
I would have a set of non-validators with exposed RPC ports to network participants
Thanks
Has joined the channel.
Hi, I'm from Hyperledgerlabs Blockchain automation framework (BAF) team, BAF helps in deploying production-ready DLT platforms to cloud infrastructure
and we uses Ansible, Helm, and Kubernetes for it. We support deployment of DLT network such as Hyperledger Fabric, Hyperledger Indy, R3 Corda and Quorum and currently adding support for Hyperledger Besu. We want to get your views and guidance on this. And also if there are any sample helmcharts for deploying to kubernetes.
Hi, I'm from Hyperledgerlabs Blockchain automation framework (BAF) team, BAF helps in deploying production-ready DLT platforms to cloud infrastructure and we uses Ansible, Helm, and Kubernetes for it. We support deployment of DLT network such as Hyperledger Fabric, Hyperledger Indy, R3 Corda and Quorum and currently adding support for Hyperledger Besu. We want to get your views and guidance on this. And also if there are any sample helmcharts for deploying to kubernetes.
Hi all!! I am not finding in the docs about the limit in the size of a smart contract, is there any limit or it only depends on the gas limit of the block? Thanks in advance
Hi all!! I am not finding in the docs about the limit in the size of a smart contract, is there any limit or it only depends on the gas limi
It's a configuration option that can be specified in the genesis file. Default is 24k. Changing it makes the contract incompatible with mainnet, but if private chains are your only target that would be fine. https://github.com/hyperledger/besu/blob/master/config/src/main/resources/dev.json#L12
Has joined the channel.
Has joined the channel.
Hello everyone, I have a couple of nodes with private transactions(executed with version 1.3.x). Because I updated Besu to 1.4.4 I started the migration process (--privacy-enable-database-migration). I started the migration yesterday, now I observe the migration continues but it is repeating the processing. Any idea what is happening?
Have you got any logs you can share? The logs indicate progress - is the migration running all the way through and then repeating?
Hi @suvajit-sarkar please refer here as it contains the samples that you are after: https://github.com/PegaSysEng/besu-kubernetes
Hello everyone! I have a network with 11 nodes and two of them only can see 2 nodes. There are anyone who has the same issue?
Is there a limit to the number of privacy groups that Besu can supported? For example, could it support 5000+ privacy groups?
Now I´m solve my own issue... Both peers aren´t in the white list accounts... Sorry hahaha
Has joined the channel.
Hey guys, do you know if there is a FAQ's forum or something, for Besu? Thanks
We can make one if you think it's valuable. Right now it is just #besu and #besu-contributors
Glad you were able to solve it, and thanks for sharing what the solution was!
It could be an idea :) thanks for the reply
Hi @amealwithbasil ! Virtually, there is no limit in the number of groups that you can have. If it would support 5k groups? I believe it would. We haven't had a specific test around the number of groups.
Keep us posted about how your work is going. We are interested in different use cases to help us improve Besu. Cheers!
Has joined the channel.
Great to know @lucassaldanha! Will keep you updated as we explore this more.
k8s
Hello everyone, I have checked orion documentation and found interesting high availability configuration. Lets assume I configure two orion nodes, in such scenario. Is it possible to use the same orion private keys in both orion nodes?
Hi @eum602 ! You are correct. You should configure both nodes with the same key. I'll check that our documentation makes this clear.
And they should both advertise the load balancer address (not their internal addresses)
excellent @lucassaldanha , thats great!!, I makes orion much more suitable for production.
excellent @lucassaldanha , thats great!!, It makes orion much more suitable for production.
If there's specific questions you'd like answered that aren't answered in the documentation (https://besu.hyperledger.org/en/stable/) or are answered, but you couldn't easily find the answer, we'd love to here what they are.
It's so far been a deliberate choice to update the docs in response to questions rather than create a FAQ but we can reassess that decision.
Hello, I am facing something strange, I am sycing a node, all was working well but now some errors are appearing. The info logs show it gets stuck at some block. Debug logs shows the following: 2020-05-24T03:40:00.717+0000 DEBUG Timed out while waiting for response from peer 0x3632c7f222fcb4af11...
2020-05-24T03:40:00.717+0000 DEBUG Retrying after recoverable failure from peer task CompleteBlocksTask: Timeout after 5000 MILLISECONDS
2020-05-24T03:40:00.853+0000 DEBUG Received Wire PING
2020-05-24T03:40:01.718+0000 DEBUG Unhandled exception in pipeline. Aborting.```
Please can someone give an idea what could be happening?.
```
[ ](https://chat.hyperledger.org/channel/besu?msg=NEG28b8EfxaWDaSsn)
debug_errors.log
This looks to be during a sync, and it looks like some number of the peers don't have the header or body you are requesting to download. It retries only 5 times to prevent us from hammering a peer that doesn't have it. Eventually it tries again after a longer timeout and usually asks another peer for the data.
Yes @shemnon , I am trying to sync, the node was working well, but I decided to re sync again and the error appeared; I have other nodes in the network which are working well.
If the response doesn't come fast enough we also treat it like it is missing. It looks like things recovered w/in 2 minutes.
Currently the node is stuck, any suggest how can I deal with this issue?
Is it always the same peer?
yes, it is the first case in the network.
yes, this is the first case in the network.
hmm... I don't think we have a way to block a peer.
This is very strange the node was sycing from block 0 and suddently it happened.
This is very strange the node was sycing from block 0 and suddenly it happened.
actually we do have a CLI - `--banned-node-ids` - add the node ID and it will not be allowed to connect.
Sorry @shemnon maybe I am not communnicating well my problem. I don't want to ban a node. What I am facing is a strange issue; I have a new node in my network which needs to get in sync with my network. I currently my network have 11 million blocks; for some reason during sycing process the node cannot continue sycing at it is sstuck at aproximately block number 9 million ~ .
If it's the same node failing to help you sync you ban the node on your end until you are synced. Then you un-ban it.
It's curious that none of the other nodes have 9704623. If they won't share that header then you can't full sync.
let me check on other nodes
If I query on other nodes I can find that block.
It's not a situation i've seen. Not sure I can do a decent job supporting this by chat.
yes, I would like to contribute you with other strange problem. If you consider I can have a meeting with you to show you more details about it.
Besu Contributor call in just under 24 hours - https://wiki.hyperledger.org/display/BESU/2020-05-26+Contributor+Call - APAC/AMER times
:besu: Besu v1.4.5 has been released! Get your copy here: https://bintray.com/hyperledger-org/besu-repo/besu/1.4.5#files :besu:
Changelog details available at: https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#145
To ensure stability of Besu, this release was delayed due to further extensive testing where we successfuly fastsyned Besu to Ethereum Mainnet and Ropsten networks.
:besu: Besu v1.4.5 has been released! Get your copy here: https://bintray.com/hyperledger-org/besu-repo/besu/1.4.5#files :besu:
Changelog details available at: https://github.com/hyperledger/besu/blob/master/CHANGELOG.md#145
To ensure stability of Besu, this release was delayed due to further extensive testing where we successfuly fastsynced Besu to Ethereum Mainnet and Ropsten networks.
Hey there, I would like to know if it is possible to create blocks on demand, namely, do not produce empty blocks
I am using Clique, but I wouldn't mind to change to another consensus protocol since I am having problems with chain storage... (increases rapidly)
Apart from creating blocks on demand, is there a way to reduce chain storage? maybe with sync or pruning options?
Has joined the channel.
For the moment we use ethereumj to unit test our smart contract using org.ethereum.util.blockchain.StandaloneBlockchain.
Since ethereumj is EOL, we are looking for an alternative. Does Besu has something similar?
Web3J uses Besu under the covers to do smart contract debugging and their embedded evm - https://docs.web3j.io/embedded_ethereum/ - That may be what you need.
@mikiasa
None of IBFT1/2, EThash, and Clique have support for suppressing block production. I believe that Aura has support, but that is not currently on our roadmap.
We do have tree pruning as an option, https://besu.hyperledger.org/en/stable/Concepts/Pruning/ - but prior to 1.4.5 there was a bug in duplicate contract storage. We are waiting for longer burn-in tests before we mark that bug as resolved.
@shemnon I could avoid the issue by totally copying another node's database into the node with issues. Then I restarted and now it is working. I know it is not the best approach but maybe it could help someone else.
Yes, that is also good practice for keeping a node backup.
Hello, please can someone tell me how can I avoid private database migration?, I am upgrading to 1.4.x but now a database migration seems to be a must. I tried to make the migration process but it didn't succeed; now I would like to know if there is a way to avoid that process even when it could imply losing my private transactions.
Hi! On a previous thread, we have asked your for some more info to help chase this migration issue.
Another alternative is deleting the node database before upgrading, and after the upgrade letting the node synchronise with the network again.
If you want help with the migration, please send us the logs and versions that you are using so we can try to understand why migration isn't working for you.
If you want help with the migration, please send us the logs and versions (besu and orion) that you are using so we can try to understand why migration isn't working for you
thanks @lucassaldanha @madelinemurray , I followed both approaches:
Let me recreate the environment:
* Orion 1.4.0 ; Besu 1.3.3
* Orion using the built-in database.
Steps:
First approach:
* I updated from orion 1.4.0 ==> 1.5.2
* besu 1.3.3 ==> 1.4.4
* restarted the nodes indicating --privacy-enable-database-migration
* The process started and after ~24 hours the node self restarted again and repeating all the process again.
* I decided to abort that approach.
I didn't delete nothing. I don know why this apporach didn't succeed.
thanks @lucassaldanha @madelinemurray , I followed the these steps:
Let me recreate the environment:
* Orion 1.4.0 ; Besu 1.3.3
* Orion using the built-in database.
Steps:
First approach:
* I updated from orion 1.4.0 ==> 1.5.2
* besu 1.3.3 ==> 1.4.4
* restarted the nodes indicating --privacy-enable-database-migration
* The process started and after ~24 hours the node self restarted again and repeating all the process again.
* I decided to abort that approach.
I didn't delete nothing. I don know why this apporach didn't succeed.
It would help if you could share the logs from Besu and Orion.
To help us understand what could've gone wrong
Let me share a fragment of debug logs:
migration.log
Thanks. We're looking into this and the logs will be helpful.
To avoid the migration, you can resync. Resyncing is the option Lucas suggested above:
> Another alternative is deleting the
> node database before upgrading,
> and after the upgrade letting the
> node synchronise with the network
> again.
If you're upgrading from 1.3.3 and need your private transaction execution data, it will be necessary to resync:
https://wiki.hyperledger.org/display/BESU/Critical+Issue+for+Privacy+Users
Hi @mikiasda . There is curretly no support for something like this. Its something we are currently investigating to see if there are acceptable ways to approach this problem to create blocks only when required in an IBFT2.0 network. Can you share more about the particular usecase that is being problematic with the empty block generation?
Hi @mikiasda . There is currently no support for something like this. Its something we are currently investigating to see if there are acceptable ways to approach this problem to create blocks only when required in an IBFT2.0 network. Can you share more about the particular usecase that is being problematic with the empty block generation?
@shemnon thanks for the link to embedded_ethereum.
alethio
Hi everyone, is there any way to implement timers that triggers transactions with BESU (ex : to trigger a funds transfer at a specific date) ? Or are we obliged to manage this off-chain ? Thanks a lot :)
Has joined the channel.
The trick is to get the pulse that will fire off the event. There is no mechanism currently to do that without processing a transaction. So the closest you could do is a smart contract that has logic where it stops the contract unless the blockchain timestamp is greater than the desired time, and fire TXes at it after that time.
The risk is that the timestamp can drift and the time may not be accurate, there is no requirement that blocks get a NTP signed packet or anything like that. Although they are mostly accurate as clients tend not to propagate blocks too far in the future.
The second risk is that if blocks are too full getting that trigger tx executed may be delayed or expensive.
If you are talking about a trigger hours or days or more away and being off by minutes to an hour late for the actual execution is acceptable then it can be done.
thanks a lot @shen
thanks a lot @shemnon
hey all, I have a question
so we have a proof of concept for Keccak256 mining on Besu on a private network here: https://github.com/whiteblock/besu/commit/c431e613fa200c2b0cfe8505995a59b5a4dfd6dd
based on this branch, what is needed in order for us to submit a PR for it to Hyperledger Besu?
to test the mining, here's a container https://github.com/whiteblock/keccak-besu-testnet/
If you could rebase the commits to a handful of commits on top of current master that would be the first place to start.
As long as it is a feature that can be ignored by chains that don't care the real question is how well do the unit and acceptance tests exercise what is present.
And as long as it "feels like" the other features.
There may be other PRs worth following up with, but those depend on ecosystem support. Namely stratum support and a native keccak library for CPU mining.
But that also depends on how far this goes with ETC.
Has joined the channel.
thanks @shemnon i missed this. I was wondering if there was any PR that are a good reference for unit tests we can model on mining on Besu. That way we can apply any of the unit tests of Besu for Keccak256 mining. It's a feature that can be ignored by chains. Currently it's only to run in a private network while still being there.
I'm not familiar with Stratum, are there any links you can refer me to? For native library for keccak for cpu mining, i can look at any differences between both implementations.
Currently there's no plan for it being adopted in ETC as it's an ECIP in the draft stage, which is why we preferred to build a proof of concept on a private network to look at keccak256 mining more. I wanted to move it from Proof of Concept and contribute it back to Hyperledger Besu since I felt it was an important feature that the client can benefit from for all EVM networks.
thanks @shemnon i missed this. I was wondering if there was any PR that are a good reference for unit tests we can model on mining on Besu. That way we can apply any of the unit tests of Besu for Keccak256 mining. It's a feature that can be ignored by chains. Currently it's only to run in a private network.
I'm not familiar with Stratum, are there any links you can refer me to? For native library for keccak for cpu mining, i can look at any differences between both implementations.
Currently there's no plan for it being adopted in ETC as it's an ECIP in the draft stage, which is why we preferred to build a proof of concept on a private network to look at keccak256 mining more. I wanted to move it from Proof of Concept and contribute it back to Hyperledger Besu since I felt it was an important feature that the client can benefit from for all EVM networks.
thanks @shemnon i missed this. I was wondering if there was any PR that are a good reference for unit tests we can model on mining on Besu. That way we can apply any of the unit tests of Besu for Keccak256 mining. It's a feature that can be ignored by chains. Currently it's only to run in a private network.
I'm not familiar with Stratum, are there any links you can refer me to? For native library for keccak for cpu mining, i can look at any differences between both implementations in terms of library choice.
Currently there's no plan for it being adopted in ETC as it's an ECIP in the draft stage, which is why we preferred to build a proof of concept on a private network to look at keccak256 mining more. I wanted to move it from Proof of Concept and contribute it back to Hyperledger Besu since I felt it was an important feature that the client can benefit from for all EVM networks.
this is some contributor heavy stuff, I'll answer in #besu-contributors
@shemnon I see problem again in another node. After checking the logs I observe that the node is requesting to disconnect "Node is not permitted to connect. Disconnect incoming connection: ...". So it disconnects from all peers then it retries again and the cycle of failing gets repeated. The version of besu I am using is 1.4.4
Has joined the channel.
Hi everyone, this is my besu-box https://github.com/illuzzig/besu-box/ hope you will enjoy my integration with truffl and nestjs for RESTful API
Hi everyone, this is my besu-box https://github.com/illuzzig/besu-box/ hope you will enjoy my integration with truffle and nestjs for RESTful API
currently this box in not listed on truffle website and I hope it will be approved
currently this box in not listed on truffle website and I hope it will be approved. Just clone my repo and start building on top
Has joined the channel.
HI , I am trying to develop a decentralized application using Besu network (ibft2) ... i am trying to interact with my contracts via a node script but eth.send doesn't work .. can someone please help me with that ??
i am just want to insert some information about my user which is defined in the smart contract .. so how can i send this informations to the contract ??
hi @oussamachaabouni Besu doesn't support accounts management on purpose for security reasons. You can't make it sign your transaction.
As explained in https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/ you will need to either sign the transaction yourself, or use a library like Web3.js to do it or send your transaction data to a signing proxy. See also this doc pages https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Transactions/#transactions and https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_sendrawtransaction
actually i am using the web3.js library .. usink the send method but it doesn t work
Hi! Using web3js sendTransaction method won't work because it depends on having access to a wallet that will do the tx signing on your behalf. You have two options:
1. Use web3js sendSignedTransaction method (https://web3js.readthedocs.io/en/v1.2.0/web3-eth.html#sendsignedtransaction)
2. Use EthSigner to sign your transactions (then you can configure your we3js provider to EthSigner) - https://docs.ethsigner.pegasys.tech/en/stable/Tutorials/Start-EthSigner/
you can find an example of smart contract interaction here https://github.com/illuzzig/besu-box/blob/master/client_script/signTransaction.js
it was quite difficult to follow the doc. And I only use web3 to sign raw transaction (not ethsigner)
Has left the channel.
yeah thank for this work that help ... actually i have a question , my contract methods have 5 parameters, so my question is that how can define in them in your example ?
```
const from = address[0];
const to = address[1]
const amount = 10;
const rawTrans = await getContract().methods.sendCoin(to, amount);
const first_param = 15 //uint in solidity
const to = 'receiver'
```
```
const from = address[0];
const to = address[1]
const amount = 10;
const rawTrans = await getContract().methods.sendCoin(to, amount);
```
```
// transfer.js file
const from = address[0];
const to = address[1]
const amount = 10;
const rawTrans = await getContract().methods.sendCoin(to, amount);
```
you can create another file in the client_script folder and call your method like sendCoin in my example
you can create another file in the client_script folder and call your method like sendCoin in my example. sendCoin has 2 params (address - js string - and amount - int value)
finally you need to call sendSignTransaction method, which accept rawtrans, from, to and amount. I pass 'to' and 'amount' only for web service request logging..
finally you need to call sendSignTransaction method, which accept rawtrans, from, to and amount. I pass 'to' and 'amount' only for web service request logging.. i want to keep track the arguments that you pass in the client script to the method..
you just need this
```
const signed = await web3.eth.accounts.signTransaction(
{
to: metaCoinAddress,
from: from,
value: "0",
data: rawTrans.encodeABI(),
gasPrice: web3.eth.getGasPrice(), //web3.utils.toWei("20", "gwei"),
gas: Math.round((await rawTrans.estimateGas({ from })) * 1.5),
nonce: web3.utils.toHex(
await web3.eth.getTransactionCount(from, "pending")
),
},
privateKeys[0]
);
```
```
// and cal this method. you can find this in the service of my rest api
await web3.eth.sendSignedTransaction(signed ).on('receipt', receipt => {
const { transactionHash, status, to, blockNumber } = receipt;
resp = {
transactionHash: transactionHash,
status: status,
to: to,
blockNumber: blockNumber
}
});
```
```
// and call this method. you can find this in the service of my rest api
await web3.eth.sendSignedTransaction(signed ).on('receipt', receipt => {
const { transactionHash, status, to, blockNumber } = receipt;
resp = {
transactionHash: transactionHash,
status: status,
to: to,
blockNumber: blockNumber
}
});
```
oohhh thank you , that really help me so much
check out my repo. I splitted the logic in more functions
hope it will be clearer
currently my besu-box is not listed on truffle website. hope it will help more poeple and start building on top of it
Hello, after some changes ; the script is working but it return always 'Returned error: Internal error'
in the nestjs web service console, what is the error ?
i didn't use it , I am just want to have the result in my console , ( i will install it and try it )
Nothing there
check out my code. i sliptted the login
check out my code. i sliptted the logic
now you can use a single script to direct access to the node
without rest api
yeah i m trying to execute my code without rest api
i understood your code there
Has joined the channel.
Hi guys! I have a question regarding Besu/Orion that I hope this is the right place to ask. Does each tenant (in multi-tenancy) and Orion node get a different Ethereum/Besu address or they all use the same? thanks a lot!
Hi,
The identity for a member isn't defined by an Ethereum address. It is defined by the Orion public key. When you send a private transaction, you don't use the account to define what nodes should receive the tx, you use the Orion public key.
In the same way that on the public world state, every single Ethereum account exists, think about each privacy group as a complete independent instance of the world state, in each one of these instances, all Ethereum account exists (but they don't share anything with the other instances of the world state).
Cool thanks :) Now, do the tenants of a Besu/Orion operator use the same Orion public key for private transactions? Or they can different ones?
Hi guys!! I have a question about pruning in private chains. Is it enabled by default? What are the benefits in archive in private (is really needed)?
Error: Transaction was not mined within 750 seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!
at Object.TransactionError (/home/thinkpad/IBFT-Network/Application/node_modules/web3-core-helpers/src/errors.js:63:21)
at /home/thinkpad/IBFT-Network/Application/node_modules/web3-core-method/src/index.js:485:40
at runMicrotasks (
Hello after some changes , i get that error
can u please help me to solve it if you have any idea ??
Error: Transaction was not mined within 750 seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!
at Object.TransactionError (/home/thinkpad/IBFT-Network/Application/node_modules/web3-core-helpers/src/errors.js:63:21)
at /home/thinkpad/IBFT-Network/Application/node_modules/web3-core-method/src/index.js:485:40
at runMicrotasks (
Hi guys, what APIs do you recommend for integrating a Java application with Besu? thanks in advance
Do I actually need them? Or is it already integrated in Besu software?
Do I actually need them? Or it is already integrated in Besu software?
:besu: *Release Information* :besu:
As most of you know, the 1.5 release of Besu is just around the corner, so I wanted to reiterate the release schedule we have planned:
- *June 17 (AMER)/ 18 (AUS): Besu 1.5 RC*
- *July 14 (AMER) /15 (AUS): Besu 1.5 Release*
We'll have a 4 week RC cycle to allow for ample testing, bug fixes and complete mainnet fast syncs.
Just to clarify. Is your question about using prunning with private transactions or in a private network (e.g. a consortium)?
I'd recommend using web3j https://github.com/web3j/web3j
Each tenant should have their own Orion public key.
We have an example in how to setup a multi-tenant node here: https://besu.hyperledger.org/en/latest/Tutorials/Privacy/Configuring-Multi-Tenancy/
Let me know if it helps
Has joined the channel.
Hi guys, not sure if there is a besu-specific channel but, any reason why there is not a method like this one:
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#priv_findprivacygroup
But using the privacy group id to find the group instead of the participants?
Otherwise, is there some way to know the participants a privacy group has knowing the group ID?
Thanks!
Hi guys,
any reason why there is not a method like this one:
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#priv_findprivacygroup
But using the privacy group id to find the group instead of the participants?
Otherwise, is there some way to know the participants a privacy group has knowing the group ID?
Thanks!
Has joined the channel.
Hi,
The peer discovery service uses UDP protocol as mentioned here https://github.com/PegaSysEng/besu-kubernetes/blob/master/helmfile/ibft2/charts/besu-node/templates/node-service.yaml
We use ambassador in BAF (blockchain automation framework) for proxy which doesn't support UDP protocol. Is there a support for TCP protocol for the same or any other alternatives?
Hi everyone, is there any study or tests giving some metrics around BESU performance in terms of TPS ? I'd also to ask if anyone has already produced a storage capacity planning Template for BESU in order to determine storage requirements over the time ? Thanks 🙂
Hi @joshuafernandes @ppoliani, I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
hello , i am trying to generate an erc721 token but i got this error : Transaction has been reverted by the EVM . how can i solve this prob ? thanks :)
I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM as a bridge. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
I forked repo, and I created a new kubectl Ibft2 path `https://github.com/arunog/besu-kubernetes/tree/master/kubectl/ibft2-test` There are detailed all steps to reproduce it, and include all config files.
Both K8s clusters are AKS, and the nodes are exposed through Loadbalancers services. I'm using hyperledger/besu:latest image.
Another important point is that when the network starts, an error appears starting KubernetesNatManager:
`2020-05-21 15:22:22.377+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-05-21 15:22:22.381+00:00 | main | DEBUG | KubernetesNatManager | Trying to update information using Kubernetes client SDK.
2020-05-21 15:22:23.587+00:00 | main | DEBUG | NatService | Caught exception while trying to start the manager or service.
org.hyperledger.besu.nat.core.exception.NatInitializationException: Failed update information using Kubernetes client SDK.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:85) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:90) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Runner.start(Runner.java:105) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1920) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1188) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1060) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1184) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1044) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.5.jar:1.4.5]
Caused by: io.kubernetes.client.ApiException: Forbidden
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespacesWithHttpInfo(CoreV1Api.java:19746) ~[client-java-api-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespaces(CoreV1Api.java:19724) ~[client-java-api-5.0.0.jar:?]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:76) ~[besu-nat-1.4.5.jar:1.4.5]
... 19 more
2020-05-21 15:22:23.588+00:00 | main | WARN | NatService | Unable to use NAT. Disabling NAT manager
2020-05-21 15:22:23.589+00:00 | main | INFO | NetworkRunner | Starting Network.
`
I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM as a bridge. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
I forked repo, and I created a new kubectl Ibft2 path `https://github.com/arunog/besu-kubernetes/tree/master/kubectl/ibft2-test` There are detailed all steps to reproduce it, and include all config files.
Both K8s clusters are AKS, and the nodes are exposed through Loadbalancers services. I'm using hyperledger/besu:latest image.
Another important point is that when the network starts, an error appears starting KubernetesNatManager:
`2020-05-21 15:22:22.377+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-05-21 15:22:22.381+00:00 | main | DEBUG | KubernetesNatManager | Trying to update information using Kubernetes client SDK.
2020-05-21 15:22:23.587+00:00 | main | DEBUG | NatService | Caught exception while trying to start the manager or service.
org.hyperledger.besu.nat.core.exception.NatInitializationException: Failed update information using Kubernetes client SDK.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:85) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:90) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Runner.start(Runner.java:105) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1920) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1188) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1060) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1184) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1044) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.5.jar:1.4.5]
Caused by: io.kubernetes.client.ApiException: Forbidden
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespacesWithHttpInfo(CoreV1Api.java:19746) ~[client-java-api-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespaces(CoreV1Api.java:19724) ~[client-java-api-5.0.0.jar:?]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:76) ~[besu-nat-1.4.5.jar:1.4.5]
... 19 more
2020-05-21 15:22:23.588+00:00 | main | WARN | NatService | Unable to use NAT. Disabling NAT manager
2020-05-21 15:22:23.589+00:00 | main | INFO | NetworkRunner | Starting Network.`
I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM as a bridge. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
I forked repo, and I created a new kubectl Ibft2 path `https://github.com/arunog/besu-kubernetes/tree/master/kubectl/ibft2-test` There are detailed all steps to reproduce it, and include all config files.
Both K8s clusters are AKS, and the nodes are exposed through Loadbalancers services. I'm using hyperledger/besu:latest image.
Another important point is that when the network starts, an error appears starting KubernetesNatManager:
```
`2020-05-21 15:22:22.377+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-05-21 15:22:22.381+00:00 | main | DEBUG | KubernetesNatManager | Trying to update information using Kubernetes client SDK.
2020-05-21 15:22:23.587+00:00 | main | DEBUG | NatService | Caught exception while trying to start the manager or service.
org.hyperledger.besu.nat.core.exception.NatInitializationException: Failed update information using Kubernetes client SDK.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:85) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:90) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Runner.start(Runner.java:105) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1920) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1188) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1060) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1184) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1044) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.5.jar:1.4.5]
Caused by: io.kubernetes.client.ApiException: Forbidden
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespacesWithHttpInfo(CoreV1Api.java:19746) ~[client-java-api-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespaces(CoreV1Api.java:19724) ~[client-java-api-5.0.0.jar:?]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:76) ~[besu-nat-1.4.5.jar:1.4.5]
... 19 more
2020-05-21 15:22:23.588+00:00 | main | WARN | NatService | Unable to use NAT. Disabling NAT manager
2020-05-21 15:22:23.589+00:00 | main | INFO | NetworkRunner | Starting Network.`
```
I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM as a bridge. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
I forked repo, and I created a new kubectl Ibft2 path `https://github.com/arunog/besu-kubernetes/tree/master/kubectl/ibft2-test` There are detailed all steps to reproduce it, and include all config files.
Both K8s clusters are AKS, and the nodes are exposed through Loadbalancers services. I'm using hyperledger/besu:latest image.
Another important point is that when the network starts, an error appears starting KubernetesNatManager:
```
2020-05-21 15:22:22.377+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-05-21 15:22:22.381+00:00 | main | DEBUG | KubernetesNatManager | Trying to update information using Kubernetes client SDK.
2020-05-21 15:22:23.587+00:00 | main | DEBUG | NatService | Caught exception while trying to start the manager or service.
org.hyperledger.besu.nat.core.exception.NatInitializationException: Failed update information using Kubernetes client SDK.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:85) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:90) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Runner.start(Runner.java:105) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1920) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1188) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1060) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1184) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1044) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.5.jar:1.4.5]
Caused by: io.kubernetes.client.ApiException: Forbidden
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespacesWithHttpInfo(CoreV1Api.java:19746) ~[client-java-api-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespaces(CoreV1Api.java:19724) ~[client-java-api-5.0.0.jar:?]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:76) ~[besu-nat-1.4.5.jar:1.4.5]
... 19 more
2020-05-21 15:22:23.588+00:00 | main | WARN | NatService | Unable to use NAT. Disabling NAT manager
2020-05-21 15:22:23.589+00:00 | main | INFO | NetworkRunner | Starting Network.
```
Hi @joshuafernandes @ppoliani , I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM as a bridge. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
I forked repo, and I created a new kubectl Ibft2 path `https://github.com/arunog/besu-kubernetes/tree/master/kubectl/ibft2-test` There are detailed all steps to reproduce it, and include all config files.
Both K8s clusters are AKS, and the nodes are exposed through Loadbalancers services. I'm using hyperledger/besu:latest image.
Another important point is that when the network starts, an error appears starting KubernetesNatManager:
```
2020-05-21 15:22:22.377+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-05-21 15:22:22.381+00:00 | main | DEBUG | KubernetesNatManager | Trying to update information using Kubernetes client SDK.
2020-05-21 15:22:23.587+00:00 | main | DEBUG | NatService | Caught exception while trying to start the manager or service.
org.hyperledger.besu.nat.core.exception.NatInitializationException: Failed update information using Kubernetes client SDK.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:85) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:90) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Runner.start(Runner.java:105) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1920) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1188) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1060) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1184) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1044) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.5.jar:1.4.5]
Caused by: io.kubernetes.client.ApiException: Forbidden
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespacesWithHttpInfo(CoreV1Api.java:19746) ~[client-java-api-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespaces(CoreV1Api.java:19724) ~[client-java-api-5.0.0.jar:?]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:76) ~[besu-nat-1.4.5.jar:1.4.5]
... 19 more
2020-05-21 15:22:23.588+00:00 | main | WARN | NatService | Unable to use NAT. Disabling NAT manager
2020-05-21 15:22:23.589+00:00 | main | INFO | NetworkRunner | Starting Network.
```
Hi @joshuafernandes @ppoliani , I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM as a bridge. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
I forked repo, and I created a new kubectl Ibft2 path `https://github.com/arunog/besu-kubernetes/tree/master/kubectl/ibft2-test` There are detailed all steps to reproduce it, and include all config files.
Both K8s clusters are AKS, and the nodes are exposed through Loadbalancers services. I'm using hyperledger/besu:latest image and nat-method="KUBERNETES"
Another important point is that when the network starts, an error appears starting KubernetesNatManager:
```
2020-05-21 15:22:22.377+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-05-21 15:22:22.381+00:00 | main | DEBUG | KubernetesNatManager | Trying to update information using Kubernetes client SDK.
2020-05-21 15:22:23.587+00:00 | main | DEBUG | NatService | Caught exception while trying to start the manager or service.
org.hyperledger.besu.nat.core.exception.NatInitializationException: Failed update information using Kubernetes client SDK.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:85) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:90) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Runner.start(Runner.java:105) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1920) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1188) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1060) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1184) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1044) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.5.jar:1.4.5]
Caused by: io.kubernetes.client.ApiException: Forbidden
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespacesWithHttpInfo(CoreV1Api.java:19746) ~[client-java-api-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespaces(CoreV1Api.java:19724) ~[client-java-api-5.0.0.jar:?]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:76) ~[besu-nat-1.4.5.jar:1.4.5]
... 19 more
2020-05-21 15:22:23.588+00:00 | main | WARN | NatService | Unable to use NAT. Disabling NAT manager
2020-05-21 15:22:23.589+00:00 | main | INFO | NetworkRunner | Starting Network.
```
Hi @joshuafernandes @ppoliani , I'm still having trouble connecting nodes in two k8s clusters. I've only managed to connect them using a Docker node created on another VM as a bridge. I attached image explaining the diagram. `https://github.com/arunog/besu-kubernetes/blob/master/kubectl/ibft2-test/Multi-cluster.jpg`
I forked repo, and I created a new kubectl Ibft2 path `https://github.com/arunog/besu-kubernetes/tree/master/kubectl/ibft2-test` There are detailed all steps to reproduce it, and include all config files.
Both K8s clusters are AKS, and the nodes are exposed through Loadbalancers services. I'm using `hyperledger/besu:latest` image and `nat-method="KUBERNETES"`
Another important point is that when the network starts, an error appears starting KubernetesNatManager:
```
2020-05-21 15:22:22.377+00:00 | main | INFO | KubernetesNatManager | Starting kubernetes NAT manager.
2020-05-21 15:22:22.381+00:00 | main | DEBUG | KubernetesNatManager | Trying to update information using Kubernetes client SDK.
2020-05-21 15:22:23.587+00:00 | main | DEBUG | NatService | Caught exception while trying to start the manager or service.
org.hyperledger.besu.nat.core.exception.NatInitializationException: Failed update information using Kubernetes client SDK.
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:85) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.core.AbstractNatManager.start(AbstractNatManager.java:90) ~[besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.nat.NatService.start(NatService.java:88) [besu-nat-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Runner.start(Runner.java:105) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:1920) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1188) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1060) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine.executeUserObject(CommandLine.java:1769) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.access$900(CommandLine.java:145) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2141) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$RunLast.handle(CommandLine.java:2108) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31) [besu-1.4.5.jar:1.4.5]
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1968) [picocli-4.1.4.jar:4.1.4]
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2322) [picocli-4.1.4.jar:4.1.4]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1184) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1044) [besu-1.4.5.jar:1.4.5]
at org.hyperledger.besu.Besu.main(Besu.java:49) [besu-1.4.5.jar:1.4.5]
Caused by: io.kubernetes.client.ApiException: Forbidden
at io.kubernetes.client.ApiClient.handleResponse(ApiClient.java:886) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.ApiClient.execute(ApiClient.java:802) ~[client-java-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespacesWithHttpInfo(CoreV1Api.java:19746) ~[client-java-api-5.0.0.jar:?]
at io.kubernetes.client.apis.CoreV1Api.listServiceForAllNamespaces(CoreV1Api.java:19724) ~[client-java-api-5.0.0.jar:?]
at org.hyperledger.besu.nat.kubernetes.KubernetesNatManager.doStart(KubernetesNatManager.java:76) ~[besu-nat-1.4.5.jar:1.4.5]
... 19 more
2020-05-21 15:22:23.588+00:00 | main | WARN | NatService | Unable to use NAT. Disabling NAT manager
2020-05-21 15:22:23.589+00:00 | main | INFO | NetworkRunner | Starting Network.
```
Besu contributor call tomorrow at 1500 UTC (EMEA/AMER friendly times) - https://wiki.hyperledger.org/display/BESU/2020-06-09+Besu+Contributor+Call+Agenda
Yes it helps a lot thanks! :)
Hello @arunog From your diagram they are all on seperate VNets? And the docker one connects fine to the Bootnode? Its just the second cluster that isnt joining?
@matkt is our expert on the Nat manager - any idea whats happening here?
it's necessary to give permissions to besu so that it can retrieve the list of services via the Kubernetes API https://kubernetes.io/docs/reference/access-authn-authz/rbac/
A simple solution is to call this command.
kubectl create clusterrolebinding myapp-view-binding --clusterrole=admin --serviceaccount=default:default
But this command should only be used in DEV and not in production. In production we need a finer management of permissions using Kubernetes Role-based access control
this will allow you to retrieve the IP/Port automatically via the Kubernetes API. If the automatic detection fails this goes into none mode and Besu will take the default IP / Port or the one passed via the CLI (p2p-host, ..)
Besu will try to find a loadbalancer in order to retrieve the IP
A sample of service :
--- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/name: besu app.kubernetes.io/release: "1.0.0" name: besu spec: ports: - name: "json-rpc" port: 8545 targetPort: 8545 - name: "rlpx" port: 30303 targetPort: 30303 selector: app.kubernetes.io/name: besu app.kubernetes.io/release: "1.0.0" type: LoadBalancer
You can check the service thanks to this command
kubectl describe services besu
Name: besu Namespace: default Labels: app.kubernetes.io/name=besu app.kubernetes.io/release=1.0.0 Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"besu","app.kubernetes.io/release":"1.... Selector: app.kubernetes.io/name=besu,app.kubernetes.io/release=1.0.0 Type: LoadBalancer IP: -------- LoadBalancer Ingress: ***
A sample of service :
--- apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
name: besu
spec:
ports:
- name: "json-rpc"
port: 8545
targetPort: 8545
- name: "rlpx"
port: 30303
targetPort: 30303
selector:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
type: LoadBalancer
You can check the service thanks to this command
kubectl describe services besu
Name: besu Namespace: default Labels: app.kubernetes.io/name=besu app.kubernetes.io/release=1.0.0 Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"besu","app.kubernetes.io/release":"1.... Selector: app.kubernetes.io/name=besu,app.kubernetes.io/release=1.0.0 Type: LoadBalancer IP: -------- LoadBalancer Ingress: ***
A sample of service :
--- apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
name: besu
spec:
ports:
- name: "json-rpc"
port: 8545
targetPort: 8545
- name: "rlpx"
port: 30303
targetPort: 30303
selector:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
type: LoadBalancer
You can check the service thanks to this command
kubectl describe services besu
`Name: besu Namespace: default Labels: app.kubernetes.io/name=besu app.kubernetes.io/release=1.0.0 Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"besu","app.kubernetes.io/release":"1.... Selector: app.kubernetes.io/name=besu,app.kubernetes.io/release=1.0.0 Type: LoadBalancer IP: -------- LoadBalancer Ingress: ***
A sample of service :
`--- apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
name: besu
spec:
ports:
- name: "json-rpc"
port: 8545
targetPort: 8545
- name: "rlpx"
port: 30303
targetPort: 30303
selector:
app.kubernetes.io/name: besu
app.kubernetes.io/release: "1.0.0"
type: LoadBalancer
`
You can check the service thanks to this command
kubectl describe services besu
`Name: besu Namespace: default Labels: app.kubernetes.io/name=besu app.kubernetes.io/release=1.0.0 Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"app.kubernetes.io/name":"besu","app.kubernetes.io/release":"1.... Selector: app.kubernetes.io/name=besu,app.kubernetes.io/release=1.0.0 Type: LoadBalancer IP: -------- LoadBalancer Ingress: ***
you can look at the description of this PR which explains how to create a service that allows Besu to retrieve the necessary information
https://github.com/hyperledger/besu/pull/731
Hello everyone, I've been doing some benchmarking between 1.4.1 and 1.4.4. by performing searching events from block zero to the latest (~12000000) . What I see is that besu 1.4.1 is by far faster returning the found logs; nevertheless something happens from 11000000 and besu 1.4.4 overcomes 1.4.1. Please can someone try to help me why it could be happening?
Hello everyone, I've been doing some benchmarking between 1.4.1 and 1.4.4. by performing searching events from block zero to the latest (~12000000) . What I see is that besu 1.4.1 is by far faster returning the found logs; nevertheless something happens from 11000000 and besu 1.4.4 overcomes 1.4.1. Please can someone try to help me why it could be happening? Let me share a graphic that illustrates what I explained:
Hello everyone, I've been doing some benchmarking between 1.4.1 and 1.4.4. by performing searching events from block zero to the latest (~12000000) . What I see is that besu 1.4.1 is by far faster returning the found logs; nevertheless something happens from 11000000 and besu 1.4.1 takes too long to find blocks and thus is overpassed by 1.4.4. Please can someone try to help me why it could be happening? Let me share a graphic that illustrates what I explained:
comparison1.4.1-vs-1.4.4
Hi! Thanks for bringing our attention to this. It would be really helpful if you could run the same tests for 1.4.2 and 1.4.3 to help us pinpoint what exact version introduced this change.
In the meantime, I'll ask the team if they have a clue on what might be causing this.
Has joined the channel.
Hi every one. I'm a newbie in #Besu.
I like to know the business model Besu follows. How do they think that they can make money by developing a private network mechanism.
Hi everyone, is there any study or tests giving some metrics around BESU performance in terms of TPS ? I'd also to ask if anyone has already produced a storage capacity planning Template for BESU in order to determine storage requirements over the time ? Thanks 🙂
Has joined the channel.
Hi every one, we are having an issue getting all the events emitted by a Solidity Smart Contract, in a private chain which currently have 11856000 blocks.
Our node works with Besu v1.3.6
The problem is that the response time is too long, when we filter fromBlock: “0x0”. I dont know if there is any solution to this or something we can configure on our node.
We try to get these events with the help of web3js (v1.2.1) in a similar way to this:
let contract = web3.eth.Contract(myContract.abi, this.myContractAddressr)
contract.events.myEvent({ fromBlock: 0 }, callback);
https://github.com/TribalyteTechnologies/quorum-websockets-example/blob/master/eventListener.js
This works fine for us to get the events emitted after the subscription, but the previous events (from the block 0) are not listed. On others networks (Quorum, ganache) we get the performance expected, where all the previous events are listed.
We also try to get the expected response from inside the node with:
curl -X POST --data '{"jsonrpc":"2.0","id":5,"method":"eth_getLogs","params":[{"fromBlock":"0x0","topics":["0x187688f6f8bbd0d48b66ed106a5d61d42f9b889d36a5bfe0ecdd056b139ebd8b"],"address":"0x92c1cce3d02fce1b813824f77046d597980285e3"}]}' localhost:4545
But we dont even get a response, with later versions of besu (v1.4.4) we get the expected result after 30 MINUTES.
Similar issues have been reported, the pegasys team raised a ticket and studied it. We want to know if it possible to reduce the response time.
Ticke and investigation:
ticket: https://pegasys1.atlassian.net/browse/PAN-3219
issue: https://jira.hyperledger.org/browse/BESU-64
I think that this might be Related with the previous issue, when we wake like 20 subscriptions to events, all of them from block 0. Our node seems to freeze, it is still syncing , none of the logs show any error or something weird but if we we try to access to any of our contracts we don't get response.
We also try to test it with:
curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' localhost:4545
but the result is the same: no response
The node continues to synchronize blocks, but the rpc and websocket part does not allow any more connections.
@rdemera Can upgrade to at least 1.4.0 ? We introduced automatic logs blooms caching in https://github.com/hyperledger/besu/releases/tag/1.4.0-RC2. The cli option is --auto-logs-bloom-indexing-enabled which defaults to true
Has joined the channel.
Thanks @matkt @joshufern
thanks @matkt @joshuafernandes, I'll check it and I'll tell you something
Hi everyone, is there any study or tests giving some metrics around BESU performance in terms of TPS ? Thanks !
Hi @matkt @joshuafernandes, I've finally managed to connect the nodes in different k8s clusters. Just like you said, it's been necessary to create a service account with a cluster role with permissions to connect to the api. After this, several issues have emerged:
- It only works if service name contains "Besu"
- If there are several services in the same namespace and their name contains "Besu", choose one of them and it isn't always the correct one.
- If the external IP of the service is not assigned when starts the KubernetesNatManager, that is, it's still being created, the nat manager is disabled.
Is there any solution for these issues?? Thanks!!
Hi @matkt @joshuafernandes, I've finally managed to connect the nodes in different k8s clusters. Just like you said, it's been necessary to create a service account with a cluster role with permissions to connect to the api. After this, several issues have emerged:
- It only works if service name contains "Besu"
- If there are several services in the same namespace and their name contains "Besu", choose one of them and it isn't always the correct one.
Is there any solution for these issues?? Thanks!!
Hi
A temporary solution would be to have only one service containing "Besu". I will quickly add a PR to allow configuring the name of the loadbalancer service
Hello.. does Besu support domain names in the enode format? like Quorum does.
Hi everyone, Is their any plan to add Aura PoA consensus algorithm in future Besu release? if yes please share the roadmap. Thanks
Has joined the channel.
So far none of our maintainers has said they are adding aura, so it is not in our roadmap. It's a common request so it would be worth opening an issue in our github issues.
Not at the moment. One of our maintainers posted this: https://github.com/hyperledger/besu/issues/927 so it may end up on our 1.6 roadmap
We are creating part of validator set in one the public permissioned network which is using Parity PoA Aura consensus at the moment. But now Parity is rebranded to Open Ethereum so we want to diversify the blockchain client among Validators. One of the potential client is Nethermind Besu so thought to check with community before I recommend Besu to them. Will open github issues. Thanks
We are part of validator set in one the public permissioned network which is using Parity client and their PoA Aura consensus at the moment. But now Parity is rebranded to Open Ethereum so we want to diversify the blockchain client among Validators. One of the potential client is Nethermind But I have used Besu with IBFT2 so thought to check with community before I recommend Besu to them. Will open github issues. Thanks
IBFT2 is besu only at the moment, The EEA is working on an EBFT which will combine IBFT and IBFT2, but I'm not sure how that is going.
Error: Returned error: Upfront cost exceeds account balance
at Object.ErrorResponse (/home/thinkpad/Bureau/IoT access based on blockchain/Application/node_modules/web3-core-helpers/src/errors.js:29:16)
at /home/thinkpad/Bureau/IoT access based on blockchain/Application/node_modules/web3-core-requestmanager/src/index.js:140:36
at XMLHttpRequest.request.onreadystatechange (/home/thinkpad/Bureau/IoT access based on blockchain/Application/node_modules/web3-providers-http/src/index.js:96:13)
at XMLHttpRequestEventTarget.dispatchEvent (/home/thinkpad/Bureau/IoT access based on blockchain/Application/node_modules/xhr2-cookies/dist/xml-http-request-event-target.js:34:22)
at XMLHttpRequest._setReadyState (/home/thinkpad/Bureau/IoT access based on blockchain/Application/node_modules/xhr2-cookies/dist/xml-http-request.js:208:14)
at XMLHttpRequest._onHttpResponseEnd (/home/thinkpad/Bureau/IoT access based on blockchain/Application/node_modules/xhr2-cookies/dist/xml-http-request.js:318:14)
at IncomingMessage.
Has joined the channel.
i ma trying to send transactions in my network 'besu' but everytime it show me this error
if someone can tell how to solve it ?
in metamask it show me that i have ether in my accounts ( i am using the accounts in the officially doc )
Has joined the channel.
I have two docker containers running besu in the same Linux.
One is a bootnode and the other is a regular node, running IBFT2 in the shared genesis file.
I have tried to run those 2 containers using the docker option --network host, but they are not syncing. What is the problem?
(i have also tried the option --bootnodes with
Never mind, now that worked :)
Are you passing you boonode enode address as CLI option to the second node ? See https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#bootnodes
Yes, i tried this too.
sudo docker run -v /besu4nodes/nodeX/:/tmp --network=host hyperledger/besu:latest --config-file=/tmp/configNode.toml --genesis-file=/tmp/genesis.json --bootnodes="enode://9049da83a9512dda6c96bd65b6322ab3f732ab5c1360b55f4b975ee9cce685b21aeb97a0f21d6b22ece950b9264366389744abbf1025f8cbb75385a3b1e81763@127.0.0.1:30307"
Although they do not sync, the bootnode somehow notice other notice when they come up. The log message "No sync target, waiting for peers: " increments its number in the bootnode as soon as one node comes, but they do not import blocks.
Hi, we are in the Capital Markets SIG eThaler project (currently under Hyperledger labs). We created a token in TTF and are running against a private Besu setup of 1.4.1. We are running a 4 nodes under IBFT 2.0. We notice a large lag in confirmation times. Must be due to something we have misconfigured. Here is a copy of the genesis.json that has been generated
genesis.json
{
"config" : {
"chainId" : 2018,
"constantinoplefixblock" : 0,
"ibft2" : {
"blockperiodseconds" : 2,
"epochlength" : 30000,
"requesttimeoutseconds" : 10
}
},
"nonce" : "0x0",
"timestamp" : "0x58ee40ba",
"gasLimit": "0x1fffffffffffff",
"difficulty" : "0x1",
"mixHash" : "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e636
5",
"coinbase" : "0x0000000000000000000000000000000000000000",
"alloc" : {
"fe3b557e8fb62b89f4916b721be55ceb828dbd73" : {
"privateKey" : "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c6
92be63",
"comment" : "private key and this comment are ignored. In a real chain, t
he private key should NOT be stored",
"balance" : "0xad78ebc5ac6200000"
},
"627306090abaB3A6e1400e9345bC60c78a8BEf57" : {
"privateKey" : "c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f4
4dc0d3",
"comment" : "private key and this comment are ignored. In a real chain, t
he private key should NOT be stored",
"balance" : "90000000000000000000000"
},
"f17f52151EbEF6C7334FAD080c5704D77216b732" : {
"privateKey" : "ae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e97
4d162f",
"comment" : "private key and this comment are ignored. In a real chain, t
he private key should NOT be stored",
"balance" : "90000000000000000000000"
}
},
"extraData" : "0xf87ea00000000000000000000000000000000000000000000000000000000
000000000f85494e749fbf818eb4f0fc0b10908bddee548efd6675c94590ee7c66b589ee221f0a3d
629ec0fc4ff9b4368942781c9f010575b49a4f11fd89e2656066e4b3ee6943bb245ea74406695836
1872d7a73dfd6ae7c617f808400000000c0"
}
@shemnon or anyone else can you take a quick look to see if it is anything obvious.
Any tips to docs that you have that can help us troubleshoot will be helpful
The genesis file is essentially a copy of the file that you have in your tutorial.
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
I don't believe this is down to the network configuration, but more likely how your interacting with the deployed contracts. if your using web3j and a contract wrapper with the default tx manager, then you'll be waiting as the default polling interval is set for mainet (15 seconds). Take a look at web3J transaction managers, and transaction receipt processors (https://web3j.readthedocs.io/en/latest/smart_contracts.html?highlight=transaction%20managers#transaction-managers)
Thanks @magooster
Will check.
Another issue: When running in In truffle develop BC or ganache BC, when we test and generate errors, the error message is properly returned . With Besu it is a generic not-enough gas error message. even though we are running private Besu. @DannoFerrin or @magooster what could be the problem.
The two error messages are shown below, for exactly the same error.
1. Truffle/Ganache
truffle(development)> instance.pause(1)
Uncaught:
Error: Returned error: VM Exception while processing transaction: revert eThaler: token is already paused -- Reason given: eThaler: token is already paused. at PromiEvent (C:\Users\mani\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\contract\lib\promievent.js:9:1)
at TruffleContract.pause (C:\Users\mani\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\contract\lib\execute.js:169:1)
at evalmachine.
With Besu under the same circumstances: We get an out of gas error.
VipinB - Sat Jun 13 2020 20:56:21 GMT-0400 (Eastern Daylight Time).txt
Has joined the channel.
How external nodes join in internal private besu network?
I think it depends on how you setup your private network. If you are following the tutorial on our docs (https://besu.hyperledger.org/en/latest/Tutorials/Private-Network/Create-Private-Network/), to add a new node all you need to do is:
1. Ensure that the new node is using the same genesis file as the other nodes
2. Add at least one of the current nodes in your private network as a bootnode of the new node.
Also user adminPeer API to add the external node to be part of validator in network
Also use adminPeer API to add the external node to be part of validator in network
Thanks Lucas, will check
Has joined the channel.
:besu: Hyperleader Besu 1.4.6 is available now: https://github.com/hyperledger/besu/releases/tag/1.4.6 :besu:
@rohitgupta027 the adminPeer APIs in Besu allow you to request Besu to create a connection to another node (and maintain it until restart). To add/remove validators in an IBFT or Clique network you'll need to use the ibft_proposeValidatorVote or Clique_propose API respectively.
@VipinB I used to be the maintainer of Ganache. The way Ganache works by default is that it runs the transaction immediately when it is submitted, and if the transaction didn't complete successfully (e.g. due to a `REVERT`), instead of returning a transaction hash and having your code fetch a receipt, Ganache just returns the error directly.
This was done to help people debug their smart contract logic, but real clients can't do this, because they have to wait to process the transaction until it has been mined into a block.
Hi @VipinB - I used to be the maintainer of Ganache. The way Ganache works by default is that it runs the transaction immediately when it is submitted, and if the transaction didn't complete successfully (e.g. due to a `REVERT`), instead of returning a transaction hash and having your code fetch a receipt, Ganache just returns the error directly.
This was done to help people debug their smart contract logic, but real clients can't do this, because they have to wait to process the transaction until it has been mined into a block.
If you're running with `ganache-cli` there is a flag to make it behave more like a real client w.r.t. error handling. See the `--noVMErrorsOnRPCResponse` flag here: https://github.com/trufflesuite/ganache-cli
There's also a setting for it in the Ganache UI, but I'm struggling to recall exactly where it was. It's been more than a year since I've looked at it closely
Regarding IBFT 2.0 performance, later versions of Besu make use of some native libraries to speed up common crypto operations. Unfortunately 1.4.2 didn't have that feature yet. I'd try again with 1.4.6.
Regarding IBFT 2.0 performance, later versions of Besu make use of some native libraries to speed up common crypto operations. Unfortunately 1.4.2 didn't have that feature yet. I'd recommend testing again with 1.4.6.
@trent.mohay that's true I have used adminPeer API to connect external node with my besu cluster. But I have had this issue that external node connection breaks after pod restarts(its stateful) so you are suggesting to first use adminPeer API to make connection and use ibft_proposeValidatorVote(in my case) to make external node as validator
@trent.mohay that's true I have used adminPeer API to connect external node with my besu cluster. But I have had this issue that external node connection breaks after pod restarts(its stateful) so you are suggesting to first use adminPeer API to make connection and use ibft_proposeValidatorVote(in my case) to make external node as validator?
Has joined the channel.
Hi, I'm new in Hyperledger besu concepts. What's the difference between besu and burrow? I undestand that both use ethereum.
hello, can I use hl besu client as a public node in conjunction with orion ?
Hi We have just implemented a new experimental CLI option which allows you to change the name of the loadbalancer we want to use. For example you can call Besu with `--Xnat-kube-pod-name = besu-load-balancer` or you can add the environment variable in your besu deployment script. `BESU_XNAT_KUBE_POD_NAME:" besu-load-balancer "`. This functionality will be available in the next 1.5.0-RC but it is already available in the master if you want to test it.
@benjamincburns Thanks. The Transaction will be rejected by the smart contract due to an error. This error has to be bubbled back up to the client when running in besu. The actual solidity code will be
@benjamincburns Thanks. The Transaction will be rejected by the smart contract due to an error. This error has to be bubbled back up to the client when running in besu. The actual solidity code in Besu is:
require( ( isPaused( tokenId ) == false ), "eThaler: Token is paused. Transfer is not permitted" );
I think Besu has a facility for including revert strings in transaction receipts. that string that you've got in your `require` call is a revert string.
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#revert-reason-enabled
@benjamincburns Thanks
We will check this out.
Does this mean that when it is not enabled, it will throw a generic out of gas error
This is all a limitation of the ethereum protocol, though. It was the intent of the people who designed it that the primary output mechansim for any transaction to be a log/event... The transaction receipt was only intended to be metadata about the transaction. The revert string was explicitly not included in the design proposal because there was concern around it being used as a DoS attack vector. Because of this, I don't know if web3.js or web3j will handle that extra field.
revert-reason-enabled gobbles up significant amount of memory- Ok then we need to put out a log/event indicating failure then.
Yeah, it's best to use revert strings for debugging purposes IMO
Yeah, it's best to use revert strings for debugging purposes, IMO
Thanks!
Ah, I got my facts wrong, they didn't see it as a DoS vector, but a spam vector, so don't worry about the extra memory consumption
We will try with revert-reason-enabled since otherwise it will be asynchronous log/events sprayed all over the place. We took the require() pattern from openzeppelin
Thanks for your help and we will keep you posted @benjamincburns
Besu can syncornize with the Etehreum Mainnet, Classic, and associated test nets. It supports EThash PoW consensus, IBFT and IBFT2 consensus, and Clique consensus. Burrow only supports Tendermint PoS consensus and has been used as a chaincode provider for Fabric and Sawtooth, relying on those DLTs for consensus.
Besu can synchronize with the Etehreum Mainnet, Classic, and associated test nets, in addition to private consortium networks. It supports EThash PoW consensus, IBFT and IBFT2 consensus (with finality), and Clique consensus (without finality). Burrow only supports Tendermint PoS consensus and has been used as a chaincode provider for Fabric and Sawtooth, relying on those DLTs for consensus.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi Everyone, I have some questions.
1) Can we create/run a new Ethereum network using Besu (production level) which would support private transactions also
2) Can we use private transactions functionality even when Besu is connected to the Mainnet of Ethereum
Anyone ever experience vert.x blocked threads trying to access RocksDB? I already resynced completely but I cannot get rid of them: https://gist.github.com/roderik/433c620e11420365de1f01847897c1c4. (1.4.2)
Thanks for your help @matkt. I'll try it.
I had to open a ticket, i cannot find a way to keep them alive :( https://github.com/hyperledger/besu/issues/1114
Thanks for the ticket. We will look into this.
Has joined the channel.
Hello all. Could someone clarify me please: I'm deploying a smart contract with Besu, in a private network, and I obtain the transaction hash. How can I obtain the contract address from the transaction hash? When I call web3Eea.eth.getTransaction I obtain many fields indicating addresses (e.g., input, r,s,v, hash), but none of them correspond to the created contract. In particular, when I try to connect to the deployed smart contract, via web3.eth.Contract(jsonInterface, address), the "povided address is invalid, the capitalization checksum test failed, or its an indrect IBAN address which can't be converted."
Hello all. Could someone clarify me please: I'm deploying a smart contract with Besu, in a private network, and I obtain the transaction hash. How can I obtain the contract address from the transaction hash? When I call web3Eea.eth.getTransaction I obtain many fields indicating addresses (e.g., input, r,s,v, hash), but none of them correspond to the created contract. In particular, when I try to connect to the deployed smart contract, via web3.eth.Contract(jsonInterface, address), the "povided address is invalid, the capitalization checksum test failed, or its an indrect IBAN address which can't be converted."
When obtaining the transaction receipt that deployed the smart contract, the field "ContractAddress" is set as null
Try the `eth_getTransactionReceipt` method - https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_gettransactionreceipt - the `contractAddress` field in the result should be what you are looking for - https://besu.hyperledger.org/en/stable/Reference/API-Objects/#transaction-receipt-object
I'm not sure how that translates into web3.
I'm not sure how that translates into web3.js
Hi Everyone, I have some questions.
1) Can we create/run a new Ethereum network using Besu (production level) which would support private transactions also
2) Can we use private transactions functionality even when Besu is connected to the Mainnet of Ethereum
Hi can anyone help me with this, not able to find the answer anywhere
Has joined the channel.
Has joined the channel.
Hi all, I am new here. I m looking for a document compare between Quorum and Besu (both are evm-forkable for enterprise), does anyone here has any reference? Besides, is there any doc about how Besu permission account
@shemnon Thanks, that helps a lot. I thought about that, but it turns out that ``contractAddress`` is set to null, odd...
Read the docs, everything you asked about mentioned here https://besu.hyperledger.org/en/stable/
If the transaction successfully deployed a contract that field would not be null. Could the contract creation have failed? (out of gas?)
for ordinariy CREATE the address is the hash of the senders address and nonce, you could calculate it from those fields - https://ethereum.stackexchange.com/a/46960/46788
Has joined the channel.
Hi, how does a hybrid blockchain channel work in Hyperledger Besu !
@shemnon Thanks for your help. greatly appreciated. I think I know what happens: eth_getTransactionReceipt returns the contractAddress as anull, because it is the Privacy marker transaction. I got the contractAddress from the private transaction, which you get through priv_getTransactionReceipt
That makes sense, knowing it was a private contract was the piece I missed.
I'm new to Besu, so I didn't realize it myself when I was asking :)
I'm also not as well versed in the private transaction area, that's mostly Lucas's team's thing, which is why it was my blindspot.
Btw, the testing node in Besu implies that transactions do not cost gas?
If not, is using Truffle the only way to configure a free gas Besu node?
Btw, @shemnon ,does the testing node in Besu implies that transactions do not cost gas?
If not, is using Truffle the only way to configure a free gas Besu node?
Btw, @shemnon ,does the testing node in Besu implies that transactions do not cost gas?
Does it suffice to set --min-gas-price=0 to allow free transactions?
@benjamincburns we ran with revert-reason-enabled on all nodes, when we looked at web3j implementation, we see generic gas error being thrown if receipt.status==0. No further error status is available in receipt. Also we tried another technique which is use the ethcall object after the failure.
We came up empty on both. Error handling via the web3 interface seems to be a problem (generic gas errors are thrown for any error from the transaction receipt)
Samples of both returns shown here: The TransactionReceipt object & ethCall object- no way to get the revert reason through web3 connected to Besu. Any help here would be welcome. @shemnon or @benjamincburns
receipt = {TransactionReceipt@2901} "TransactionReceipt{transactionHash='0x5e01576f7a99e0848f9fd0f39bac5d977ee79fee0b2552f4420ca2710d36a12c', transactionIndex='0x0', blockHash='0x0174f967e5e063704a871c8bbf885ecc0b28e4aa8a500a43a872105c35a18511', blockNumber='0x37efe1', cumulativeGasUsed='0x5b76', gasUsed='0x5b76', contractAddress='null', root='null', status='0x0', from='0xfe3b557e8fb62b89f4916b721be55ceb828dbd73', to='0x620f34a905eb4937514b6c393b6c73c6b01e62af', logs=[], logsBloom='0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'}"
transactionHash = "0x5e01576f7a99e0848f9fd0f39bac5d977ee79fee0b2552f4420ca2710d36a12c"
transactionIndex = "0x0"
blockHash = "0x0174f967e5e063704a871c8bbf885ecc0b28e4aa8a500a43a872105c35a18511"
blockNumber = "0x37efe1"
cumulativeGasUsed = "0x5b76"
gasUsed = "0x5b76"
contractAddress = null
root = null
* status = "0x0"
* from = "0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
to = "0x620f34a905eb4937514b6c393b6c73c6b01e62af"
logs = {ArrayList@2913} size = 0
logsBloom = "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
value = {char[514]@2915}
hash = 0
-------------------------------------
The ethCall object
ethCall = {EthCall@2977}
id = 13
jsonrpc = "2.0"
*result = "0x"
* value = {char[2]@2983}
0 = '0' 48
1 = 'x' 120
hash = 0
error = null
rawResponse = null
-----------------------------------------------
Heres an example for web3jtry {
token.operatorBurn(addressA, burnAmount, new byte[0], new byte[0]).send();
}
catch(TransactionException e) {
assertEquals("ERC777: caller is not an operator for holder", getDecodedRevertReason(e.getTransactionReceipt().get().getRevertReason()));
}
Heres an example for web3j try {
token.operatorBurn(addressA, burnAmount, new byte[0], new byte[0]).send();
}
catch(TransactionException e) {
assertEquals("ERC777: caller is not an operator for holder", getDecodedRevertReason(e.getTransactionReceipt().get().getRevertReason()));
}
Where getDecodedRevertReason is as follows
public String getDecodedRevertReason(String encodedRevertReason) {
String errorMethodId = "0x08c379a0"; // Numeric.toHexString(Hash.sha3("Error(string)".getBytes())).substring(0, 10)
List
This is what we were trying with the ethCall method. Instead of "0x08c379a0" we get "0x". We will grok this again.
I assume your node configuration includes, revert-reason-enabled=true
https://github.com/web3j/web3j/blob/master/core/src/main/java/org/web3j/utils/RevertReasonExtractor.java
Yes indeed on all the nodes
This question of error handling must come up often.
This question of exception handling must come up often.
@magooster This question of exception handling must come up often.
Afraid i'm just an interested participant who drops in from time-to-time...
Try getting a trace of the transaction - https://besu.hyperledger.org/en/stable/Reference/API-Methods/#trace_transaction
Revert reasons are only recorded if the smart contract itself provides a revert reason. If it is some other exceptional halt, such as out of gas, no revert reason is recorded.
The trace call has the same json structure as parity's trace call.
Since it has the same structure as Parity's trace call, I think it will work with the Truffle debugger as well. That should let you step through the transaction in VS Code to see what it's behavior is
Since the eThaler smart contract code produces the revert reason, it should be available. We will look at your suggestions. @shemnon @benjamincburns
Since the eThaler smart contract code produces the revert reason, it should be available. The main idea is how to get it to display at the user interface for the user who initiated the transaction, so that they can take corrective action. For example :
require( ( isPaused( tokenId ) == false ), "eThaler: Token is paused. Transfer is not permitted" );
We will look at trace. There are no problems getting error messages to display with Truffle/Ganache. @shemnon @benjamincburns @magooster
Since the eThaler smart contract code produces the revert reason, it should be available. This is not a mystery. The main idea is how to get it to display at the user interface for the user who initiated the transaction, so that they can take corrective action. For example :
require( ( isPaused( tokenId ) == false ), "eThaler: Token is paused. Transfer is not permitted" );
We need to be able to tell the user who initiated the transfer that it will not go through as the token is paused. It is not a debug situation.
Is the pattern: do all checks before it hits the solidity code?
Still there can be revert reasons other than running out of gas. We need to be able to tell the user at the front end these reasons. Which is the rule of good UI design, instead of throwing and showing a fake reason like running out of gas (which is the behavior of the web3j interface at the moment).
There are no problems getting error messages to display with Trufflle. @shemnon @benjamincburns @magooster
Do you have a self-contained sample you can link to? Doing this via chat is like keyhole surgery without cameras.
I understand your frustrations, @VipinB. Solidity and the EVM weren't really designed for this sort of exception-like error handling. Revert reasons were added quite late in their development, and since the two major mainnet clients don't expose them directly, I think the usual pattern is to add checks in client code for conditions that are known to cause a revert. Sadly this doesn't guarantee that you won't see a revert, as these conditions can change before you submit the transaction, but in the case when a revert occurs you can always check the state of the contract for that specific block to figure out why, and then display an error.
All of that said, you should be able to get this working with Besu without needing to do what I just described. Hopefully if you can get @shemnon a minimal code sample he can help sort it out.
I understand your frustrations, @VipinB. Solidity and the EVM weren't really designed for this sort of exception-like error handling. Revert reasons were added quite late in their development, and since the two major mainnet clients don't expose them directly, I think the usual pattern is to add checks in client code for conditions that are known to cause a revert. Sadly this doesn't guarantee that you won't see a revert, as these conditions can change before you submit the transaction, but in the case when a revert occurs you can always check the state of the contract for that specific block to figure out why, and then display an error.
All of that said, you should be able to get this working with Besu without needing to do what I just described. Hopefully if you can get @shemnon a minimal reproduction code sample he can help sort it out.
I understand your frustrations, @VipinB - Solidity and the EVM weren't really designed for this sort of exception-like error handling. Revert reasons were added quite late in their development, and since the two major mainnet clients don't expose them directly, I think the usual pattern is to add checks in client code for conditions that are known to cause a revert. Sadly this doesn't guarantee that you won't see a revert, as these conditions can change before you submit the transaction, but in the case when a revert occurs you can always check the state of the contract for that specific block to figure out why, and then display an error.
All of that said, you should be able to get this working with Besu without needing to do what I just described. Hopefully if you can get @shemnon a minimal reproduction code sample he can help sort it out.
Thanks, any three lines of code that throws a revert is what is needed. Then it needs to be run inside a Besu network, when called from a web3 interface, the web3 needs to get at the revert reason "Permanently broken".
function brokenforever(
) external {
require((true==false), "Permanently broken");
}
Thanks, any three lines of code that throws a revert is what is needed. Then it needs to be run inside a Besu network, when called from a web3 interface, the web3 needs to get at the revert reason "Permanently broken".
function brokenforever(
) external {
require((true==false), "Permanently broken");
} @shemnon
Thanks, any three lines of code that throws a revert is what is needed. Then it needs to be run inside a Besu network, when called from a web3 interface, the web3 needs to get at the revert reason "Permanently broken".
function brokenforever(
) external {
require((true==false), "Permanently broken");
} @shemnon @benjamincburns
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello,
I setup my application as mentioned below:
- setup Besu POA network
- deploy a contract with few events triggered when its method is invoked
- smart contract is deployed using open zeppelin to make it upgradable
- configure and connect eventeum (https://github.com/ConsenSys/eventeum) to receive capture events triggered by the smart contract
Actual behaviour:
* _Eventeum does not receive the smart contract events_
Expected behaviour:
* _Eventeum should have received smart contract events from the besu node and processed it successfully._
*Additional note:*
The setup mentioned above works as expected when besu is replaced with ganache. I did not check it with geth or other Ethereum client but I'm hoping the behaviour would be as expected.
Hello,
I setup my application as mentioned below:
- setup Besu POA network
- deploy a contract with few events triggered when its method is invoked
- smart contract is deployed using open zeppelin to make it upgradable
- configure and connect eventeum (https://github.com/ConsenSys/eventeum) to receive capture events triggered by the smart contract
Actual behaviour:
* _Eventeum does not receive the smart contract events_
Expected behaviour:
* _Eventeum should have received smart contract events from the besu node and processed it successfully._
*Additional note:*
The setup mentioned above works as expected when besu is replaced with ganache. I did not check it with geth or other Ethereum client but I'm hoping the behaviour would be as expected.
Hello,
I setup my application as mentioned below:
- setup Besu POA network
- deploy a contract with few events triggered when its method is invoked
- smart contract is deployed using open zeppelin to make it upgradable
- configure and connect eventeum (https://github.com/ConsenSys/eventeum) to receive capture events triggered by the smart contract
Actual behaviour:
* _Eventeum does not receive the smart contract events_
Expected behaviour:
* _Eventeum should have received smart contract events from the besu node and processed it successfully._
Is there any specific setup/configuration is needed to make (besu + open zeppelin deployed upgradable smart contract + eventeum) work together?
*Additional note:*
The setup mentioned above works as expected when besu is replaced with ganache. I did not check it with geth or other Ethereum client but I'm hoping the behaviour would be as expected.
Hello,
I setup my application as mentioned below:
- setup Besu POA network
- deploy a contract with few events triggered when its method is invoked
- smart contract is deployed using open zeppelin to make it upgradable
- configure and connect eventeum (https://github.com/ConsenSys/eventeum) to receive capture events triggered by the smart contract
Actual behaviour:
* _Eventeum does not receive the smart contract events_
Expected behaviour:
* _Eventeum should have received smart contract events from the besu node and processed it successfully._
*Question:* Is there any specific setup/configuration is needed to make (besu + open zeppelin deployed upgradable smart contract + eventeum) work together?
*Additional note:*
The setup mentioned above works as expected when besu is replaced with ganache. I did not check it with geth or other Ethereum client but I'm hoping the behaviour would be as expected.
I am deploying a default Besu node on a private network with the arguments: --min-gas-price=0. I deploy a contract, that has several variables in the storage, with predefined values. I obtain the newly contract address from the private transaction receipt. But when I am querying the storage with ``web3.eth.getStorageAt``, I obtain 0x0 for every index. Any hint of what's going on?
@shemnon
I am deploying a default Besu node on a private network with the arguments: ``--min-gas-price=0``. I deploy a smart contract at the network, that has several variables in the storage, with predefined values. I obtain the newly contract address from the private transaction receipt. But when I am querying the storage with ``web3.eth.getStorageAt``, I obtain 0x0 for every index. Any hint of what's going on?
@shemnon
I am deploying a default Besu node on a private network with the arguments: --min-gas-price=0. I deploy a smart contract at the network, that has several variables in the storage, with predefined values. I obtain the newly contract address from the private transaction receipt. But when I am querying the storage with ``web3.eth.getStorageAt``, I obtain 0x0 for every index. Any hint of what's going on?
@shemnon
I am deploying a default Besu node on a private network with the arguments: `` --min-gas-price=0 ``. I deploy a smart contract at the network, that has several variables in the storage, with predefined values. I obtain the newly contract address from the private transaction receipt. But when I am querying the storage with ``web3.eth.getStorageAt``, I obtain 0x0 for every index. Any hint of what's going on?
@shemnon
I am deploying a default Besu node on a private network with the arguments: --min-gas-price=0. I deploy a smart contract at the network, that has several variables in the storage, with predefined values. I obtain the newly contract address from the private transaction receipt. But when I am querying the storage with ``web3.eth.getStorageAt``, I obtain 0x0 for every index. Any hint of what's going on?
@shemnon
I am deploying a default Besu node on a private network with the arguments: --min-gas-price=0. I deploy a smart contract at the network, that has several variables in the storage, with predefined values. I obtain the newly contract address from the private transaction receipt. But when I am querying the storage with ``web3.eth.getStorageAt``, I obtain 0x0 for every index. Any hint of what's going on?
@shemnon
EDIT: I am using this image: https://github.com/petermetz/besu-docker-all-in-one
I'm on vacation this week. Someone else will need to field this.
Hello,
In Hyperledger Besu, is it possible to send private transactions to public Smart Contracts in order to do a delegate call to private contract? For example, consider following scenario:
- In a network there is a *public Smart Contract A deployed*, which has a _forward_ method that do a _delegateCall_ to any address (given in args).
- In the same network, there is also a *private Smart Contract B deployed*, which has a method _doSomething_.
- If a Dapp sends a private transaction to execute _forward_ function of SC A, passing as a parameter the address of contract B, would then the contract A do a delegateCall to contract B succesfully (only in the nodes listed in privateFor)?
Thank you very much in advance
Hello,
In Hyperledger Besu, is it possible to send private transactions to public Smart Contracts in order to do a delegate call to private contract? For example, consider following scenario:
- In a network there is a *public Smart Contract A deployed*, which has a _forward_ method that do a _delegateCall_ to any address (given in args).
- In the same network, there is also a *private Smart Contract B deployed*, which has a method _doSomething_.
- If a *Dapp sends a private transaction to execute _forward_ function of SC A, passing as a parameter the address of contract B*, would then the contract A do a delegateCall to contract B succesfully (only in the nodes listed in privateFor)?
Thank you very much in advance
twe
Has joined the channel.
What's the CPU requirements for node running in *private* network and *public* network, syncing rinkeby or mainnet ?
in terms of # of cores
hello guys,
I followed this https://github.com/raedbensaid/besu-kubernetes/tree/develop/kubectl/ibft2 and i have 2 problems :
1- besu nodes are statefulsets but without pvc and when i try to add the creation of pvc in node-statefulset.yaml it doesn't work!
2- when using
Hello @raedbensaid Can you share more info re your setup (local, cloud etc), how you are attempting to connect to the rpc service?
1. You'd have to share config re PVCs, I have used them without any trouble. Did you create a PV and then a PVC to use in each statefulset?
2. Whats the error that you get connecting to the node service? To connect to the nodes from the outside it should go through a service which does have a constant IP and can have any number of pods behind it - effectively this is what we do when connecting to a DApp
From our testing mainnet appears to be fine on 4 cores, the other public networks on 2 cores. Private networks we tend to test with 2 cores as well - though each private network varies with load and requirements. We'd recommend putting in monitoring and adjusting as required. https://besu.hyperledger.org/en/latest/HowTo/Get-Started/System-Requirements-Public/ and https://besu.hyperledger.org/en/latest/HowTo/Monitor/Metrics/ have more details
Hello @joshuafernandes
i was following this tutorial https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2 using a kubernetes cluster which is running in aws. Those scripts does not create PVCs do i need to add it ? when trying to connect to the node using statefulset name the error is " can not resolve host " but when i try it with the pod IP adress it works fine but it's not convenient because if the pod fails and start again the IP will change
Hello @joshuafernandes
i was following this tutorial https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2 using a kubernetes cluster which is running in aws. Those scripts does not create PVCs do i need to add it ? when trying to connect to the node using statefulset name the error is " can not resolve host " and when i try it with the pod IP adress it works fine but it's not convenient because if the pod fails and start again the IP will change
Hi @shemmon Does this fragment suffice for you to take a look or should I provide more detail? Or something completely different?
@benjamincburns
Hi @shemnon Does this fragment suffice for you to take a look or should I provide more detail? Or something completely different?
@benjamincburns
Has joined the channel.
hi guys, i have a project that i need to have condition on amount of ether that users or nodes want to send to each other (like less than 50 ether) i found that it's in this file from github project : besu/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/MainnetTransactionValidator.java. can anyone please help me with the condition(if) code that i have to add to ValidationResult method? thank you in advance
Hello @raedbensaid , re PVC's that is correct - the examples in there are generic and cloud agnostic - the use of PVC's are recommended but it is up to the user to pick the type. eg: in AWS you'd have to pick EBS or EFS as the PV and then the PVCs will work. On the main readme see the section titled 'data volumes'. Depending on cloud the user has to pick one from https://kubernetes.io/docs/concepts/storage/volumes/
Is the connection to the node being made from outside the cluster or within? Other nodes will resolve it dircetly - i.e node -> node. If a Dapp/user is connecting to the network you should use the besu-node service and not directly connect to the statefulset. The services maintain constant IP's not the pods. https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/ For example, refer to the way bootnodes are specified
@magooster forgot to tell you that changing the config for the polling frequency did help the response. It is much faster now. Just stuck on the revert-reason getting captured through the web3j interface to be shown o the user. we have enabled revert-reason in the nodes. More details needed? @shemnon @benjamincburns - code fragment above.
hi @adovale - access between private and public states is described in the docs here - https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Groups/#access-between-states
Public contracts cannot access private contracts. So SC A cannot access SC B.
Have you got a specific use case driving this approach?
Has joined the channel.
Hi @madelinemurray , thank you for your answer and for the resource. I was thinking about maintainability of a use case. Consider the following scenario:
- In a network, there is 3 nodes, A,B,C.
- There is a private smart contract deployed, which contains the logic of a specific use case.
- A, B, C nodes send private tx to this contract, setting the privateFor to one or two of the other nodes. The important thing is that *the privateFor is NOT always the same*.(for example, A sends private tx with the privateFor listing only B, even that C has the contract deployed too).
If someday i want to add a new 4th node D, this node does not have the private contract deployed. So, if i want node D to interact with the other nodes trough this contract (send private tx to SC and set privateFor with any of the other nodes), i would have to redeploy it, update Dapps in nodes A, B and C to use the new contract, for those to use the same SC as the new member.
I was thinking about deploying the contract in a privacy group and then adding new member to this. But this approach has to handicaps:
1. AFAIK, In a privacy group, all members share the private state. I only want them to share the contract business logic, and to send tx between them using the same contract interface, but the actual data processed in the contract can only be accessed to a subset of the privacy group, and in an ad hoc manner.
2. The privacy groups seem like a very new feature and i am not quite sure about its support and maintainability.
Hi @madelinemurray , thank you for your answer and for the resource. I was thinking about maintainability of a use case. Consider the following scenario:
- In a network, there is 3 nodes, A,B,C.
- There is a private smart contract deployed, which contains the logic of a specific use case.
- A, B, C nodes send private tx to this contract, setting the privateFor to one or two of the other nodes. The important thing is that *the privateFor is NOT always the same*.(for example, A sends private tx with the privateFor listing only B, even that C has the contract deployed too).
If someday i want to add a new 4th node D, this node does not have the private contract deployed. So, if i want node D to interact with the other nodes trough this contract (send private tx to SC and set privateFor with any of the other nodes), i would have to redeploy it, update Dapps in nodes A, B and C to use the new contract, for those to use the same SC as the new member.
I was thinking about deploying the contract in a privacy group and then adding new member to this. But this approach has tWo handicaps:
1. AFAIK, In a privacy group, all members share the private state. I only want them to share the contract business logic, and to send tx between them using the same contract interface, but the actual data processed in the contract can only be accessed to a subset of the privacy group, and in an ad hoc manner.
2. The privacy groups seem like a very new feature and i am not quite sure about its support and maintainability.
Hi @madelinemurray , thank you for your answer and for the resource. I was thinking about maintainability of a use case. Consider the following scenario:
- In a network, there is 3 nodes, A,B,C.
- There is a private smart contract deployed, which contains the logic of a specific use case.
- A, B, C nodes send private tx to this contract, setting the privateFor to one or two of the other nodes. The important thing is that *the privateFor is NOT always the same*.(for example, A sends private tx with the privateFor listing only B, even that C has the contract deployed too).
If someday i want to add a new 4th node D, this node does not have the private contract deployed in its private state. So, if i want node D to interact with the other nodes trough this contract (send private tx to SC and set privateFor with any of the other nodes), i would have to redeploy it, update Dapps in nodes A, B and C to use the new contract, for those to use the same SC as the new member.
I was thinking about deploying the contract in a privacy group and then adding new member to this. But this approach has tWo handicaps:
1. AFAIK, In a privacy group, all members share the private state. I only want them to share the contract business logic, and to send tx between them using the same contract interface, but the actual data processed in the contract can only be accessed to a subset of the privacy group, and in an ad hoc manner.
2. The privacy groups seem like a very new feature and i am not quite sure about its support and maintainability.
1. If I'm understanding your use-case correctly, the same contract (ie, business logic) can be deployed in more than one privacy group. The same contract business logic is available in each privacy group but the data is only available in the privacy group in which it was created/updated.
eg, The example in the web3js-eea library shows deploying a contract to a privacy group: https://github.com/PegaSysEng/web3js-eea/blob/master/example/onChainPrivacy/deployContractExample.js
`2. Flexible privacy groups (ie, privacy groups where you can add and remove members) have been available in Besu since 1.4.1 - https://github.com/hyperledger/besu/releases/tag/1.4.1
We have performance testing for privacy groups on our 1.6 roadmap - once this is completed we will finalise the interfaces and remove the early access tag.
If you have specific requirements or questions around support, let us know.
Thank you for this clarification @joshuafernandes , the connection to the node is being made from inside the cluster using another deployment.
In fact i have another problem, i want to deploy a smart contract which exists in another pod other than the besu pods ( using truffle ), what should i do ?
@joshuafernandes
Hello, i have a problem in the deployment of smart contract with besu in kubernetes. My smart contract runs in a pod other than the blockchain pods! can you tell me what's the best approach to consider ? cc @joshuafernandes @madelinemurray
Hello @raedbensaid The process to deploy a contract to a node on k8s isnt much different to that of a node on a vm or the like. Could you give us more information on what the error is, logs etc? Could you confirm that the contract deploys on a local network (one of the examples in the sample-networks repo?) We've got a permissions example in there that deploys contracts and a DApp for reference. Basically you need an account that you connect to the chain and use truffle for example to deploy to an RPC endpoint - this would again be the besu-node ClusterIp service endpoint from your endpoint.
The connection should work fine from inside there - pretty much anything in your VPC should be routable to that service IP. I've got a cluster up in Azure, if I get the chance tomorrow I'll deploy Besu there and a second VM and share screenshots of how I connect from VM to the RPC service
The connection should work fine from inside there - pretty much anything in your VPC should be routable to that service IP (depending on how the network is setup) I've got a cluster up in Azure, if I get the chance tomorrow I'll deploy Besu there and a second VM and share screenshots of how I connect from VM to the RPC service
Hello @joshuafernandes thank you for your response.
I'm tried to deploy even a test smart contract, there is no error but it stays pending " Contract transaction sent, waiting for receipt " and there is nor response from the besu node
It well be great @joshuafernandes thank you!
Is it really different from the other approach with truffle migrate ?
What's the difference between constantipoleFix and petersburg milestones in genesis file ?
I assume they're the same or aliases ?
Has joined the channel.
Hello, is the IBFT-Network example still intentet to work? When trying to launch Node-1 it throws me some RocksDBException trying to access the MANIFEST-000004 file, which is not existing. Excution is stopped then
Is there a reason why geth and besu fail on handshake on private clique network ?
It's working fine on goerli
What versions of geth and goerli? I think it's the eth/64 identifier that should have been fixed on the most current builds of besu.
What versions of geth and besu? I think it's the eth/64 identifier that should have been fixed on the most current builds of besu.
@shemnon
ethereum/client-go:v1.9.15
hyperledger/besu:1.4.6
can you DM me the genesis?
sure
@abdelhamidbakhta on RC
I figured out the problem, in geth genesis file, daoForkSupport was *false*
after I changed it to true, peer connected and chain is syncing :male_dancer:
connect_to_k8s_cloud.pdf
@raedbensaid see attached file showing connectivity to the besu-node service from within the k8s cluster & connectivity from my local machine to the cluster. Either will work to deploy your contract, but the former would be the better approach
I have a n00b question. What is the intended use of multi-tenancy? Is it designed for SaaS providers to provide privacy for their customers (and allows the operator to do this at scale), or is it more designed for a single organization to provide their users (the tenants) with their own privacy groups? I know that operators can see all data within all the tenants, so would that rule it out of being used as part of a SaaS offering?
When I send over many transactions back to back, few of them do not get mined at times. They tend to timeout after 120 seconds. I have a block period of 5 seconds. How do I work around this? I am not able to trace the transaction in the logs either. Any FAQs for debugging could help.
When I send over many transactions back to back( using 1.4.2), few of them do not get mined at times. They tend to timeout after 120 seconds. I have a block period of 5 seconds. How do I work around this? I am not able to trace the transaction in the logs either. Any FAQs for debugging could help.
When I send over many transactions back to back( using 1.4.3), few of them do not get mined at times. They tend to timeout after 120 seconds. I have a block period of 5 seconds. How do I work around this? I am not able to trace the transaction in the logs either. Any FAQs for debugging could help.
When I tried the same on 1.4.6, I hit a bad request exception(400).
This was probably happening because of same nonce in the transaction. I generate transactions from multiple places using the same key. I need to orchestrate this.
The main use is to reduce what is called "cost of ownership" (or something like that). Basically, the "classic" model in which each entity or participant run their own node has a drawback in terms of the cost. With multi-tenancy, you can leverage some of these costs. Of course not every use-case works well with multi-tenancy as it requires all tenants to trust infrastructure provider.
Has joined the channel.
Clipboard - July 6, 2020 7:22 PM
Hi all, do you guys know why this is happening? it's happening for grafana-ingress-nginx-ingress-controller and besu-ingress-nginx-ingress-controller, then i can't see the external endpoint. do you have any idea?
I am having some trouble on connecting two different machines in local network on my docker besu chain.
If I connect two containers on the same machine setting de bootnode addres with docker internal ip address it works fine.
But when I run an container in other machine and set my local ip on bootnode config on this new node the nodes doesn't communicate with each other and I keep receiveing "no sync target 0 peers currently connected" message on my docker logs. If I make a curl to my bootnode peer on the other machine node to the besu API like net_version for example I get the right result.
Am I missing some config or there is a way of I debug this connection to investigate the reason of not establishing the connection?
I also set the nat-method config to DOCKER and p2p-host to my local machine ip on network
Hello there, if I have 2 besu node run on Ropsten or Rinkeby or others public network, can I do private transaction for this 2 besu nodes?
Has joined the channel.
Hi! Support for private transactions on public networks is in early-access. If you get the latest versions of Besu and Orion you can try it out!
And you are correct, it only works between Besu nodes. :)
Hi there, I'm a fresher working with Blockchain, how I build network blockchain by Besu, do have any offical document for it. Many thanks
I mean using Besu to create blockchain -> implement bussiness smart constract -> publish to end user
I think where to start depends on what you are planning to learn/work on.
In the way that I see it, Ethereum development has kinda 3 parts: Protocol, Infrstructure and Smart Contracts/Dapps.
1. Protocol is where you'll see all client (nodes) development, implementing the rules that all nodes in the network follow, etc. For example, Besu is an Ethereum client implementation.
2. The infrstructure is where all the deployment stuff is. Including the network topology and other related topics.
3. Smart Contract/Dapp Is the "use-case" side of Ethereum, where you will implement the business logic to do something that you need. This is where you'll see people talking about Solidity and Truffle, and Web3js, Remix, etc.
Usually, people start their journey on the Smart Contract/Dapp development side. I'd recommend that you check out Truffle project, they have got a bunch of tools and things that can help you (https://www.trufflesuite.com/)
Another good place to practice implementing smart contracts is Remix, an online IDE that runs a "mock" blockchain taht you can interact with (http://remix.ethereum.org/)
Of course, you can always run your own Besu node locally for development if you need to. Check out this link for more info on how to spin up a small network (https://besu.hyperledger.org/en/latest/Tutorials/Private-Network/Create-Private-Network/)
Has joined the channel.
Hi is there any tool for check tps of besu
Has joined the channel.
Hi there, is it possible to write smart contract using java? if yes , how can be it deployed using Hyperledger besu?
Not that I'm aware of. If you want to try something other than Solidity, check out Vyper.
I fixed it here. My 30303 port was open only for TCP connections I opened it to UDP also and it worked.
@joshuafernandes thank you for the document, but still truffle migrate don't work for me on the node so that i can deploy my contract
Hi guys, i am trying to measure the transaction latency of Clique and Proof of Work on private test network. I know that i have to wait around 5 to 6 confirmations for Proof of Work to claim final confirmation. How many confirmations do i have to wait for Clique? Is it the same as Proof of Work?
I was womndering if you have a quick answer for me.
When I query the number of peers using RPC, it yields 3, as below
```curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":53}' http://xx.xx.xx.xx:8545
{
"jsonrpc" : "2.0",
"id" : 53,
"result" : "0x3"
}%```
But `journalctl` (I have configured Besu nodes as services) yields 5 peers for NON-BOOTNODES (I have 4 nodes, 2 bootnodes):
```Jul 13 15:03:12 ip-172-31-32-92.eu-central-1.compute.internal sh[35195]: 2020-07-13 15:03:12.024+00:00 | EthScheduler-Workers-0 | INFO | PersistBlockTask | Imported #1,726 / 0 tx / 0 om / 0 (0.0%) gas / (0x39cd54e5ece4084dbee7b7ca97d243462090eb14102891293af109ba3bd564fc) in 0.000s. Peers: 5```
Any idea why?
:-/
Hey! Sorry for the delay, ConsenSys had a company-wide day-off so a lot of the contributors probably weren't checking. Does this discrepancy persist? Or does it only report different numbers for a short period of time?
Actually, could you make this a github issue with the answer to my question above in the post? That'd be best so we can prioritize this properly and make sure it doesn't get lost.
Has joined the channel.
Has joined the channel.
Hello guys,
I have a question. How hyperledger besu difference the public world state and private world state? Are there different databases for each world state?
Yes, by default all our world state data is stored in a RocksDB database. And we have separate dbs for the public state and for the private state.
Whats the error? Can you confirm you have connectivity to the node-service via curl etc? It'd be worth putting some logs of the truffle migrate here for us to see whats going on
Hi everyone, this is my truffle box based on HL besu and nestJS. Hope you will enjoy https://www.trufflesuite.com/boxes/besu-box
Has joined the channel.
Hi, I'm trying to setup Besu on AWS to sync the Goerli testnet (or one of the other public testnets). However, besu doesn't find any peers. I've opened up my security group on ports 8545, 8546, 8547, 9545, 30303 (tcp) and 30303 (udp) and I can access any internet address from the ec2 instance. I'm starting besu via the ansible galaxy role. Am I missing something?
Hi, Is there any benefit of activating DAO Hardfork in a private network ?
I suppose that the public world state and the private world state are separated in different column families into Rocksdb database. is this true ?
In that case, Would it be possible to delete a private world state without affecting the public world state ?
Thanks in advance
:besu: 🎉 Besu 1.5 is Out 🎉 :besu:
Official announcement: https://www.hyperledger.org/blog/2020/07/16/announcing-hyperledger-besu-1-5-available-now
Download: https://github.com/hyperledger/besu/releases/tag/1.5.0
:besu: 🎉 *Besu 1.5 is Out* 🎉 :besu:
Official announcement: https://www.hyperledger.org/blog/2020/07/16/announcing-hyperledger-besu-1-5-available-now
Download: https://github.com/hyperledger/besu/releases/tag/1.5.0
Hello everyone, please I would like some help from you. Currently I have a set of orion nodes which are working using tls, I see an unexpected behavior in one of those nodes (Lets say Node-A) when sending the simple hello world mesage between orion nodes. Sometimes sending the message returns te encrypted payload response correctly, and sometimes returns the message {"error":"NodePushingToPeer"}. The problem is happening specifically in one orion node (Node-A) . Other nodes can send messages without issues; even sending messages to the Node-A. Please what would be some reasons for of this issue? thanks in advance!
Goerli is a fairly difficult network to find peers. It is essential that remote peers are able to connect to your node rather than your node connecting to the remote peers.
What flags are you using for remote access? At a minimum you need to set `--p2p-host` to the external address of the EC2 box. You also will want to reserve an address or reset this value whenever you restart the box as EC2 tends to not have sticky IP addresses unless explicitly reserved.
Functionally no, there is no EVM or consensus impact. However it will have an impact in EIP2124 calculations, which impact peering, if the chain does not start on a post-dao hard fork (such as `petersburgBlock` or `istanbulBlock` being explicitly set to zero)
for a new private chain starting with `"istanbulBlock":0` will make this issue moot.
Hi! To better support you with Orion, would you please head to our Orion discord channel? Here is the invite link! https://discord.gg/n8m22JK
Please share your nodes configuration and setup so we can better understand what could be wrong. Cheers!
I have just seen that you are already on our Discord! Thanks!
Let's have this discussion over there! :)
Ah thanks.
does besu supports `light` sync mode ?
Has joined the channel.
Besu supports Full and Fast sync modes, which are both full nodes. https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#sync-mode There is no `light node` if thats what you are referencing.
@shemnon any advice on this?
Has joined the channel.
Has joined the channel.
Hi, I am trying to run permission network for besu. I have cloned https://github.com/PegaSysEng/besu-sample-networks.git. When I execute, ./run-permissioning.sh, none of the nodes are coming up. It is throwing below error. Please suggest how to fix this.
020-07-22 04:29:08.927+00:00 | main | INFO | RocksDBKeyValueStorageFactory | No existing database detected at /opt/besu/data. Using version 1
2020-07-22 04:29:08.991+00:00 | main | ERROR | RocksDBKeyValueStorageFactory | Failed to retrieve the RocksDB database meta version: /opt/besu/data/DATABASE_METADATA.json (Permission denied)
/opt/besu/data/DATABASE_METADATA.json (Permission denied)
Has joined the channel.
does #besu support any popular oracles? Provable things/
?*
Do we have permissioning model in besu similar to that in quorum? http://docs.goquorum.com/en/latest/Permissioning/Enhanced%20Permissions%20Model/Overview/
Hi @poojagupta23 I'll look into this and get back to you
@lucassaldanha ^
Besu doesn't have a similar permissioning model out of the box. However, our permissioning model follows the EEA spec, that defines an interface for node and account permissioning, allowing anyone to bring their own smart contracts to manage the nodes and accounts.
This is our reference implementation (https://github.com/PegaSysEng/permissioning-smart-contracts). You'll notice that the permissioning model that we have implemented here is quite simple (based on admin accounts).
However, by implementing your own version of these contracts, you could achieve the same model as Quorum.
Should be sorted now, this was becuase the data dir was mounted as a volume as the root user and in v1.5 of Besu we set a `besu` user
this is fixed with https://github.com/PegaSysEng/besu-sample-networks/pull/87 so if you do a pull and run again it should be fine
Thank you for the response. It makes sense
Thanks a lot for fixing the issue. It is working now.
the network has come up after the fix. But when I am running the dapp script, it is throwing below error and not running.
poojagupta@Poojas-MacBook-Air besu-sample-networks % ./run-permissioning-dapp.sh
./.common.sh: line 55: NO_LOCK_REQUIRED: unbound variable
Has joined the channel.
Hey everyone, Marius from the geth team here, I'm currently trying to get our differential fuzzing framework goevmlab up to speed for BLS-12381.
I'm wondering if there is an easy way to create a binary/command that we can invoke to tests a state test against besu?
When I am running the dapp script for permissioning network, it is throwing below error and not running.
poojagupta@Poojas-MacBook-Air besu-sample-networks % ./run-permissioning-dapp.sh
./.common.sh: line 55: NO_LOCK_REQUIRED: unbound variable
Hi everyone, I was just wondering if anyone has created a Python client library for eea APIs ontop of Web3.py?
I think the evmtool is what you are looking for...
```
./gradlew ethereum:evmTool:installDist
./ethereum/evmtool/build/install/evmtool/bin/evm --help
```
although we don't currently output any data to validate executions, other tahan gas used. What sort of outputs would you need?
although we don't currently output any data to validate executions, other than gas used. What sort of outputs would you need?
Some sample invocations are here - https://github.com/hyperledger/besu/tree/master/ethereum/evmtool/src/test/benchmarks
Hi! Could you confirm what operational system you are using?
btw, it looks like that you can get arround this issue by adding this to the script:
`NO_LOCK_REQUIRED=false`
We have a PR to fix it: https://github.com/PegaSysEng/besu-sample-networks/pull/88/files
Has joined the channel.
Thanks, yes that's what I'm looking for. We (and parity) output every step of the evm on execution and a summary (gasUsed, StateRoot,...) at the end. We're currently thinking about formulating a standard for this for interoperability.
This is our starting point btw: https://github.com/ethereum/evmlab/wiki/howto-evm
We're started working today on an EIP to make all implementations compatible which would allow for easier fuzzing
Hi, I'm trying to setup a besu node in a private subnet on AWS. However, now besu refuses to start with the error msg "valid advertisement host required" What does that mean? Is it related to the peer discovery on port 30303? Or is that something else?
Hi Chris! Could you provide the CLI option or config file that you are using so we can better help you?
More specifically, this message is related to the network interface that the node will use to listen for P2P conenctions (`--p2p-interface`). But without knowing the options that you are using I can't figure out what is wrong.
Here is the reference to the docs: https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#p2p-interface
From a quick investigation on the code, this msg could mean that you have specified the --p2p-interface property with an invalid value.
Hi Lucas, thanks for the pointer, that solved it. Indeed my p2p-interface wasn't setup properly. I'm using the ansible role for starting and it tried to get the public IP of the node and set it. Of course, because I move to the private subnet, that didn't work anymore. Now, that's working as expected
Not sure if this is the right place to drop it: I noticed that the images on your blog post https://pegasys.tech/setting-up-hyperledger-besu-in-aws/ and https://pegasys.tech/setting-up-monitoring-for-hyperledger-besu-in-aws/ don't show.
@here - We're beginning the release process for hyperledger/besu, please don't merge anything to release-1.5.1 until further notice
Awesome!
@here - It's now safe to merge into master for hyperledger/besu again.
:tada: :besu: *Besu 1.5.1 is now available* :besu: :tada:
Relase notes & download info: https://github.com/hyperledger/besu/releases/1.5.1
Thanks for raising - I've followed this up so hopefully they should be back soon!
Is there any relevant documentation for besu upgrade from 1.4 to 1.5.1?TQ for update.
Has joined the channel.
Hi,
I am setting up a besu network with IBFT and orion for production, can you point the guide to generate `eth_accounts` to be kept in `alloc` section of my production network `ibftConfigFile.json`, Thanks.
can we use geth to generate the `eth_account`?
Contirbutor call in ~ 24 hours - EMEA times - https://wiki.hyperledger.org/display/BESU/2020-08-04+Contributor+Call+Agenda
Contributor call in ~ 24 hours - EMEA times - https://wiki.hyperledger.org/display/BESU/2020-08-04+Contributor+Call+Agenda
Has joined the channel.
I have a similar question
I set up the besu-quickstart subscription in Azure public cloud. I need to figure out how to generate accounts on an ubuntu VM, and how to run an ERC 20 smart contract in the environment. Right now I am unable to generate accounts. I cannot use metamask for this. someone plz advise
I generated two accounts using geth, but cannot "attach" them and send transactions
A quick question regarding the new onchain privacy groups
https://besu.hyperledger.org/en/stable/Concepts/Privacy/Onchain-PrivacyGroups/
Can any (non participating node/user) discover every privacy group or can each node/user only find the privacy groups where they are a member?
Has joined the channel.
Besu does not support account management directly. You will need to use an external service to create and manage accounts. Please refer to: https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/
Hello, can i have a mobile application running a node for hyperledger-besu?, just for submitting transactions I do not need to be a mining node, any advices would be useful.
I am unaware of anyone who has set up a Besu node on a mobile device. Block storage looks to be a critical issue.
Look into web3j.io - You don't need a full node to send and receive transactions. with web3j you can create the TX on-device and use an external node (or service such as infura or bloq) to send the transacitons.
my usecase need to apply decentralization on mobile devices so I need them to be actual nodes, so are there any alternatives to besu which can achieve that?
Only the members of a privacy group are aware of its existence.
The smart contract that manages the privacy group lives inside the privacy group itself, so others don't have access to it.
For security reaosons, Besu doesn't provide key management. So you need to sign your transactions externally, using a wallet or EthSigner.
- https://besu.hyperledger.org/en/latest/HowTo/Send-Transactions/Account-Management/
- https://docs.ethsigner.pegasys.tech/en/latest/
Yes there are. I recommend looking into some of the light ethereum clients specifically designed for mobile devices.
Hi Besu Experts, Please help me answer below questions?how to define Besu network's PKI? what's the certificate hierarchy, what's the trust chains leading to transaction signatories, what cryptographic mechanisms does Besu use for certification, digital signatures, and encryption?
Hi everyone, Is there any restrictions in besu for contract size,amount of gas,number of transactions..etc?
Hi @Anjali9088 :smile: I don't believe there are any on private networks. It will all be dependent on your block size, which you can set to be arbitrarily large. See this for an example: https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/#1-set-the-block-size
On public networks, the limitations are set by the protocol and not Besu. The current block gas limit on mainnet is roughly 12.5 million gas and blocks happen every 13 seconds or so.
@YashShukla - not sure if you found the answers to these back when you asked but:
1) Yes :-)
2) Private transaction on PoW or Clique networks is currently an early access feature - https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/#reorg-compatible-privacy
Hi @poojagupta23 Besu supports standard Ethereum cryptography for transaction signature and validation. These can be extended further through use of permissioning to create restrictions in a private networks as required: https://besu.hyperledger.org/en/stable/Concepts/Permissioning/Permissioning-Overview/
Besu also supports TLS encryption for added security between network applications: https://besu.hyperledger.org/en/stable/Concepts/TLS/
Has joined the channel.
Thanks for responding. I have another question for clarification. When a transaction is received by a besu node in a permissioned network, it firstly goes through the ingress contract, then the account/node rule contract and finally through the application contract? or is it first received by the application contract which then sends it through the ingress contract?
Yes, the current implementation of the permissioning smart contracts use a static ingress contract that does not change to then call out to specific node/account contracts that can be changed over time. These contracts then respond to specific methods to Besu that determines if a transaction or connection is allowed or not. You can refer to the EEA specification here for more information: https://entethalliance.github.io/client-spec/spec.html#sec-permissioning-smart-contract
Hi guys, without doing too much spam, we have created an Awesome Besu (https://github.com/41north/awesome-besu) repository to list awesome resources that the community has done to this client! So if you want, feel free to PR to add your plugins and/or related resources and give it a star :blush:
thanks for this! starred it.
Has joined the channel.
Hi, so recently ive been creating a web app using besu clique consensua. Everything seems fine until when i try to connect a host to the node remotely via rcp http, it wont let me connect and i am using metamask. I have set the rpc http host with my node's ip machine, is there any step i mightve missed?
Perhaps the host allowlist? `--host-allowlist="*"` - by default we only let in localhost and 127.0.0.1.
note that prior to 1.5.1 this was `--host-whitelist`
Thanks shemnon for the responds, unfortunately i also had that configured. The thing is, when i use the ip's machine on --rpc-http-host i cant connect from 127.0 0.1 on metamask and can only connect via the ip's machine ip on the node's but from outside it wont let me connect. If any helps, i use --permissions-nodes-config-file and --config-file when running the node.
Thanks shemnon for the responds, unfortunately i also had that configured. The thing is, when i use the ip's machine on --rpc-http-host i cant connect from 127.0 0.1 on metamask and can only connect via the ip's machine ip on the node's but from outside it wont let me connect. If any helps, i use --permissions-nodes-config-file-enabled and --config-file when running the node.
Thank you shemnon for the responds, i am currently using besu version 1.4.0 and i cannot use the new host allowlist command. Does that mean the latest use of the besu is required?
Thank you shemnon for the responds and pointing that out i am not aware of the updare, however i am currently using besu version 1.4.0 and i cannot use the new host allowlist command. Does that mean the latest use of the besu is required?
I am trying to use besu 1.5.1, but i cannot find the cli executable file. Can someone guide me through the file? Thank you in advance
If you are on 1.4.0 the command will be `--host-allowlist`. Use the `--help` command to get you the correct options that can be used.
The command for 1.4.0 is `--host-whitelist` - Also, the performance of 1.5.0 is vastly improved.
Thanks arash009, in besu 1.4.0 i use --host-whitelist and i still cant connect from remote connection. However i am trying on 1.5.0 and it allows me the use of --host-allowlist and --host-whitelist but it still wont accept connection outside local
--host-whitelist
Is it possible that by default, my port got blocked (i checked netstat -an the port 8545 is listening on 0.0.0.0 ) or there is some configuration before i can connect from remote in besu?
So a little update, i can connect with the same subnetwork but when i use different network (mobile hotspot) it wont connect to the node so i am not sure if besu requires any configuration for this
So a little update, i can connect with the same subnetwork but when i use different network (mobile hotspot) it wont connect to the node so it is not a host problem and i am not sure if besu requires any configuration for this
Can you check the Besu logs to determine the exact error?
How can i check the logging?is there any additinional configuration for logging?
I see nothing on the log, theres only log about the communication between node. Do i need to enable rpc logging configuration?
I see nothing on the log, theres only log about the communication between node. Is there configuration for rpc logging?
Does your network have a firewall? If it's a residential network try `--nat-method=upnp` - which will ask the residential router to open up an external port. The address will be different and based on your residential router's WAN interface.
Has joined the channel.
Has joined the channel.
Hi, Had a query related to migration of Besu/Orion combo from (1.2.5/1.4.0) to (1.5.0/1.6.0), when there are no private transactions. Was looking at https://wiki.hyperledger.org/display/BESU/Critical+Issue+for+Privacy+Users which says there shouldn't be any issues if there are no private transaction. But besu nodes fails to startup after the upgrade and runs into org.rocksdb.RocksDBException: You have to open all column families. Column families not opened: �, �, �, �, �
Has joined the channel.
@besu-
@besu-bot
User User_1 added by rjones.
ping
Hi Shantaram. Let me try to help you out.
Could you confirm the Besu and Orion versions that you are migrating from/to?
Also, if you could share the whole startup logs it can help us trace this problem.
Cheers!
Hi Shantaram. Let me try to help you out.
Could you share the whole startup logs it can help us trace this problem.
Cheers!
Also, if you don't have private transactions to migrate. You could try to start with a new database and re-sync with the network.
Thanks Lucas. Was trying to confirm the behaviour. it works if i delete /database/private folder
Yeah, I don't understand why it would fail if we don't have private txs. I'm interested in the logs to see if I can understand what might be going on.
```
```
```
Setting logging level to INFO
2020-08-10 19:47:17.247+00:00 | main | INFO | AltBN128PairingPrecompiledContract | Using native alt bn128
2020-08-10 19:47:18.130+00:00 | main | INFO | SECP256K1 | Using native secp256k1
2020-08-10 19:47:18.134+00:00 | main | INFO | Besu | Starting Besu version: besu/v1.5.0/linux-x86_64/openj9-java-11
2020-08-10 19:47:18.555+00:00 | main | WARN | Besu | --min-gas-price has been ignored because --miner-enabled was not defined on the command line.
2020-08-10 19:47:18.723+00:00 | main | WARN | Besu | Permissions are disabled. Cannot enable PERM APIs when not using Permissions.
2020-08-10 19:47:18.837+00:00 | main | INFO | Besu | Connecting to 2 static nodes.
2020-08-10 19:47:18.843+00:00 | main | INFO | Besu | Security Module: localfile
2020-08-10 19:47:18.961+00:00 | main | INFO | KeyPairUtil | Loaded public key 0x2f235770795262f505dfc60d2a678ba63566a2e5479d75f19602a29275fb1934334ef90121bba779af7a303a29c9970dbba90a7a318321b408841003e565e4d0 from /qdata_decrypted/ethereum/nodekey
2020-08-10 19:47:18.980+00:00 | main | INFO | DatabaseMetadata | Lookup database metadata file in data directory: /qdata/ethereum
2020-08-10 19:47:18.986+00:00 | main | INFO | RocksDBKeyValuePrivacyStorageFactory | Existing private database detected at /qdata/ethereum. Version 0
2020-08-10 19:47:18.986+00:00 | main | INFO | DatabaseMetadata | Lookup database metadata file in data directory: /qdata/ethereum
2020-08-10 19:47:18.986+00:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /qdata/ethereum. Version 0
org.rocksdb.RocksDBException: You have to open all column families. Column families not opened: , , , ,
```
Has left the channel.
Let me know when you have a update on this one or need any more information
`--nat-method=upnp`
```
etrieveRemoteDescriptors | Device descriptor retrieval failed, no response
```
```
RetrieveRemoteDescriptors | Device descriptor retrieval failed, no response
```
```
jupnp-12 | WARN | RetrieveRemoteDescriptors | Device descriptor retrieval failed, no response:
```
```jupnp-12 | WARN | RetrieveRemoteDescriptors | Device descriptor retrieval failed, no response:
```
it never gets any response from the default gateway, is this behavior caused by the network administrator disabled upnp?
it never gets any response from the default gateway, is this behavior caused by the network administrator disabled upnp? By the way I am using campus network
:besu: Besu 1.5.2 is now available :besu:
Release notes & download link: https://github.com/hyperledger/besu/releases/1.5.2
Highlights :stars:
* A new (experimental!) state backup and restore option
* Better ethstats support
:besu: Besu 1.5.2 is now available :besu:
Release notes & download link: https://github.com/hyperledger/besu/releases/1.5.2
Highlights :stars:
* A new (early access!) state backup and restore option
* Better ethstats support
Has left the channel.
Hi Besu Experts, can you please justify what are each of the term in the following which is got when besu starts minging...like what does this (0.0%)gas indicates?....what is the 0 om? And also what about the pool and thread?...etc
2020-08-17 09:27:42.715+05:30 | pool-9-thread-2 | INFO | BlockMiner | Produced and imported block #38 / 1 tx / 0 om / 786,506 (0.0%) gas / (0xb16bab907d361ebd67ca2cb91366cc78502591d327c6c87aa34762f1781ebf1f) in 0.714s
2020-08-17 09:27:43.155+05:30 | pool-9-thread-1 | INFO | BlockMiner | Produced and imported block #39 / 0 tx / 0 om / 0 (0.0%) gas / (0x4040c062377d3e8b0f6ec3871493af27a2ee71cae9a4bfc55d63a7942447ecd3) in 0.154s
0 om means 0 ommers. Ommers is another term for uncles, this indicates there are no uncle blocks associated with the newly mined block.
The pool and thread numbers indicate the thread being used to execute with and the thread pool to which it's associated. This is an internal implementation detail that isn't really that important
The gas measurement indicates the amount of gas used by all the transactions within a block. I'm not sure what the % indicates though.
@Anjali9088 hope that helps
:thumbsup:
The % is what # of the block limit of gas is being used.
The % is what amount of the block limit of gas is being used.
Has joined the channel.
I want to send transation through web3.js.
I want to send transation through web3.js and I use the besu-sample-networks. I use `curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' localhost:8545` to get the chainid is 0x7e2.
Then I use web3.js to get the data 'const Web3 = require('web3')
const web3 = new Web3('http://127.0.0.1:8545')
var Tx = require('ethereumjs-tx').Transaction
web3.eth.getBalance('0x627306090abaB3A6e1400e9345bC60c78a8BEf57', (err, wei) => { balance = web3.utils.fromWei(wei, 'ether')})
const account1 = '0x627306090abaB3A6e1400e9345bC60c78a8BEf57'
const privateKey1 = Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3','hex')
const account2 = '0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73'
web3.eth.getBalance(account1, (err, result) => { console.log(result)})
//web3.eth.sendTransaction({ from: account1, to: account2, value: web3.utils.toWei('1.27', 'ether')})
web3.eth.getTransactionCount(account1,(err, txCount) => {
// 创建交易
const txObject = {
nonce: web3.utils.toHex(txCount),
chainId: "0x7e2",
to: account2,
value: web3.utils.toHex(web3.utils.toWei('1.27','ether')),
gasLimit: web3.utils.toHex(2100),
gasPrice: web3.utils.toHex(web3.utils.toWei('10','gwei')),
}
console.log(txObject)
const tx = new Tx(txObject)
tx.sign(privateKey1)
const serializedTransaction = tx.serialize()
const raw = '0x' + serializedTransaction.toString('hex')
console.log('raw:', raw)
// web3.eth.sendRawTransaction(serializedTx.toString('hex'), function(err, hash) {
// console.log('Error:', err);
// console.log('Hash:', hash);
// });
})'
Then I get the params:
I want to send transation through web3.js and I use the besu-sample-networks. I use `curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' localhost:8545` to get the chainid is 0x7e2.
Then I use web3.js to get the data
`const Web3 = require('web3')
const web3 = new Web3('http://127.0.0.1:8545')
var Tx = require('ethereumjs-tx').Transaction
web3.eth.getBalance('0x627306090abaB3A6e1400e9345bC60c78a8BEf57', (err, wei) => { balance = web3.utils.fromWei(wei, 'ether')})
const account1 = '0x627306090abaB3A6e1400e9345bC60c78a8BEf57'
const privateKey1 = Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3','hex')
const account2 = '0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73'
web3.eth.getBalance(account1, (err, result) => { console.log(result)})
//web3.eth.sendTransaction({ from: account1, to: account2, value: web3.utils.toWei('1.27', 'ether')})
web3.eth.getTransactionCount(account1,(err, txCount) => {
const txObject = {
nonce: web3.utils.toHex(txCount),
chainId: "0x7e2",
to: account2,
value: web3.utils.toHex(web3.utils.toWei('1.27','ether')),
gasLimit: web3.utils.toHex(2100),
gasPrice: web3.utils.toHex(web3.utils.toWei('10','gwei')),
}
console.log(txObject)
const tx = new Tx(txObject)
tx.sign(privateKey1)
const serializedTransaction = tx.serialize()
const raw = '0x' + serializedTransaction.toString('hex')
console.log('raw:', raw)
})`
Then I get the params:
["0xf86c048502540be40082083494fe3b557e8fb62b89f4916b721be55ceb828dbd7388119ff24570bf00008026a03958bd8ac5df893136bbe69c11e3fb0aa97bd2a218b4136535860958287c34aaa01813ed11b749646a456507e66f103734acc31df4e03ebb08c37d933f11acf0d3
89567992250999979000000
"]
I use `curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xf86c048502540be40082083494fe3b557e8fb62b89f4916b721be55ceb828dbd7388119ff24570bf00008026a03958bd8ac5df893136bbe69c11e3fb0aa97bd2a218b4136535860958287c34aaa01813ed11b749646a456507e66f103734acc31df4e03ebb08c37d933f11acf0d3"],"id":1}' http://127.0.0.1:8545`
But I got wrong result:
`{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -32000,
"message" : "Wrong chainId"
}
}`
How can I use eth_sendRawTransaction?
I want to send transation through web3.js and I use the besu-sample-networks. I use `curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' localhost:8545` to get the chainid is 0x7e2.
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x7e2"
}
Then I use web3.js to get the data
`const Web3 = require('web3')
const web3 = new Web3('http://127.0.0.1:8545')
var Tx = require('ethereumjs-tx').Transaction
web3.eth.getBalance('0x627306090abaB3A6e1400e9345bC60c78a8BEf57', (err, wei) => { balance = web3.utils.fromWei(wei, 'ether')})
const account1 = '0x627306090abaB3A6e1400e9345bC60c78a8BEf57'
const privateKey1 = Buffer.from('c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3','hex')
const account2 = '0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73'
web3.eth.getBalance(account1, (err, result) => { console.log(result)})
//web3.eth.sendTransaction({ from: account1, to: account2, value: web3.utils.toWei('1.27', 'ether')})
web3.eth.getTransactionCount(account1,(err, txCount) => {
const txObject = {
nonce: web3.utils.toHex(txCount),
chainId: "0x7e2",
to: account2,
value: web3.utils.toHex(web3.utils.toWei('1.27','ether')),
gasLimit: web3.utils.toHex(2100),
gasPrice: web3.utils.toHex(web3.utils.toWei('10','gwei')),
}
console.log(txObject)
const tx = new Tx(txObject)
tx.sign(privateKey1)
const serializedTransaction = tx.serialize()
const raw = '0x' + serializedTransaction.toString('hex')
console.log('raw:', raw)
})`
Then I get the params:
["0xf86c048502540be40082083494fe3b557e8fb62b89f4916b721be55ceb828dbd7388119ff24570bf00008026a03958bd8ac5df893136bbe69c11e3fb0aa97bd2a218b4136535860958287c34aaa01813ed11b749646a456507e66f103734acc31df4e03ebb08c37d933f11acf0d3
89567992250999979000000
"]
I use `curl -X POST --data '{"jsonrpc":"2.0","method":"eth_sendRawTransaction","params":["0xf86c048502540be40082083494fe3b557e8fb62b89f4916b721be55ceb828dbd7388119ff24570bf00008026a03958bd8ac5df893136bbe69c11e3fb0aa97bd2a218b4136535860958287c34aaa01813ed11b749646a456507e66f103734acc31df4e03ebb08c37d933f11acf0d3"],"id":1}' http://127.0.0.1:8545`
But I got wrong result:
`{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -32000,
"message" : "Wrong chainId"
}
}`
How can I use eth_sendRawTransaction?
I'm not familiar with web3.js, but somehow the generated RLP has a chainId of 1. So the javascript code is in error, although I don't know how.
Has joined the channel.
I want to keep sending transactions in BESU to test transaction performance. Is there any easy way? I use sendRawtransaction but get a wrong chainid error, and I don't know how to modify it.
The web3.js community forums are here - https://gitter.im/ethereum/web3.js
Finde the solution:
https://besu.hyperledger.org/en/1.4.0-beta2/HowTo/Develop-Dapps/Use-web3js/
Hello, I have a question about besu with IBFT2 an orion. I found some examples:
https://github.com/PegaSysEng/besu-sample-networks/blob/master/docker-compose_privacy_poa.yml
https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2-with-privacy
and in both the orion services are attached to besu nodes that aren't validators. Is there a reason for that? Would there be issues if I attach orion services to validating besu nodes?
Hello, I have a question about besu with IBFT2 and orion. I found some examples:
https://github.com/PegaSysEng/besu-sample-networks/blob/master/docker-compose_privacy_poa.yml
https://github.com/PegaSysEng/besu-kubernetes/tree/master/kubectl/ibft2-with-privacy
and in both the orion services are attached to besu nodes that aren't validators. Is there a reason for that? Would there be issues if I attach orion services to validating besu nodes?
Hi. The general network topology recommended are that your validator nodes are seperate to your RPC nodes with user access that you submit transactions through, so the examples reflect that. However there is no reason why you cant have Orion working with a validator node instead.
Has joined the channel.
Has joined the channel.
is there support for web3py in besu?? because i was able to connect to besu node using web3py but couldn't get it to deploy smart contract
you are probably hitting this: https://web3py.readthedocs.io/en/latest/middleware.html#geth-style-proof-of-authority - Where it says Geth it actually applies to all PoA consensus, Clique, IBFT, IBFT2, etc.
you are probably hitting this: https://web3py.readthedocs.io/en/latest/middleware.html#geth-style-proof-of-authority - Where it says Geth it actually applies to all PoA consensus engines: Clique, IBFT, IBFT2, etc.
Has joined the channel.
Hi, I would like to ask if you know some real use cases for Besu
Has joined the channel.
One question, Besu is an alternative to fabric EVM?
Hi there! Thanks for the question! Because Besu is use case agnostic, you can build whatever blockchain application you want on top of Besu. A few live examples of use cases using Besu are LACChain, ZarX, Public Mint, and LiquidShare.
Good for running private nodes on Ethereum network?
Can Besu with used with Fabric EVM?
Yep, that's one of the primary use cases for Besu! Check out the documentation for it here: https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
The Fabric EVM project relies on Burrow's modular EVM implementation, so I don't think it would be an easy project to port over to using Besu. Please reach out if its something you're interested in!
Thanks @VijayMichalik
How can I help?
What's the easiest path to interoperability with Besu from Fabric, considering we're already vested in Fabric EVM.
One thing to look into is the EvmTool we are using for fuzz testing. It can calculate state transitions from a CLI interface. While not directly portable to Burrow's interface I think there is room to create a stand alone EVM evaluator that can be made stateful across requests.
Has joined the channel.
Hi guys
I am new member
Can we use web.js apis to connect to the consortium networks of Hyperledger Besu ?
I tried and failed and posted this yesterday in stack exchange
Has joined the channel.
Hello besu world, Im new to besu network.
im learning besu from this https://learn.consensys.net portal.
I stuck here at besu --version. and get this mesg
ravi@ubuntu:~/besu/besu-1.4.0$ bin/besu --version
Unrecognized option: --add-opens
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
ravi@ubuntu:~/besu/besu-1.4.0/bin$ java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-8u232-b09-0ubuntu1~16.04.1-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
is anything to do with syntax.. ? i dont know where im missing..
Hi Besu Experts, I am running besu permissionning network. I have cloned "https://github.com/PegaSysEng/besu-sample-networks". When I ran the script ./run-permissioning.sh, all the nodes have come up but the peers count for each of them is showing 0. Is something broken?
Besu requires Java 11. This is an expected failure when being run on Java 8.
Ubuntu 18.04 instructions on how to install Java 11 - https://tecadmin.net/install-oracle-java-11-on-ubuntu-16-04-xenial/
I'm not sure any of the maintainers are on Stack Exchange. Can you re-post the question?
[This one](https://ethereum.stackexchange.com/questions/86904/i-could-not-use-web3-js-module-and-perform-getaccounts-etc-for-consortium-netwo), I think
yes, I upgraded to java11 and the error gone. Thank you..
Dear all, I have deployed my smart contract on the besu permissioned network. I want to interact it using truffle console. But I am getting below error. Please help how to resolve it?
poojagupta@Poojas-MacBook-Air permissioning-smart-contracts % truffle console --network development
Error: Mnemonic invalid or undefined
at /Users/poojagupta/Desktop/world_wire/besu-sample-networks/permissioning-smart-contracts/node_modules/truffle-hdwallet-provider/dist/webpack:/truffle-hdwallet-provider/src/index.js:60:1
at new checkBIP39Mnemonic (/Users/poojagupta/Desktop/world_wire/besu-sample-networks/permissioning-smart-contracts/node_modules/truffle-hdwal
Dear all, I have deployed my smart contract on the besu permissioned network. I want to interact with it using truffle console. But I am getting below error. Please help how to resolve it?
poojagupta@Poojas-MacBook-Air permissioning-smart-contracts % truffle console --network development
Error: Mnemonic invalid or undefined
at /Users/poojagupta/Desktop/world_wire/besu-sample-networks/permissioning-smart-contracts/node_modules/truffle-hdwallet-provider/dist/webpack:/truffle-hdwallet-provider/src/index.js:60:1
at new checkBIP39Mnemonic (/Users/poojagupta/Desktop/world_wire/besu-sample-networks/permissioning-smart-contracts/node_modules/truffle-hdwal
Has joined the channel.
:partying_face: :besu: *Besu 1.5.3 is now available* :besu: :partying_face:
Release notes & download link: https://github.com/hyperledger/besu/releases/1.5.3
*Highlights* :star2:
- A long-standing known issue using permissioning with Kubernetes is now fixed :tada:
- Early access DNS support :calling:
- Updates to Onchain Privacy Group Management :man_detective_light_skin_tone:
Has left the channel.
Has joined the channel.
Hi Besu devs, I am a newbie to Besu and blockchain in general. A couple of questions/design suggestions I need your advice on:
We want to create a dapp on top of Besu with focus on privacy in the chain. Our system needs to have a UI, smart contracts that will be called from the UI, backend to generate signatures and a caching layer that caches the blockchain transactions.
Our initial version was built on top of Quorum (without privacy) and the caching layer loops through the transactions in the chain and caches it in a DB. Now we wnat to add privacy to the data in the chain.
1. Correct my understanding if I am wrong: I can call eea_sendRawTransaction to send the transaction payload and the group ID to besu, which stores it in Orion and distributes it to the orion nodes of the participants that are involved in the private transaction.
2. For us, there are no participants or a consortium, but just different users in the system having different permissions. So for every combination of permission set I need to have, I should be creating a separate privacy group right?
3. If the above is true, I should also be deploying separate besu and orion nodes for each unique permission set I have (multiple users in our system can have the same permission set). I am ignoring multi-tenency because we need to use onchain privacy groups since group members will be modified over time
4. Now the crux: how do we make the caching system work? If the system reads the transactions in the chain, it only gets the marker transactions. So there is no way to get the private transaction from the marker? Or is there a way to read the private transactions from orion given the enclave key/private transaction hash?
5. Another requirement is to add validations to the private transactions in the chain? Our existing solution validates it in the contract (which the UI will send the data to) and writes it to the chain if valid. But in besu privacy mode, we cannot add validations before we write to Orion. So this means we need to add the validation in the private transaction processor (I am assuming that it will be a smart contract in itself, but then I am not sure what is a precompiled contract then! Maybe we can add the validation in the precompiled contract and update the private world state only if the transaction is valid?)
Hi Besu devs, I am a newbie to Besu and blockchain in general. A couple of questions/design suggestions I need your advice on:
We want to create a dapp on top of Besu with focus on privacy in the chain. Our system needs to have a UI, smart contracts that will be called from the UI, backend to generate signatures and a caching layer that caches the blockchain transactions.
Our initial version was built on top of Quorum (without privacy) and the caching layer loops through the transactions in the chain and caches it in a DB. Now we want to add privacy to the data in the chain.
1. Correct my understanding if I am wrong: I can call eea_sendRawTransaction to send the transaction payload and the group ID to besu, which stores it in Orion and distributes it to the orion nodes of the participants that are involved in the private transaction.
2. For us, there are no participants or a consortium, but just different users in the system having different permissions. So for every combination of permission set I need to have, I should be creating a separate privacy group right?
3. If the above is true, I should also be deploying separate besu and orion nodes for each unique permission set I have (multiple users in our system can have the same permission set). I am ignoring multi-tenency because we need to use onchain privacy groups since group members will be modified over time
4. Now the crux: how do we make the caching system work? If the system reads the transactions in the chain, it only gets the marker transactions. So there is no way to get the private transaction from the marker? Or is there a way to read the private transactions from orion given the enclave key/private transaction hash?
5. Another requirement is to add validations to the private transactions in the chain? Our existing solution validates it in the contract (which the UI will send the data to) and writes it to the chain if valid. But in besu privacy mode, we cannot add validations before we write to Orion. So this means we need to add the validation in the private transaction processor (I am assuming that it will be a smart contract in itself, but then I am not sure what is a precompiled contract then! Maybe we can add the validation in the precompiled contract and update the private world state only if the transaction is valid?)
Hey so i was browsing the roadmap, https://wiki.hyperledger.org/display/BESU/Roadmap, which is a bit out of date.
I'm curious where the status of IBFT is right now? I saw this "Enhancing support for block rewards and transaction fees in gas-charged networks." as an upcoming feature, but wondering if it is already implemented?
I heard @trent.mohay may have an answer :)
The roadmap you referenced is actually the current one and is up to date (updated 28 Aug, yesterday) since 1.6 is the next release in Octoberish (I don't have my calendar ready.)
The roadmap you referenced is actually the current one and is up to date (updated 28 Aug, yesterday) since 1.6 is the next release in Octoberish (I don't have my calendar handy.)
Apart from the gas fee improvements IBFT is awaiting consensus from EEA as to what the next version should include. The EEA BFT Task force hasn't released anything yet, their work is currently EEA members only access. (https://entethalliance.org/participate/working_groups/)
My understanding is that the reward is not TX execution but block production related. Currently miners get gas rewards but there is no block reward, and because it's BFT I don't think it's as simple as handing over a block reward to the block producer.
There is a Besu Contributor Call on tuesday, but the contributors who focus on consensus tend to call in tot he APAC calls, which the next one is in 3 weeks.
There is a Besu Contributor Call on Tuesday, but the contributors who focus on consensus tend to call in to the APAC calls, which the next one is in 3 weeks.
hmm ok thanks @shemnon - so if I understand correctly their currently is no reward for a non-clique style PoA in Besu?
correct. IBFT networks rely on off-network (support contract) and/or intrinsic incentives (I have to validate if I want to participate)
correct. IBFT networks currently rely on off-network (support contract) and/or intrinsic incentives (I have to validate if I want to participate). There is no cryptoeconomic incentive.
Hi, let me try to answer your questions :)
1. Correct, you specify the privacyGroupId and it will be distributed to the participant nodes.
2. What defines a user in your system? Besu privacy is based on the concept of participant nodes (identified by their Orion public key). So transactions are sent to a privacyGroup that represented a group of nodes that will have access to the private transaction.
3. I'm not sure I understand this part of the question. Maybe if you share a bit more about what makes a user in your system and some use cases I might be able to help.
4. You can read the private transaction from Orion using the payloadKey. However, you'd need to have some kind of protection layer to ensure that only participants allowed to read the transaction can call the api (maybe mapping your concept of users to Orion keys). Besu also exposes an api for reading private transactions, assuming the node is a participant (priv_getPrivateTransaction and priv_getTransactionReceipt). So your caching layer could use those apis. Just be aware that once the caching layer reads the information, it needs to ensure only the right participants have access to it.
5. I'm not sure if I understood this part. You want to validate a private transaction based on what? If you have a smart contract that does the validation for you, you can deploy the contract in the privacy group and use the same logic. You'll need to deploy one validator contract per privacy group because there is no shared information between privacy groups.
Also, if you need some sort of global information for validation (that applies to all groups), you can have the information in a public smart contract, and your private validator contract can read that information (private contracts can read information from the public state).
I hope these answers help you a bit. Let me know if you have any further questions!
Thanks @lucassaldanha for the answers. I have much better clarity now than before.
Thanks @lucassaldanha for the answers. I have much better clarity now than before :pray:
So the project scope is like this: a big bank that is there worldwide wants us to build a blockchain system that has utmost requirements for privacy on the chain. The blockchain nodes will be spawned by the bank. However, there will be employees in the bank and external clients of the bank, who would use the system and the chain. So the requirement for privacy on the chain.
Users of the system will be employees in the bank and potential external clients (who cannot spawn nodes but can read off the chain and potentially use it alongside ZK proofs to show off their credibility etc.)
So the project scope is like this: a big bank that is there worldwide wants us to build a blockchain system that has utmost requirements for privacy on the chain. The blockchain nodes will be spawned by the bank. However, there will be employees in the bank and external clients of the bank, who would use the system and the chain. So the requirement for privacy on the chain.
Users of the system will be employees in the bank and potential external clients (who cannot spawn nodes on their own but can read off the chain and potentially use it alongside ZK proofs to show off their credibility etc.). The bank can spawn a node for the external clients and give them the keys.
So the project scope is like this: a big bank that is there worldwide wants us to build a blockchain system that has utmost requirements for privacy on the chain. The blockchain nodes will be spawned by the bank. However, there will be employees in the bank and external clients of the bank, who would use the system and the chain. So the requirement for privacy on the chain.
Users of the system will be employees in the bank and potential external clients (who cannot spawn nodes on their own but can read off the chain and potentially use it alongside ZK proofs to show off their credibility etc. - this part is still hazy at this point though, but whats clear is the bank has 100% control on if and when to spawn a besu node for each client)
Also on securing the caching layer: yes we will have a separate security mechanism for this and make sure only the users with the right permissions can use it
So the project scope is like this: a big (international) bank wants us to build a blockchain system that has utmost requirements for privacy on the chain. The blockchain nodes will be spawned by the bank. However, there will be employees in the bank and external clients of the bank, who would use the system and the chain. So the requirement for privacy on the chain.
Users of the system will be employees in the bank and potential external clients (who cannot spawn nodes on their own but can read off the chain and potentially use it alongside ZK proofs to show off their credibility etc. - this part is still hazy at this point though, but whats clear is the bank has 100% control on if and when to spawn a besu node for each client)
Also on securing the caching layer: yes we will have a separate security mechanism for this and make sure only the users with the right permissions can use it
Here are a few followup questions that I would be grateful if you could help:
1. Now if we have user-A with permissions to do actions 1,2 and 3 and user-B who can do actions 2,3 and 4 and there is an admin user who can do all the actions. I am clear that we need to create separate privacy groups for the two sets of permissions. Do we need to create separate besu and orion nodes for the 2 privacy groups?
2. We woud be using onchain privacy groups, so does that make a difference in the number of besu and orion nodes we need to spawn?
3. Reading the private transaction: I saw that in this besu API documentation: https://besu.hyperledger.org/en/stable/Reference/API-Methods/#priv_getprivatetransaction, that I can only read the private transaction if I am a participant? So if I have an admin that is part of all privacy groups, I should be able to use the admin's secret key and read all the prvate transactions right?
4. Correct me if I am wrong if the workflow will work: the caching layer reads the marker transactions as the admin, get the privateTx hash and call either orion or besu to get the payload
5. On validation: there will be storage in the chain which caches the id and some metadata. This can be private. If the validator contract receives a payload with the same id, we check the metadata and accept or reject the transaction. So this means I can deploy a private contract, check the private world state and send it to orion only if valid?
6. If the above is correct, how do we call the validator contract from our system? I can see we have eea_sendrawtransaction to send the privateTx to orion, but here we have a private contract to be invoked, which has to validate and send it to orion if valid.
Here are a few followup questions that I would be grateful if you could help:
1. Now if we have user-A with permissions to do actions 1,2 and 3 and user-B who can do actions 2,3 and 4 and there is an admin user who can do all the actions. I am clear that we need to create separate privacy groups for the two sets of permissions. Do we need to create separate besu and orion nodes for the 2 privacy groups?
2. We would be using onchain privacy groups, so does that make a difference in the number of besu and orion nodes we need to spawn?
3. Reading the private transaction: I saw that in this besu API documentation: https://besu.hyperledger.org/en/stable/Reference/API-Methods/#priv_getprivatetransaction, that I can only read the private transaction if I am a participant? So if I have an admin that is part of all privacy groups, I should be able to use the admin's secret key and read all the prvate transactions right?
4. Correct me if I am wrong if the workflow will work: the caching layer reads the marker transactions as the admin, get the privateTx hash and call either orion or besu to get the payload
5. On validation: there will be storage in the chain which caches the id and some metadata. This can be private. If the validator contract receives a payload with the same id, we check the metadata and accept or reject the transaction. So this means I can deploy a private contract, check the private world state and send it to orion only if valid?
6. If the above is correct, how do we call the validator contract from our system? I can see we have eea_sendrawtransaction to send the privateTx to orion, but here we have a private contract to be invoked, which has to validate and send it to orion if valid.
Here are a few followup questions that I would be grateful if you could help:
1. Now if we have user-A with permissions to do actions 1,2 and 3 and user-B who can do actions 2,3 and 4 and there is an admin user who can do all the actions. I am clear that we need to create separate privacy groups for the two sets of permissions. Do we need to create separate besu and orion nodes for the 2 privacy groups?
2. We would be using onchain privacy groups, so does that make a difference in the number of besu and orion nodes we need to spawn?
3. Reagrding the private transaction API: I saw that in this besu API documentation: https://besu.hyperledger.org/en/stable/Reference/API-Methods/#priv_getprivatetransaction, that I can only read the private transaction if I am a participant? So if I have an admin that is part of all privacy groups, I should be able to use the admin's secret key and read all the prvate transactions right?
4. Correct me if I am wrong if the workflow will work: the caching layer reads the marker transactions as the admin, get the privateTx hash and call either orion or besu to get the payload
5. On validation: there will be storage in the chain which caches the id and some metadata. This can be private. If the validator contract receives a payload with the same id, we check the metadata and accept or reject the transaction. So this means I can deploy a private contract, check the private world state and send it to orion only if valid?
6. If the above is correct, how do we call the validator contract from our system? I can see we have eea_sendrawtransaction to send the privateTx to orion, but here we have a private contract to be invoked, which has to validate and send it to orion if valid.
Hi, i have listened that besu is no longer a HL framewok, can any1 give me more information about that?
Where did you get that? Besu is still a HL framework.
My teacher told me that xD
Where did your teacher get that info? I find it concerning that a teacher would spread such misinformation.
Here we go with the followup answers! :)
1 and 2. Privacy groups members are identified by their Orion public key, it doesn't really matter the number of nodes in the network. Although in most use cases you might have a pair of Besu and Orion nodes per participant, it is possible to have multiple participants using the same node (with Multi-tenancy this is quite common). I remember that you mentioned that you aren't considering multi-tenancy because you want to use flexible privacy groups. However, depending on your timeline, you might be ok. We are planning to release support for multi-tenancy for flexible privacy groups in our 1.6 version (should be released in a month or so).
3. Correct. This pattern is really common when there is a regulator or some entity that must have access to all the information. As long as you add the admin as part of every group created, the admin will be able to read the information from that privacy group.
4. Yep, this workflow is correct. You won't need to call Orion directly, I believe that prig_getPrivateTransaction will get the original private transaction from Orion for you. Once you read the PMT, you use the PMT hash to find the private transaction and the private transaction receipt from Besu.
5. Let me try to explaing my thinking here. There are two different concepts here. A valid transaction at the protocol level isn't the same as a valid transaction based on some business logic rules. Upon receiving a "protocol valid" private tx (e.g. correct RLP, signature, etc), the transaction will be sent to Orion. However, when the transaction is being executed, let's say you are calling a smart contract. This smart contract will do you business level validation and can fail processing the tx. This will mark the tx execution as failed. Any business level validation would need to be done via smart contracts.
6. Smart contracts can talk to each other. You can check solitidy docs on how to do it. Let's imagine the following scenario: a system that allow members of a privacy group to exchange tokens. You would have a private smart contract that has got the token exchange logic. A member of the group would send a tx to this contract to transfer tokens. When processing the transfer, the exchange contract can also read information from a public contract that has some business logic rules to check if the transfer is valid. This is what I think it would make business logic validation. I'm not sure if I'm being clear, let me know if it doesn't make any sense.
Thanks @lucassaldanha for the help again :pray: Most of the things are clear except one small tiny bit (sorry for the newbie confusion):
It is clear now that the privateTx gets added to Orion and the smart contract validates it later during the processing phase.
Correct me if I am wrong: In a system without privacy, we can call the smart contract from web3 and the contract does business validation. If it is all fine, then the transaction gets mined and written to the chain. If not, nothing gets written on the chain. So our caching layer reads only the valid transactions from the chain.
However, with privacy, both the privateTx and PMT get written before doing business validation. While procssing the transaction later, we can do validation in a smart contract. Now if it fails, the privateTx processing will fail but the PMT will already be there in the chain right? So when the caching layer reads the PMT and the privateTx from orion, it will not know if the business validation has failed?
Now, how to ensure the caching layer only reads the valid privateTx? Or is there an API that given a PMT, we can find out if the smart contract execution failed?
Has joined the channel.
I dont know, I asked and he told me was a thought he had
A PMT exists regardless of the status of the execution of the private tx. The goal with the PMT is to ensure all nodes will execute the Private TX at the same point. If the private tx is successful or not isn't defined by the PMT status, but by the private tx execution status.
To find out if a Private TX succeeded, you should use priv_getPrivateTransactionReceipt, passing as a parameter the hash of the PMT.
This API will retrieve the receipt of the execution of the private transaction associated with the PMT. And the receipt has got all the information re the private tx execution, including if it has failed or succeeded.
Thanks @lucassaldanha for the response. Everything is clear now :slight_smile: Thanks for the help, you're the best!
Has joined the channel.
hi guys I have some question, I use orion first time, I got a trouble . when I process orion server in local pc, I get message "Failed to read password list" so how make passwordFile, Do you have any examples?? or solution?
privacy tutorial is not working, especially using orion,
Can you specify which tutorial you are following, and at what step in the process you are having issues? This tutorial should take you through the relevant steps: https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/#configure-a-network-for-private-transactions
second step. that mean that I make password file? so How? orion does not explain. and orion server does not work..
@GregTheGreek @shemnon just a clarification on this one. As per the roadmap, there has been some work done to date that includes support for block rewards to be specified when using an IBFT2 network. You can specify a reward amound and an address of where these rewards will go, however this cannot be currently adjusted once the network is up. See https://besu.hyperledger.org/en/latest/HowTo/Configure/Consensus-Protocols/IBFT/
Additional mechanism to support changing the reward amount and recipient are on the roadmap
You simply create a text file titled `passwordFile` specifying a password that you then use in step 3
yes i make passwordFile than included password. but orion does not decrypt.. do you give me a sample code in passwordFile?
my example {"hellobesu"}
inside passwordFile
and 3 t step. orion -g nodeKey
at that time, Orion require password on prompt so I typing password hellobesu
You need to make sure to type exactly the characters saved in the file, including any white space or return characters
well I check the file but file is good, passwordFile.txt ?? or just passwordFile is ok?
[INFO ] [main] 09-02-2020 14:45:06 n.c.o.c.Orion - starting orion
[INFO ] [main] 09-02-2020 14:45:06 n.c.o.c.Orion - using /Users/andrekim/blockchain/prototype/IBFT-Network/Node-1/Orion/orion.conf provided config file
[ERROR] [main] 09-02-2020 14:45:07 n.c.o.c.Orion - Unexpected exception upon starting Orion
net.consensys.orion.enclave.EnclaveException: Key decryption failed
it is error message
nodeurl = "http://127.0.0.1:8080/"
nodeport = 8080
clienturl = "http://127.0.0.1:8888/"
clientport = 8888
publickeys = ["/Users/andrekim/blockchain/prototype/IBFT-Network/Node-1/Orion/nodeKey.pub"]
privatekeys = ["/Users/andrekim/blockchain/prototype/IBFT-Network/Node-1/Orion/nodeKey.key"]
passwords = "passwordFile"
tls = "off"
orion conf file
do you follow the tutorial? is it work? what kind of version orion and besu?
Why don't you try to use a very simple password first? In your password file you could just have a simple word like "password", without the quotes and any line endings ...
I use that word but does not work
oh it work removed { and "
thanks guys
Has joined the channel.
Hi all,I'm looking for docker containers (or a compose file) to run some experiments locally. I've just searched this channel to see if my question was already answered and found reference to multiple image sources. What's the canonical location for supported and properly versioned docker files in HL Besu?
Has joined the channel.
ubuntu crashed and now I get "org.rocksdb.RocksDBException: While open a file for random read: /home/linuxbrew/.linuxbrew/Cellar/besu/1.5.3/database/131271.ldb: No such file or directory" when I try to start my node
Hello Jon, have you seen https://github.com/PegaSysEng/besu-sample-networks/?
blarg, i forgot besu had a neomarxist CoC; gonna try geth
Yes, that was one of the ones I found 🙂 if that’s canonical I’ll work on that one, thanks.
I'm not affiliated with PegaSys, but it seems pretty updated. I've used a few times for my own tests
I'm not affiliated with PegaSys, but it seems pretty updated. I've used it a few times for my own tests
Are you running this on linux or windows?
Has left the channel.
This is the best for Besu and there are multiple variants you can pick from.
The sample-networks repo is the best for Besu and there are multiple variants you can pick from.
the official image is https://hub.docker.com/r/hyperledger/besu and the versioned dockerfile is in the Besu codebase https://github.com/hyperledger/besu/tree/master/docker
the sample-networks use the openjdk-11 image
Has joined the channel.
Hi people. Is there a way to migrate an already existing (Parity AuRA) chain to besu and start using iBFT2 from now on? I know that besu does not support the AuRA consensus protocol but is there a way to disable validation for blocks which were created under AuRA so we could import them and then seal with iBFT2 onwards.
There is currently no way to disable block validation. If we supported AuRa we could set a transition at a specific block to turn on IBFT. We also currently only support some parameters at transition points.
I see two possibilities. If the contracts don't rely on block numbers a custom transition software could be written to read the transactions from the old chain in raw form and re-post them to the IBFT chain. You wouldn't be able to change chainID.
Assuming AuRa does all it's magic in extradata Besu code change could be to allow PoW mining at transition points and set a fixed difficulty of zero so all blocks validate. But that is speculative and would require some code alterations inside Besu
Assuming AuRa does all it's magic in extradata Besu code could change to allow PoW mining at transition points and set a fixed difficulty of zero so all blocks validate. But that is speculative and would require some code alterations inside Besu. So the chain would report the old aura blocks as PoW and then transition to IBFT.
Hi, I already created a project in ethereum which is running perfectly
now i want to move it to besu
what's better approach? Do I configure my own network or use docker image
I want to make my transactions private and secure
New grafana dashboard for Besu : https://grafana.com/grafana/dashboards/12944
Hello Besu experts, Is there a way by which we can get the query response to be signed by the validator nodes in the network? Suppose, I send a query request to a smart contract then the response which I received should have the signature from the vallidator.
Is there a way by which a besu node returns a signed response for eth_call()?
I'm not sure if I know what you mean by signed response. Could you provide a bit more context?
When you say that you have created a project in Ethereum, do you mean that you have a private Ethereum network or are you deploying your contracts in a public network?
I am sending a eth_call() from a validator node in the network. The validator node gets the response and add its signature and then return me response+its signature. Currently, there is no way by which we can get signed response from validators in the besu network like we have it in other permissioned network like corda and fabric where one can explicitly mention to get signature from these nodes.
I am sending a eth_call() from a validator node in the network. The validator node gets the response and add its signature and then return me response+its signature to my dapp. Currently, there is no way by which we can get signed response from validators in the besu network like we have it in other permissioned network like corda and fabric where one can explicitly mention to get signature from these nodes.
my dapp is sending eth_call request from a validator node in the network. The validator node gets the response and add its signature and then return the response+its signature to my dapp. Currently, there is no way by which we can get signed response from validators in the besu network like we have it in other permissioned network like corda and fabric where one can explicitly mention to get signature from these nodes.
Hi Contributors,
I am not able to deploy the smartcontract on my member nodes in besu production network, I am able to deploy the smartcontract only on the nodes that are added to `extraData` field in `genesis.json` file, the validator nodes.
Can you help me with possible causes and fixes?
Thanks in advance.
Hi Contributors,
Hi Contributors,
I follow the tutorials to set three private networks(Clique, IBFT and Ethash), I can use Metamask send transactions on Clique, however there are same errors that "rpc error with pay load{...} on IBFT and Ethash networks".
How can I use Metamask send transactions on IBFT and Ethash?
Hi Contributors,
I follow the tutorials to set three private networks(Clique, IBFT and Ethash), I can use Metamask send transactions on Clique, however there are same errors that "rpc error with pay load{...} on IBFT and Ethash networks". However, I can use Metamask to check the balance of account, so I think the rpc is enabled.
How can I use Metamask send transactions on IBFT and Ethash?
Are you changing the `extraData` for a network that is currently running? That won't work. You can connect to the validating nodes with a non validating node and the transactions sohuld propagate to the validators.
Is there any more data about what the rpc error is form metamask? (perhaps in some logs on the console? Not deeply experienced with metamask so I am just guessing) Is rpc up on those nodes? are the correct RPC endpoints activated?
When changing the RPC provider that MetaMask is connecting to, you need to reset the account in MetaMask (this resets the account's tx nonce). I think the nonce being incorrect can cause this RPC error
Sorry, I don't think I have the knowledge to help you out. Maybe someone else can jump in! :)
No the extra`Data` is changed prior to the network setup, and I can see the list of validators using `ibft_getValidatorsByBlockNumber` api call to the member node.
Then there is some technical detail I must be missing. Soulds like it should work.
Hi @poojagupta23 The TLS communication support enabled on the RPC can be used to establish a trusted connection between a dapp and besu. Is there a any reason why this form of standard encryption is not suitable?
Hi, how to run besu-sample-network with gasPrice = 0
https://github.com/PegaSysEng/besu-sample-networks.git
I'm currently using public network but wanted to shift it to private
In [`config.toml`](https://github.com/PegaSysEng/besu-sample-networks/blob/3c709c7cc6d0867cfad43e80eb6ad1c2e8d4d53f/config/besu/config.toml) add `min-gas-price=0`
config.toml is at besu-sample-networks/config/besu/config.toml
untested, but that's the only config.toml I see so I think it will be all the validators and all the other besu nodes too.
You can setup your own network using Docker. Take a look at this repo with plenty of examples: https://github.com/PegaSysEng/besu-sample-networks
Hello everyone, please guys I would like to receive some ideas what could be happening in the following issue I am facing: I have an IBFT network that is operating for many months (currennlty ~15Million blocks and Free-cost of-gas) ultimately we are facing issues when trying to make transactions with some keys. What we have observed is the transactions are stuck in the Transaction pool. We have tested from many points (remix, nodejs and java) obtaining the same results. Can you please help me with some ideas what could be happening?
Is there a nonce gap? Is the lowest nonce for the address in the tx pool one more than the nonce on the chain?
If it's zero gas, I assume that the next pending tx has zero gas cost and/or the account has sufficient "ether" . If the TX has a non-zero gascost it may be hard to dislodge it from the mempool.
okay, thanks
I just modified docker-composer.yaml with min-gas-price for miner, bootnode, rpc and its work well
Hello @shemnon ,
* I can confirm that I am using the latest nonce (or the pending consecutive).
* Also we do not send any ethers in the transaction.
* The transaction is validated but sometimes it takes too long to be processed or is discarded if the transaction pool reached ~600 pooled transactions.
* Also I have tested in two different nodes (with 1.4.1 and 1.5.1 version)
I observe an intermitent behavior, that is, sometimes the transaction is validated accordinlgy but sometimes the transaction gets stuck in the transaction pool for a long time (3 minutes, 7 minutes or 1 hour) thus applications throws errors because of timeout (We have configured a maximum of 80 seconds before throwing an error).
Hello @shemnon ,
* I can confirm that I am using the latest nonce (or the pending consecutive).
* Also we do not send any ethers in the transaction.
* The transaction is validated but sometimes it takes too long to be processed or is discarded if the transaction pool reached ~600 txs.
* Also I have tested in two different nodes (with 1.4.1 and 1.5.1 version)
I observe an intermitent behavior, that is, sometimes the transaction is validated accordinlgy but sometimes the transaction gets stuck in the transaction pool for a long time (3 minutes, 7 minutes or 1 hour) thus applications throws errors because of timeout (We have configured a maximum of 80 seconds before throwing an error).
How full are the blocks?
as a % of the gas limit
Usually we have 60000 gas per block (at the current state) some peaks of 600 000 or 2Millions
as a percentage it is less than 1%.
Its hard to diagnose why the validators wouldn't be putting transactions into the block. Do you control a validator and can instrument it for debugging? A tx pool reaching 600 and 1% block useage sounds like there are deeper problems with block production.
:besu: :partying_face: *Besu 1.5.4 is out!* :partying_face: :besu:
Release notes & download link: https://github.com/hyperledger/besu/releases/1.5.4
Highlights :eyes:
A new privacy JSON RPC API, priv_debugGetStateRoot :woman_detective_light_skin_tone:
Better re-org logging :chains:
A new debug API, debug_batchSendRawTransaction to send multiple txns with a single call :100:
:besu: :partying_face: *Besu 1.5.4 is out!* :partying_face: :besu:
Release notes & download link: https://github.com/hyperledger/besu/releases/1.5.4
Highlights :eyes:
- A new privacy JSON RPC API, priv_debugGetStateRoot :woman_detective_light_skin_tone:
- Better re-org logging :chains:
- A new debug API, debug_batchSendRawTransaction to send multiple txns with a single call :100:
@shemnon thanks a lot for your support. I can confirm you that I had a gasLimit and nonce settup on each transaction in a way that transactions were stuck in the pool in favor of other lighter transactions. After setting an adequate amount of gasLimit and nonce (latest) I could send my transactions successfully.
Screenshot from 2020-09-11 12-43-41.png
Hi guy's, I'm facing this issue when I tried to deploy contract on privacy-enabled network
I used the besu-sample-network
wrong chainId means the chain id used to create the web3 provider does not match that in your genesis file (or you can also set it on the command line). From a quick look the multiNodeExamplePrivacyGroup uses chainId of 2018. (In deployContract.js you will see the line
`const web3 = new EEAClient(new Web3(besu.node1.url), 2018);`)
What command are you using to run the sample network? I've just run the example successfully with `./run-privacy.sh -c ibft2 -e`
Has joined the channel.
Hello experts, I want to include some more accounts for the testing purpose. There are three accounts given. How can I add more accounts?
If you are starting up a new network, you can add more accounts in your genesis file (see https://github.com/hyperledger/besu/blob/master/config/src/main/resources/dev.json#L24-L39).
You can create accounts in different ways, take a look at this article: https://medium.com/@hukenneth/how-do-you-get-ethereum-address-665f7594fd74
Contributor Call Tomorrow at 0100 UTC (11am AEST) - https://wiki.hyperledger.org/display/BESU/2020-09-15+Contributor+Call
Feel free to add agenda items
Hi, I had a user feedback about the revert reason being only visible in log if TRACE level is activated. He argues that Ganache, used during the dev stage, shows more explicitly errors and the reason in the basic logs. Do you think of a simple way to ease the visibility of the revert reason in Besu without changing the logs to trace?
Hi, I had a user feedback about the revert reason being only visible in log if TRACE level is activated. He argues that Ganache, used during the dev stage, shows more explicitly errors and the reason in the basic logs. Do you know a simple way to ease the visibility of the revert reason in Besu without changing the logs to trace?
Has joined the channel.
Hi, everyone. What types of elliptic curves does Besu support?
secp256k1 for accounts - the same one bitcoin uses. BN128 via smart contract function. Berlin (H1 2021) is working on BLS12-381 as a smart contract function.
Thank you very much!
added the proposal to get more docs maintainers
Has joined the channel.
Screenshot from 2020-09-15 14-55-46.png
while starting the first node
using clique private nnetwork
How hyperledger besu works in public ethereum network?
Has joined the channel.
hi experts, im new as well. we have a dapp connected to the public net, gas price has been an issue for scaling. we are planning to move to a private net. is there a way to get the data from the public net? docs for besu are scarce at the moment, can anyone share a link for us to evaluate besu more
You can connect to mainnet or other known networks using the defined --network command: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#network
Please follow the tutorial here and make sure to enter the node address correctly as stated: https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Clique-Network/
Can you clarify what you mean by move the data? Do you mean the transactions that you have executed on mainnet to a private network? You will need to re-execute those transactions on a private network that you are starting from scratch.
but I can't see my transactions on ethereum main node nor on rinkeby
I select rinkeby as my network and deploy the contract but can't see my transaction on etherscan
Screenshot from 2020-09-16 12-18-59.png
created permissioned network and try to send between whitelisted accounts but it's move into pending state
Cool, thanks @joshuafernandes .
Sorry for such a long silence - was working on something else the last couple weeks
What tooling are you using to deploy the contract? Do you have sufficient ether in your rinkeby account?
There is not enough to be sure of here, but my guess is you have the chainId set wrong.
Can you download the state logs and look for the "history" section? Look for any "stack" messages.
(settings/advanced/[download state logs])
yes I have enough ethers, I even see it in besu private explorer but not on rinkeby
yes, you are correct. was looking for a way to migrate into the new besu setup. what does connecting to the public ethereum network imply? benefits?
Screenshot from 2020-09-17 15-59-18.png
Trying to configure multi tennact network but when running command on Node-1
I got this error
Authentication RPC public key could not be read
Screenshot from 2020-09-17 16-47-48.png
When running multiNodeExample and trying to deploy the contract, it gives me this error
method not enabled
@Amanullah68 this will happen if you have privacy-onchain-groups-enabled=true for incompatible examples. At the bottom of your screenshot you will see the message to check your config. Only enable onchain groups for the onchain examples.
Has joined the channel.
Hi, everyone! As I read the besu docu it is possible to define a port for RPC calls and also define authentication for all RPC calls. I would like to only limit the access to "ADMIN" and "PERM" rpcs. Either by defining a different port for both. So I can be sure that access is only locally for those RPC calls. Or by defining authentication only for those RPC calls. All other RPC calls should be available from outside by all users. Would this be possible?
Screenshot from 2020-09-18 17-22-45.png
Supplied genesis block does not match stored chain data.
Please specify a different data directory with --data-path or specify the original genesis file with --genesis-file
what's wrong with this? I updated besu to 1.5.4 and try to run the command given in documentation but getting this error
okay, I solved the issue
I still not understand whether my transaction goes into etherscan or not?
I'm selecting Rinkeby aas my network but can't see the transaction in etherscan
just clear me whether it's goes into rinkeby public network or only remains into our private network
I believe Besu does not provide a way to selectively protect different API methods. You either have all of them protected or not.
One thing that is possible is to have granular method permissions per user. So you could have a "admin" user that can access the ADMIN and PERM methods, and other users that can access other methods. The downside with this approach is that either you'll need to have a user for each one of your clients or they would need to share a specific user.
A second approach that could work would be exposing on the JSON-RPC API all the methods that you want to be publicly available, and perhaps using the WebSocket API to expose only the ADMIN and PERM methods. The JSON-RPC and the WebSocket servers have independent configurations, so you could have the latter only accepting local connections (and you can send JSON-RPC requests through WebSockets). The downside with this approach is that you'd need some kind of adapter that translates JSON-RPC calls to WebSocket calls.
If you are running a private network, your transaction won't be visible in Etherscan.
However, if you are connecting to the Rinkeby network, you should be able to see your tx in Etherscan as soon as it is propagated to one of their nodes.
If you want to use some kind of block explorer to see your transactions in a private network, you can use something like this: https://besu.hyperledger.org/en/latest/Tutorials/Examples/Private-Network-Example/#block-explorer
I want to create permissionable network with rinkeby
I have created the permissioned network and send coins from the allowlist account which successfully sended.
TRansaction performed successfully
Ethers successfully transfered
but still issue is there I can't see my tx on etherscna
chainid is 1981
Screenshot from 2020-09-21 12-53-27.png
I change the chaincode id to 4
but now my transactions gets failed
Hi guys
I have a question. Is there any way to obtain revertReason property when use privacy group?
Currently, Private transaction receipt object returned by priv_getTransactionReceipt
does not contain revertReason property.
Hi! If you have started your network on a different chainId, you'll need to delete the node db and start a new sync. You can't change the chainId of an existing network.
I can't remember if we have that implemented already or not. I'll take a look at the code and get back to you on this.
Hi! I have just verified that we do include the revert reason for public and private transactions. However, only if Besu has the flag `revert-reason-enabled` set to true (https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#revert-reason-enabled).
I have delete all theen change the network id
the issue is I can't see my transactions in rinkeby.etherscan
But are your transactions being accepted by the node? Try enabling debug or trace log level on the node and see if you can get more details about the transactions that you are sending.
okay, thanks. I will check it. Hopefully that will resolve my issue
Screenshot from 2020-09-22 10-16-41.png
2020-09-22 10:16:30.001+05:00 | pool-7-thread-2 | DEBUG | MainnetTransactionProcessor | Invalid transaction: transaction nonce 3 does not match sender account nonce 0.
got this error
Screenshot from 2020-09-22 10-16-41.png
2020-09-22 10:16:30.001+05:00 | pool-7-thread-2 | DEBUG | MainnetTransactionProcessor | Invalid transaction: transaction nonce 3 does not match sender account nonce 0.
got this error
It looks like the transaction is being sent with the wrong nonce. In your case I believe it is happening because Metamask has cached the nonce from when you were running your node in the other network. Try resetting the account in the advanced setting in Metamask
Clipboard - September 22, 2020 6:02 PM
https://metamask.zendesk.com/hc/en-us/articles/360015488891-Resetting-an-Account#:~:text=To%20reset%20the%20account%3A,down%20and%20click%20Reset%20Account
Screenshot from 2020-09-22 12-16-40.png
Now this after deleting everything and started network again
Sorry solve this, that's not an issue
done this but still issue is there
I think atm there isn't much I can do to help. From the logs it the txs are being sent with the wrong nonce, so they won't be distributed in the network and will never show up on etherscan.
Maybe try using a new account?
Has joined the channel.
Hi all, I have a question, how much is the cost of use Hyperledger Besu for a project? It use Ethereum blockchain so there is a cost right?
Yeah, I tried with new accounts but still same nonce issue
Has joined the channel.
Hi is there a minimum node that we can run in Hyperledger Besu private ethereum?
Has joined the channel.
The node itself is free. You can set up and run your own private chains (with a different consensus mechanism like clique). However to post transactions on mainnet does require ethereum. There are testnets (ropsten, rinkeby, goerly) where you can get free tokens.
Depends on the usecase. For mainnet we recommend 4 cores, 16 GiB Memory, and an SSD. For smaller chains it can run on as little as 1 core and 4GiB. For chains other than mainnet this typically translates to a 't3.large' on AWS.
For mainnet, we recommend an i3.xlarge or larger
Screenshot from 2020-09-23 12-16-48.png
Screenshot from 2020-09-23 12-16-55.png
Screenshot from 2020-09-23 12-17-11.png
Screenshot from 2020-09-23 12-17-01.png
Look ethers succesfully transfered but still can't see transaction in rinkeby.etherscan
Could you share the config that you are using to run the node?
{
"config":{
"chainId":4,
"constantinoplefixblock": 0,
"clique":{
"blockperiodseconds":15,
"epochlength":30000
}
},
"coinbase":"0x0000000000000000000000000000000000000000",
"difficulty":"0x1",
"extraData":"0x0000000000000000000000000000000000000000000000000000000000000000b7992399a84878fac7049fd619f2e889842367970000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"gasLimit":"0xa00000",
"mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"nonce":"0x0",
"timestamp":"0x5c51a607",
"alloc": {
"fe3b557e8fb62b89f4916b721be55ceb828dbd73": {
"privateKey": "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63",
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance": "0xad78ebc5ac6200000"
},
"627306090abaB3A6e1400e9345bC60c78a8BEf57": {
"privateKey": "c87509a1c067bbde78beb793e6fa76530b6382a4c0241e5e4a9ec0a0f44dc0d3",
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance": "90000000000000000000000"
},
"f17f52151EbEF6C7334FAD080c5704D77216b732": {
"privateKey": "ae6ae8e5ccbfb04590405997ee2d52d2b330726137b875053c36d94e974d162f",
"comment": "private key and this comment are ignored. In a real chain, the private key should NOT be stored",
"balance": "90000000000000000000000"
}
},
"number":"0x0",
"gasUsed":"0x0",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000"
}
Screenshot from 2020-09-23 17-09-23.png
I saw my transaction here in ethelio light explorer but not on rinkeby.etherscan
Have you checked it?
Not yet. I won't be able to look at it today, but could you also post the config file for the the node (or the CLI options that you are using to run it).
The file that you shared before is the genesis file.
https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network/#3-get-address-for-node-1
I'm following this tutorial
I run the node through command which is specified in the tutorial
But this tutorial isn't about running a node on Rinkeby. To run a node on rinkeby, you'll need to change some of the config.
https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Starting-node/#run-a-node-on-rinkeby-testnet
First and foremost, you'll need to start with the genesis file for Rinkeby :)
(or just specify Rinkeby in the --network option)
but I'm putting chainId=4 which is for rinkeby
Can't add both genesis file as well --network sam time in command line
Yeah, but the genesis file is what defines the "origin" of a network. If you aren't using a Rinkeby compatible genesis file, you won't be able to successfully be a part of the network
okay, I will tried with --network instead of genesis file
Do we still apply permissions in our network?
By using --network=rinkeby instead of using genesis file?
Yep, as long as you set the permissioning config options
okay, thanks
Let me know how it goes!
sure
besu --data-path=data --network=rinkeby --logging=DEBUG --permissions-nodes-config-file-enabled --permissions-accounts-config-file-enabled --rpc-http-enabled --rpc-http-api=ADMIN,ETH,NET,PERM,CLIQUE,WEB3 --host-allowlist="*" --rpc-http-cors-origins="*"
Screenshot from 2020-09-24 10-19-44.png
It's not importing any block
Probably because you have added the node permissioning option without setting a node permissioning file to specify the nodes that you want to trust.
Using permissioning in a public network can be tricky and is a quite advanced use case.
If you enable node permissioning but don't trust any nodes, it won't connect to any other nodes. Therefore, it can't receive blocks.
Yeah, most probably you are right. I will remove node-permissioning
But I want to add permissioning
Node permissioning?
yeah
for security
Permissioning isn't really a security feature. For security I'd recommend using a firewall.
Do you think besu is still in it's initial stage, I can't found documentation really helpful
Node permissioning is more about defining a logical topology of your
Node permissioning is more about defining the topology of your network
No help on google
okay, let me try without node-permissioning
What's the actual purpose of permissioning?
I don't think Besu is in its initial stages. Quite the opposite. Most features are production ready and we have had great feedback on our documentation.
Received Wire DISCONNECT (UNKNOWN) from peer: PeerInfo{version=5, clientId='Parity-Ethereum/v2.7.2-stable-2662d19-20200206/x86_64-unknown-linux-gnu/rustc1.41.0', capabilities=[eth/62, eth/63, par/1, par/2, par/3, par/4, pip/1], port=30303, nodeId=0xdc7bec22e1d1eefdd30e64d59af9f5741c033ca4446793886ace402b774152d85c6810e3d3528d67e78f283a068f5102e413343342860b367703380dae03d224}
I think it will probably be easier if you explain us your use case. If we know where you are trying to get we might be able to help you a bit better.
Why are you setting up these nodes? What is the goal?
Why are you setting up these nodes? What is the goal? What are the requirements?
I'm just trying to create my own permissioned network so that only those account performed transactions which are white listed
If all you need is account permissioning, you can just disable node permissioning.
but on a public network, anyone can send transactions. So even though your node won't accept transactions from accounts that aren't allowed, you will still import blocks with transaction from other accounts that have been propagated in the network.
I'm don't understand why you want to use account permissioning in a public network though. Could you clarify that for me?
okay, Let me clear one thing first.
Do besu allow permissioning in public network
?
Is Besu helpful for creating ethereum private network?
How Besu is helpful for me in public network
Just clear me that
> Do besu allow permissioning in public network?
Yes, Besu allow permissioning in public networks. But using permissioning in a public network is an advanced use case.
> Is Besu helpful for creating ethereum private network?
Yes, you can use Besu for creating a private network. As any other Ethereum client.
> How Besu is helpful for me in public network?
In a public network Besu will do the same as any other Ethereum client. Because this is how other clients can interop.
I have to go now. I'm sorry I couldn't help you more.
I have a suggestion though. It feels like you don't understand the concepts behind what you are using. Try watching some of our webinar that explain how permissioning works and maybe it will help you see if this is what you really need for your use case.
It is hard for us to help you more without having a clear view of what you want to achieve. :)
I have a project where there are lot of participants involve. I have created it in public network.
I'm just trying to connect it with my own created node instead of directly connected with public network.
I also want to put restriction on any account anytime so that it can't perform the transaction further more.
Simply banned the account to perform transactions
Currently I'm simply trying to run my node connected with rinkeby and just pass ethers between account and want to see the transaction in rinkeby.etherscan
Simply trying to run a node, on metamask connect with my network, then send ether from one account to another upon successful transaction it will redirect me to rinkeby.etherscan where I can see my tx.
Just the issue here I'm facing is, I can't see my successful transaction on rinkeby.etherscan but can see confirmation on etherlite explorer
besu --data-path=data --networrinkeby --permissions-accounts-config-file-enabled --rpc-http-enabled --rpc-http-api=ADMIN,ETH,NET,PERM,CLIQUE,WEB3 --host-allowlist="*" --rpc-http-cors-origins="*"
LOok I'm using this command
Screenshot from 2020-09-24 11-46-16.png
Look it's not synching
I removed node permissioning
Hi if i run more nodes in private ethereum it can be faster the per transaction blocked? or not?
Has joined the channel.
Hi everyone, I deployed an ERC 20 contract on besu. I am getting error "Wrong chainId" while sending transaction using web3.eth.sendSignedTransaction(). Please help!
Thanks, that's exactly what I found out too. I think, I will go with the second option. Thanks, for the confirmation! :)
I'm not sure what is being asked. More nodes won't change the amount of time between blocks or the amount of transactions allowed per block.
:besu: :mega: *Besu 1.5.5 is out!* :mega: :besu:
*Release notes & download link: https://github.com/hyperledger/besu/releases/1.5.5*
:star2: Highlights :star2:
- The new version of the web3js-eea library (v0.10) supports the onchain privacy group management changes made in Besu v1.5.3
- Added debug_getBadBlocks JSON-RPC API to analyze and detect consensus flaws.
- Fixed a long-standing issue with getting logs. This will be helpful for people wanting to validate Eth2 deposit contracts off Goerli with Besu.
Not a web3.js expert, but my guess is you need to set chainId in the call to `signTransaction` - https://web3js.readthedocs.io/en/v1.2.4/web3-eth-accounts.html#id6
Their gitter may be a better place to get more specific support - https://gitter.im/ethereum/web3.js
Hi what is more faster in transaction IBFT2.0 or Proof of work (ethash)?
Neither is strictly faster. I don't recommend ethash outside cryptocurrency use.
IBFT2 has the advantage of more stable block times whereas ethash's blocks are on a poisson distribution (i.e. unpredictable). ethash blocks will settle at around 13 seconds. IBFT blocks can be configured for different block times. We benchmark at 2 seconds.
Hi what do you recommended specs for Proof of work in order to maintain the private network and the speed transaction?
Thanks, i fixed it. Issue was with "ethereumjs-tx" for signing transaction, by default it takes main network with chainId 1. Changed chainId with "ethereumjs-common" package.
Again, I don't recommend Proof of Work for private networks. The amount of hashpower to ensure security would rival mainnet.
Use IBFT2 or Clique, you can keep the signing keys secure. Also, those consensus mechanisms have options to reduce the block time whereas ethash really doesn't and will always settle on 13-15 seconds.
Again, I don't recommend Proof of Work for private networks. The amount of hashpower needed to ensure security would rival mainnet.
Use IBFT2 or Clique, you can keep the signing keys secure. Also, those consensus mechanisms have options to reduce the block time whereas ethash really doesn't and will always settle on 13-15 seconds.
Has joined the channel.
Hi is it possible to run private besu without miner? In document there are other consensus algorithm supported by besu in addition to POW.
Mostly yes. The other algorithms (clique and IBFT) each require a validator instead of a miner. Validator CPU load is much lower than miner CPU load.
Here's the docs section that goes in depth about those to algorithms: https://besu.hyperledger.org/en/stable/Concepts/Consensus-Protocols/Comparing-PoA/
Sounds good and thanks. between clique and IBFT2.0, the doc says clique does not have immediate finality and may generate forks. Does the clique algorithm converge at the end by merging to mainchain? Or it require manual merge. I did not find more detail in the doc. Other than that, clique algorithm seems more fault tolerant and easier to operate compared with IBFT2.0.
Also the besu doc says the private network is for testing and development purpose. Can private network also run as production permission based for business?
clique always converges to the chain with the most total difficulty. Clique is easier at the expense of finality. There is no manual merge for clique, the nodes figure it out automatically.
Has joined the channel.
Hi people, I was researching the IBFT specification and found out that for creating of the new block 66% signatures required, but only 50% votes are enough to add/remove the validator. Which means that 50% (not 66%) of malicious validators is enough to compromise the blockchain, since they can remove non-malicious ones and reach 66% majority. Doesn't it make sense to increase the threshold for voting or am I missing something? Also I was very interested in plugins system, and thought they can be useful with automation of the aforementioned voting, but then I found out that only getter methods are implemented there. I would be happy to contribute and implement voting API for plugins, but I'm not sure that introducing setters there is not against some "conventions" of the plugging architecture. I would be thankful if somebody could shed some light on that.
i'll defer on the consensus question. But I can talm about the plugins. The risk is that any new API becomes a somewhat long-term support commitment. Although admin tasks like adding/removing validators and adding/removing peers do seem reasonable.
Because it's a LTS api I expect we will be fairly strict on the review and require it to be laser-focused.
I'll defer on the consensus question. But I can talk about the plugins. The risk is that any new API becomes a somewhat long-term support commitment. Although admin tasks like adding/removing validators and adding/removing peers do seem reasonable.
Because it's a LTS API I expect we will be fairly strict on the review and require it to be laser-focused.
Proposal to change Besu to the CalVer versioning system - https://wiki.hyperledger.org/display/BESU/Proposal+-+CalVer+for+Besu+Releases
We will discuss this at the next two contributor calls (next Tuesday and the 12/13th of October). If you support it or have concerns please add them to the wiki page.
Agenda for Tuesday's EMEA/AMER contributor call - https://wiki.hyperledger.org/display/BESU/2020-09-29+Besu+Contributor+Call
Hi @VladLupashevskyi
I'm one of the consensus developers, and I’ll try to answer the 50% vs 66% issue.
So, voting _could_ be changed to 66% to match block import, but I’m not sure it materially affects the security of the model.
IBFT is based on PBFT, and is designed such that a network will progress in a valid manner, provided < 1/3 of the validators operate as expected.
If more than 1/3 of the validators are compromised, no assurances can be made about the network - and all block creation _could_ cease. I.e. you’ve lost control of your network.
So, for a byzantine party to have sufficient control to vote in their own validators (i.e. > 50% validators) - the network has already failed its IBFT block creation requirement (that no more than 33% of validators are byzantine).
tl;dr: An IBFT network is only guaranteed to be valid if < 1/3 validators are byzantine - which is less than the 50% required to vote in new members.
Hi @trent.mohay thank you very much for such a detailed answer :) Now I see that's obvious. Previously I messed up the 66% of non-malicious validators and 33% of malicious ones.
Hi where can I find the document about how permission works in besu? Also is the purpose of besu just for testing or development of Ethererum mainchain?
https://besu.hyperledger.org/en/stable/Concepts/Permissioning/Permissioning-Overview/
Besu is not jsut for mainchain. It is also for enterprise ethereum chains. Those chains use a Proof of Authority Consensus instead of Proof of Work and have access to addded features like privacy and permissioning.
Besu is not just for mainchain. It is also for enterprise ethereum chains. Those chains use a Proof of Authority Consensus instead of Proof of Work and have access to addded features like privacy and permissioning.
Besu can _also_ be used for mainnet ethereum and classic ethereum. Mainnet compatibility is a feature allowing private networks access to all the current smart contract features and tooling that mainnet has.
Has joined the channel.
Hello Besu community from the Hyperledger India Chapter, we are calling for speakers to engage with the community in Asia Pacific, Europe and Africa. Please see our event details here https://www.linkedin.com/feed/update/urn:li:activity:6715897303481372672
Calling the tech enthusiasts, maintainers to be part of it.
Morning! When using IBFT2, is the allowed clock drift between validators configurable?
Has joined the channel.
Hi Besu team,
On Orchestrate we manage private transactions using `priv_distributeRawTransaction` and `eth_sendRawTransaction` for the marking transaction. After `priv_distributeRawTransaction` has returned the `
Can you crank up the logging to debug? That should give us the exception.
Actually, the jog4j config is what's hiding the stack trace.
Actually, the log4j config is what's hiding the stack trace.
Adding `${exceptionPattern}` to the message section should help.
Hi team! for permission based IBFT chain, what is the min number of nodes required to form a chain? Also is there React Native support of besu? I mean integrating Besu into React Native mobile app with wallet and ability to do transaction (not include mining/validator and storage of the whole database).
[ ](https://chat.hyperledger.org/channel/besu?msg=phPR9cFYhoMc2tyGd) Minimum is 4 - https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#minimum-number-of-validators
Minimum is 4 - https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#minimum-number-of-validators
As for react.js, that depends on the library you use to communicate with Besu. I believe that web3.js is react friendly.
As for react native, that depends on the library you use to communicate with Besu. I believe that web3.js is react friendly.
There have been no changes to the RPC call itself for all of 1 5.x, so some other change caused it.
If you are using the quickstart can you find the log-config.xml and change `"short_message":"%throwable{short.message}"` to `"short_message":"%throwable"
Hi, what is the hardware requirement for IBFT2.0 validator?
Morning! When using IBFT2, is the allowed clock drift between validators configurable?
Thanks this what I get
```
validator1-bootnode_1 | {"timestamp":"2020-09-29T08:20:13,842","container":"14d4328c4a9d","level":"DEBUG","thread":"vert.x-worker-thread-19","class":"JsonRpcHttpService","message":"JSON-RPC request -> eth_estimateGas", "exception":"","short_message":""}
validator1-bootnode_1 | {"timestamp":"2020-09-29T08:20:13,854","container":"14d4328c4a9d","level":"DEBUG","thread":"vert.x-worker-thread-19","class":"PrivacyPrecompiledContract","message":"Processing private transaction 0x0821e577dfd3ee436f058137bdba6e58870c16898d72a1e47deca9946971de48 in privacy group 0x2772e4ac43f9d28f2572184bddbfde5ba9797dea0dc843cd9a8cf511314f8790", "exception":"","short_message":""}
validator1-bootnode_1 | {"timestamp":"2020-09-29T08:20:13,854","container":"14d4328c4a9d","level":"ERROR","thread":"vert.x-worker-thread-19","class":"MainnetTransactionProcessor","message":"Critical Exception Processing Transaction", "exception":" java.lang.NullPointerException
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.privacy.PrivateStateRootResolver.resolveLastStateRoot(PrivateStateRootResolver.java:40)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.precompiles.privacy.PrivacyPrecompiledContract.compute(PrivacyPrecompiledContract.java:157)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.MainnetMessageCallProcessor.executePrecompile(MainnetMessageCallProcessor.java:133)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.MainnetMessageCallProcessor.start(MainnetMessageCallProcessor.java:61)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.AbstractMessageProcessor.process(AbstractMessageProcessor.java:163)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor.process(MainnetTransactionProcessor.java:426)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor.processTransaction(MainnetTransactionProcessor.java:339)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.MainnetTransactionProcessor.processTransaction(MainnetTransactionProcessor.java:49)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.TransactionProcessor.processTransaction(TransactionProcessor.java:253)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.mainnet.TransactionProcessor.processTransaction(TransactionProcessor.java:183)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.transaction.TransactionSimulator.process(TransactionSimulator.java:131)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.transaction.TransactionSimulator.process(TransactionSimulator.java:84)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:71)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:602)
validator1-bootnode_1 | at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$10(JsonRpcHttpService.java:473)
validator1-bootnode_1 | at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:313)
validator1-bootnode_1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
validator1-bootnode_1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
validator1-bootnode_1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
validator1-bootnode_1 | at java.base/java.lang.Thread.run(Unknown Source)
validator1-bootnode_1 | ","short_message":" null"}
```
Do we apply permissions in rinkeby public network?
Not too heavy, that depends on teh chain load. t3.medium has worked, sometimes smaller. 2CPUs and 4GibBwould be the lower limit I think, but 8GiB is better.
Not too heavy, that depends on teh chain load. t3.medium has worked, sometimes smaller. 2CPUs and 4GiB would be the lower limit I think, but 8GiB is better.
Not too heavy, that depends on the chain load. t3.medium has worked, sometimes smaller. 2CPUs and 4GiB would be the lower limit I think, but 8GiB is better.
Logged as issue 1404 - https://github.com/hyperledger/besu/issues/1404
Besu's permissioning behaviour is the same for public or private network. It will follow the configuration provided by the user.
This link explains how permissioning works: https://besu.hyperledger.org/en/latest/Concepts/Permissioning/Permissioning-Overview/
Hey @coenie, when using IBFT2 with Besu, the timestamp in a block must not be more than 1 second ahead of the local node's system clock - this value is not current configurable.
Hey @coenie, when using IBFT2 with Besu, the timestamp in a block must not be more than 1 second ahead of the local node's system clock - this value is not currently configurable.
thanks!
I fired up a node with docker to connect to rinkeby. But can't find the node after querying it
node address: Node address 0x62bd18eb26da0086ff3dc07f3c77b78484efa5c1
Node address 0x62bd18eb26da0086ff3dc07f3c77b78484efa5c1
Screenshot 2020-09-30 at 16.51.38.png
What's Besu private network based upon? That is, https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
Can we achieve the same with Quorum?
Has joined the channel.
Has joined the channel.
hey, anyone who can mentor me? im interested in learning more about besu
Go through documentation and try to build different networks
and post your queries here if any, hopefully you got reasonable answer
Can you clarify what you mean by you cant find the node?
Besu uses Orion as its Private Transaction Manager for the purpose of transfering the private payload. You can find more information here https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/
GoQuorum is a seperate Go based client that has similar privacy offerings. Which to use depends on your use case and requirements.
I'm using IBFT private network, using chainId=4 but my node not syncing, why?
Screenshot from 2020-10-01 12-55-50.png
I tried few times but same issue
Screenshot from 2020-10-01 17-12-27.png
Creating private network but nodes not syncing
https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/
Has joined the channel.
Hi -- I'm running into a hard to figure out issue with Besu + Orion running in Kubernetes.
The setup I'm running with is 4 validators (IBFT, doubling as RPC, one as bootnode) + 4 orion nodes on AKS. On multiple deployment attempts so far, I've always had one validator node being unable to find the bootnode (and subsequently not connecting to the others). The faulty validator just gets stuck in a loop of peer searching and waiting for peers. The validator connects properly to its enclave, but any (private) transactions sent are never mined (because there's no peers connected?). Deleting the pod and having Kubernetes recreate it allows the validator to properly connect to the peers and function as expected.
Could someone point me in the right direction to figure out why the validator never connects until the pod is recreated?
Here's an excerpt of the output that's repeatedly printed in the logs:
```
2020-10-01 12:02:58.945+00:00 | vert.x-eventloop-thread-1 | DEBUG | LivenessCheck | Invoking liveness check.
2020-10-01 12:02:59.974+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:02:59.975+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:04.975+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:04.975+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Start peer search.
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
2020-10-01 12:03:09.975+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:09.976+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:14.976+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:14.976+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:19.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:19.977+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:24.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:24.977+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:28.945+00:00 | vert.x-eventloop-thread-1 | DEBUG | LivenessCheck | Invoking liveness check.
2020-10-01 12:03:29.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:29.978+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:34.978+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:34.978+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:39.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Start peer search.
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
```
Hi -- I'm running into a hard to figure out issue with Besu + Orion running in Kubernetes.
The setup I'm running with is 4 validators (IBFT2, doubling as RPC, one as bootnode) + 4 orion nodes on AKS. On multiple deployment attempts so far, I've always had one validator node being unable to find the bootnode (and subsequently not connecting to the others). The faulty validator just gets stuck in a loop of peer searching and waiting for peers. The validator connects properly to its enclave, but any (private) transactions sent are never mined (because there's no peers connected?). Deleting the pod and having Kubernetes recreate it allows the validator to properly connect to the peers and function as expected.
Could someone point me in the right direction to figure out why the validator never connects until the pod is recreated?
Here's an excerpt of the output that's repeatedly printed in the logs:
```
2020-10-01 12:02:58.945+00:00 | vert.x-eventloop-thread-1 | DEBUG | LivenessCheck | Invoking liveness check.
2020-10-01 12:02:59.974+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:02:59.975+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:04.975+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:04.975+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Start peer search.
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
2020-10-01 12:03:09.975+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:09.976+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:14.976+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:14.976+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:19.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:19.977+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:24.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:24.977+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:28.945+00:00 | vert.x-eventloop-thread-1 | DEBUG | LivenessCheck | Invoking liveness check.
2020-10-01 12:03:29.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:29.978+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:34.978+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:34.978+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:39.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Start peer search.
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
```
Hi -- I'm running into a hard to figure out issue with Besu + Orion running in Kubernetes.
The setup I'm running with is 4 validators (IBFT2, doubling as RPC, one as bootnode) + 4 orion nodes on AKS. On multiple deployment attempts so far, I've had at most one validator node being unable to find the bootnode (and subsequently not connecting to the others). The faulty validator just gets stuck in a loop of peer searching and waiting for peers. The validator connects properly to its enclave, but any (private) transactions sent are never mined (because there's no peers connected?). Deleting the pod and having Kubernetes recreate it allows the validator to properly connect to the peers and function as expected.
Could someone point me in the right direction to figure out why sometimes on of the validators does not connect until the pod is recreated?
Here's an excerpt of the output that's repeatedly printed in the logs:
```
2020-10-01 12:02:58.945+00:00 | vert.x-eventloop-thread-1 | DEBUG | LivenessCheck | Invoking liveness check.
2020-10-01 12:02:59.974+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:02:59.975+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:04.975+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:04.975+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Start peer search.
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2020-10-01 12:03:09.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
2020-10-01 12:03:09.975+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:09.976+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:14.976+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:14.976+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:19.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:19.977+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:24.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:24.977+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:28.945+00:00 | vert.x-eventloop-thread-1 | DEBUG | LivenessCheck | Invoking liveness check.
2020-10-01 12:03:29.977+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:29.978+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:34.978+00:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2020-10-01 12:03:34.978+00:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2020-10-01 12:03:39.511+00:00 | vert.x-eventloop-thread-0 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Start peer search.
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2020-10-01 12:03:39.512+00:00 | vert.x-eventloop-thread-0 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
```
validator2-0.txt
validator3-0.txt
validator4-0.txt
validator1-0.txt
This address is what the ethereum account address of the node's private key would be. The node address is not always the coinbase address when mining. There is a separate CLI flag for this.
Using chainId 4 means that you are trying to connect to the Rinkeby network. I believe Rinkeby uses POA Clique consensus, so you won't be able to successfully join the network with a node running IBFT.
Do you get any error in the logs? Can you provide any more info to help us understand what is happening?
@fgonzalezr you want a step-by-step tutorial, take a look at this Besu Essentials course https://learn.consensys.net/catalog/info/id:195
Has joined the channel.
same issue with 2018
Screenshot from 2020-10-03 09-54-48.png
Screenshot from 2020-10-03 09-55-12.png
Screenshot from 2020-10-03 10-00-10.png
IBFT private network is not syncing?
Screenshot from 2020-10-03 09-54-48.png
Screenshot from 2020-10-03 10-00-10.png
Screenshot from 2020-10-03 09-55-12.png
Hi, for a private chain with IBFT2, what kind of token is used on chain? Can the facial value of token be arbitrary? ex, equal to $1.
Hi, IBFT2 private network is not syching, is this besu version issue or anything else? I'm using latest version
https://besu.hyperledger.org/en/latest/Tutorials/Private-Network/Create-IBFT-Network/
I'm following this tutorial
No sync target, waiting for peers: 3
Screenshot from 2020-10-05 09-59-47.png
we updated the default requesttimeoutseconds in the config from 4 to 10. this is for load testing the besu private setup. afterwards, we are getting this error : Replacement transaction underpriced. Any ideas?
You are sending a transaction with the same nonce, and it is already waiting in the memory pool. Does this network use Ether or is it zero cost? If it is not zero cost simply increas your gas cost by 10% and it will have priority over th eold transaction.
An alternative is that you are preparing a new transaction with an incomplete view of the memory pool and are picking the next nonce off of old data. One approach I've used is to make sure that only one node emits transactions for each account, so it's recollection of the nonces is always up to date.
someone posted this year running a Ether full node using a rasperry pi 4 with 4GB RAM quard core CORTEX, USB3 500GB SSD
[ ](https://chat.hyperledger.org/channel/besu?msg=3PyEMnXn4vo5C22yL) for validator, does validator quantity matter? for example, one 8GB RAM validate vs 2 x 4GB validators. Which one is better?
I would stick with 8GiB for validators.
Has joined the channel.
Has joined the channel.
Has joined the channel.
One ping only
Huh?
[I was testing the discord bridge and didn't delete my message](https://www.youtube.com/watch?v=jr0JaXfKj68)
ok
Hi besu folks, can I issue ERC20 token on besu chain running IBFT2.0?
JSON RPC connection refused when calling from other servers
Works perfectly in local server
bin/besu --data-path=data --genesis-file=../genesis.json --permissions-nodes-config-file-enabled --permissions-accounts-config-file-enabled --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT,WEB3,PERM,EEA,PRIV --host-allowlist="*" --rpc-http-cors-origins="all" --privacy-enabled --privacy-url=http://127.0.0.1:8888 --privacy-public-key-file=Orion/nodeKey.pub --min-gas-price=0
but not from outside local
add ` --rpc-http-host=0.0.0.0` - by default it is 127.0.0.1 (which is why only local can get it)
All of Besu's networking flags default safe (off, localhost, no remote access, etc).
All of Besu's RPC flags default safe (off, localhost, no remote access, etc).
ping
but it will be accessible for anyone, I want to put limitation, only specific ip addresses
If the validator is in cloud, how to securely store the private key for IBFT2.0? The HSM requires hardware installation which is not possible for a could validator.
If the validator is in cloud, how to securely store the private key for IBFT2.0? The HSM requires hardware installation which is not possible for a cloud validator.
[ ](https://chat.hyperledger.org/channel/besu?msg=PwkkfTMFvYk7MBcHy) that's not really a Besu question, but a HSM question.
2 options that are practical: use AWS KMS to encrypt symmetrically your keys. Or look at Unbound for a cloud HSM system. If you intend to use your HSM with a cloud solution, you need more thinking and prep, like VPN to your data center.
Hi @EmcLab,
There's a lot of pieces to the puzzle, but @atoulme's suggestion is a good place to start.
Having said that - there's a few things worth considering:
1. Besu doesn't natively support using HSM for the node key - you'll need to write (or get?) a plugin to let you do this.
2. The HSM and Besu node need to be geographically close together - ideally in the same data centre, otherwise the latency in the link means cryptographic operations are sufficiently slow that nodes don't connect, and blocks don't get mined.
Has joined the channel.
your best bet then is to look at the `--rpc-http-authentication` series of options. You can require standard http authentication or JWT authentication. You can also turn on https via the `--rpc-http-tls` series flags and require client certificates.
It's also best to put machines accessing it in a subnet and firewall off access to the RPC ports using firewall rules.
Has joined the channel.
Has joined the channel.
Hi what do we need to setup, in genesis file for ibftconfig like chainID do we need to set that in to unique id? or we can use the 2018 chainID?
you should start here: https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
i notice that chainID is 2018 (dev) is it okay to use that in production?
Hi, is the explorer is accessible for all or restricted to only limted users like if there any login/signup page in private-permissioned network?
I'm using Alethio Light explorer which iss accessible for all if they have link of it
:besu: :warning: *Besu 20.10.0-RC1 is out* :warning: :besu:
_This is the first release candidate towards our 20.10.0 so there may still be some rough edges. Stability issues have been observed on mainnet and are being worked on. If you want to try the latest and greatest, this has it, but please wait until 20.10.0 to update production nodes._
:star2: Highlights :star2:
- Support added for the YOLOv2 ephemeral testnet
- Added a few debugging APIs: debug_standardTraceBlockToFile and debug_standardTraceBadBlockToFile
- Added --start-block and --end-block to the blocks import command
- Added support for multi-tenancy when using the early access feature of onchain privacy group management
- Fixed a longstanding eth/65 issue
- … and last but not least, as you’ve probably noticed, Besu is moving to CalVer! Here is a short explanation, and expect a proper blog post soon: https://wiki.hyperledger.org/display/BESU/Proposal+-+CalVer+for+Besu+Releases
Has joined the channel.
I'm trying to use the Hyperledger Besu Quickstart on Azure. Deployment is failing -- it looks like due to a missing package (docker-ce)
Building dependency tree...
Reading state information...
Package docker-ce is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Installing docker compose...
besu-quickstart/besu-quickstart/list.sh
nbesu-quickstart/docker-compose.yml
Thanks @mwaser we'll have a look and push a fix out
I would recommend a different chainid. It prevents replay across different chains, probably not an issue in private networks but if you run a testnet to try out contracts you want to make sure the chainIDs are different so you don't accidentally deploy dev work.
is anynumber will do for chainID?
any would do. Pick a positive integer. 10 is used by quorum a bunch so stay out of that too.
It won't matter as you are going to run a permissioned private network.
It just will help you avoid confusing your dev stuff locally and your network. Give it something meaningful - it's its id.
we use the chainID 2018 in IBFT2 setup, is that okay?
thanks atoulme
again just an id you pick. 2018 is used by the dev network of besu when you play with it so it may be confusing down the road, is all.
(just basically saying, again, what Danno is saying)
Hi what is the proper work for the server bootnode, when one of the node is down how do we handle that?
how would i know that my chainID is not the same in the other IBFT2 Setup?
Has joined the channel.
Hey guys. I have a dev IBFT Besu network with 2 boot nodes and 3 worker nodes. When I remove one of the worker nodes for maintenance, the network seems to stall, with the boot nodes stating "Waiting for 1 peers to connect". How do I take a single node out for maintenance without bringing the network to a halt?
you can see all the genesis files of besu here: https://github.com/hyperledger/besu/tree/master/config/src/main/resources
Other than that, there is no hard and fast rule.
Hey, I'm currently running a permissioned IBFT Besu Network where membership is managed by a different application by modifying the local permissions file. When an account added a transaction to the blockchain and gets later removed from the accounts-allowlist i'm running into troubles when a new node likes to join the network and tries to sync with the other nodes. Then a block exists were a transaction is signed by this unallowed account. The result is a InvalidBlockException and the node can't connect to the network. It is possible to disable "--permissions-accounts-config-file-enabled", sync with the network, and restart again with "--permissions-accounts-config-file-enabled" enabled. But this is not very user friendly. Is there any suggestion to that issue? Thanks for you help. :)
Thank you! If you could let me know when it is good to go, I would be very appreciative.
This is not the expected behaviour.
Local account permissioning shouldn't be applied on block importing. If you take a look at the diagram at the bottom of this page https://besu.hyperledger.org/en/latest/Concepts/Permissioning/Permissioning-Overview/, you'll see that we don't expect local permissioning to affect block import.
Would you please share the configuration options of you Besu node> And also what version you are using? Cheers!
Hi @MarkThompsonPH,
When you say the network appears to stall - I'm assuming that means that no blocks are being produced.
For IBFT to continue to mine blocks, its important that each validator has at least 1 connection to another validator, such that all validators are connected to each other (even if its in a long chain). If a validator is left orphaned, i.e. connected to the network, but cannot see another validator, it will not be able to participate in consensus. In a large network, losing a single validator (either through orphaning or failure) may be ok, as there's still enough validators communicating to continue mining, but in a small network (eg 4 or 5 validators) losing a single validator may be sufficient to halt the network.
Best way to ensure propagation:
* Always have at least 6 validators (allowing for 1 validator to go offline at anytime)
* Make sure all validators connect to each other, either through initial bootnode setting, or by connecting them via the add_peer json rpc
Can I rephrase some of that? In a network of 4 validators, you are able to lose 1 validator, and continue operating - with a network of 6 validators, you can actually lose 2 validators and continue. My apologies, the prior statements were made before coffee.
:thumbsup: We've got plans to update that and bring it in line with the what we have here https://consensys.net/quorum/developers/ (click the blue 'Get started' button)
If its time critical running 'npx quorum-dev-quickstart' on your VM in Azure will get you going with the same setup
If its time critical running `npx quorum-dev-quickstart` on your VM in Azure will get you going with the same setup
Hey Trent. That's for the help. We have network of 5 nodes, 2 of which are acting as boot nodes. The worker nodes all start up with the --bootnodes parameter set to include the enode URLs of the two bootnodes.
In this case, are the non-bootnodes validators?
When I shut down a single node, the bootnodes complained with
```
nioEventLoopGroup-3-8 | INFO | WaitForPeersTask | Waiting for 1 peers to connect
```.
I thought the network in this state would be able to lose one node without losing consensus.
I'm quite new to this system and don't yet know all of the characteristics. Even if I have two boot nodes, should I have at least 4 non-boot nodes?
Thanks again for your advice.
Hey, sure: `../../besu-1.5.0/bin/besu --data-path=data --genesis-file=../genesis.json --permissions-nodes-config-file-enabled --permissions-accounts-config-file-enabled --rpc-http-enabled --rpc-http-api=ADMIN,PERM,ETH,NET,IBFT,TXPOOL --rpc-ws-enabled --rpc-ws-api=ADMIN,ETH,NET,PERM,IBFT --host-allowlist="*" --rpc-http-cors-origins="*" --p2p-port=30307 --rpc-http-port=8553 --rpc-ws-port=8554`
It's version 1.5
I tried also besu-20.10.0-RC1
As it turns out, we had sync mode set to FAST, instead of FULL. I believe this caused the issue.
I'll probably wait until Monday. People wouldn't be happy if I went non-standard. :-P
Hi Joshua,
I did try the npx command on both the Azure virtual machine that the quickstart tried to set up and on a local vm that was already loaded with node/npm/npx already loaded.
The Azure vm failed due to an npx not found error.
The local vm failed because it couldn't find ~/.npm/_npx/3221 Did I want to do a git clonefrom somewhere first?
Hi @ftgha, @shemnon
Did you you guys manage to get Besu running on the s390x?
I've gotten so far as to build the JNI and start Besu, but I get the following fatal error:
`A fatal error has been detected by the Java Runtime Environment:`
```
# Problematic frame:
# C [librocksdbjni-linuxs390x.so+0x25360e] Java_org_rocksdb_BlockBasedTableConfig_newTableFactoryHandle+0xae6
```
(I can send a complete error log file)
I've also tried with a pervious version of RocksDB as per https://github.com/facebook/rocksdb/issues/5487, but I run into other problems :/
Kind Regards
Hi @ftgha, @shemnon
Did you guys manage to get Besu running on the s390x?
I've gotten so far as to build the JNI and start Besu, but I get the following fatal error:
`A fatal error has been detected by the Java Runtime Environment:`
```
# Problematic frame:
# C [librocksdbjni-linuxs390x.so+0x25360e] Java_org_rocksdb_BlockBasedTableConfig_newTableFactoryHandle+0xae6
```
(I can send a complete error log file)
I've also tried with a pervious version of RocksDB as per https://github.com/facebook/rocksdb/issues/5487, but I run into other problems :/
Kind Regards
Hi @ftgha, @shemnon
Did you guys manage to get Besu running on the s390x?
I've gotten so far as to build the JNI and start Besu, but I get the following fatal error:
`A fatal error has been detected by the Java Runtime Environment:`
```
# Problematic frame:
# C [librocksdbjni-linuxs390x.so+0x25360e] Java_org_rocksdb_BlockBasedTableConfig_newTableFactoryHandle+0xae6
```
(I can send a complete error log file)
I've also tried with a pervious version of RocksDB as per https://github.com/facebook/rocksdb/issues/5487, but I ran into other problems :/
Kind Regards
Hi @ftgha, @shemnon
Did you guys manage to get Besu running on the s390x?
I've gotten so far as to build the JNI and start Besu, but I get the following fatal error:
`A fatal error has been detected by the Java Runtime Environment:`
```
# Problematic frame:
# C [librocksdbjni-linuxs390x.so+0x25360e] Java_org_rocksdb_BlockBasedTableConfig_newTableFactoryHandle+0xae6
```
(I can send a complete error log file)
I've also tried with a previous version of RocksDB as per https://github.com/facebook/rocksdb/issues/5487, but I ran into other problems :/
Kind Regards
The `npx quorum-dev-quickstart` is our new standard going forward (has been for a few weeks :) ). Its precursor is https://github.com/ConsenSys/besu-sample-networks (The azure setup has one of the examples here) What version of nodejs do you have locally? I believe it needs 10+ to run
Essentially its a dev/test setup with 5 nodes on a VM with our monitoring dashboards and such built it
Hi all, I'm testing besu node on moder ETC testnet, and it looks like it's synced correctly, I see that it's in sync according to this: https://mordor.fork.fault.dev/, however I see that blockscout's explorer is ahead on a different block: https://blockscout.com/etc/mordor. @shemnon it seems like it's syncing correctly, could it be that blockscout is using a different (non-correct) fork?
Blockscout is using a buggy version of core-geth.
They have a node running a not really Thanos version. Claims to fork at 2520000 but actually is using full DAGs
Ok, so I think besu is syncing correctly, have you seen any issues?
These two are following real thanos -
https://blockexplorer.one/etc/mordor
https://explorer.anyblock.tools/ethereum/classic/mordor
not on the besu end.
can you review https://github.com/hyperledger/besu/pull/1474 so it gets in tomorrow's RC2 release?
Hi, Why I can't see my transactions in rinkeyby.etherscan ?
I saw them in lite explorer but not in rinkeby.etherscan
@aaltenbernd FYI I have raised a ticket to track this: https://github.com/hyperledger/besu/issues/1476
We'll get to it ASAP :)
Hey, we are currently running a an IBFT Besu Network with 4 validators on 4 VMs. We are conducting a performance study on
Hey, We are currently running an IBFT 2.0 Besu Network with 4 validators on 4 separate VMs. Our objectif right now is to run some benchmark testing to get the network performance results for executing a scenario which is : ERC20 transfert transaction with some additional data like id_transfert...
Above 4000 transactions we are having issues with executing transactions : for example if 5000 txs are sent to the JSON-RPC HTTP provider, only about 4300 Txs are executed and confirmed in blocks the rest of transactions are lost... Any transactions that we sent above this limit are always lost and we can see that just those 4300 are added to Blocks... Is there a limit of the JSON-RPC HTTP? How to explain these results?? and how to resolve the issue ??
have your transactions been committed to a block? I don't think etherscan provides visibility into the mempool.
Are you adjusting the gas limit or the block time or the memory pool size? It could be that the nodes memory pools are full because of low block bandwidth and the transactions are being dropped.
The initial max tx pool size (set by `--tx-pool-max-size`) is 4096. So if a large amount of TXes were loaded in all at once the blockchain may get one or two blocks out with the TXes acounting for the 204 beyond the limit. Alternatives are to (a) increase the tx pool max size or (b) dribble in new TXes at the same rate they are committed to the blockchain, after an initial load of a thousand or so.
Has joined the channel.
Hi! How are you? I follow the example of create a besu network with docker from here: https://besu.hyperledger.org/en/1.2.0/Tutorials/Private-Network-Quickstart/
It is working perfect. I have detected an issue, possible a configuration issue.
I could deploy contracts with 0 gas cost but when I try to exec transaction I received this message: Gas price below configured minimum gas price
I checked this https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/ and it is supposed to be OK configure but I don't understand where is the problem.
Also when I call to eth_gasPrice, I have this result: 0x3e8. And I expected 0.
Do you have the `--min-gas-price` flag set (https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/#3-start-besu-with-a-minimum-gas-price-of-zero)? This error should only occur in this case if the min gas price is greater than zero.
Cool! Thank you very much :)
[ ](https://chat.hyperledger.org/channel/besu?msg=mNt66Dc35gMDJmLbs) For the moment we are executing the scenario with loading Txs at once and see how besu is treating a large amount of TXes, the time needed for that and the number of blocks... For example when we loaded 3000 TXes at once, it took 8,63 s to be accepted (get the hash of all txes back) and transactions are splitted on 9 Blocks in respect for gas transaction and block gas limit.
Next experimentation scenarios for sure it will be adjusting metrics like you said.
[ ](https://chat.hyperledger.org/channel/besu?msg=BmCGmfynB3uevZrjg) We will try your a and b proposals and get back to you with results us i think thats a good way to test it...
I think that yes, I follow this: https://github.com/ConsenSys/besu-sample-networks. And I started the network with the command `./run.sh` and I check that all the nodes have the min-gas-price flag. I don't know where I doing wrong the things...
I think that yes, I follow this: https://github.com/ConsenSys/besu-sample-networks. And I started the network with the command ./run.sh and I check that all the nodes have the min-gas-price flag. I don't know where I doing wrong the things...
:besu: :relieved: Besu 20.10.0-RC2 is out :relieved: :besu:
:warning: This is our second release candidate towards our 20.10.0 release. It should be more stable than RC1, but still isn’t intended for production use. :warning:
:star2: Highlights :star2:
- Reverted our eth/65 fix and having it enabled by default as we keep investigating :man_detective_medium_light_skin_tone:
- Support for the latest ETC fork, Thanos
- Added the Open Telemetry Java agent to report traces to a remote backend
- Added EvmTool binary to the distribution, which is a CLI that can execute EVM bytecode and execute ethereum state tests :hammer_and_wrench:
You can get the release here: https://github.com/hyperledger/besu/releases/tag/20.10.0-RC2
Has joined the channel.
Node version is 14.4
It is running now.
Thank you!
I'm seeing seven peers though (i.e. eight nodes)
validator[1-4]
member[1-3]besu
rpcnode
Hi after a private besu network running IBFT2.0 is up and running, is it OK to shut all nodes down for a couple of month and restart the network when there is traffic?
perfectly fine. Getting the nodes talking together to restart the network is the only difficult part if thieir IPs changed underneath in the interim.
Can anyone suggest where to get Besu/ETH developers?
@arash009 I checked rinkeby.etherscan.io but can't find the node ID listed
Has joined the channel.
https://github.com/ConsenSys/besu-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy
I tried bringing up a k8s deployment using ./deploy.sh
besu node-1 0/1 Running 0 87s
besu node1privacy-0 0/1 Error 4 4m30s
besu node2privacy-0 0/1 CrashLoopBackOff 4 4m
besu node1privacy-0 0/1 CrashLoopBackOff 10 34m
besu node2privacy-0 0/1 CrashLoopBackOff 10 34m
The system is very unstable and often (every 2 minutes) goes into the above state
Anything I am missing or is a known issue. Thanks much in advance.
That shows you the transactions that have been processed on the network and ethereum accounts that they were from and to. Your node ID will not show up there.
Are you looking to hire?
Has joined the channel.
I have tried to run hyperledger besu for ETC from docker , i am getting issue with param "--data-path" as invalid parameter. if i tried using -v,not sure where the data is getting saved., help me ojn this
i used below command
sudo docker run -d -p 9535:9535 -v /nodeetc/data:/root hyperledger/besu:latest --rpc-http-enabled --rpc-ws-enabled --network=classic --rpc-http-host=0.0.0.0 --rpc-http-port=9535 --sync-mode=FULL --rpc-http-api=ETH,NET,WEB3,TRACE
I have tried to run hyperledger besu for ETC from docker , I am getting issue with param "--data-path" as invalid parameter. if i tried using -v,not sure where the data is getting saved., help me on this
i used below command
sudo docker run -d -p 9535:9535 -v /nodeetc/data:/root hyperledger/besu:latest --rpc-http-enabled --rpc-ws-enabled --network=classic --rpc-http-host=0.0.0.0 --rpc-http-port=9535 --sync-mode=FULL --rpc-http-api=ETH,NET,WEB3,TRACE
In just over an hour (1:15 to be precise) we will have Besu Office Hours (FKA the contributor call). After business we will have an open discussion on Ethereum Hard Forks. - https://wiki.hyperledger.org/display/BESU/2020-10-27+Office+Hours
The --data-path in a docker container would be the path _within_ the container. so I would change to `-v /nodeetc/data:/data` and add to besu `--data-path=/data`. On your host system the data would wind up in /nodeetc/data.
I think /nodeetc/data needs to exist prior to the call.
I would also recommend --sync-mode=FAST unless you explicitly need all archive data.
I would also recommend `--sync-mode=FAST` unless you explicitly need all archive data.
Full sync will take about 2 weeks, fast sync. Fast sync ~6 hours on a i3.xlarge. Not sure how that translates to your docker image.
Office Hours zoom - https://consensys.zoom.us/j/199741148
Thanks shemnon, for the help.
I didn't get how to set the a --data-path=/data to besu. Will connect on besu hours on mentioned link.
Thanks shemnon, for the help.
I didn't get how to set the a --data-path=/data to besu. Will connect on besu hours on mentioned link, around 8.30PM IST.
That meeting already happened.
next office hours is apac time in two weeks.
oh ok, can you give me an idea on how to set the path --data-path=/data to besu
oh ok, can you give me an idea on how to set the path --data-path=/data to besu? I have tried with sudo docker run -d -p 9535:9535 -v /nodeetc/data:/data hyperledger/besu:latest --rpc-http-enabled --rpc-ws-enabled --network=classic --rpc-http-host=0.0.0.0 --rpc-http-port=9535 --sync-mode=FULL --rpc-http-api=ETH,NET,WEB3,TRACE. it is synching. But data is getting saved in root
oh ok, can you give me an idea on how to set the path --data-path=/data to besu? I have tried with sudo docker run -d -p 9535:9535 -v /nodeetc/data:/data hyperledger/besu:latest --rpc-http-enabled --rpc-ws-enabled --network=classic --rpc-http-host=0.0.0.0 --rpc-http-port=9535 --sync-mode=FULL --rpc-http-api=ETH,NET,WEB3,TRACE. it is synching. But data is getting saved in root. Please help in setting the besu path. or some commands to do this
just add it to the end,
```
sudo docker run -d -p 9535:9535 -v /nodeetc/data:/data hyperledger/besu:latest --rpc-http-enabled --rpc-ws-enabled --network=classic --rpc-http-host=0.0.0.0 --rpc-http-port=9535 --sync-mode=FULL --rpc-http-api=ETH,NET,WEB3,TRACE --data-path=/data
```
Thanks shemon,
I have tried the above one and got the below issue and container stopped
2020-10-28 16:53:05.028+00:00 | main | INFO | StaticNodesParser | StaticNodes file /data/static-nodes.json does not exist, no static connections will be created.
2020-10-28 16:53:05.030+00:00 | main | INFO | Besu | Connecting to 0 static nodes.
2020-10-28 16:53:05.041+00:00 | main | INFO | Besu | Security Module: localfile
Cannot store generated private key.
Has joined the channel.
Hi Besu folks, to interact with Besu 1.5.0 network such as sending transaction and deploying smart contract, can dapp use web3.js API?
After besu is started once, there is "key" file generated and it is the private key. How can I find the corresponding public key on command line?
$besu public-key export --to=pub-key is the command to export public key for a node
`/nodeetc/data` needs to exist and be writable
on the nost
2 bootnodes are started on a IBFT2 private network. Here is the output of the log:
EmcLab - Wed Oct 28 2020 23:15:37 GMT-0700 (Pacific Daylight Time).txt
Is this node running normal?
Thanks shemon, only difference I did was , the way of specifying data folder, i have used drive space and it started working, thanks a lot.
Hi Shemon,
Hi Shemon, node started synching and responding to curl queries as well. But when tried to query from postman getting "message": "Host not authorized." error .Please help me on this.
Hi Shemon, node started synching and responding to curl queries as well. But when tried to query from postman getting "message": "Host not authorized." error .Please help me on this. found this --host-allowlist=
Hi Besu folks, is there a way I can see the log output of running nodes? ibft2 node is started with besu --config-file=myconfig.toml on ssh terminal and gets disconnected after a some time.
You need 4 nodes minimum to produce blocks in IBFT2. So yes, that's normal.
for ssh I would run it as a `nohup` process and pipe the log out to some other location. `nohup
Hi, I am trying to run the 1.5.5 version of besu on kubernetes using the kubectl template from here: https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/clique
I'm using do-block-storage for the data-path.
When I deploy everything, I'm getting an error in the validator1 logs (shown below). The rpc-node and validator2 keep failing on the init stage due to a curl error.
```
Setting logging level to INFO
2020-10-29 21:29:39.841+00:00 | main | INFO | AltBN128PairingPrecompiledContract | Using native alt bn128
2020-10-29 21:29:41.532+00:00 | main | INFO | SECP256K1 | Using native secp256k1
2020-10-29 21:29:41.550+00:00 | main | INFO | Besu | Starting Besu version: besu/v1.5.5/linux-x86_64/oracle_openjdk-java-11
2020-10-29 21:29:42.120+00:00 | main | WARN | TomlConfigFileParser | Write access denied for file at: %s. Configuration modification operations will not be permitted.
2020-10-29 21:29:42.147+00:00 | main | WARN | TomlConfigFileParser | Write access denied for file at: %s. Configuration modification operations will not be permitted.
2020-10-29 21:29:42.157+00:00 | main | WARN | TomlConfigFileParser | Write access denied for file at: %s. Configuration modification operations will not be permitted.
2020-10-29 21:29:42.171+00:00 | main | INFO | StaticNodesParser | StaticNodes file /data/static-nodes.json does not exist, no static connections will be created.
2020-10-29 21:29:42.174+00:00 | main | INFO | Besu | Connecting to 0 static nodes.
2020-10-29 21:29:42.184+00:00 | main | INFO | Besu | Security Module: localfile
2020-10-29 21:29:42.260+00:00 | main | INFO | KeyPairUtil | Loaded public key 0xf32f4f4cfbc10bd83cf496798e59effeeab81772a54823f55918454bc8be34c80a540dcf4bf9466908b5b1a0305458df04b23024f5a0859346ed1eb8f30d448c from /secrets/key
2020-10-29 21:29:42.314+00:00 | main | INFO | RocksDBKeyValueStorageFactory | No existing database detected at /data. Using version 1
2020-10-29 21:29:42.326+00:00 | main | ERROR | RocksDBKeyValueStorageFactory | Failed to retrieve the RocksDB database meta version: /data/DATABASE_METADATA.json (Permission denied)
/data/DATABASE_METADATA.json (Permission denied)
To display full help:
besu [COMMAND] --help
```
I'm thinking maybe it has to do with the `config.toml` permissions config files, which I have left uncommented as I don't understand what they are / how to use/generate them.
Thanks!
Hi @antonispoulakis any change to the manifests apart from the version?
Could you explain what `do-block-storage` for the data path is please? That needs to be a path on the local filesystem ie `/data` etc where you mount a PVC or the like
Could you explain what `do-block-storage` for the data path is please? That needs to be a path on the local filesystem ie `/data` etc where you mount a PVC or the like. If you're on Digital Ocean, create a PV using the appropriate storageClass, then a PV claim and mount that to somewhere on the container eg: `/data`. That path is then what you'd specify for `data-dir`
Besu can be configured using cmd line or config file or env vars. In these examples we've gone with with the config file approach ie. config.toml. Details here https://besu.hyperledger.org/en/stable/HowTo/Configure/Using-Configuration-File/
Hi @joshuafernandes. The `do-block-storage` is on Digital Ocean
Hi @joshuafernandes. The `do-block-storage` is on Digital Ocean and we are mounting it as you said.
We had to run `chmod` on the data directory for the permissions to be fixed. So, it wasn't a configuration issue.
Thanks for the help!
Hi folks, is Oracle Java a requirement, or has Besu been tested with openjdk ?
Oracle Java is not a requirement. Java 11+ is. We have docker images for openjdk latest (15 right now), oracle jdk, and graalvm. Oracle is just the default VM right now.
Any JDK is fine, our docker images are openjdk and graalvm - https://github.com/hyperledger/besu/tree/master/docker. We also test with Coretto JDK
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' localhost:8545
curl: (7) Failed to connect to localhost port 8545: Connection refused
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' localhost:8545
curl: (7) Failed to connect to localhost port 8545: Connection refused The connection refused by the node. The config.toml has rpc-http-port and rpc-http-host specified. What is missing here?
thank you, I'm finishing an ansible playbook to install besu, and Oracle jdk was extremely difficult to install, I'm relieved now :sweat:
What's rpc-http-host set to? I'd recommend `0.0.0.0`, if you used the actual IP of the host you need to connect to
Also, I'm assuming you aren't in a docker container or k8s, those have weird interactions with exposed ports.
Hi team, how to specify --host-allowlist in config.toml file? I did the following but was not working (besu won't start) and have to do it in command line as --host-allowlist="ip1", "ip2": host-allowlist="*"
No worries :) We've got a playbook that you can use and customise to suit here https://galaxy.ansible.com/pegasyseng/hyperledger_besu
[ ](https://chat.hyperledger.org/channel/besu?msg=d3wgQgXmfLLHdt4XM) Not in docker container. Is there security concern in production when setting rpc-http-host to 0.0.0.0? It is not recommended by besu to set host-allowlist to "*". I am not sure if they are resetting the same param.
```
host-allowlist=["ip1","ip2"]
```
Hello, how to setup a public ip access of a besu node? So dapp can call via API by http.
:thumbsup:
:thumbsup: that sounds about right Will keep you posted
If you are in docker or k8s besu should sniff it out automatically. you can use `--nat-method=DOCKER` or `--nat-method=KUBERNETES` to help the auto detection as appropriate. If you are behind a residential router `--nat-method=UPNP` will set up the port forwarding.
if you have to manually set up the port forwarding or firewall rules `--p2p-host=
If you have multiple network interfaces you will need to set `--p2p-interface` to the network interface you want the P2P to listen to.
I download the tar file and un-tar it. This probably is the manually setup. Yes, the node is behind a router and needs port forwarding. Also shall reverse proxy (such as nginx) be used for security?
Hi there, is there any option to make a 1.5.x node work in a network where validators and bootnodes are 1.4.x ? I wasn't able to get any single block in such scenario trying all versions from 1.5.0 to 1.5.5
Can you share the details of your genesis file and other configuration options?
Also, a set of logs where `--logging=DEBUG` is set as a CLI option (or config.toml has `logging="DEBUG") would help diagnose the issue too.
data-path="/data/besu/data"
genesis-file="/data/besu/config/besu/genesis.json"
host-whitelist=["*"]
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port="9545"
min-gas-price=0
p2p-host="185.180.8.164" # *** You will need to change this to your node IP ***
p2p-port=30303
permissions-accounts-contract-address="0x0000000000000000000000000000000000008888"
permissions-accounts-contract-enabled=false
permissions-nodes-contract-address="0x0000000000000000000000000000000000009999"
permissions-nodes-contract-enabled=false
privacy-enabled=false
#privacy-marker-transaction-signing-key-file="signer.key"
#privacy-public-key-file="orion/nodekey.pub"
#privacy-url="http://127.0.0.1:8888" # orion clienturl
rpc-http-api=["ETH","NET","IBFT","PERM","EEA","PRIV"]
rpc-http-cors-origins=["all"]
rpc-http-enabled=true
rpc-http-host="127.0.0.1"
rpc-http-port=8545
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
logging="DEBUG"
and a list of bootnodes ... same config.toml works on 1.4.6 , but not on 1.5.x
the genesis.json includes a SC
carlosho17 - Wed Nov 04 2020 16:02:38 GMT+0100 (hora estándar de Europa central).txt
2020-10-31 15:05:52.399+00:00 | vert.x-eventloop-thread-2 | DEBUG | RecursivePeerRefreshState | Received neighbours packet with 12 neighbours
2020-10-31 15:05:52.622+00:00 | nioEventLoopGroup-3-10 | DEBUG | RlpxAgent | Failed to connect to peer 0x82da125409e6dd5e123803aebf6ab4d3507f57ab747242fda065f17f2309d32dc64c6119a7a9017b1285048e8e2e79c85d49b59ae3a05f56d764c9bec7ffd9be: java.util.concurrent.TimeoutException: Timed out waiting to establish connection with peer: 0x82da125409e6dd5e123803aebf6ab4d3507f57ab747242fda065f17f2309d32dc64c6119a7a9017b1285048e8e2e79c85d49b59ae3a05f56d764c9bec7ffd9be
2020-10-31 15:05:52.691+00:00 | vert.x-eventloop-thread-2 | DEBUG | RecursivePeerRefreshState | Bonding round timed out
2020-10-31 15:05:52.691+00:00 | vert.x-eventloop-thread-2 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 763 peers processed over 101 rounds.
2020-10-31 15:05:52.697+00:00 | nioEventLoopGroup-3-6 | DEBUG | AbstractHandshakeHandler | Handshake error: Decrypting an incoming handshake message failed
2020-10-31 15:05:52.777+00:00 | nioEventLoopGroup-3-5 | DEBUG | AbstractHandshakeHandler | Sending framed hello
2020-10-31 15:05:52.777+00:00 | nioEventLoopGroup-3-5 | DEBUG | AbstractHandshakeHandler | Successfully wrote hello message
2020-10-31 15:05:52.777+00:00 | nioEventLoopGroup-3-5 | DEBUG | DeFramer | Received HELLO message: PeerInfo{version=5, clientId='qk_node/qk_client 1.0.1.218 0x60836AAA0B794952f134252267168881d5DB6243/v1.9.23-stable/windows-amd64/go1.15.2', capabilities=[qki/63, qki/64, qki/65], port=0, nodeId=0xca8051e1ef435f502276122eb0cfb7b550e2a324c687b6179817797fc78406b5cfe6a7f0e95befd7d0e07b7d37d6c22e78c5ee73cee1c9d601646d55bdab5c3d}
2020-10-31 15:05:52.777+00:00 | nioEventLoopGroup-3-5 | DEBUG | DeFramer | Enable compression for p2pVersion: 5
2020-10-31 15:05:52.777+00:00 | nioEventLoopGroup-3-5 | DEBUG | DeFramer | Disconnecting because no capabilities are shared: PeerInfo{version=5, clientId='qk_node/qk_client 1.0.1.218 0x60836AAA0B794952f134252267168881d5DB6243/v1.9.23-stable/windows-amd64/go1.15.2', capabilities=[qki/63, qki/64, qki/65], port=0, nodeId=0xca8051e1ef435f502276122eb0cfb7b550e2a324c687b6179817797fc78406b5cfe6a7f0e95befd7d0e07b7d37d6c22e78c5ee73cee1c9d601646d55bdab5c3d}
2020-10-31 15:05:52.777+00:00 | nioEventLoopGroup-3-5 | DEBUG | AbstractPeerConnection | Disconnecting (0x03 USELESS_PEER) from PeerInfo{version=5, clientId='qk_node/qk_client 1.0.1.218 0x60836AAA0B794952f134252267168881d5DB6243/v1.9.23-stable/windows-amd64/go1.15.2', capabilities=[qki/63, qki/64, qki/65], port=0, nodeId=0xca8051e1ef435f502276122eb0cfb7b550e2a324c687b6179817797fc78406b5cfe6a7f0e95befd7d0e07b7d37d6c22e78c5ee73cee1c9d601646d55bdab5c3d}
2020-10-31 15:05:53.296+00:00 | nioEventLoopGroup-3-7 | DEBUG | RlpxAgent | Failed to connect to peer 0x7aabc01b2612f6f48be405b4f84b10de0c8e79cbeccb178ca90b3fd51b70c1fcbd98044a2b35fe3ddf39a9cbbb1bc1aa6a1fcf2b80d2fa28b5e0f061f92221f4: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /152.136.67.47:30303
2020-10-31 15:05:53.381+00:00 | nioEventLoopGroup-3-6 | DEBUG | RlpxAgent | Failed to connect to peer 0x13f8d1b288694279ba4e9a4fdebd8cb09e970f3f90659707b07b48489134a39e8e3b46e75379386f6d481b94091dae8efcf8cea79110edd40fc386cae2fd73ad: java.util.concurrent.TimeoutException: Timed out waiting to establish connection with peer: 0x13f8d1b288694279ba4e9a4fdebd8cb09e970f3f90659707b07b48489134a39e8e3b46e75379386f6d481b94091dae8efcf8cea79110edd40fc386cae2fd73ad
I tried quickly different versions with an ansible playbook ... and it started working as soon as I installed a 1.4.x version (1.4.6 to be more precise)
these debug logs correspond to the timeframe where it ran some 1.5.x version (I tried from 1.5.0 to 1.5.5)
I've seen this message "Disconnecting because no capabilities are shared:" which shows up after connecting to a bootnode
Are the logs you posted from 1.5.x or 1.4.x?
Has joined the channel.
In case of Besu IBFT, how does one get information about proposer of the block?, In case of quorum ibft , it can be recovered from proposer seal in block.extraData
@carlosho17 I managed to repo this! I'll be making an issue to track it
@shemnon these are logs from 1.5.x when trying to speak to bootnodes that are 1.4
I found a similar issue in https://github.com/hyperledger/besu/issues/1533
It can also be extracted from the extra data, but there are a few JSON-RPC APIs that can do that automatically:
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#ibft_getvalidatorsbyblockhash
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#ibft_getvalidatorsbyblocknumber
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#ibft_getsignermetrics
You will need to enable the IBFT APIs, ideally on a non-validating node.
Reverse proxy is a good security step. We also have a means to turn on password verification, https client certs, and jwt, although I'd have to ask my teammates how those work.
Thank you for offering more details, especially jwt. I am using jwt in mobile app and it would be very interesting for me to setup jwt to allow mobile app to talk with besu node/validator. I am new to setup private besu network and is still in the process of learning. Any reading or post would be helpful.
How does one do it from extraData. Quorum ibft has proposer seal in extradata. But I don't see how could one recover form ibft2 block. Is order of seals somehow deterministic to get proposer seal in extradata
Provided you haven't specified a mining beneficiary on the commandline, the coinbase of a block should be the proposers address
Thanks. that matches my understanding. But want to confirm if that can't be extracted using extraData
IBFT2 stores it in the coinbase only, not the extradata
What do you need the proposer for? It normally wouldn't mean much outside of the IBFT block-creation process
Apologies! The coinbase will always be the proposer's address, regardless of the mining-beneficiary on the cmdline.
Thanks. Had a application logic to get proposer from quorum ibft. though same thing might work besu. Wanted to know if it is as all possible to determine proposer from extradata.
Yes it might not mean much outside of consensus. but it is good to know it can be determined from a given block's data , independent of the history
Thanks. Had a application logic to get proposer from quorum ibft. though same thing might work with besu. Wanted to know if it is as all possible to determine proposer from extradata.
Yes it might not mean much outside of consensus. but it is good to know it can be determined from a given block's data , independent of the history
:thumbsup:
Hi, I am having some problems with chain development using clique with 3 signers
image.png
There are 3 nodes and 3 signers, any idea about why is this happening?
image (1).png
PoA clique algorithm provide tx finality?
Hi! Clique doesn't provide tx finality. IBFT2 does.
What problem are you talking about? The logs here seems to be fine :)
I think it's the repeated block numbers that are coming from out of order signers, i.e. this is demonstrating a lack of finality. This is a know weakness in Clique which is why we tend to recommend IBFT if you can get the minimum 4 validators.
It also looks like the period is too low. I wouldn't go below 2 (seconds).
and a 200M gas limit... are you load testing?
Gosh, I look at these logs every day and can't spot issues... There is no hope for me... Thanks Danno!
Has joined the channel.
A gentle reminder since didn't hear back from anybody
ramkri123 October 25, 2020 2:12 PM
https://github.com/ConsenSys/besu-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy
vmware@localhost:~$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
besu node1privacy-0 0/1 CrashLoopBackOff 35 169m
besu node2privacy-0 0/1 CrashLoopBackOff 35 169m
besu orion1-0 1/1 Running 0 169m
besu orion2-0 1/1 Running 0 169m
besu validator1-0 1/1 Running 0 169m
besu validator2-0 1/1 Running 1 169m
besu validator3-0 1/1 Running 0 169m
besu validator4-0 1/1 Running 1 16
Used the recommended deploy.sh
diff --git a/kubectl/quorum-besu/ibft2-with-privacy/statefulsets/node2privacy-statefulset.yaml b/kubectl/quorum-besu/ibft2-with-privacy/statefulsets/node2privacy-statefulset.yaml
index 9322ea5..2a55528 100644
--- a/kubectl/quorum-besu/ibft2-with-privacy/statefulsets/node2privacy-statefulset.yaml
+++ b/kubectl/quorum-besu/ibft2-with-privacy/statefulsets/node2privacy-statefulset.yaml
@@ -102,7 +102,7 @@ spec:
configMap:
name: orion-configmap
items:
- - key: orion1PubKey
+ - key: orion2PubKey
path: orion.pub
- name: genesis-config
configMap:
@@ -112,4 +112,4 @@ spec:
name: besu-config-toml-configmap
- name: data
found one potential issue and fix above
still didn't help
also tried removing node-statefulset.yaml from the deployment since it didn't seem to be useful
that also didn't help
Any help would be much appreciated.
Hi everybody,
I’ve noticed that getting logs on besu takes substantially more time than on other clients.
it takes around 20 seconds to get Transfer logs for one contract on the chain with 12M blocks and the same query on the same chain but with Parity takes 0,1 seconds.
The chain is almost empty.
Is there something which is missing in my configuration or is it an expected behaviour? I have transaction log bloom caching enabled and full sync mode.
That matches our measuremet. If I understand their arcitecture correctly Parity creates an index of thelogs, which is the only way it can asses 12M blocks in 100ms. Currently we still walk a cached index of the block headers.
That matches our measuremet. If I understand their arcitecture correctly Parity creates an index of thelogs, which is the only way it can asses 12M blocks in 100ms. Currently we still walk a cached copy of the log field in the block headers.
@shemnon Thank you for a quick reply. Yeah, I was assuming something like this. Are there any plans on the roadmap for besu to implementing indexing to improve the logs accessibility speed?
Has joined the channel.
@shemnon Is there office hours today?
not at the moment. our current roadmap is here - https://wiki.hyperledger.org/display/BESU/Roadmap
Thank you :)
This week was APAC/AMER times, and it didn't happen (it was 18 hours ago)
EMEA/AMER office hours are in two weeks.
Has joined the channel.
Hello, I am trying to deploy Besu through Azure Marketplace but I am getting errors at newuserscript execution. Anyone has any clue?
Hi, we are indeed in the process of fixing this and it involves some 3rd party. I will ask our team what the progress is on this and tell you.
Hi it look like an isse we already spotted and did not yet fix. We suggest a workaround in this thread If its time critical running `npx quorum-dev-quickstart` on your VM in Azure will get you going with the same setup
Hi it look like an isse we already spotted and did not yet fix. We suggest a workaround in this thread https://chat.hyperledger.org/channel/besu?msg=S9Eq48B4PwPnFTFur
Has joined the channel.
Hi All, i've created an IBFT2 private network with 5 Validator Nodes. Client Version 1.5.0.
Then i tried to connect a leecher node with the new client release (20.10), but i cant sync this node with the blockchain. I'm getting an "Invalid block detected error".
How can i solve this? Has anyone encountered this problem?
are the genesis files the same? Can you add --logging=DEBUG to the CLI? (it should add more colour as to why it was rejected)
yes, same genesis, and tried with --logging=DEBUG and --logging=TRACE, but it does not log nothing more. Invalid Headers at block#200 and error while downloading block #400 #600 #800 and then disconnect from peers.
we should be getting something at debug and trace, that's odd.
@feazzu - are you able to paste the actual logs so we can see the specific error you're getting?
Hi Team, I have deployed a ETC Besu node. Node reached 7M after that the node sync became slow from last 7 days only 300k blocks synched and it is now at 7.3 M. Node is able to connect 2 to 3 peers. can you please let me know how to increase the peers connection?
No other mechanisms exist for peer discovery in ETC other than Devp2p discovery exist.
* you can manually add known peers via the `admin_addPeer`.
* Make sure your node has a valid external address (set `--p2p-host` to your natted external adddress or use `--nat-method=upnp` if behind a residential gateway)
No mechanisms for peer discovery in ETC other than Devp2p discovery exist.
* you can manually add known peers via the `admin_addPeer`.
* Make sure your node has a valid external address (set `--p2p-host` to your natted external adddress or use `--nat-method=upnp` if behind a residential gateway)
There are many nodes that won't accept external peer requests but will try to externally connect to yours, so it is essential you configure your node to broadcast a globally accessible enode address.
Also, many peers disconnect full sync and fast sync nodes when they download too many blocks or exert too much bandwidth.
If you set `--p2p-host` also set `--p2p-interface` with either 0.0.0.0 or the local IPv4 address of the network interface local to your lan (such as 192.168.1.10)
if you only have one Network Card `0.0.0.0` is the easiest value for the interface as it will use the first enumerated network card.
Has joined the channel.
Hey everyone! I'm trying to get started with hyperledger, already experienced in ethereum development. I see npx quorum-dev-quickstart is recommended for besu/quorum, but I don't know what next steps to take after starting a chain. Can I deploy and test smart contracts the same way using truffle and solidity? I also have heard I need to learn different messaging and event systems like kafka and rabbit md, don't know where to find tutorials for this.
any directions for tutorials on connecting these things would be helpful too!
Has joined the channel.
hi @andrewhong5297 - yes you can deploy and test smart contracts in the same way using Truffle and Solidity. This tutorial walks through that - https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
Awesome, thank you!
How do use orion and ethsigner? I don't understand the use of either, Is orion for limiting who can transact with who, and ethsigner is just a wallet?
also sorry one more question, are there any differences between besu and geth other than besu being private?
Orion is the private transaction manager to enable private transactions (that is, transactions that are only visible to participants). The overview doc on privacy is here: https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/
And a tutorial on setting up a network with privacy:
https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/
EthSigner is a transaction signer. Besu doesn't support transaction signing inside the client - https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/
If you've got specific questions about Orion and EthSigner, there's Orion and Ethsigner channels on the ConsenSys Discord (invite link - https://discord.com/invite/5U9Jwp7)
Got it - thanks! I'm looking through the cakeshop toolkit for my local besu now
What are peers?
or documentation where I can learn about peers
I don't see it here https://besu.hyperledger.org/en/stable/Tutorials/Examples/
ah nevermind, I see docker includes a few members and validators
Re the differences between Geth and Besu. Like Geth, Besu runs on the Ethereum public networks. Besu also has a number of enterprise features to ensure it meets the demands of enterprise solutions. Permissioning, privacy, Apache 2 license, IBFT 2.0 consensus, and a plugin framework for extensibility are some of these.
Re peers - there's the following doc: https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Managing-Peers/
Besu has a plugin interface (https://besu.hyperledger.org/en/stable/Reference/Plugin-API-Interfaces/) and the event streaming plugin is open-source (https://doc.quorumplugins.consensys.net/en/latest/Concepts/Besu-Plugins/Event-Streams/)
Hi shemnon,
Thank you for the information, in Besu do we have file which stores the peers info? like peers.dat in parity. If exists can you let me know where it will sit, and can we modify it.
Has joined the channel.
Hi shemnon,
Is there any possibility, on the peer information, which we can use by adding to our node?
Hi shemnon,
Is there any possibility, on the peer information, which we can use by adding to our node, to increase our peers to speed up sync process?
If there was an ethereum classic version of https://ethernodes.org/ you could hand feed peers into the `admin_addPeer` APIs
we don't keep a peers.dat file. It would make for a good feature request.
Has joined the channel.
Hi
how to create a new account in besu - ./besu account new?
If use --network=mordor
what will be the default id
Besu doesn't have wallet management features, by design (secure by default).
you could use tools like metamask or ethsigner to access account RPCs (https://github.com/ConsenSys/ethsigner)
https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/API/#account-management
Has joined the channel.
Hello - I tried the tutorial https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/ and got the IBFT network working. Now I want to test deploying transactions and a contract to it. The "Next Steps" in that tutorial linked to https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/#creating-a-transaction-using-metamask which then asks me to create a new network with npx quorum-dev-quickstart Is there any way to use the existing IBFT network to deploy a contract and test some transactions?
Hello, I'm currently testing permissioned and private networks with Orion, we are attempting to validate the transaction by using https://github.com/zmitton/eth-proof . It is returning an error `Error: BlockHash mismatch` . I have verified proofs on public test networks and it works as expected. Does Besu support patricia merkle tree proofs? Thanks!
Screen Shot 2020-11-18 at 11.31.01 AM.png
Screen Shot 2020-11-18 at 11.31.01 AM.png
How are you deploying contracts to Besu? Using truffle?
@belmix - the network and chain IDs for modor are listed here: https://besu.hyperledger.org/en/stable/Concepts/NetworkID-And-ChainID/
you need to sign the transaction with your private key using HDWalletProvider in truffle
OK thanks. That is better now with https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/
Has joined the channel.
synching besu to eth mainnet and every time I start it it seems to start synching from ~6%, even if I get close to 90% the previous run
Is that normal?
fast-sync and pruning enabled
Hello everyone, I am reading the official documentation in order to stay updated with besu; please I would like to understand how the process of removing and adding new validators, without involving the voting process, works.
According to the documentation (here https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#adding-and-removing-validators-without-voting) the scenario can be applied when the majority of validators are not working on the network. So I such case I assume that the network is halted and thus not producing blocks.
In that context, I wonder how the network will reach a future block, specified in the genesis, where new validators will take place and current inactive validators will be removed??
Has joined the channel.
Hi guys, I just got a new ARM mac and try to install besu (binary distribution) there with rosetta 2 (installed brew already that way) but I get a message that I should habe JDK installed (which I have of course). Do you think thats an issue because its only compatible with the Intel Macs somehow or because something is wrong with JDK? Is this maybe something for the Apple Forum instead of here?
" besu: Java 11+ is required for this software. "
how did you install besu? homebrew?
or extracting the zip somewhere?
i didnt yet, I'm trying to
with homebrew yes
didnt yet install it but try to using homebrew.
So if you have rosetta i expect it should work. To improve performance we should look into testing with ARM JDKs (builds are starting to show up) as well as building our native libraries to ARM. Our crypto libraries have Java fallbacks but I think even via rosetta the native libs will be faster.
We don't depend on virtualization and from what I've read that's the only hard stop right now. (For stuff like Docker)
:besu: *Besu 20.10.1 is out* :besu:
:star2: Highlights :star2:
- Two new JSON RPC endpoints to get miner rewards data, `eth_getMinerDataByBlockHash` & `eth_getMinerDataByBlockNumber`
- A new JSON RPC endpoint to change the gas limit, miner_changeTargetGasLimit
- The transaction pool now prioritizes transactions by gas prices
- EVMTool is now part of the binary distribution
- We now provide a new metric to track performance during block import: MegaGas/Seconds
- We have support for OpenTelemetry metrics
- We added support for qip714block config parameter in genesis file, paving the way towards permissioning interoperability between Besu and GoQuorum.
You can get the release here: https://github.com/hyperledger/besu/releases/tag/20.10.1
:besu: *Besu 20.10.1 is out* :besu:
:star2: Highlights :star2:
- Two new JSON RPC endpoints to get miner rewards data, `eth_getMinerDataByBlockHash` & `eth_getMinerDataByBlockNumber`
- A new JSON RPC endpoint to change the gas limit, `miner_changeTargetGasLimit`
- The transaction pool now prioritizes transactions by gas prices
- EVMTool is now part of the binary distribution
- We now provide a new metric to track performance during block import: MegaGas/Seconds
- We have support for OpenTelemetry metrics
- We added support for qip714block config parameter in genesis file, paving the way towards permissioning interoperability between Besu and GoQuorum.
You can get the release here: https://github.com/hyperledger/besu/releases/tag/20.10.1
Has joined the channel.
Hi guys, I installed Besu on a new machine (my HW, not cloud) running Ubuntu 20, and I'm trying to sync with mainnet (fast sync). It runs for a few hours and then I get errors like this:
020-11-19 11:54:22.975-08:00 | EthScheduler-Services-9 (importBlock) | ERROR | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.plugin.services.exception.StorageException: org.rocksdb.RocksDBException: block checksum mismatch: expected 3484042056, got 3599251239 in /chaindata/besu/database/027677.sst offset 415841 size 8152
2020-11-19 12:48:53.992-08:00 | EthScheduler-Services-9 (importBlock) | ERROR | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.plugin.services.exception.StorageException: org.rocksdb.RocksDBException: block checksum mismatch: expected 3484042056, got 3599251239 in /chaindata/besu/database/027677.sst offset 415841 size 8152
Hey @eum602, You're absolutely right, the transitions are used for making a step change in the validator list.
The two main uses are:
Hey @eum602, You're absolutely right, the transitions are used for making a step change in the validator list.
The main uses are:
1. Network has halted
2. Validator pool compromised, or
3. Planned network split
For the third option - we recommend setting a date in the future, and allowing the network to split when it reaches the transition block.
In the instance of a halted network (or recognised compromised validators), we'd recommend stopping the network, inserting a transition 1 block ahead of the current chain length, then restarting. Thus, the next block proposed would contain the validators specified in the transition, and the network would continue on.
Mainnet sync is very hard on I/O. Is this an SSD or HDD? mainnet may be too much four your hw setup.
It's SSD (1 TB).
the error is a low level DB issue. There's not much support we can offer, probably an issue with rocksdb.
Thanks a lot @trent.mohay , that is clear for me. Is it also possible for a regular node to declare it as a validator for the next block, change the networkId, start the network where it is the unique node in that netowork and then join new participants in that forked chain?
Hi
CLIENT:
Hyperledger Besu
CHAIN:
Mining Pool: ethc
Coin Type: ETC [ETC]
Network Connected: Mainnet-Mordor
Detected Reward Type: POW
Current Block Height: 2724453
Current Connect Peers: 6
Network Difficulty: 8133460
LOG:
[W] [ethc] Target: 0x0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[W] [ethc] Block Target: 0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[I] [ethc] New work at height 2724463 and header 0x4b57fed6dfaddc12049ec7e0ed52e3707c16efbd3f1b6ce62966d9821d605f9f detected [POLL]
[W] [ethc] ResultValue: 16f5a60cfbe24ceb408d3c03b6aa2eb0d710edfbcf26b0c2247c52c5b225ac6e
[W] [ethc] isBlockCandidate: False
[I] [ethc] [0HM4CRRU90AO7] Share rejected: Not found block target (False)
Condition:
var isBlockCandidate = resultValue <= blockTarget;
Code:
var target = blockTemplate.Target; // get blockTarget
blockTarget = new uint256(target.HexToReverseByteArray());
...
if(!dag.Compute(logger, BlockTemplate.Header.HexToByteArray(), fullNonce, out var mixDigest, out var resultBytes)) // get resultValue
var resultValue = new uint256(resultBytes);
DAG:
[I] [ethc] Generating DAG for epoch 45
[I] [ethc] Done generating DAG for epoch 45 after 00:00:01.5038594
[I] [ethc] Pre-generating DAG for epoch 46
[I] [ethc] Generating DAG for epoch 46
[I] [ethc] Done generating DAG for epoch 46 after 00:00:01.4032052
i am trying to add support for ethereum classic in miningcore
https://github.com/coinfoundry/miningcore
CLIENT:
Hyperledger Besu
CHAIN:
Mining Pool: ethc
Coin Type: ETC [ETC]
Network Connected: Mainnet-Mordor
Detected Reward Type: POW
Current Block Height: 2724453
Current Connect Peers: 6
Network Difficulty: 8133460
LOG:
[W] [ethc] Target: 0x0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[W] [ethc] Block Target: 0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[I] [ethc] New work at height 2724463 and header 0x4b57fed6dfaddc12049ec7e0ed52e3707c16efbd3f1b6ce62966d9821d605f9f detected [POLL]
...
[W] [ethc] ResultValue: 16f5a60cfbe24ceb408d3c03b6aa2eb0d710edfbcf26b0c2247c52c5b225ac6e
[W] [ethc] isBlockCandidate: False
[I] [ethc] [0HM4CRRU90AO7] Share rejected: Not found block target (False)
Condition:
var isBlockCandidate = resultValue <= blockTarget;
Code:
var target = blockTemplate.Target; // get blockTarget
blockTarget = new uint256(target.HexToReverseByteArray());
...
if(!dag.Compute(logger, BlockTemplate.Header.HexToByteArray(), fullNonce, out var mixDigest, out var resultBytes)) // get resultValue
var resultValue = new uint256(resultBytes);
DAG:
[I] [ethc] Generating DAG for epoch 45
[I] [ethc] Done generating DAG for epoch 45 after 00:00:01.5038594
[I] [ethc] Pre-generating DAG for epoch 46
[I] [ethc] Generating DAG for epoch 46
[I] [ethc] Done generating DAG for epoch 46 after 00:00:01.4032052
i am trying to add support for ethereum classic in miningcore
https://github.com/coinfoundry/miningcore
CLIENT:
Hyperledger Besu
CHAIN:
Mining Pool: ethc
Coin Type: ETC [ETC]
Network Connected: Mainnet-Mordor
Detected Reward Type: POW
Current Block Height: 2724453
Current Connect Peers: 6
Network Difficulty: 8133460
LOG:
[W] [ethc] Target: 0x0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[W] [ethc] Block Target: 0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[I] [ethc] New work at height 2724463 and header 0x4b57fed6dfaddc12049ec7e0ed52e3707c16efbd3f1b6ce62966d9821d605f9f detected [POLL]
...
[W] [ethc] ResultValue: 16f5a60cfbe24ceb408d3c03b6aa2eb0d710edfbcf26b0c2247c52c5b225ac6e
[W] [ethc] isBlockCandidate: False
[I] [ethc] [0HM4CRRU90AO7] Share rejected: Wrong block target (False)
Condition:
var isBlockCandidate = resultValue <= blockTarget;
Code:
var target = blockTemplate.Target; // get blockTarget
blockTarget = new uint256(target.HexToReverseByteArray());
...
if(!dag.Compute(logger, BlockTemplate.Header.HexToByteArray(), fullNonce, out var mixDigest, out var resultBytes)) // get resultValue
var resultValue = new uint256(resultBytes);
DAG:
[I] [ethc] Generating DAG for epoch 45
[I] [ethc] Done generating DAG for epoch 45 after 00:00:01.5038594
[I] [ethc] Pre-generating DAG for epoch 46
[I] [ethc] Generating DAG for epoch 46
[I] [ethc] Done generating DAG for epoch 46 after 00:00:01.4032052
i am trying to add support for ethereum classic in miningcore
https://github.com/coinfoundry/miningcore
CLIENT:
Hyperledger Besu
CHAIN:
Mining Pool: ethc
Coin Type: ETC [ETC]
Network Connected: Mainnet-Mordor
Detected Reward Type: POW
Current Block Height: 2724453
Current Connect Peers: 6
Network Difficulty: 8133460
LOG:
[W] [ethc] Target: 0x0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[W] [ethc] Block Target: 0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[I] [ethc] New work at height 2724463 and header 0x4b57fed6dfaddc12049ec7e0ed52e3707c16efbd3f1b6ce62966d9821d605f9f detected [POLL]
...
[W] [ethc] ResultValue: 16f5a60cfbe24ceb408d3c03b6aa2eb0d710edfbcf26b0c2247c52c5b225ac6e
[W] [ethc] isBlockCandidate: False
[I] [ethc] [0HM4CRRU90AO7] Share rejected: Wrong block target
Condition:
var isBlockCandidate = resultValue <= blockTarget;
Code:
var target = blockTemplate.Target; // get blockTarget
blockTarget = new uint256(target.HexToReverseByteArray());
...
if(!dag.Compute(logger, BlockTemplate.Header.HexToByteArray(), fullNonce, out var mixDigest, out var resultBytes)) // get resultValue
var resultValue = new uint256(resultBytes);
DAG:
[I] [ethc] Generating DAG for epoch 45
[I] [ethc] Done generating DAG for epoch 45 after 00:00:01.5038594
[I] [ethc] Pre-generating DAG for epoch 46
[I] [ethc] Generating DAG for epoch 46
[I] [ethc] Done generating DAG for epoch 46 after 00:00:01.4032052
i am trying to add support for ethereum classic in miningcore
https://github.com/coinfoundry/miningcor
CLIENT:
Hyperledger Besu
CHAIN:
Mining Pool: etc
Coin Type: ETC [ETC]
Network Connected: Mainnet-Mordor
Detected Reward Type: POW
Current Block Height: 2724453
Current Connect Peers: 6
Network Difficulty: 8133460
LOG:
[W] [ethc] Target: 0x0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[W] [ethc] Block Target: 0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[I] [ethc] New work at height 2724463 and header 0x4b57fed6dfaddc12049ec7e0ed52e3707c16efbd3f1b6ce62966d9821d605f9f detected [POLL]
...
[W] [ethc] ResultValue: 16f5a60cfbe24ceb408d3c03b6aa2eb0d710edfbcf26b0c2247c52c5b225ac6e
[W] [ethc] isBlockCandidate: False
[I] [ethc] [0HM4CRRU90AO7] Share rejected: Wrong block target
Condition:
var isBlockCandidate = resultValue <= blockTarget;
Code:
var target = blockTemplate.Target; // get blockTarget
blockTarget = new uint256(target.HexToReverseByteArray());
...
if(!dag.Compute(logger, BlockTemplate.Header.HexToByteArray(), fullNonce, out var mixDigest, out var resultBytes)) // get resultValue
var resultValue = new uint256(resultBytes);
DAG:
[I] [ethc] Generating DAG for epoch 45
[I] [ethc] Done generating DAG for epoch 45 after 00:00:01.5038594
[I] [ethc] Pre-generating DAG for epoch 46
[I] [ethc] Generating DAG for epoch 46
[I] [ethc] Done generating DAG for epoch 46 after 00:00:01.4032052
i am trying to add support for ethereum classic in miningcore
https://github.com/coinfoundry/miningcor
CLIENT:
Hyperledger Besu
CHAIN:
Mining Pool: etc
Coin Type: ETC [ETC]
Network Connected: Mainnet-Mordor
Detected Reward Type: POW
Current Block Height: 2724453
Current Connect Peers: 6
Network Difficulty: 8133460
LOG:
[W] [ethc] Target: 0x0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[W] [ethc] Block Target: 0000020fce25b46f6cc680e1734ca00206450c460ce96f6acd60975d9dfce80c
[I] [ethc] New work at height 2724463 and header 0x4b57fed6dfaddc12049ec7e0ed52e3707c16efbd3f1b6ce62966d9821d605f9f detected [POLL]
...
[W] [ethc] ResultValue: 16f5a60cfbe24ceb408d3c03b6aa2eb0d710edfbcf26b0c2247c52c5b225ac6e
[W] [ethc] isBlockCandidate: False
[I] [ethc] [0HM4CRRU90AO7] Share rejected: Wrong block target
Condition:
var isBlockCandidate = resultValue <= blockTarget;
Code:
var target = blockTemplate.Target; // get blockTarget
blockTarget = new uint256(target.HexToReverseByteArray());
...
if(!dag.Compute(logger, BlockTemplate.Header.HexToByteArray(), fullNonce, out var mixDigest, out var resultBytes)) // get resultValue
var resultValue = new uint256(resultBytes);
DAG:
[I] [ethc] Generating DAG for epoch 45
[I] [ethc] Done generating DAG for epoch 45 after 00:00:01.5038594
[I] [ethc] Pre-generating DAG for epoch 46
[I] [ethc] Generating DAG for epoch 46
[I] [ethc] Done generating DAG for epoch 46 after 00:00:01.4032052
i am trying to add support for ethereum classic in miningcore
https://github.com/coinfoundry/miningcore
Mordor is the testnet that forked ECIP-1099 aka the Thanos hardfork about a month ago. I don't think miningcore has been updated to support the changes, as it doubles the epoch length and hence cuts the dag in half.
The last commit was in Dec of 2019, so it couldn't have the Thanos fork for ETC.
https://github.com/coinfoundry/miningcore/blob/master/src/Miningcore/Blockchain/Ethereum/EthereumConstants.cs
I change public const ulong EpochLength = 30000; ---> public const ulong EpochLength = 60000; for Mordor
Clipboard
I think the mining channel on the Ethereum Classic discord would be a more knowledgable crowd - https://discord.com/invite/xy777au
Clipboard
[ ](https://chat.hyperledger.org/channel/besu?msg=2vvjQtKweom3upgNQ) ok thx, it's just that the question is more based on data from the node than on mining
The miner is rejecting the data. Besu wants Thanos blocks and the miner wants Pheonix blocks. They will never agree until the miner code is updated. It's a bit more subtle than just that one line.
i use for test lolminer —enable-ecip1099
Besu wants Thanos blocks and the miner wants Pheonix blocks. -
you can tell more about it
I think the etc discord is your best resources. There's not much knowledge about mining and classic on this channel.
@TillFruehauf I was able to get it to run via `arch`
```BUILD SUCCESSFUL in 3m 37s
79 actionable tasks: 79 executed
ry@mm besu```
@TillFruehauf ```% arch -x86_64 zsh
% brew tap homebrew/cask-versions
% brew cask install adoptopenjdk```
Btw, I installed a new (second) SSD and tried a full sync (because https://github.com/hyperledger/besu/blob/20.10.0-RC1/KNOWN_ISSUES.md#fast-sync-when-running-besu-on-cloud-providers mentions that there is a problem only with fast sync). I got the same error after a few hours.
Btw, I installed a new (second) SSD and tried a full sync (because https://github.com/hyperledger/besu/blob/20.10.0-RC1/KNOWN_ISSUES.md#fast-sync-when-running-besu-on-cloud-providers mentions that there is a problem only with fast sync). I got the same error after a few hours.
thanks!
ok ill keep trying. Thanks
Probably a driver issue and/or rocks db not flushing properly.
Reposting, anyone have info on if proofs work with besu and orion
We do have a merkle proof api in `eth_getProof`, although I am not sure if it is compatible with that particular library.
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_getproof
Besu doc says this about validating transaction before adding to block:
For transactions submitted and added to a block, Besu validates the transactions, as illustrated in the following diagram.
Transaction Validation
Besu doc (https://besu.hyperledger.org/en/stable/Concepts/Transactions/Transaction-Validation/) says this about validating transaction before adding to block:
For transactions submitted and added to a block, Besu validates the transactions, as illustrated in the following diagram.
Besu doc (https://besu.hyperledger.org/en/stable/Concepts/Transactions/Transaction-Validation/) says this about validating transaction before adding to block:
For transactions submitted and added to a block, Besu validates the transactions, as illustrated in the following diagram. With this validating provided by besu, does smart contract can skip validating the sender address and has no need to implement mechanism fending off replay attack?
Hello ! Can somebody share some examples on how to add and remove validators from ongoing besu network.
hi @Manzik - doc on adding and removing validators is here: https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#adding-and-removing-validators
Has joined the channel.
Hello! I’m Olivia from GetBlock.io — a service that provides access to full blockchain nodes.
We run a full node for BESU: https://getblock.io/nodes/besu
Can I talk to someone from the Hyperledger team to discuss the possible collaboration options?
:working: thnkyou
Besu Office Hours in ~12 hours - https://wiki.hyperledger.org/display/BESU/2020-11-24+Office+Hours
What kind of collaboration did you have in mind? Besu itself is an OSS project as part of Hyperledger, so it's not a strict company per say. Our contributors work for ConsenSys, Splunk, and ChainSafe.
On what condition a Besu network will require a different chainID and NetworkId? wont that fork the network.?
Hi! We've already officially partnered with Consensys (will be announced this week), but we would like to discuss the possible promotion options, for example, with the person responsible for the Hyperledger account on Twitter. Also, would like to know, is it possible for you to add our logo as a nodes provider to the Hyperledger website?
Thank you!
I think you would need to join hyperledger as a member to gain those marketing benefits - https://www.hyperledger.org/about/join
The official partnership with ConsenSys does not provide us with any preferences?
Hyperledger and ConsenSys are two different entities, so ConsenSys partnerships are distinct from Hyperledger.
office hours for next 30 minutes - https://consensys.zoom.us/j/199741148
Ok, I understand, thank you!
Just thought that your community might be interested to know that GetBlock is running the Hyperledger Besu node, that is why we wanted to ask you to share this news with them via your social media channels.
i saw a pricing in Alethio explorer! How come it is free while using hyperledger besu?
Has joined the channel.
For ETC FAST Node, how many days it will take to sync and how many blocks do we have at a point to access the blocks from node.
for ETC fast sync our last run on an i3.xlarge was 5 Hour(s) 56 Minute(s), for ETC full archival sync it was 5 Day(s) 8 Hour(s) 7 Minute(s)
Fast sync will only have state from the pivot block, so 6 hours or so. In the neighborhood of 1600 blocks.
full archival sync has access to all blocks
I have started a FULL node for ETC on Ubuntu , with besu docker image and allocated 8GB RAM , but the node is able to manage only 8M in more than 2 weeks time
I have started a FULL node for ETC on Ubuntu , with besu docker image and allocated 8GB RAM , but the node is able to manage only 8M in more than 2 weeks time, Still we are strucggling to sync the node, it has around 19 peers conencted.
I have started a FULL node for ETC on Ubuntu , with besu docker image and allocated 8GB RAM , but the node is able to manage only 8M in more than 2 weeks time, Still we are strucggling to sync the node, it has around 19 peers conencted.
Can you specify the configurations required for this
Amazon i3.xlarge https://aws.amazon.com/ec2/instance-types/i3/
- 4 cores
- 30.5 Gib Memory
- 1 x 0.95 NVMe SSD
SSD speed and memory are the likely differentiators.
Classic can be done on 8GiB, I suspect it's storage and maybe cores.
Networked storage (EBS or network drive) will hurt performance a lot. Straight to hardware is what is best.
Thanks shemnon, this will help us a lot.
Has joined the channel.
Hi Shemnon, I have added a new SSD drive and moved the existing node to SSD, after starting the node is not working
Hi Shemnon, I have added a new SSD drive and moved the existing node to SSD, after starting, the node is not working
picocli.CommandLine$ParameterException: Supplied file does not contain valid keyPair pair.
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1087)
at picocli.CommandLine.executeUserObject(CommandLine.java:1919)
at picocli.CommandLine.access$1100(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
What version are you running?
Hi Team, {"message":"Host not authorized."} is the error when trying to make jsonRPCprovider at http://nodeip:8545. But there is no authorization required in the besu config file. What is wrong here?
`--host-allowlist` defaults to localhost and 127.0.0.1. setting `--host-allowlist=*` opens it to all, I'd recommend an explicit list of known accessors inseted.
Hello, how to kill besu process on ubuntu? There is no process named besu listed by top or ps. Thanks.
:thumbsup:
`ps -ef` will get you cli args. But likley it's the only `java` process
lsof -i :8545 lists a java process
That would be the one
Hi team, when deploying a contract, does the dapp have to include a nonce when submitting transaction? I didn't see nonce in example of besu doc. As I understand, nonce shall be included for each transaction when dapp submitting one.
Hello team, where can I open and look at the besu log for debug purpose?
2020-11-30 10:41:38.097-08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 3
What are you using to submit transactions to Besu? Is you Dapp using a wallet like Metamask?
Besu doesn't do account management, so any transaction sent to Besu must contain the correct nonce for that account.
The dapp uses `etherjs` which is similar to `web3js`. A wallet is managed by the dapp. I just want to confirm that it is dapp's responsibility to manage the nonce for each and every transaction it submits.
You may use the `--logging` option to change the log level of Besu to DEBUG>
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#logging
:thumbsup:
pulled the latest image and started using docker run hyperledger/besu:latest
i haven't specified any version
for some reason it doesn't like the key file. Since you aren't doing IBFT or Clique you can move ${DATA_PATH}/key out of the way or delete it and things should start up.
i tried deleting the key file and started the node
Caused by: org.rocksdb.RocksDBException: while open a file for lock: /data/database/LOCK: Permission denied
getting above error
i have given permissions to database and LOCK, now it started synching
thanks you for the suggestion
Hello team, there are 4 nodes on network and here is the output of log showing the number of peers. Is there missing one node?
2020-11-30 10:41:38.097-08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 3
Hi team, when trying to make connection to besu node in browser with http://besu-node-ip:8545, what shall be normally returned if the node is up and running? There is currently nothing returned.
You probably want the liveliness and readyness endpoints - https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Using-JSON-RPC-API/#readiness-and-liveness-endpoints
It does not count itself, so 3 peers is correct for a 4 node syste,
It does not count itself, so 3 peers is correct for a 4 node system.
Correct. Besu won't manage the nonces.
[ ](https://chat.hyperledger.org/channel/besu?msg=2WFryxyHAhLvebqXM) For http://node-ip:8545/readiness and http:/node-ip:8545/liveness, both return {
"status" : "UP"
}. It seems to be OK, Isn't it?
yes
:thumbsup: It is BPFT2 network. what else can be wrong?
Instead of web3js, the dapp uses ethers.js to connect with the network. Is ethersjs Okay with Besu? Here is the doc for ethersjs https://docs.ethers.io/v5/api/contract/contract-factory/
I don't know much about app layer interactions, but if it follows the standard ethereum JSON-RPC APIs it should be fine.
Hi Shemnon,
I have a fast node for ETC with besu, till 10.3 million it is fast after that , it started checking the world nodes from last 24 hrs,
2020-12-01 04:37:11.625+00:00 | EthScheduler-Services-7 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 60200000 world state nodes. At least 10131828 nodes remaining. Estimated World State completion: 85.59 %.
is this expected?
it sounds like your storage may be slow.
i am using the SSD disk
i am using the SSD disk, memory stats and cpu stats are also very low than configured, IO also good
Hi Shemnon , can we get a snapshot of ETC, so that we can restore it and start the node? i am Looking for alternate options
I don't think the disk being served through docker is fast enough. I would try running the node on bare metal.
My fast node is not working and i scrapped it and started again, it unable to connect to peers, while on the same server my full node is synching but slow.
@shemnon , when http://node-ip:8545 in browser, there is nothing returned. I verified that the node is ready and live. Shall besu node return something or error if there is anything?
no. This is a json-rpc endpoint so json-rpc post payloads are expected. This is expected.
no. This is a json-rpc endpoint so json-rpc post payloads are expected. No useful interaction exists with a browser.
@shemnon , tried to deploy in remix a contract (tested on ganache). As soon as I enter the address of end node with port 8545, it pops up an error: Not possible to connect to the Web3 provider. Make sure the provider is running, a connection is open (via IPC or RPC) or that the provider plugin is properly configured.
The end node is up and running, but the connection request failed. Not sure what is missing here.
You've set `--host-whitelist=*` and `--rpc-http-cors-origins=*` and `--rpc-http-host=0.0.0.0`? I typically use postman to verify it's up and running (https://documenter.getpostman.com/view/11610746/TVmHDead)
remix doesn't always provide useful error messages
@shemnon , postman for get http://node-ip:8545 returns 500 internal server error. However browser and curl -v 'http://node-ip:8545' returns http 200. Does the return in postman indicate problem with besu node?
tests performed after adding 3 configurations to config.toml. I didn't find --host-whitelist and use --host-allowlist instead.
Has joined the channel.
Hi all. What is the status of Besu? I see that Geth has overwhelming client market share so want to try something new. Is Besu being actively developed by Hyperledger? Or is it the case that these ETH1 nodes have been working in production for a long time and aside from a massive hidden bug will not require updating in advance of the full transition to Eth2? I see on ethernodes.org Besu hasnt had that much uptake and I am curious as to why..?
Has joined the channel.
Hello All, Please would like to know for hyperledger besu , how can I use java profiling with the binary. I referred to the documents @ https://besu.hyperledger.org/en/stable/HowTo/Troubleshoot/Java-Flight-Recording/, please can you explain the steps. I tried to add the options but I get error like above
Hello All, Please would like to know for hyperledger besu , how can I use java profiling with the binary. I referred to the documents @ https://besu.hyperledger.org/en/stable/HowTo/Troubleshoot/Java-Flight-Recording/, please can you explain the steps. I tried to add the options but I get error like below
Clipboard - December 2, 2020 11:18 AM
try a curl with a post. GETs don't work on that port.
also, use allowlist, whitelist was from an old config of mine.
Are there any stack traces in the besu log?
Hi @clowestab,
Besu is still being actively developed, yes! The client is part of the Hyperledger Foundatation, and ConsenSys is the main maintainer, along with other independent maintainers and organizations, like Chainsafe.
try
```
curl --request POST 'http://localhost:8545' \
--header 'Content-Type: text/plain' \
--data-raw '{"jsonrpc":"2.0","method":"admin_nodeInfo","params":[],"id":1}'
```
try
```
curl --request POST 'http://localhost:8545' \
--data-raw '{"jsonrpc":"2.0","method":"admin_nodeInfo","params":[],"id":1}'
```
> Or is it the case that these ETH1 nodes have been working in production for a long time and aside from a massive hidden bug will not require updating in advance of the full transition to Eth2?
Re: this, there is no node that "won't require updating before Eth2". Ethereum often has network upgrades (the next one should be early Q1), which require users, at least on mainnet, to update their nodes. We also often ship new features, which you can only use via upgrades.
and then try with the node-ip variant
> I see on ethernodes.org Besu hasnt had that much uptake and I am curious as to why..?
The main reason, in my experience, for people not switching, is relying on non-standard APIs from other clients, such as geth and parity. We're working on adding compatibility for those, such as the Parity tracing APIs (see: https://besu.hyperledger.org/en/stable/Reference/API-Methods/#trace-methods)
Hey @cyrilnaves,
It seems our docs are not fully up to date about this, sorry!
You need to set profiling via environment variables, e.g.:
`export BESU_OPTS=-XX:StartFlightRecording=disk=true,delay=15s,dumponexit=true, \
filename=/tmp/recording.jfr, maxsize=1024m,maxage=1d, \
settings=profile,path-to-gc-roots=true`
Hey @cyrilnaves,
It seems our docs are not fully up to date about this, sorry!
You need to set profiling via environment variables, e.g.:
```
export BESU_OPTS=-XX:StartFlightRecording=disk=true,delay=15s,dumponexit=true, \
filename=/tmp/recording.jfr, maxsize=1024m,maxage=1d, \
settings=profile,path-to-gc-roots=true
```
This is assuming you are running it from a shell script. Somehow BESU_OPTS needs to be set to the jfr flags. Docker compose has one way, systemctl has a different way.
@shemnon curl --request POST 'http://node-ip:8545'... above returns { "jsonrpc":2.0, "id:1, "error":{ "code":-32604, "message":"Method not enabled" }
curl -X POST --data '{"jsonrpm":2.0,"method":"net_version","params":[],"id":1}' node-ip:8545 returns { "jsonrpc":"2.0", "id":1, "result":"1981" }
Here is the config.toml
max-peers=42
#rpc-http-host="192.168.1.70"
#"192.168.1.70" - node private ip address
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-enabled=true
#host-allowlist="*"
rpc-ws-host=["0.0.0.0"]
rpc-ws-port=8546
rpc-ws-enabled=true
#Metrics for monitoring
metrics-port=9545
metrics-push-port=9001
min-gas-price=0
logging="DEBUG"
#allow all
host-allowlist=["*"]
rpc-http-cors-origins=["*"]
# Chain
genesis-file="/home/user/bin/besu/bin/genesis.json" # Path to the custom genesis file
# Mining
miner-enabled=false
remix depends on the DEBUG series apis. those are not enabled by default. Add `rpc-http-api=["DEBUG","ETH","NET","ADMIN","WEB3"]`
After adding "ADMIN" to rpc-http-api, cURL for admin_nodeInfo works fine.
Hi team, for IBFT2 private network, is it possible to run 4 nodes from 4 subdirectories on the same physical server to form a network? It seems possible based on the setup lesson by pegasys. If it possible, is it doable for production environment (other than single point failure which is obvious)?
It will limit your throughput, but it is doable.
Just curious if any besu network was setup in such a way. Maybe 2 physical server running 4 nodes for IBFT2
When I run a kubernetes ibft2 privacy example with 4 validator nodes and 3 privacy nodes. Are the privacy nodes also part of bft validation? I've also read examples of 4 validator nodes with one rpc node, but haven't seen this referenced in the documentation. But of these questions are wide, but I'm trying to understand how dynamic deployments are. Thanks!
When I run a kubernetes ibft2 privacy example with 4 validator nodes and 3 privacy nodes. Are the privacy nodes also part of bft validation? I've also read examples of 4 validator nodes with one rpc node, but haven't seen this referenced in the documentation. I'm trying to understand how dynamic deployments are. Thanks!
I rn a besu IBFT2 network with 4 validators and 3 orion nodes. when i initiate a transaction from metamask. it got stuck in pending transactions. How to cancel those pending transactions?
I run a besu IBFT2 network with 4 validators and 3 orion nodes. when i initiate a transaction from metamask. it got stuck in pending transactions. How to cancel those pending transactions?
That can work too. The main reason for 4 nodes is that IBFT2 doesn't work with less than 4 has to do with the voting thresholds and the math behind the consensus. Clique can run with as few as 1 nodes, but you lose finality and have to deal with orphan blocks.
When running the private network example in the besu documentation for petshop dapp , when trying to adopt a pet the transaction is failed with a popup in metamask showing that "While formatting outputs from RPC json rpc error "
Please provide a solution for this
Hi shemnon, can you provide me the steps to setup etc node without docker
Hi , i am running a ETC full node using hyperledger besu docker.
Hi , i am running a ETC full node using hyperledger besu docker. Its been three weeks and is at 8.3M, can you please let me know the ways to increase the sync speed.
Below are the stats I have for my node: RAM - 8GB, Memory and IO are stats are below 50%, SSD drive. peers count is 15+
https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Installation-Options/Install-Binaries/
The I/O on docker is just too slow to sync any of the public ethereum networks. https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Installation-Options/Install-Binaries/
Thank you.
Go to settings > advanced > reset
Do you have a docker-compose or kubernetes config of how you set up this benchmarking test https://www.hyperledger.org/blog/2020/08/06/hyperledger-besu-1-5-performance-enhancements ? I want to learn more on how to setup an RPC node, and try out other benchmarking tests.
Hi team, when submitting transaction to IBFT2 network, shall the tx object set gas related fields, such as gasLimit? If it does, what is the proper value?
Received the error of known transaction which seems to be related to gas limit.
Gas Limit should not exceed the block gas limit, this is an anti-abuse mechanism for smart contracts. eth_estimateGas * 1.10 seems to be sufficient usually.
Even though IBFT can be set to a zero gas fee network it still uses gas to prevent runaway contracts.
You mean for the "Requests Per Second (RPS) " segment? Those were set up by hand IIRC.
[ ](https://chat.hyperledger.org/channel/besu?msg=p43yHkEDtJDaPPAYR) @shemnon , do you mean limited ability to concurrently handle large number of user requests by "limit throughput" when 4 IBFT2 nodes are on a single physical server?
Yes, large number of RPC requests and large numbers of transactions in the chain.
:besu: Besu 20.10.2 is out :besu:
:star2: Highlights :star2:
- Added support for batched requests in WebSockets. #1583
- Added protocols section to admin_peers to provide info about peer health. #1582
- Added CLI option --goquorum-compatibility-enabled to enable GoQuorum compatibility mode. #1598. (This mode is incompatible with Mainnet)
- Fixed a longstanding issue with eth/65. It should now work on mainnet, and will likely be on by default starting from 20.10.3 :tada:
[ ](https://chat.hyperledger.org/channel/besu?msg=gyrNwTP8pqvkHNxnF) If using 2 physical servers to host 4 besu nodes (IBFT2), shall bootnode and RPC node be on 2 servers? Or bootnode and RPC node are better running on one physical server.
[ ](https://chat.hyperledger.org/channel/besu?msg=gyrNwTP8pqvkHNxnF) If using 2 physical servers to host 4 besu nodes (IBFT2), shall bootnode and RPC node be on 2 servers? Or bootnode and RPC node are better running on one same physical server.
Bootnode is just another validator once the first connection is made.
Hi team, does the follow log (IBFT2) smells alarm - Peer table refresh triggered by insufficient peers? 2020-12-03 21:53:25.673-08:00 | vert.x-eventloop-thread-1 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
There are 4 nodes running on the network.
2020-12-03 21:53:27.701-08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 3
Hi team, what is the command to check tx pool status in ssh windows (IBFT2 network)? The tx submitted was never validated and mined.
Has joined the channel.
Hello, I am trying to install Besu on linux using binaries. Documentation does not help
Hi, what is your issue?
Download the Besu packaged binaries.
Unpack the downloaded files and change into the besu-
that is the directions in documentation
Downloaded binaries doesn't have bin/besu file or folder.
I downloaded them as mentioned and extracted.
https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Installation-Options/Install-Binaries/
Let me check
What version did you DL?
lastest one
20.10.2
Hum strange, I can see the bin dir with besu executable in the uncompressed 20.10.2 archive
What OS are you using?
Oh, you said it, linux, sorry
yes
I don't have them in both
zip or tar.gz
Can you try to provide the output of the `tree` command run into the folder of the uncompresse archive please?
okay
For the record I DL the archive from https://github.com/hyperledger/besu/releases/tag/20.10.2 I guess this is the same for you
yes it is the same, how can I send you the output properly
since it is very long
Just past it here I guess... if there's nothing too private in the dir listing ;)
Just to make sure, can you check your archive checksum please?
`shasum -a 256 besu-20.10.2.zip`
Should output `710aed228dcbe9b8103aef39e4431b0c63e73c3a708ce88bcd1ecfa1722ad307`
is it same for tar file?
by the way I am still scrolling to start of tree's output
urtuba - Fri Dec 04 2020 15:04:08 GMT+0300 (+03).txt
no. TGZ file sum is 3a75d3ffdf1ea88df06f1ce0e11e8753f33cd37be72c87e109a3292cf7bbf3cf
Oh you downloaded the source code and not the binaries!
ohh
I wasted your time
Check this https://bintray.com/hyperledger-org/besu-repo/besu/20.10.2#files
I am so sorry :(
That's fine, don't be sorry ;)
Ty for your help
You're welcome. Enjoy Besu ;) Let us know if you have any question!
Of course! Good luck :)
Can I ask one more question
A question about IBFT-private network setup, I get error "org.rocksdb.RocksDBException: While fsync: a directory: Invalid argument" while running first node.
A question about IBFT-private network setup, I get error "org.rocksdb.RocksDBException: While fsync: a directory: Invalid argument" while running first node. What can I do about it? by the way I am using linux in a virtual machine as environment.
A question about IBFT-private network setup, I get error "org.rocksdb.RocksDBException: While fsync: a directory: Invalid argument" while running first node. What can I do about it? by the way I am using linux in a virtual machine as environment.
:eight_spoked_asterisk: SOLUTION FOUND: Problem is about shared folder between virtual and host machines.
I am trying to move my local IBFT 2.0 network's nodes transfer another computer clouds to make it distributed. But I could not find any clear guide, can somebody help me about resources & steps?
Hello team, I am trying to move my local IBFT 2.0 network's nodes transfer another computer clouds to make it distributed. But I could not find any clear guide, can somebody help me about resources & steps?
Hello team, I am trying to move my local IBFT 2.0 network's nodes transfer to separate clouds/computers to make it distributed. But I could not find any clear guide, can somebody help me about resources & steps?
Hello team, I am trying to move my local IBFT 2.0 network's nodes transfer to separate clouds/computers to make it distributed. But I could not find any clear guide, could somebody help me about resources & steps?
[ ](https://chat.hyperledger.org/channel/besu?msg=KbuhKifHS28ozqKhk) Hi team, here is the output of APi command txpool_besuTransaction on IBFT2 network. But the tx was never mined. If the same tx is submitted again, error of Known Transaction pops up. What is wrong here? $ curl -X POST --data '{"jsonrpc":"2.0","method":txpool_besuTransactions","params":[], "id":1}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ {
"hash" : "0x7841f5a1da323acb5ea6c6d8d3f9de68445a3b2e55a75c225789c9102a2ea1b6",
"isReceivedFromLocalSource" : true,
"addedToPoolAt" : "2020-12-06T04:18:57.499299941Z"
} ]
[ ](https://chat.hyperledger.org/channel/besu?msg=2c3XdJetZm44DQLDy) I set my p2p and rpc hosts 0.0.0.0, I used free credits of google cloud and create 4 nodes and uploaded genesis files each of them. I started nodes like in a local network but host adresses are 0.0.0.0. They are unable to discover each other, then i tried to replace 0.0.0.0's with external IP of bootnode but they are still not able to connect.
Has joined the channel.
Hello, I'm trying to retrieve logs through Kibana. I'm using this repo from the documentation https://github.com/ConsenSys/quorum-dev-quickstart with ELK enabled for monitoring/logs. In my case I have a contract that emits an event on creation. For now I use the json rpc, I create a filter with `eth_newFilter` for this specific topic and retrieve logs with `eth_getFilterLogs`. It works very well but I didn't manage to make it work with Kibana. I'm not familiar with ELK so it would be really helpful if you have any guidance. Thanks
Hi team, here is the genesis.json file for IBFT2 network. The problem is that tx submitted was never mined. Is the genesis.json file (copied from Besu doc) correct? {
"config": {
"chainId": 1981,
"muirglacierblock": 0,
"ibft2": {
"blockperiodseconds": 2,
"epochlength": 30000,
"requesttimeoutseconds": 4
}
},
"nonce": "0x0",
"timestamp": "0x58ee40ba",
"extraData": "0xf83ea00000000000000000000000000000000000000000000000000000000000000000d594c2ab482b506de561668e07f04547232a72897daf808400000000c0",
"gasLimit": "0x1fffffffffffff",
"difficulty": "0x1",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"contractSizeLimit":2147483647,
"alloc": {}
}
Has joined the channel.
Hi team,
Would you have the command line options used to run the node please?
Has joined the channel.
Is there private stat involved? Is this a validator where the key need to be preserved? A guide should be written but there are two main ways to do it (a) copy everything in the --data-path to the new node or (b) start up a new node in the new location and let it sync off the network. For (b) you may need to start with a new node key while syncing then copy the key from the old location (${DATA_PATH}/key) to the new node and restart it once in sync.
Is there private state involved? Is this a validator where the key need to be preserved? A guide should be written but there are two main ways to do it (a) copy everything in the --data-path to the new node or (b) start up a new node in the new location and let it sync off the network. For (b) you may need to start with a new node key while syncing then copy the key from the old location (${DATA_PATH}/key) to the new node and restart it once in sync.
Private state makes it more complicated and I should let the maintainers who deal with private state talk about that.
p2p needs special handling, the effect of simply setting `--p2p-host` to 0.0.0.0 is that your enodes advertise that 0.0.0.0 is the host to connect to. set `--p2p-interface=0.0.0.0` and `--p2p-host=
Ah ok, so you set up an RPC node by hand, which then communicated to the other nodes via devp2p? Do you have any other info on how you set this up? Thanks @shemnon
@NicolasMassart , Here is the boot node config.toml:
@NicolasMassart , Here is the boot/RPC node config.toml:
# Valid TOML config file
data-path="./data" # Path
# Network
bootnodes=["enode://923f4bb2cc2e456ebe88afb5f2d8c6a84d5758b99840fc34d2fcf9df7e3a1204fed83524a50cf37533bee9a055d916c1634932a7f7129a10b0e43e570d932088@127.0.0.1:30303",
"enode://0fdbb968c6082e5fb0de13cd8379961d5be7b24d4ff7f4eb378c738ca4cff4f13f3fb021883848fd783de1b592a101382c0401663a7c90313493a13da6a7b9c0@127.0.0.1:30304",
"enode://534825b93db8b4220204d3c11ca5570373e2af0b4cf2a4c392b6e4ffdfc8e6185e2d20b9832998c7ce63e8c6ffaa7662f8c1dbed1fff882cde0e33d75ffa8859@127.0.0.1:30305",
"enode://2741de7be2482ceb7d11a2c140d64bf8b448445718e74b556585d42d8554958ea97a868ff0c77d9b15fe30d7fa691c69a8933216f69077d5e49661387f3bac6b@127.0.0.1:30306"]
p2p-port=30303
max-peers=42
#rpc-http-host="192.168.1.70"
#"192.168.1.70"
rpc-http-host=["0.0.0.0"]
rpc-http-port=8545
rpc-http-enabled=true
rpc-http-api=["ETH", "NET","WEB3","ADMIN","TXPOOL","IBFT", "EEA","DEBUG"]
rpc-ws-host=["0.0.0.0"]
rpc-ws-port=8546
rpc-ws-enabled=true
#Metrics for monitoring
metrics-port=9545
metrics-push-port=9001
min-gas-price=0
logging="DEBUG"
#allow all
host-allowlist=["*"]
rpc-http-cors-origins=["*"]
# Chain
genesis-file="./genesis.json" # Path to the custom genesis file
node-private-key-file="./key"
# Mining
miner-enabled=false
miner-coinbase="0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
Here is the config.toml for validator node. There are 4 nodes in the network running on one physical server
# Valid TOML config file
data-path="./data" # Path
# Network
bootnodes=["enode://923f4bb2cc2e456ebe88afb5f2d8c6a84d5758b99840fc34d2fcf9df7e3a1204fed83524a50cf37533bee9a055d916c1634932a7f7129a10b0e43e570d932088@127.0.0.1:30303",
"enode://0fdbb968c6082e5fb0de13cd8379961d5be7b24d4ff7f4eb378c738ca4cff4f13f3fb021883848fd783de1b592a101382c0401663a7c90313493a13da6a7b9c0@127.0.0.1:30304",
"enode://534825b93db8b4220204d3c11ca5570373e2af0b4cf2a4c392b6e4ffdfc8e6185e2d20b9832998c7ce63e8c6ffaa7662f8c1dbed1fff882cde0e33d75ffa8859@127.0.0.1:30305",
"enode://2741de7be2482ceb7d11a2c140d64bf8b448445718e74b556585d42d8554958ea97a868ff0c77d9b15fe30d7fa691c69a8933216f69077d5e49661387f3bac6b@127.0.0.1:30306"]
#p2p-host="192.168.1.69"
p2p-port=30304
max-peers=42
#rpc-http-host="192.168.1.69"
#rpc-http-port=8545
#rpc-ws-host="192.168.1.69"
#rpc-ws-port=8546
#Metrics for monitoring
metrics-port=9546
metrics-push-port =9002
min-gas-price=0
# Chain
genesis-file="./genesis.json" # Path to the custom genesis file
node-private-key-file="./key"
# Mining
miner-enabled=false
miner-coinbase="0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
Just updated besu to lateest 20.10.2 today and the problem is the same.
Here is the link for issue report on besu github with more detail. The RPC node returns the hash in txpool. https://github.com/hyperledger/besu/issues/1670
I have been stuck with the issue for more than a week. Since the tx submitted sits in the txpool and was never get mined/validated, I suspected it is something with besu IBFT2 network setup. Please help. Thanks.
I have been stuck with the issue for more than a week. Since the tx submitted sits in the txpool and was never get mined/validated, I suspected it is something with besu IBFT2 network setup. Please help. Many thanks.
That's basically it. Set up a program to fire RPC requests at a fixed rate. I think ethspam was the tool we used - https://github.com/shazow/ethspam
EmcLab - Mon Dec 07 2020 21:21:07 GMT-0800 (Pacific Standard Time).txt
Is there any block generated in the log above? IBFT2 network
besu blocks export --to=t.txt says Chain is empty. Unable to export blocks from specified data directory: /home/admin/bin/besu/database
Hi team, on IBFT2 netwok, does the method txpool_besuTransaction returns the tx mined or not yet mined? curl -X POST --data '{"jsonrpc":"2.0","method":"txpool_besuTransactions","params":[],"id":1}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ {
"hash" : "0x7841f5a1da323acb5ea6c6d8d3f9de68445a3b2e55a75c225789c9102a2ea1b6",
"isReceivedFromLocalSource" : true,
"addedToPoolAt" : "2020-12-08T07:33:01.795343450Z"
} ]
transactions that are in the pool are not yet mined
Hi team, on 4 nodes IBFT2 network, a block has only one validator instead of 3. What can be wrong here?
$curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ "0xc2ab482b506de561668e07f04547232a72897daf" ]
}
Hi @EmcLab it looks like the extradata field in youir genesis file is incorrect. That string is an RLP encoded structure which includes the addresses of the nodes which must work together to mine the first block (this mechanism is then repeated for every block thereafter). I suspect the address in your extradata doesn't correspond to any of your running nodes - and thus, no blocks.
You'll need to work out the addresses of your validator nodes, and construct the correct extraData string to put into your Genesis file.
Some/most of this is automated by the generate-blockchain-config subcommand of besu (https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Subcommands/#generate-blockchain-config)
Hi Shemnon,
My ETC fast node , got stuck second time after reaching at 10.32M.and started checked the world state completion: 6.7% and is taking days here, can you please let me know the issue here
Is this still being run on docker or in a k8s cluster? Any of the public chains need to be run on bare metal.
@trent.mohay , I construct a 4 ndes IBFT2 network using the example provided on Besu doc and there are blocks generated. the extradata was copied from the doc example. There is a strange problem. My dapp can deploy contract to a ganache test net successfully. However when the contract was deployed to IBFT2 network on public internet, the dapp never received any reply from the node (no error at all). Do you know how it could happen? I am clueless about this node behavior.
we are still using docker, all of our nodes are running on dockers like btc, eth. our earlier ETC node also ran on docker
we are still using docker, all of our nodes are running on dockers like btc, eth. our earlier ETC node also ran on docker. Not sure why it is stopping at the same area. after reaching 10.3M
we are still using docker, all of our nodes are running on dockers like btc, eth. our earlier ETC node also ran on docker. Not sure why it is stopping at the same area. after reaching block 10387983.
The sample genesis file in the tutorial is only a sample - the extradata in it includes only a single validator - so, its very important that when you create a new genesis file you create a valid extradata field - which must include the addresses of the nodes which are going to be your validators - check step-3 of the tutorial - I think that's where the tutorial creates a valid ExtraData string
it's _critical_ that the node keys used in the nodes which are validators have their corresponding addresses in the extraData, or else no blocks will be created
I'm assuming you're looking at the configuration file shown under step-2?
If so - I'm also assuming you're looking at the private keys under the "alloc" section. If I've got this wrong, the rest of this won't make much sense :)
So - the config file is ALMOST identical to a genesis file, but without the extraData field.
In a genesis file (and config that specific config file) - the "alloc" section is the funded ACCOUNTS at the start of the network - and is _not_ related to the IBFT2 validators. We just happen to put the private-keys in that example so that you can sign transactions for the funded accounts (you would NEVER put this in a production genesis file)
Hi, I have checked the logs of ETC, it is trying to establish connection , but rejecting all peers before data exchange
Hi, I have checked the logs of ETC, it is trying to establish connection , but rejecting all peers before data exchange, no suitable peer conenction.
Hi, I have checked the logs of ETC, it is trying to establish connection , but rejecting all peers before data exchange, no suitable peer conenction. I can see my ETC is running with version v1.
Hi Team, I am getting the below issue with my Besu ETC node,
2020-12-10 11:23:05.565+00:00 | nioEventLoopGroup-3-6 | DEBUG | AbstractPeerConnection | Disconnected (0x01 TCP_SUBSYSTEM_ERROR) from PeerInfo{version=5, clientId='Parity-Ethereum/v2.5.13-stable-253ff3f-20191231/x86_64-linux-gnu/rustc1.40.0', capabilities=[eth/62, eth/63, par/1, par/2, par/3, pip/1], port=30303, nodeId=0x977fcc573524763f7e270fe9f76c3d1b4a82f21496da5ae74b0789240a18b67b9a69a066275dd2476436fe4c54407c4c52e164d4e2641ebf6d6d61e80c23ab4f}
2020-12-10 11:23:05.565+00:00 | nioEventLoopGroup-3-6 | DEBUG | EthProtocolManager | Disconnecting from peer (0x01 TCP_SUBSYSTEM_ERROR), 2 peers left: EthPeers{connections=0xb9e893ea9cb4537f4f...,0x62c47ee55e0f15779f...}
Hi Team, I am getting the below issue with my Besu ETC node,
2020-12-10 11:23:05.565+00:00 | nioEventLoopGroup-3-6 | DEBUG | AbstractPeerConnection | Disconnected (0x01 TCP_SUBSYSTEM_ERROR) from PeerInfo{version=5, clientId='Parity-Ethereum/v2.5.13-stable-253ff3f-20191231/x86_64-linux-gnu/rustc1.40.0', capabilities=[eth/62, eth/63, par/1, par/2, par/3, pip/1], port=30303, nodeId=0x977fcc573524763f7e270fe9f76c3d1b4a82f21496da5ae74b0789240a18b67b9a69a066275dd2476436fe4c54407c4c52e164d4e2641ebf6d6d61e80c23ab4f}
2020-12-10 11:23:05.565+00:00 | nioEventLoopGroup-3-6 | DEBUG | EthProtocolManager | Disconnecting from peer (0x01 TCP_SUBSYSTEM_ERROR), 2 peers left: EthPeers{connections=0xb9e893ea9cb4537f4f...,0x62c47ee55e0f15779f...}, and my node stopped synching at block 10387983. can someone help me. From last 2 days my node keeps on checking with world node state
I'm not sure myself. Since the Thanos fork basically all OpenEthereum/Parity nodes have fallen off the network.
After adding rpc-http-host=["0.0.0.0"] to config and the node starts to take tx submission. My bad as I thought host-allowlist will allow rpc calls from any host. @trent.mohay
Hi does anyone has experience with openshift and besu?
Two things: (a) parity is not compatible with the thanos hard fork. you will never get to full sync on classic with that peer. Are you running 20.10.2? (b) make sure other nodes can connect to you remotely. ensure that you are advertising the correct external IP and ports (--p2p-host --p2p-port) and that you are forwarding those external connections to your node.
Hi @trent.mohay , in the example in doc, the private key is included in the genesis seed file to generate genesis.json and keys. The doc says the private key is not needed in seed file. Can I remove the private keys all together in seed file before running the besu operator command?
The genesis configuration file in step-2 contains the private keys in the "alloc" section, such that when playing on your network, you are able to access the funded accounts - these are NOT part of the
So, I’m assuming you’re looking at the configuration file in step-2 of the IBFT2 tutorial?
If not, the rest of this won’t make sense :)
So - the configuration file is ALMOST identical to a genesis file, except its missing the extraData field.
The alloc section of the configuration file is the same as used in a normal genesis file - it represents the funded accounts which exist at network creation - they are NOT related to the IBFT2 consensus mechanism.
We typically include the account private-keys our tutorial/test genesis files such that users are able to easily sign transactions in a test environment. Private keys would NEVER appear in a production genesis file.
So yes, you can indeed remove the private keys from the configuration file (and thus they will not appear in the generated genesis file either.
The operator command is responsible for creating "n" (defined as 'count'. in the config file) keyPairs, creating an extraData string using those 'n' generated keyPairs, then generating a genesis file using the content of the config file plus the extraData string created.
At that stage, it is important that you run use each of the generated keys in one of your nodes - to ensure the node key/address corresponds with the genesis file used.
@trent.mohay , I check each of the key and key.pub generated and they are not equal any of the private keys listed in alloc {} in the example (https://besu.hyperledger.org/en/1.3.6/Tutorials/Private-Network/Create-IBFT-Network/#2-create-configuration-file). I am confused by those private keys listed in the example above.
@trent.mohay , I check each of the key and key.pub generated and they are not equal to any of the private keys listed in alloc {} in the example (https://besu.hyperledger.org/en/1.3.6/Tutorials/Private-Network/Create-IBFT-Network/#2-create-configuration-file). I am confused by those private keys listed in the example above.
they are two completely different concepts.
the keys in "alloc" are effectively 'people'. in the network who can trade eth, or call contracts.
The NODE KEY files represent unique identifiers of the actual Besu nodes (so more like infrastructures rather than bank-account details)
the keys in "alloc" are effectively 'people'. in the network who can trade eth, or call contracts.
The NODE KEY files represent unique identifiers of the actual Besu nodes (so - more like infrastructure information)
how can I connect to private besu clique network without genesis file? is this possible?
Hi Shenmon,
I am using the Besu and I have not specified any boot nodes any where. Can you please specify any reliable peers or boot nodes, so that it will help me.
Hi @Manzik Without a genesis file, you cannot connect to a network - its the start point of any world state :/
Hi @aaltenbernd we generally use AWS and Azure and GCP, are you experiencing issues running Besu in Openshift?
We have the classic standard boot nodes built in - https://github.com/hyperledger/besu/blob/master/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/config/DiscoveryConfiguration.java#L101.
Peer discovery on classic is always problematic. If you don't have your discovery enode externally accessible to remote connections you will not be able to find good peers.
Hello, in besu how do you manage the release version? manually or gradlew calculates it based on path/minor/major?
We manage it manually. Gradle reads the version from `gradle.properties` (https://github.com/hyperledger/besu/blob/master/gradle.properties) and the build script does special things relating to the git version if it sees `SNAPSHOT` in the version.
ty
[ ](https://chat.hyperledger.org/channel/besu?msg=f3z7qo8Dh7gjQjhq6) @trent.mohay ,when creating IBFT2 network, what is the purpose including the funded account in `alloc`? Can it be blank? As you said in the quote, the private key is for EOA account and has nothing to be with node's private key.
Has joined the channel.
Hi All - not sure if this is the right spot. But I am getting an Error message that is "Error retrieving matching logs" followed by "Error processing JSON-RPS requestBody"
any thoughts on how to remedy this issue?
Can you raise the logging level of the node to DEBUG and share what is emmitted in the log?
My inigial guess is you are sending a query that is too large to compete in 60 seconds. Too many blocks to consider or too much data to prepare.
Hi All, after upgrading besu docker from 1.4.3 to the latest version, it failed to start with the error "2020-12-12 02:02:03.339+00:00 | main | INFO | Besu | Security Module: localfile Supplied file does not contain valid keyPair pair." Anyone could help me with this issue?
[ ](https://chat.hyperledger.org/channel/besu?msg=7wEefHj6rRBxfwnx4) I fixed this issue by add docker -u arg to pass the correct user.
I see you found the fix, but this was a breaking change in 1.5 "Docker users with volume mounts" - https://github.com/hyperledger/besu/releases/tag/1.5.0
Has joined the channel.
Hello! Can I use custom signature algorithm in transaction signing and verification?
No, we don't support pluggable encryption and the Ethereum 2.0 idea of "Account Abstraction" (EIP-2938) is still just a proposal as no clients have shipped an implementation and it hasn't been scheduled for a hard fork.
```2020-12-14 02:00:21.650+00:00 | EthScheduler-Services-1 (downloadHeaders) | WARN | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.ethereum.eth.sync.tasks.exceptions.InvalidBlockException: Header failed validation.: Invalid block at #174547 (0xf309a26906e4ec9e6c2d9c5375abeaff987a05537b7848c203a9c7ea29916768)```when i tried to add a new node to the network, it failed with the above error message, could anyone help me with this?
```2020-12-14 02:00:21.650+00:00 | EthScheduler-Services-1 (downloadHeaders) | WARN | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.ethereum.eth.sync.tasks.exceptions.InvalidBlockException: Header failed validation.: Invalid block at #174547 (0xf309a26906e4ec9e6c2d9c5375abeaff987a05537b7848c203a9c7ea29916768)```when i tried to add a new node to the network, it failed with the above error message, could anyone help me with this? I was using the latest docker image.
```2020-12-14 02:00:21.650+00:00 | EthScheduler-Services-1 (downloadHeaders) | WARN | PipelineChainDownloader | Chain download failed. Restarting after short delay.
java.util.concurrent.CompletionException: org.hyperledger.besu.ethereum.eth.sync.tasks.exceptions.InvalidBlockException: Header failed validation.: Invalid block at #174547 (0xf309a26906e4ec9e6c2d9c5375abeaff987a05537b7848c203a9c7ea29916768)```when i tried to add a new node to the ibft network, it failed with the above error message, could anyone help me with this? I was using the latest docker image.
```Caused by: org.hyperledger.besu.ethereum.eth.sync.tasks.exceptions.InvalidBlockException: Header failed validation.: Invalid block at #175217 (0xc8c8971e1314d7a89466bc02b7a21bfb2aadf3bd3d602775652e143026cc2575)
at org.hyperledger.besu.ethereum.eth.sync.tasks.DownloadHeaderSequenceTask.lambda$processHeaders$2(DownloadHeaderSequenceTask.java:235)``` I restarted the node and there was another net invalid block.
```Caused by: org.hyperledger.besu.ethereum.eth.sync.tasks.exceptions.InvalidBlockException: Header failed validation.: Invalid block at #175217 (0xc8c8971e1314d7a89466bc02b7a21bfb2aadf3bd3d602775652e143026cc2575)
at org.hyperledger.besu.ethereum.eth.sync.tasks.DownloadHeaderSequenceTask.lambda$processHeaders$2(DownloadHeaderSequenceTask.java:235)``` I restarted the node and there was another new invalid block.
Can you increase the logging to debug? Currently all the invalid reasons are at debug.
```Caused by: org.hyperledger.besu.ethereum.eth.sync.tasks.exceptions.InvalidBlockException: Header failed validation.: Invalid block at #200 (0xf1a5d6548e66d967a63e1a674eb81920b7c5f3b033683134b4be254dda7709b7)
at org.hyperledger.besu.ethereum.eth.sync.tasks.DownloadHeaderSequenceTask.lambda$processHeaders$2(DownloadHeaderSequenceTask.java:235)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
at org.hyperledger.besu.ethereum.eth.manager.task.GetBlockFromPeerTask.lambda$executeTask$0(GetBlockFromPeerTask.java:84)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
at org.hyperledger.besu.ethereum.eth.manager.task.AbstractPeerRequestTask.lambda$executeTask$2(AbstractPeerRequestTask.java:83)
at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
at java.base/java.util.Optional.ifPresent(Unknown Source)
at org.hyperledger.besu.ethereum.eth.manager.task.AbstractPeerRequestTask.handleMessage(AbstractPeerRequestTask.java:104)
at org.hyperledger.besu.ethereum.eth.manager.task.AbstractPeerRequestTask.lambda$executeTask$0(AbstractPeerRequestTask.java:67)
at org.hyperledger.besu.ethereum.eth.manager.RequestManager$ResponseStream.dispatchBufferedResponses(RequestManager.java:171)
at org.hyperledger.besu.ethereum.eth.manager.RequestManager$ResponseStream.processMessage(RequestManager.java:162)
at org.hyperledger.besu.ethereum.eth.manager.RequestManager.lambda$dispatchResponse$0(RequestManager.java:55)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.hyperledger.besu.ethereum.eth.manager.RequestManager.dispatchResponse(RequestManager.java:55)
at org.hyperledger.besu.ethereum.eth.manager.EthPeer.dispatch(EthPeer.java:272)
at org.hyperledger.besu.ethereum.eth.manager.EthPeers.dispatchMessage(EthPeers.java:111)
at org.hyperledger.besu.ethereum.eth.manager.EthProtocolManager.processMessage(EthProtocolManager.java:264)
at org.hyperledger.besu.ethereum.p2p.network.NetworkRunner.lambda$setupHandlers$0(NetworkRunner.java:135)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.PeerConnectionEvents.lambda$dispatchMessage$1(PeerConnectionEvents.java:64)
at org.hyperledger.besu.util.Subscribers.lambda$forEach$0(Subscribers.java:112)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at org.hyperledger.besu.util.Subscribers.forEach(Subscribers.java:109)```
```at org.hyperledger.besu.ethereum.eth.manager.RequestManager.lambda$dispatchResponse$0(RequestManager.java:55)
at java.base/java.util.ArrayList.forEach(Unknown Source)
at org.hyperledger.besu.ethereum.eth.manager.RequestManager.dispatchResponse(RequestManager.java:55)
at org.hyperledger.besu.ethereum.eth.manager.EthPeer.dispatch(EthPeer.java:272)
at org.hyperledger.besu.ethereum.eth.manager.EthPeers.dispatchMessage(EthPeers.java:111)
at org.hyperledger.besu.ethereum.eth.manager.EthProtocolManager.processMessage(EthProtocolManager.java:264)
at org.hyperledger.besu.ethereum.p2p.network.NetworkRunner.lambda$setupHandlers$0(NetworkRunner.java:135)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.PeerConnectionEvents.lambda$dispatchMessage$1(PeerConnectionEvents.java:64)
at org.hyperledger.besu.util.Subscribers.lambda$forEach$0(Subscribers.java:112)
at java.base/java.lang.Iterable.forEach(Unknown Source)
at org.hyperledger.besu.util.Subscribers.forEach(Subscribers.java:109)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.PeerConnectionEvents.dispatchMessage(PeerConnectionEvents.java:64)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.ApiHandler.channelRead0(ApiHandler.java:99)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.ApiHandler.channelRead0(ApiHandler.java:33)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)```
There are no any useful DEBUG message for this error.
```2020-12-14 06:21:02.281+00:00 | nioEventLoopGroup-3-2 | DEBUG | DeFramer | Received HELLO message: PeerInfo{version=5, clientId='besu/v20.10.2/linux-x86_64/oracle_openjdk-java-11', capabilities=[eth/62, eth/63, eth/64, IBF/1], port=30323, nodeId=0xf8e32e0f99db0c3b6e6c285f804874fbf7d06c80531f66b768e4c8cb0cf64a654c95e1cf226510d1a8da8365a7dff0a0a6f603b82fdaab188713cf3c595f42f4}
2020-12-14 06:21:02.281+00:00 | nioEventLoopGroup-3-2 | DEBUG | DeFramer | Enable compression for p2pVersion: 5
2020-12-14 06:21:02.289+00:00 | nioEventLoopGroup-3-2 | DEBUG | RlpxAgent | Node is not permitted to connect. Disconnect incoming connection: NettyPeerConnection{nodeId=0xf8e32e0f99db0c3b6e6c285f804874fbf7d06c80531f66b768e4c8cb0cf64a654c95e1cf226510d1a8da8365a7dff0a0a6f603b82fdaab188713cf3c595f42f4, clientId=besu/v20.10.2/linux-x86_64/oracle_openjdk-java-11, caps=IBF/1, eth/64}
2020-12-14 06:21:02.289+00:00 | nioEventLoopGroup-3-2 | DEBUG | AbstractPeerConnection | Disconnecting (0x UNKNOWN) from PeerInfo{version=5, clientId='besu/v20.10.2/linux-x86_64/oracle_openjdk-java-11', capabilities=[eth/62, eth/63, eth/64, IBF/1], port=30323, nodeId=0xf8e32e0f99db0c3b6e6c285f804874fbf7d06c80531f66b768e4c8cb0cf64a654c95e1cf226510d1a8da8365a7dff0a0a6f603b82fdaab188713cf3c595f42f4}
2020-12-14 06:21:02.292+00:00 | nioEventLoopGroup-3-2 | DEBUG | EthProtocolManager | Disconnecting from peer (0x UNKNOWN), 0 peers left: EthPeers{connections=}
2020-12-14 06:21:02.294+00:00 | nioEventLoopGroup-3-2 | DEBUG | EthProtocolManager | Ignoring message received from unknown peer connection: NettyPeerConnection{nodeId=0xf8e32e0f99db0c3b6e6c285f804874fbf7d06c80531f66b768e4c8cb0cf64a654c95e1cf226510d1a8da8365a7dff0a0a6f603b82fdaab188713cf3c595f42f4, clientId=besu/v20.10.2/linux-x86_64/oracle_openjdk-java-11, caps=IBF/1, eth/64}```
It's wired that I can successfully sync a new node on my Mac and another ubuntu server. I don't why it failed on a centos 7 machine.
I've found the root cause: the centos test server is 4 minutes later than the network... Here is the TRACE message: ```2020-12-14 08:26:19.542+00:00 | EthScheduler-Workers-3 | TRACE | TimestampBoundedByFutureParameter | Invalid block header: timestamp 1607934600 is greater than the timestamp margin 1607934380```
Hi team! i want a genesis or arguments for use IBFT in one client mining just for testing in development, exist any configuration to do this ?
Hi shemnon , I have added the enode to my Fast node , but still my node synching past 10.3 M.
Also my FULL node slowed down and started throwing TCP errors with peers connection.
Are there any snap shots will be available for restoration?Synching problem giving us difficulties.
Please help on these. We didn't face any issues while we used Parity.
Hi shemnon , I have added the enodes to my Fast node , but still my node synching past 10.3 M.
Also my FULL node slowed down and started throwing TCP errors with peers connection.
Are there any snap shots will be available for restoration?Synching problem giving us difficulties.
Please help on these. We didn't face any issues while we used Parity.
Hi Team, I ETC nodes have sync issues, I have added the enodes to my Fast node , but still my node synching past 10.3 M. It is stuck at 10.3M from past 5 days.
Also my FULL node slowed down and started throwing TCP errors with peers connection, it is at 8.9M.
Are there any snap shots will be available for restoration ?Synching problem giving us difficulties.
Please help on these. We didn't face any issues while we used Parity.
Has joined the channel.
Hello! I'm pretty confused about Besu solution. If i want to deploy my own private network, without communcation with any Ethereum networks (main, tests), should I have any Ether in my account ?
Hi, no, you don't need "real" Ether, I mean the ones valuable on the mainnet.
However, if you rune your own network based on Besu, you will have the ability to decide of the cost of operations. Your private network transactions will require gas to run... but you can determine that you accept gas wit a price of zero.
However, if you run your own network based on Besu, you will have the ability to decide of the cost of operations. Your private network transactions will require gas to run... but you can determine that you accept gas wit a price of zero.
In a private network, and specifically if you require free transactions, you can't really have price incentives. So a PoA network would probably be the solution over a PoW.
Let's try https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
and configure your network for free gas: https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
should I mention boot node url while starting node, or is the network ID is enough?
and could you specify which options should I use, assuming I have started network with boot node which has IP address a.b.c.d and port number xxxx. Since I do not have networking background knowledge, I fail about this things. By the way, thank you for help and contributing to besu
I loved it.
For a private network bootnodes should always be specified.
Copy the value of the `enode` you see on bootnode startup. it will be on a line like this
```
2020-12-14 22:17:54.342+00:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://09b02f8a5fddd222ade4ea4528faefc399623af3f736be3c44f03e2df22fb792f3931a4d9573d333ca74343305762a753388c3422a86d98b713fc91c1ea04842@127.0.0.1:41557?discport=3823
```
I've one more question. I'm trying to develop a system for medical appointments using blockchain technology in order to offer immuability and transparency.
The paradigm will move from client frontend with metamask wallet to the backend server with a secured stored wallet. When the user try to make a new appointment the server should respond immediately with the appointment UUID and take care of storing the data on Besu private network and to the database for fast querying (+more useful info). How can I take care of rejected transactions with zero effort from user. It's a good option to have a mempool table in database with rejected transactions and retry to send them ?
How consensus is achieved in besu when using private transactions
You can look at the documentation that explains how a private transaction is processed
https://besu.hyperledger.org/en/stable/Concepts/Privacy/Private-Transaction-Processing/
If not a table of rejected transactions at least a table of pending txes not in a block yet. It also depends on the tx rejection reason. These may require operator intervention to fix the rejection reason (such as not enough ether if not set to zero gas allowed). Simpler cases like duplicate nonces can be re-submitted with a new tx and nonce. But be wary of simply auto-submitting rejections as it may fall in a loop of the fundamental rejection reason does not change.
Hi team, after updating config.toml on besu IBFT2 network, does the node have to be restarted for the change to be in effect?
Hi team, here is the error about the address 0.0.0.0:8545 being used. There is no change on genesis.json file. 2020-12-16 10:27:49.934-08:00 | main | ERROR | Runner | Service jsonRpc failed to start
java.util.concurrent.ExecutionException: org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcServiceException: Failed to bind Ethereum JSON-RPC listener to 0.0.0.0:8545: Address already in use
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2086)
at org.hyperledger.besu.Runner.waitForServiceToStart(Runner.java:203)
Hi team, perm_addNodeToAllowList is the command to add nodes to BESU network. Can the command only be executed on an allowed node? How to prevent anyone from executing perm_addNotToAllowList remotely? Here is the example from the doc: $curl -X POST --data '{"jsonrpc":"2.0","method":"perm_addNodesToAllowlist","params":[["enode://7e4ef30e9ec683f26ad76ffca5b5148fa7a6575f4cfad4eb0f52f9c3d8335f4a9b6f9e66fcc73ef95ed7a2a52784d4f372e7750ac8ae0b544309a5b391a23dd7@127.0.0.1:30303","enode://2feb33b3c6c4a8f77d84a5ce44954e83e5f163e7a65f7f7a7fec499ceb0ddd76a46ef635408c513d64c076470eac86b7f2c8ae4fcd112cb28ce82c0d64ec2c94@127.0.0.1:30304"]], "id":1}' http://127.0.0.1:8545
Yes. We don't support live config changes at the moment. Out of curiosity what fields were changed? (some are easier than others to do a live update)
Like adding or removing nodes to node_allowlist @shemnon
@shemnon , for permissioning, is it possible to mix onchain account contract for account permissioning and local node permissionging together at the same time?
To prevent access to the JSON-RPC endpoint, you can use a firewall to only allow connection from trusted sources and you can enable authentication/authorization to limit the access to a specific set of users (https://besu.hyperledger.org/en/latest/HowTo/Interact/APIs/Authentication/)
Node permissioning and RPC auth are two distinct concepts.
With node permissioning , you create a list of nodes that are allowed to connect to create a network.
With RPC auth, you create a list of users that can access your RPC endpoints (and limit what resources they have access to).
For local permissioning, if you are updating the node or account list using the APIs, you shouldn't need to restart to pickup the new config.
For onchain, the changes to the rules are transactions that need to be included in a block and processed by your node before they are active in your node. They also don't require a restart.
You can use local and onchain permissioning at the same time. However, it is important to remember that they have some differences and there is no "precedence" between them. For example, if using local and onchain account permissioning, an account must be allowed both in the local config and in the permissioning contract for the rule to be effective.
I'd recommend using either local or onchain permissioning, not both at the same time.
Hi team, is it possible to clear the transaction pool without restarting the node? I have the issue that the nonce is higher than the sender's nonce.. The transactions were sent by a cron job and it is hard to fill the nonce gap.
Hi team, Is Besu capable for Ethereum Classic node? I have been running classic nodes both Full and Fast with docker image from 5 weeks, Full node is at 8.9M and Fast node stopped synching after 10.3M.
I have reached this forum multiple times, but the suggestions that i got not helpful.
Please let me know how i can make my nodes sync faster.
My nodes started throwing error when synching with peers
debug | abstract handshakehandler | handshake error: java.io.ioexception: connection reset by peer
Hi team, Is Besu capable for Ethereum Classic node? I have been running classic nodes both Full and Fast with docker image from 5 weeks, Full node is at 8.9M and Fast node stopped synching after 10.3M.
I have reached this forum multiple times, but the suggestions that i got not helpful.
Please let me know how i can make my nodes sync faster.
My nodes started throwing error when synching with peers
debug | abstract handshakehandler | handshake error: java.io.ioexception: connection reset by peer.
Please let me know if any snapshots available for ETC Besu, that will help us.
Hello All, Im trying to install besu on my vm using binary option. However im not able to find the bin/besu command. I follow the documentation from this link and release using
20.10.2
https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Installation-Options/Install-Binaries/
seems folder structure change but not updated in doc link.. or am i missing any .. ?
did you use the bintray link that is present in the 'Download Link' section of the latest release ? https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Installation-Options/Install-Binaries/#install-from-packaged-binaries
yes, that pointed to 20.10 source code zip file, but it doesn't contain bin folder inside.
I tried this link and there is binaries
https://dl.bintray.com/hyperledger-org/besu-repo/besu-20.10.2.zip
sha256: 710aed228dcbe9b8103aef39e4431b0c63e73c3a708ce88bcd1ecfa1722ad307
I tried this link and there are binaries
https://dl.bintray.com/hyperledger-org/besu-repo/besu-20.10.2.zip
sha256: 710aed228dcbe9b8103aef39e4431b0c63e73c3a708ce88bcd1ecfa1722ad307
the link is present just above the sourcecode
Has joined the channel.
Hi ! I'm playing with besu in ropsten testnet and mainnet sync mode. I launch besu in a specific pruning mode which retains the last 2 weeks of state. Nodes are fully synchronized. When I request eth_gasPrice, the result is 1000 wei for both of them. In the documentation, it's specified that the behaviour could be chnaged by specifing --min-gas-price at the runtime. It s working. However, I would need eth_gasPrice method returns the actual 'real' dynamic gasprice. Is there any configuration to specify ?
Hi ! I'm playing with besu in ropsten testnet and mainnet sync mode. I launch besu in a specific pruning mode which retains the last 2 weeks of state. Nodes are fully synchronized. When I request eth_gasPrice, the result is 1000 wei for both of them (default value in doc). In the documentation, it's specified that the behaviour could be chnaged by specifing --min-gas-price at the runtime. It s working. However, I would need eth_gasPrice method returns the actual 'real' dynamic gasprice. Is there any configuration to specify ?
Hi ! I'm playing with besu in ropsten testnet and mainnet sync mode. I launch besu in a specific pruning mode which retains the last 2 weeks of state. Nodes are fully synchronized. When I request eth_gasPrice, the result is 1000 wei for both of them (default value in the documentation). In the documentation, it's specified that the behaviour could be chnaged by specifing --min-gas-price at the runtime. It s working. However, I would need eth_gasPrice method returns the actual 'real' dynamic gasprice. Is there any configuration to specify ?
Hi ! I'm playing with besu in ropsten testnet and mainnet sync mode. I launch besu in a specific pruning mode which retains the last 2 weeks of state. Nodes are fully synchronized. When I request eth_gasPrice, the result is 1000 wei for both of them (default value in the documentation). In the documentation, it's specified that the behaviour can be changed by specifing --min-gas-price at the runtime. I tried, it s working. However, I would need eth_gasPrice method returns the actual 'real' dynamic gasprice. Is there any configuration to specify ?
Hi ! I'm playing with besu in ropsten testnet and mainnet sync mode. I launch besu in a specific pruning mode which retains the last 2 weeks of state. Nodes are fully synchronized. When I request eth_gasPrice, the result is 1000 wei for both of them (default value in the documentation). In the documentation, it's specified that the behaviour can be changed by specifing --min-gas-price at the runtime. I tried, it s working. However, I would need eth_gasPrice method returns the actual 'real' dynamic gasprice. Is there any configuration parameter to specify ?
Hi ! I'm playing with besu in ropsten testnet and mainnet sync mode. I launch besu in a specific pruning mode which retains the last 2 weeks of state. Nodes are fully synchronized. When I request eth_gasPrice, the result is 1000 wei for both of them (default value in the documentation). In the documentation, it's specified that the behaviour can be changed by specifing --min-gas-price at the runtime. I tried, it s working. However, I would need eth_gasPrice method returns the actual 'real' dynamic gasprice. Is there any configuration parameter to specify ? Is that a difference between Geth and Besu ?
Hi, would you be able to provide TRACE level logs when this happens?
Clipboard - December 16, 2020 8:55 PM
Just thought for suggestion as "Binary Download link"
@matkt Thanks for pointing it
What version are you using? this sounds like something we fixed in 20.10.2 (bug #1546)
Maybe your setup is a bit under the minimal specs. Could you let me know on what kind of machine (CPU/RAM/SSH size) and if you run it directly or in VM/Docker please?
Maybe your setup is a bit under the minimal specs. Could you let me know on what kind of machine (CPU/RAM/SSD size) and if you run it directly or in VM/Docker please?
Also for the peer issues, could you provide some infos on how your network is configured (direct, nat, ports configured and forwarded on your firewall...) and how your p2p interface is configured (what IP do you advertise?) Thanks.
20.10 ! Thanks, I'm going to try with the new one
[ ](https://chat.hyperledger.org/channel/besu?msg=gEHATGwiFFmRRRbHy) Hi @lucassaldanha , how's the performance of local vs onchain permissioning? If there are thousands of accounts, does local permissioning make sense?
Has joined the channel.
Hi team I am getting a runtime exception with v20.10.1 ... When I run bin/besu, I get the following exception "org.rocksdb.RocksDBException: While lock file: /home/ec2-user/besu-20.10.1/database/LOCK: Resource temporarily unavailable". My node has been running for a few weeks now without this issue
Hi team, could I get some help with setting up a websocket for my node? I am running on an ec2 and keep getting 403s
[ ](https://chat.hyperledger.org/channel/besu?msg=cSLWxJBWbYDCfTqhB) There is a nginx reverse proxy running on the same node and pass http traffic to 127.0.0.1:8545. After stopping nginx server, the nodes are working fine. Then restarting nginx reverse proxy didn't cause error.
What host are you connecting from? The default is `--host-allowlist=localhost,127.0.0.1` so unless explicitly set it can only be access locally. `*` opens it up to everything.
Hi, are you still experiencing issues with this?
The documentation mentions the maximum retention period for pending transaction in the pool defaults to 13hrs.
https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#tx-pool-retention-hours
I've fixed this by stopping the cron job and restarting the nodes. Is it possible to use a random nonce string like hyperledger sawtooth for private networks in the future? Serial nonce is not good for concurrency and some backend services.
We haven't done performance testing to get stats of local vs onchain permissioning. I would think though that if you have thousands of accounts and the list of accounts is infrequently modified, local config might make more sense.
The Ethereum spec states how the nonce should be used. So while we "could" re-purpose it in a private network, we’ll be straying from what is recognised as the safe method of usage - i.e. it ensures transaction ordering in a distributed network.
This solved it ! Thanks
Fisco BCOS (http://fisco-bcos.org/) does that, they are mostly ethereum with a few tweaks, one that the nonce field is re-implemented as an expiration field.
The concurrency and serialization problems extend beyond just the nonce. Since Ethereum is account based and highly composable order of operations between different accounts calling the same contract still have concurrency implications. Worse because you don't know the impact until you execute the contract.
The serialization within the block (i.e. all transactions are executed in order with strong happens-before semantics) will quickly eat up any concurrency gains that out of order nonces would provide once executed at mainnet scale.
I am using 8GB RAM, 8vcpus,SSD drive, I am using besu docker image on ubuntu. 30303 udp , 9535 ports are enabled and node synched blocks as well, from last 2weeks after reaching 8.7 M it became worse and synched hardly 200k.
I am using 8GB RAM, 8vcpus,SSD drive, I am using besu docker image on ubuntu. 30303 udp , 9535 ports are enabled and node synched blocks as well, from last 2weeks after reaching 8.7 M it became worse and synched hardly 200k.
I have checked the stats as well , those are below the utilization
Can you send me the specs for setting up on bare machine
2020-12-17 15:41:09.225+00:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire DISCONNECT (SUBPROTOCOL_TRIGGERED) from peer: PeerInfo{version=5, clientId='Geth/v1.9.24-unstable-b305591e-20201016/linux-amd64/go1.13.15', capabilities=[eth/63, eth/64, eth/65], port=0, nodeId=0x677a0bc4fbf34bcd996446a50bb3224749caf6f5a5beb3325f829e6ed8b403af0e0d2fab9e46075718ecce46353e485062a873f03f719332387f178ba8a993cc}
2020-12-17 15:41:09.238+00:00 | nioEventLoopGroup-3-6 | DEBUG | RlpxAgent | Failed to connect to peer 0x900b0fb92399e55775cf0d0ab320b0b80b0aa350fe1c1402c0a2b37769884caa07c05c12f43ed4bde39cfbd0d397e8cdf3183c94e0ded373f4e69c4452d9a15a: io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: /73.132.160.196:30303
2020-12-17 15:41:09.238+00:00 | nioEventLoopGroup-3-5 | DEBUG | ApiHandler | Received Wire DISCONNECT (SUBPROTOCOL_TRIGGERED) from peer: PeerInfo{version=5, clientId='Geth/v0.4.2-akroma-3f311e5c/linux-amd64/go1.12.7', capabilities=[eth/63], port=0, nodeId=0xdc4fc0bb21ce46a048d51e0e4722a79918d2a671c24885d53d2bea815b32178cb28d3544170fe0404095d9fe8dc5770814300effba773854420aad563138eceb}
2020-12-17 15:41:09.238+00:00 | nioEventLoopGroup-3-5 | DEBUG | AbstractPeerConnection | Disconnected (0x10 SUBPROTOCOL_TRIGGERED) from PeerInfo{version=5, clientId='Geth/v0.4.2-akroma-3f311e5c/linux-amd64/go1.12.7', capabilities=[eth/63], port=0, nodeId=0xdc4fc0bb21ce46a048d51e0e4722a79918d2a671c24885d53d2bea815b32178cb28d3544170fe0404095d9fe8dc5770814300effba773854420aad563138eceb}
2020-12-17 15:41:09.238+00:00 | nioEventLoopGroup-3-5 | DEBUG | EthProtocolManager | Peer requested to be disconnected (0x10 SUBPROTOCOL_TRIGGERED), 18 peers left: EthPeers{connections=0x8ed346bf1c41fefe14...,0xc405336c572f6e6ad2...,0x63eafafcb484a2ac23...,0x968164e756b96ed562...,0xa0a0fee0bf6b3cfa40...,0xd50c338688c80e7ddd...,0xe98bab1bd6b3fec5d4...,0x2097ffbcde49280b07...,0x01eb4e43bedd663882...,0x09330463f2ab8e01ed...,0x62c47ee55e0f15779f...,0x673cd48cab83a3d39d...,0x75faed7169a5468d75...,0xa8c706430171a12fd9...,0xb9e893ea9cb4537f4f...,0x74aefef60dddf7e408...,0x31bc9f9f9800600de9...,0x3ea0dec084595149be...}
[ ](https://chat.hyperledger.org/channel/besu?msg=tJhLppiWftt7j9f9j) Hi @lucassaldanha , I read the Besu doc about JWT token a few times but still did not figure out how to enter JWT private on RPC node. In nodejs project, the private key is saved on nodejs backend server. Many thanks.
I got besu synced to mainnet on a machine running Ubuntu with 48 GB RAM. It's still hammering the SSD with 2000 reads/sec, and 100% disk IO time. Is that normal? By comparison, geth on the same machine was doing about 30 reads/sec and 3% disk IO time.
Geth has a more extensive caching infrastructure. So this sounds right. We do have some caching work underway.
Hi team, can someone shed light on the API option --rpc-http-authentication-credentials-file=
gotcha, thanks!
Hi team, what is the credential to run the command of adding nodes to allowlist: `curl -X POST --data '{"jsonrpc":"2.0","method":"perm_addNodesToAllowlist","params":[["enode://7e4ef30e9ec683f26ad76ffca5b5148fa7a6575f4cfad4eb0f52f9c3d8335f4a9b6f9e66fcc73ef95ed7a2a52784d4f372e7750ac8ae0b544309a5b391a23dd7@127.0.0.1:30303","enode://2feb33b3c6c4a8f77d84a5ce44954e83e5f163e7a65f7f7a7fec499ceb0ddd76a46ef635408c513d64c076470eac86b7f2c8ae4fcd112cb28ce82c0d64ec2c94@127.0.0.1:30304"]], "id":1}' http://127.0.0.1:8545`
:christmas_tree: :besu: *Besu 20.10.3 is out!* :besu::christmas_tree:
:star2: *Highlights* :star2:
- eth/65 is now enabled by default :tada: !
- We’ve fixed some edge cases with our tracing APIs not aligning with Parity’s
- Block Validation errors are now are at the INFO log level
- Added memory as an option to --key-value-storage. This ephemeral storage is intended for sync testing and debugging.
You can get it here: https://github.com/hyperledger/besu/releases/tag/20.10.3
If you have HTTP authentication enabled this is the file used - there is more info in the docs here https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/
to use the perm_ API methods you need to enable them via https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-api
The credentials are the same as for all other RPC methods, they aren't special
I'm not sure if I understood your question. Are you using your own authentication service to generate the JWT token? If you are, you need to specify the public key associated with the key that is signing the JWT tokens. (https://besu.hyperledger.org/en/latest/HowTo/Interact/APIs/Authentication/#jwt-public-key-authentication)
Tom Hay<@!576356870017515520> I've got the bridge ready to deploy - just tested it
Hi thanks for your help! But I decided to switch to a local deployment. Its just for my master thesis and nothing what is used in production.
Hi everyone, does anybody know, how often Besu synchronizes the transaction pool? I'm experiencing that transaction stay for long in transaction pool if the node has no connection to other nodes right after receiving the transaction. Moreover, I was wondering if its possible to not set the nonce of a transaction and let that be set by the Besu node and not on client site?
Can you post some logs (in trace mode would be nice) between the moment you send the tx and the moment you have zero peers on your node please?
For the nonce part, Besu doesn't automatically handle finding the correct one. Your TX has to be build with the correct nonce. Nonce management is part of some overlay usually.
Sure. Can do that.
But is there a reason why Besu can't do that? Other ethereum-software can do that right?
But is there a reason why Besu can't do that? Other ethereum-software can do that, right?
I'm not sure, but I don't think so. Nodes provide a methods to count the number of tx from an account, but then if you generate two tx, before sending them the tx count will be the same and you will have to compute the nonce by yourself by giving txA a n+1 nonce and txB a n+2 nonce. That's why for instnace Consensys Orchestrate software provides a nonce service that's base on a shared database that allows it to manage the tx and their nonces before they are included in the block and available on the chain. Otherwise your node would be almost always wrong. It can't know if you prepared tx and nid not send them yet. The first then may pass (not even sure as it will fail if the first to reach the node is not the one with n+1 nonce), and all others would have wrong nonces for sure.
Hm yes sounds reasonable. Thank you!
I'm not an expert in other node software though so don't take this as the immutable truth ;)
Yeah sure. :)
For the other problem: Maybe I describe my szenario first. Actually, I'm running a permissioned network and I'm using the RPCs do add and remove nodes. The node I'm sending a transcation is not permissioned by the other nodes. So i think it is not able to distribute the transaction at that moment. So thats not surprising. But when I the other nodes give the node the permission. the Transaciton stays for long in the transaction pool. So i was wondering if its possible to speed this up.
I'm just pasting some links about nonces that are interesting:
- https://docs.nethereum.com/en/latest/nethereum-managing-nonces/
- https://github.com/ethereumbook/ethereumbook/blob/develop/06transactions.asciidoc#keeping-track-of-nonces
Interesting, what's "the Transaciton stays for long in the transaction pool." exactly? Do you see your node sync? My guess is that it has to keep up with the chain first before being able to broadcast the tx to others.
For the nonce, even Parity who had a method for next nonce seems to have issues and the advice is to [handle it on the dapp side](https://github.com/openethereum/parity-ethereum/issues/9768).
Same for Metamask https://github.com/openethereum/parity-ethereum/issues/5014#issuecomment-390394287
And there was something with Geth but that only solves the issue when you have tx originated fron only one node, which is not the case in network with multiple nodes that could send tx from the same address https://github.com/ethereum/go-ethereum/issues/2880
I'm done about nonce, let's look at your broadcasting issue now ;)
I'm not sure maybe 5 minutes to 30 minutes. But I didn't measured the exact time
It's just the one transaction. and the node is only shortly "unpermissioned" so it has nearly the same Blockchain state
thanks for the nonce links
Hum, I guess it's more than what's needed for your node to get back in sync. How far behind the chain head is the node when your reconnect it by adding it back in the permissioning? What kind of permisioning do you use? File or onchain?
Ok, maybe something to do with permisionning then...
Would you mind if I forward this to our permisionning experts?
File permissioning
(meaning you not have an answer right now)
I'm think 5-10 Blocks
Maybe to speed up the debug, having your config and genesis files + command line used to start the nodes would help. Could you drop an archive by DM?
Yes 5-10 doesn't need 30 mins to sync, clearly...
really?
uh ok didn't know that
doesn't need
I mean it's NOT normal that your node being 5 or 10 blocks behind takes so much time to propagate the tx as it clearly need only a few sec to sync 10 blocks
ok :D
We may have an issue on our side, I can't really tell like that, we have to reproduce the issue first
didnt got that
ok mom i send you th files
Where?
@aaltenbernd Is it possible that the newly added node hasn't been found by other nodes after you added it to the list of allowed nodes? Discovery might take a while to find new nodes, so it could be the reason for the delay.
Would you be able to try this again, but after you add the node to the allowlist, try calling admin_addPeer to "force" a connection between the new node and one of the nodes in the existing network?
Also, bear in mind that when using config-based permissioning, you need to update the allowlist in every node to get a consistent network (all nodes have to be updated with the new rules).
:thumbsup:
hi ,can someone let me know where i can get the etc BESU FULL node latest snapshot ?
Hi guys, under ibft2 consensus algorithm, is it normal that the validators keep creating new blocks even when there are no transactions?
Hi guys, under ibft2 consensus algorithm, is it normal that the validators keep creating new blocks even when there are no transactions? Does besu has some setting to only create blocks when there are transactions? Otherwise, the blockchain may contain a lot of empty blocks.
Has joined the channel.
hi! I am considering running a HL Besu node in order to integrate my application with Ethereum Classic. I have been using Parity for that, however it became deprecated after recent hard fork.
for now I would like to test JSON RPC API to make sure it has the functionalities I need. can you guys recommend some public node that I can use or a way to easily set up a node on my local machine without having to do a sync with the ledger? I don't care what ledger it connects to, I'm just after testing API.
If you don't have a node you can look at the list of available APIs in the doc and see the postman list with available APIs https://besu.hyperledger.org/en/stable/Reference/API-Methods/
If you don't have a node you can look at the list of available APIs in the doc and also check with Postman https://besu.hyperledger.org/en/stable/Reference/API-Methods/
@matkt yeah I already looked at these. now I want to actually hit some node. all the examples in documentation mention localhost. I don't want to sync a full node - that's why I'm after either a public one I can hit or a way to easily set up a node on my local machine without having to sync huge ledger
found some here: https://www.ethercluster.com/
however, it seems it has key methods I'm interested in (`trace_transaction` or `debug_traceTransaction`) disabled. I will keep looking for alternatives, however other suggestions are more than welcome
can i put the ip address in host-allowlist of hyperledger besu.? how can i prevent besu to accept calls from specific ip only
```
--min-gas-price has been ignored because --miner-enabled was not defined on the command line.
```
I am gettting this warning wheni tried to set min-gas-price to zero
```
--min-gas-price has been ignored because --miner-enabled was not defined on the command line.
```
I am gettting this warning wheni tried to set min-gas-price to zero
Why cannot a set zero gas price in besu-clique network
```
--min-gas-price has been ignored because --miner-enabled was not defined on the command line.
```
I am gettting this warning wheni tried to set min-gas-price to zero
Why cannot a set zero gas price in besu-clique network?
Hi team, I have an issue that if "Nonce too low" error happens in a specific node for an account, it will never get a correct pending nonce for that account even after the node is restarted. I have to send the transaction to another node to make a successful transaction. Besu version is v20.10.2 and the transactions were sent by the abi generated code for golang.
Hi team, I have an issue that if "Nonce too low" error happens in a specific node for an account, it will never get a correct pending nonce for that account . I have to send the transaction to another node or restart the wrong node to make a successful transaction. Besu version is v20.10.2 and the transactions were sent by the abi generated code for golang.
Hey @Manzik did you get this resolved?
Short answer is - add "--miner-enabled" to the commandline, and the error goes away - i.e. its an artefact of Besu trying to handle multiple consensus mechanisms in a similar way.
I.e. clique is by default enabled if you're a recognised signer/validator - but the commandline handling doesn't realise that the genesis file is configured for clique - so the commandline validation does its best to ensure consistency of the specified parameters - i.e. why would you specify a min-gas-price if you're not a miner?
Ultimately, its a rough edge, where the work around is to force mining to be enabled (--miner-enabled)
Hey @raychan11111, Ibft deliberately continues to produce blocks, even when no transactions are available - it ensures data continuity in the blockchain - i.e. we'd rather indicate that the blockchain is progressing and nothing is happening, rather than have a potentially halted blockchain.
Having said that, there is some R&D work coming through which is to investigate how IBFT could be updated too prevent empty blocks ... so ... watch this space?
@trent.mohay Thanks for your reply. Do you mean that the hyperledger besu team is investigating on this empty blocks issue? I brought up this issue because our use case require high tps, so the block time would be small which will generate tons of empty blocks rapidly.
Could you achieve hight TPS by raising the block gas limit? Block time is not the only lever to pull.
Fast syncing an ethereum classic node is very fast and relatively small.
Does ***sudo npx quorum-dev-quickstart*** work on Ubuntu 20.04? I'm getting an ***Install for quorum-dev-quickstart@latest failed with code 1*** error message.
Does **sudo npx quorum-dev-quickstart** work on Ubuntu 20.04? I'm getting an **Install for quorum-dev-quickstart@latest failed with code 1** error message.
Never mind -- that's really weird . . . . it's the sudo which is preventing it from working.
A classic full sync takes about 6 days on an AWS i3. For trace_* as long as the block has been fully processed, i.e. after the fast sync pivot, it will work.
So any block that comes in after a fast sync starts will be fully tracable. Any block before that point requires an archive/full sync.
Hi all. Can anyone help me with decoding `revertReason`? I just googled myself to death past few hours and don't know how to decode this:
```"revertReason" : "0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000344372656174696f6e2063616e20626520696e69746961746564206f6e6c792062792074686520636f6e7472616374206f776e6572000000000000000000000000"```
Am running a gasless and feeles network
Am running a gasless and feeless network
The contract reverted with a specified reason. Running that through a hex to ascii web page (https://www.rapidtables.com/convert/number/hex-to-ascii.html) yields "Ãy 4Creation can be initiated only by the contract owner"
This is what the solidity `revert()` primitive produces.
Has joined the channel.
hi i'm currently facing an issue while lauching besu on ropsten network. i'm currently using the docjer image version 20.10.2 here are the relevant logs :
First error
2021-01-02 05:46:55.045+00:00 | nioEventLoopGroup-3-9 | INFO | SyncTargetManager | Found common ancestor with peer 0x8c5131f577ee602cca... at block 8563599
2021-01-02 05:46:55.046+00:00 | nioEventLoopGroup-3-9 | WARN | FullSyncTargetManager | Disconnecting 0x8c5131f577ee602cca... because world state is not available at common ancestor at block 8563599
Second error
2021-01-02 05:55:11.782+00:00 | vert.x-eventloop-thread-1 | WARN | PeerDiscoveryAgent | Sending to peer DiscoveryPeer{status=bonding, enode=enode://8343e1d0a1cf889e057333e08b792a0f4009e2159b43dff28bf4b3911a7cbc563fc8e46e70db57485acc3b331e2c7c2e88f9734378cbea9993c660df13ea5ed1@[2a01:7e00::f03c:91ff:fe29:c71a]:30303,
firstDiscovered=1609566911742, lastContacted=0, lastSeen=0} failed,
packet: 0x3e506c2196010e61c4ed34b8b63a2f1213f1d9cb99eb73930173f5b0d6fa182fccff881aabd90aa8a8b256c233a3a12a9de84572c23f94bc494b41fd15b1c35c6b539882b470ead6d828d4814429208fbcf27bbc58922889145661efe63020810001ea05cb847f00000182765f82765fd7902a017e0000000000f03c91fffe29c71a82765f82765f845ff00afb
java.nio.channels.UnsupportedAddressTypeException
also i added this two config variables to the node if i remove them the node will not start the synchronisation
--remote-connections-limit-enabled=false
--fast-sync-min-peers=1
It doens't seen enough do you have a list of up date peers that can we connect to for the synchro ?
Looks like our IPv6 address support became broken, that's what the exceptions are complaining about.
As for peering, that is always difficult on test networks. `--fast-sync-min-peers=1` is a common setting for my test nodes.
Ropsten is also tends to have large forks and netsplits. Great for testing some scenarios bad for stable smart contract development. Rinkeby and Goerli are better for contract development.
thanks so much. kinda didn't even think about converting it plainly fromhex to ascii :) we managed to solve the problem :)
Probably a stupid question . . . .
I'm trying to get the Permissioning Dapp working
The instructions at https://besu.hyperledger.org/en/latest/HowTo/Deploy/Production/#starting-a-production-permissioned-network say
To deploy the Permissioning Management Dapp for production:
1. Retrieve the most recent release (tarball or zip) from the projects release page.
2. Unpack the distribution into a directory available to your Web server.
3. In the root of the unpack directory, add a file called config.json replacing the placeholders shown below.
{
"accountIngressAddress": "
Hi guys, do you have a recommendation setup for production in Hyperledger Besu IBFT 2.0?
@shemnon so i'm using the docker container 20.10.2 and i found 20.10.4-snapshot and 20.10.3 should i use one of this untead of 20.10.2 ?
@shemnon so i'm using the docker container 20.10.2 and i found 20.10.4-snapshot and 20.10.3 should i use one of this instead of 20.10.2 ?
using hyperledger/besu:latest will get the latest release quality release, 20.10.3 in this case. hyperledger/besu:develop will get you the latest SNAPSHOT build. SNAPSHOT builds are not recommended for production environments.
Has joined the channel.
Hello everyone
Clipboard - January 6, 2021 3:10 PM
Im working with Besu on kubernetes. I seem to have everything working correctly on server side.
Able to connect via Metamask
Able to see my balance of ETH in the hyperledger permissioned network (clique)
When I go to send eth from one account to a random other account, I get stuck in pending transaction in metamask
I try to send another tx, it gets queued.
What configuration would I be missing here? Besu is compatible with Metamask as far as I understand
This would be the first tx on the network
Are you commected with metamask to a local chain using besu or to a public testnet?
I guess a local network given your answer. If you restart your network but still use the same accounts to interact with it using metamask, you may have to reset the accounts in metamask when you start a new network.
https://metamask.zendesk.com/hc/en-us/articles/360015488891-Resetting-an-Account
Thanks for a prompt response.
Ive successfully tested hosting locally before, moving tokens with metamask following the tutorial for permissioned network.
This is besu permissioned network in the cloud.
Just going over it with my dev-ops person. I was looking at the accounts-allowlist, it seems he left it empty.
If my account is not in accounts-allowlist for a permissioned clique network, this would be the behavior we expect right? We are trying to fix that and see what happens.
You are absolutely correct. The release build is missing from v2.0.0. I'll try to update the release with the artefacts ASAP. Thanks for letting us know!
Hi team, I started besu nodes with nohup besu config-file=config.toml and all 4 nodes stopped in a few days at the same time. What can be the cause and how to prevent the nodes from stopping? Here is the last lines of log on RPC node:
2020-12-29 13:44:29.012-08:00 | pool-8-thread-1 | DEBUG | IbftRound | Received a proposal message. round=ConsensusRoundIdentifier{Sequence=303917, Round=0}
2020-12-29 13:44:29.019-08:00 | pool-8-thread-1 | DEBUG | IbftRound | Sending prepare message. round=ConsensusRoundIdentifier{Sequence=303917, Round=0}
2020-12-29 13:44:29.029-08:00 | pool-8-thread-1 | DEBUG | IbftRound | Received a prepare message. round=ConsensusRoundIdentifier{Sequence=303917, Round=0}
2020-12-29 13:44:29.030-08:00 | pool-8-thread-1 | DEBUG | IbftRound | Sending commit message. round=ConsensusRoundIdentifier{Sequence=303917, Round=0}
2020-12-29 13:44:29.039-08:00 | pool-8-thread-1 | DEBUG | IbftRound | Received a commit message. round=ConsensusRoundIdentifier{Sequence=303917, Round=0}
2020-12-29 13:44:29.044-08:00 | pool-8-thread-1 | DEBUG | IbftRound | Received a commit message. round=ConsensusRoundIdentifier{Sequence=303917, Round=0}
2020-12-29 13:44:29.044-08:00 | pool-8-thread-1 | DEBUG | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=303917, Round=0}, hash=0xbc8ca3e637b31435b772d00f4f7fec8b62f816c76b832501f2a3d0efa1a2573d
2020-12-29 13:44:29.046-08:00 | pool-8-thread-1 | DEBUG | TransactionLogBloomCacher | Caching logs bloom for block 0x4a32d.
2020-12-29 13:44:29.047-08:00 | pool-8-thread-1 | INFO | IbftBesuControllerBuilder | Imported #303,917 / 0 tx / 0 pending / 0 (0.0%) gas / (0xbc8ca3e637b31435b772d00f4f7fec8b62f816c76b832501f2a3d0efa1a2573d)
2020-12-29 13:44:29.047-08:00 | pool-8-thread-1 | DEBUG | IbftController | Discarding a message which targets a height not above current chain height.
2020-12-29 13:44:29.047-08:00 | pool-8-thread-1 | DEBUG | IbftController | New chain head detected (block number=303917), currently mining on top of 303916.
2020-12-29 13:44:29.056-08:00 | pool-8-thread-1 | DEBUG | IbftController | Discarding a message which targets a height not above current chain height.
Also found the bootnode is started fine. However other 3 node didn't start and stop at first line of log output: $ nohup ../../besu/bin/besu --config-file=config.toml
nohup: ignoring input and appending output to 'nohup.out'
$ nohup ../../besu/bin/besu --config-file=config.toml
nohup: ignoring input and appending output to 'nohup.out'
$ nohup ../../besu/bin/besu --config-file=config.toml
nohup: ignoring input and appending output to 'nohup.out' and nothing has been changed.
$ nohup ../../besu/bin/besu --config-file=config.toml
nohup: ignoring input and appending output to 'nohup.out'
What can be the problem? All 4 nodes (IBFT2) were running fine.
What can be the problem? All 4 nodes (IBFT2) were running fine and nothing has been changed.
it turns out that the other 3 nodes are running. just no console output.
When I'm using privacy (besu, orion) how does one do a call on a private contract that uses privateFor and privateFrom? I tried using the public call rpc method but it returns null and priv_call seems to be only enabled for privacy groups.
Also when using privacy groups, it seems that more complex variables like `struct` doesn't return a tuple when doing a call, it just returned the first variable in the list.
Also when using privacy groups, it seems that more complex variables like `struct` doesn't return a tuple when doing a call, it just returned the first variable in the list. When returning `
I have updated the release with the artefacts. https://github.com/ConsenSys/permissioning-smart-contracts/releases/tag/v2.0.0
@shemnon hi do you have a recommendation setup for production in Hyperledger Besu IBFT 2.0? because in our setup we have 4, t3 medium to run ibft 2 setup
hi guys, what is the BonsaiAccount class why this is implemented and differs from previou version?
Bonsai Tries is the new experimental data storage format. BonsaiAccount is one of the implementing classes. It's not ready for production use yet and is gated by a feature flag.
production setup depends on tps load. starting with 4x t3.medium should be a good start. The next move would be to an i3.medium or a t3.large. It's hard to predict what will need upgrading first, the cpu or the i/o speed, but I'm guessing it will be the i.o speed and the t3->i3 and keeping data on the SSD would be the first scaling action.
production setup depends on tps load. starting with 4x t3.medium should be a good start. The next move would be to i3.medium or t3.large. It's hard to predict what will need upgrading first, the cpu or the i/o speed, but I'm guessing it will be the i.o speed and the t3->i3 and keeping data on the SSD would be the first scaling action.
I expect you should be on i3 boxes before t3.xlarge is a consideration. But that depends on total usage levels and t3.med is as low as you would want to go for production.
ok, so is a feature for scaling the performace of storage, right?
Yes.
So I know orion functionality will be merged into tessera, but after flattening the contract and removing the structs, I was able to retrieve the data I needed. So I believe there is a bug with besu, orion, privacyGroups and solidity structs. Should I report it on besu github, or does it matter at this point. I imagine it may be an issue with besu's world state
Arrays also don't work
All of this works on public contracts but not on private contracts
Hey @al0818, Not sure I can offer perfect advice on this, but by and large, I'd run more than 4 validators, and less than 20 (that's the upper limit we've proven roughly works).
If you're running cloud based, I'd suggest using 4 geo/availability zones - just to make sure that if one zone goes down, my blockchain can continue (but maybe that's being a little over defensive).
Set your blocktime to be how often you'd like blocks to be produced, and set your requesttimeoutseconds to be maybe 5 seconds longer than that - this may need tuning once you've spun up your network (will be affected by geographic layout).
Not sure if there's other advice out there :) But good luck, and let us know how you go!
Hey @EmcLab, That log snippet actually looks pretty good - the second last line shows a new block being imported at 303917 ...
When you say the "nodes stopped" - do you mean they stopped producing blocks, or the processes themselves stopped?
Please open a bug in Besu with as much information as possible. And if you have a sample contract with minimum functionality to exercise the bug it will be awesome!
Even when a transaction is sent using privateFrom/privateFor, behind the scenes a privacy group is assigned to it.
To find out the privayGroupId that was created, you should use priv_findPrivacyGroup (https://besu.hyperledger.org/en/latest/Reference/API-Methods/#priv_findprivacygroup).
You'll notice that there will be one privacy group with type LEGACY. This is the one that correspond to the privateFrom/privateFor tx. And then you can use this id for all priv calls that need a privacy group id.
I see you finally found the time to implement this :)
Any initial idea of the savings it brings?
Is there any documentation on how they work as well
Nvm about the docs, found them here https://wiki.hyperledger.org/display/BESU/Bonsai+Tries+Design+Overview
I don't have stats ready, and I don't want to give stats until this is run at mainnet scale. There are still a couple of missing features/bugs preventing this being used for mainnet right now.
No worries, I completely understand
Definitely interested once you start getting those numbers in
Has joined the channel.
I have setup a private network using Orion. I followed the samples here: git clone https://github.com/PegaSysEng/web3js-eea, I can successful store and read data
using sendRawTransaction (private transactions) but I do not want to start a transaction for just reading data. Is there the possibility to read private data using web3.eth.call? Is there an example?
Send my question to fast, I guess the right way is to use web3.priv.call
Sent my question to fast, I guess the right way is to use web3.priv.call
Has joined the channel.
Is Hyperledger Besu free to use for commercial?
Besu is Apache licensed. You can do (almost) whatever you what you want with it. There are members of Hyperledger that will offer you support contracts if you want or need them. There are successful deployments with and without support contracts, YMMV.
Great to hear that. Thank you Shemnon :slight_smile: Where could I get to speak with some members for such support? Do I have to join the Hyperledger membership?
You can ask here for community support.
For enterprise paid support, I sent you a PM.
Hello, i notice that function https://github.com/hyperledger/besu/blob/297a9c0b96580884a9040a3aba65d1d904506e5a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/worldstate/DefaultWorldStateArchive.java#L57, has blockHash but is not used why is here?
This is done in preperation for Bonsai Tries. Bonsai Tries will be storing world state by block hash rather than by world state root. All calls need to provide both but the particular data storage layout will use only one of the parameters.
Had a question come up about double spend and privacy channels. It does seem quite easy to double spending via private transactions. Any insight into this?
ok thanks @shemnon
As we're nearing the release, I'd like to take time, maybe during the next office hours, to go over what this new OpenTelemetry thing does. It would be a good time for me to answer any questions and take any feedback from the team, make sure that's addressed and well understood from me. Does that sound like a good idea?
:besu: *Besu 20.10.4 is out* :besu:
_Note: this is the last bi-weekly release before our quarterly RC._
:star2: Highlights :star2:
- Implemented EIP-778: Ethereum Node Records (ENR) #1680
- Implemented EIP-868: Node Discovery v4 ENR Extension #1721
- Added revert reason to eth_estimateGas RPC call. #1730
You can get it here: https://github.com/hyperledger/besu/releases/tag/20.10.4
Yes! We have one scheduled next Tuesday at 7am PT :+1:
Yes! We have one scheduled next Tuesday at 7am PT @atoulme :+1:
7am PT :( ok I guess I can try to be up for it.
@timbeiko looking for the meeting here: https://wiki.hyperledger.org/display/BESU/Agendas can't see it?
@atoulme created it :slight_smile: https://wiki.hyperledger.org/display/BESU/2020-1-19+Office+Hours
[ ](https://chat.hyperledger.org/channel/besu?msg=dxCifPZxmiciquECJ) the besu node stopped running. I guess somehow the besu process was killed by the ubuntu. I am trying to find some utility which can automatically load the besu again and keep the besu running if it accidentally stops.
Hi team, what is the linux utility which can automatically reload besu if the process was killed?
just keep besu running all the time. I used nohup but besu was killed after about 10days.
When we need auto restart we load it into systemd. Here's the config:
```
$ sudo cat /etc/systemd/system/besu.service
[Unit]
Description=Besu Enterprise Ethereum java client
After=syslog.target network.target
[Service]
User=besu
Group=besu
Environment=HOME=/home/besu
Type=simple
ExecStart=/bin/sh -c "/opt/besu/current/bin/besu --config-file=/etc/besu/config.toml >> /var/log/besu/besu.log 2>&1"
SuccessExitStatus=143
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
```
In ~ 20 hours we will have Hyperledger Office Hours (EMEA/AMER friendly times). In addition to standard agenda items Antoine Toulme will spend some time discussing the new OpenTelemetry additions to Besu. https://wiki.hyperledger.org/display/BESU/2021-01-19+Office+Hours
@shemnon , many thanks.
Has joined the channel.
Has joined the channel.
Hi all, I am doing a little bit of research on both HL Fabric Channels and HL Besu privacy groups. I want to know the differences of both of these... Thanks in advance...
Has joined the channel.
Hi there, I have a POA with ibft2 network on hyperledger BESU, set to 0 mining fee. network is buildin bloks, however I have deployed a smart contract and the transaction sent is not incorporated to a block, it stays in pending, do you happen to had any question related to this ?
Clipboard - January 20, 2021 3:06 PM
Has joined the channel.
Fabric channels are more independent chains (with their own genesis) where only allowed users can transact. It's close to what we call state channels on Ethereum too.
Besu privacy groups are defined on your chain directly as smart contracts and private transaction data is stored in the private transaction manager, only a privacy marker is visible on the public chain. Who can participate is handled by the privacy group smart contract on your main chain and the privacy manager looks at the smart contract to decide if it can give you access to the private transaction data.
Fabric channels are more like independent chains (with their own genesis) where only allowed users can transact. It's close to what we call state channels on Ethereum too.
Besu privacy groups are defined on your chain directly as smart contracts and private transaction data is stored in the private transaction manager, only a privacy marker is visible on the public chain. Who can participate is handled by the privacy group smart contract on your main chain and the privacy manager looks at the smart contract to decide if it can give you access to the private transaction data.
Hi, its possible to start one besu client IBFT with previous blocks mined like 2000 and start all network and clients in block 1800
My real question is, what we have as tools to fix a wrong block due an error of deploying different versions of the block processors.
supposing if on block x after deploy 4 ibft validators with version 1 and 2 besu clients as public peers and bootnodes as version 2, the users only have access to public nodes ...
when the transaction enter in public nodes its processed like needs becasuse is version 2
but validators as version 1 mismatch root state and disconnect
in this case the solution is simple remove the database of 4 validators in version 1.
update client version of validators to version 2 and sync with public nodes
but if the case is inverse, public nodes as v1 and validators v2, we lost an transaction that fails in v1 and not in v2
what is the procedure to fix this mistake on database
how we rolback this transaction that fail in v1, implement hardfork with right transaction processor at block X?
@NicolasMassart Thanks a lot for your in detail explanation. Now I can understand the difference of both of these implementations. Thanks again... cheers
So . . . . I've got the Besu Quickstart up and running on Azure. According to the Grafana dashboard, everything is functioning perfectly.
Now, I want to connect an outside node to it.
I've added the following to validator1 (the bootnode) in docker-compose.yml
ports:
- 30303:30303
I have opened port 30303 in the Azure networking the same way I opened the Grafana port
I have an external node that can connect to the public Ethereum network but cannot connect to my Quickstart
What am I likely doing wrong?
Also, what is the best way to make the other peers visible? Should I give them all externally accessible ports and have the bootnode list and connect via those instead of using the internal ports?
Or can I just map their 30303s to something like 30304 and 30305 and 30306 and they will discover anything that connects to the bootnode?
----------------------------------------
A few more details and something I just discovered:
My outside node's command line is
bin/besu --bootnodes=enode://45f5f4a243fe851b025d622140f92d645bc04a0eb67589c4d6a21a5f9f367e600637d83546c3cbf9ccfa2fae072a1fa08e236d222b3262a685c15225540df2ee@20.44.99.125:30303 --data-path=besudata --genesis-file=ibft2Genesis.json --min-gas-price=0
If I change the hexadecimal part of the enode, there is no apparent difference in behavior (as long as it has the correct number of bytes.
Indeed, if I change the ip address of the enode, there is no apparent difference in behavior.
Where should the bootnode be showing up in the startup messages?
WHat am I doing wrong?
-----------------------------------
If I put the bootnodes in a config file, would that work better?
What if I defined static nodes?
Hi @Helder_jn_Pinto, There's a few things going on with your idea, and its worth breaking them down individually:
1. A public node doesn't mine blocks, therefore any transactions submitted to it is forwarded to the Validator for inclusion in a block. If the transaction is invalid (or makes the block invalid) - it will be discarded by the validator, and will never make it onto the blockchain
2. All nodes in a network need to have the same understanding of where hard-forks exist (as define in the genesis file) - otherwise some nodes will halt (or fork away?)
3. You can't add retrospective hard-forks, they really need to be added to the genesis file for a block in the future - and any new nodes which join the network need this genesis file with all hard-forks in it - or else they will stop synching when they reach the fork-block (as the block will appear invalid, or have an incorrect state-root)
Hi @mwaser, Can you run your external node with debug logging on using --logging=debug to your command line so we can if there are any errors relating to establishing a peer connection. Is the same ibft genesis file being used on both the quickstart nodes and your external node? And is the public quickstart node 30303 accessible from the external nodes environment using telnet or something similar?
Has joined the channel.
Hi @jframe Thank you so much for offering to assist.
Additional information: The "remote" node is my home desktop. It connects to the public Ethereum network and starts syncing with no problem.
The ibft genesis file on my desktop was directly copied from the Azure quickstart setup.
Telnet confirms that the Azure port is open
mwaser@DESKTOP-PP2MO7N:~$ telnet 20.44.99.125 30303
Trying 20.44.99.125...
Connected to 20.44.99.125.
Escape character is '^]'.
Portnet (http://portquiz.net:30303/) confirms that my outgoing port is open (always a good thing to check since home routers generally block it ;-)
Actually though, since my remote node did connect to the public Ethereum network, I should already have known that. :-P
==> Looking at it with fresh eyes - the log file shows no signs of having seen the --bootnodes argument.
Log file is at https://1drv.ms/u/s!AgHGbmIQpIRChLBUXT0bSW1ddSN0IA?e=M7arzd
I'm going to try using a config file next and then static nodes.
Is there anything else you can see?
Thanks!
Mark
config file didn't work -- no sign of the bootnode being referenced (which may be correct but I have no idea)
The only real difference I see between public Ethereum startup and the quickstart startup is that just after
2021-01-22 09:34:43.898-05:00 | main | INFO | NetworkRunner | Starting Network.
And before
2021-01-22 09:34:44.149-05:00 | nioEventLoopGroup-2-1 | INFO | RlpxAgent | P2P RLPx agent started and listening on /[0:0:0:0:0:0:0:0]:30303.
The Ethereum startup does some DNS work which the quick start startup does not
2021-01-22 09:34:43.903-05:00 | main | INFO | DefaultP2PNetwork | Starting DNS discovery with URL enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net
2021-01-22 09:34:43.989-05:00 | main | DEBUG | ResolvConfResolverConfigProvider | Added /172.29.128.1:53 to nameservers
2021-01-22 09:34:43.989-05:00 | main | DEBUG | JndiContextResolverConfigProvider$InnerJndiContextResolverConfigProvider | Added /172.29.128.1:53 to nameservers
2021-01-22 09:34:44.015-05:00 | Timer-0 | DEBUG | SimpleResolver | Sending all.mainnet.ethdisco.net./TXT, id=59221 to tcp/172.29.128.1:53
2021-01-22 09:34:44.020-05:00 | Timer-0 | DEBUG | Client | Starting dnsjava NIO selector thread
OK. So static nodes worked -- mostly. I connected but then am running into security problems. Time to try to go dig into that. Any suggestions welcome. I would also love to know why the --bootnodes command line argument and the config file didn't work . . . .
2021-01-22 09:45:02.396-05:00 | nioEventLoopGroup-3-1 | DEBUG | HandshakeHandlerOutbound | Wrote initial crypto handshake message to /20.44.99.125:30303.
2021-01-22 09:45:02.498-05:00 | nioEventLoopGroup-3-1 | DEBUG | AbstractHandshakeHandler | Sending framed hello
2021-01-22 09:45:02.529-05:00 | nioEventLoopGroup-3-1 | DEBUG | AbstractHandshakeHandler | Successfully wrote hello message
2021-01-22 09:45:02.569-05:00 | nioEventLoopGroup-3-1 | DEBUG | DeFramer | Received HELLO message: PeerInfo{version=5, clientId='besu/v20.10.0/linux-x86_64/oracle_openjdk-java-11', capabilities=[eth/62, eth/63, eth/64, IBF/1], port=30303, nodeId=0x45f5f4a243fe851b025d622140f92d645bc04a0eb67589c4d6a21a5f9f367e600637d83546c3cbf9ccfa2fae072a1fa08e236d222b3262a685c15225540df2ee}
2021-01-22 09:45:02.570-05:00 | nioEventLoopGroup-3-1 | DEBUG | DeFramer | Enable compression for p2pVersion: 5
2021-01-22 09:45:02.664-05:00 | nioEventLoopGroup-3-1 | DEBUG | RlpxAgent | Outbound connection established to peer: 0x45f5f4a243fe851b025d622140f92d645bc04a0eb67589c4d6a21a5f9f367e600637d83546c3cbf9ccfa2fae072a1fa08e236d222b3262a685c15225540df2ee
2021-01-22 09:45:02.673-05:00 | nioEventLoopGroup-3-1 | DEBUG | EthProtocolManager | Sending status message to 0x45f5f4a243fe851b02....
2021-01-22 09:45:02.709-05:00 | nioEventLoopGroup-3-1 | DEBUG | ApiHandler | Received Wire DISCONNECT (UNKNOWN) from peer: PeerInfo{version=5, clientId='besu/v20.10.0/linux-x86_64/oracle_openjdk-java-11', capabilities=[eth/62, eth/63, eth/64, IBF/1], port=30303, nodeId=0x45f5f4a243fe851b025d622140f92d645bc04a0eb67589c4d6a21a5f9f367e600637d83546c3cbf9ccfa2fae072a1fa08e236d222b3262a685c15225540df2ee}
2021-01-22 09:45:02.710-05:00 | nioEventLoopGroup-3-1 | DEBUG | AbstractPeerConnection | Disconnected (0x UNKNOWN) from PeerInfo{version=5, clientId='besu/v20.10.0/linux-x86_64/oracle_openjdk-java-11', capabilities=[eth/62, eth/63, eth/64, IBF/1], port=30303, nodeId=0x45f5f4a243fe851b025d622140f92d645bc04a0eb67589c4d6a21a5f9f367e600637d83546c3cbf9ccfa2fae072a1fa08e236d222b3262a685c15225540df2ee}
2021-01-22 09:45:02.716-05:00 | nioEventLoopGroup-3-1 | DEBUG | EthProtocolManager | Peer requested to be disconnected (0x UNKNOWN), 0 peers left: EthPeers{connections=}
Thanks, I've fixed my network, I start the network with validators with the same database and the same genesis for hardforks and client version 1, it took some time to continue mining at start (maybe some background schedule or verification ???), I needed also reschedule the last hardfork to future block and deploy with new version.
Hi folks, i'm upgrading my besu client from 1.4.0 to 1.5.1 and i got an 401 when build to get repo.spring.io dependency , what is need to do ?
>> Task :services:tasks:jar
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':startScripts'.
> Could not resolve all files for configuration ':runtimeClasspath'.
> Could not resolve com.splunk.logging:splunk-library-javalogging:1.8.0.
Required by:
project : > project :besu
> Could not resolve com.splunk.logging:splunk-library-javalogging:1.8.0.
> Could not get resource 'https://repo.spring.io/libs-release/com/splunk/logging/splunk-library-javalogging/1.8.0/splunk-library-javalogging-1.8.0.pom'.
> Could not GET 'https://repo.spring.io/libs-release/com/splunk/logging/splunk-library-javalogging/1.8.0/splunk-library-javalogging-1.8.0.pom'. Received status code 401 from server: Unauthorized
* Try:
i checked the merge files and i have gradle like 1.5.1
i checked the merge files and i have gradle like in tag 1.5.1
i checked the merge files and i have gradle like in besu tag 1.5.1
i ran into the same issue, raised a PR @ https://github.com/hyperledger/besu/pull/1828, looks like starting january 21, 2021 repo.spring.io doesnot allow anonymous download of 3rd-party Maven Central artifacts according to https://spring.io/blog/2020/10/29/notice-of-permissions-changes-to-repo-spring-io-fall-and-winter-2020
what is the resolution for this ? put some credentials in config ?
:thumbsup:
Has joined the channel.
Hi @shemnon . After using systemd service to start besu nodes, it throws an strange error in the log file:
2021-01-25 22:32:25.318-08:00 | main | INFO | StaticNodesParser | StaticNodes file /./data/static-nodes.json does not exist, no static connections will be created.
2021-01-25 22:32:25.318-08:00 | main | INFO | Besu | Connecting to 0 static nodes.
2021-01-25 22:32:25.321-08:00 | main | INFO | Besu | Security Module: localfile
picocli.CommandLine$ParameterException: Cannot store generated private key.
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1147)
at picocli.CommandLine.executeUserObject(CommandLine.java:1919)
at picocli.CommandLine.access$1100(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2152)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2530)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandle r.java:56)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandle r.java:31)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2152)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2530)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1260)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1129)
at org.hyperledger.besu.Besu.main(Besu.java:50)
Caused by: picocli.CommandLine$ExecutionException: Cannot store generated private key.
at org.hyperledger.besu.cli.BesuCommand.buildController(BesuCommand.java:1530)
at org.hyperledger.besu.cli.BesuCommand.controller(BesuCommand.java:1522)
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1141)
... 14 more
Caused by: java.lang.IllegalArgumentException: Cannot store generated private key.
at org.hyperledger.besu.crypto.KeyPairUtil.loadKeyPair(KeyPairUtil.java:71)
at org.hyperledger.besu.cli.BesuCommand.loadKeyPair(BesuCommand.java:1247)
at org.hyperledger.besu.cli.BesuCommand.defaultSecurityModule(BesuCommand.java:1242)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:167)
at org.hyperledger.besu.cli.BesuCommand.securityModule(BesuCommand.java:2308)
at org.hyperledger.besu.cli.BesuCommand.buildNodeKey(BesuCommand.java:2301)
at org.hyperledger.besu.cli.BesuCommand.getControllerBuilder(BesuCommand.java:1555)
at org.hyperledger.besu.cli.BesuCommand.buildController(BesuCommand.java:1528)
... 16 more
To display full help:
besu [COMMAND] --help
2021-01-25 22:32:36,492 main INFO Registered Log4j as the java.util.logging.LogManager.
Setting logging level to DEBUG
Has joined the channel.
hello guys! I have a practical question about IBFT2: what is the maximum number of validators/signers is advisable to have in my private network?
using the besu client on all the nodes
hello team, could somebody tell me what's the Dockerfile that's used for publishing the official Dockerhub images?
file permissions in the target directory are not writable to the besu user. either chown the parent, add besu to the group and make it group writable, or make it world writable.
@diegoll I'm looking [here](https://github.com/hyperledger/besu/blob/049c3799cf8c37abac4d80cad31ef781de83adce/.circleci/config.yml#L248)
Still trying to get an external node to connect to my Besu Quick Start. I'm to the point where I need to work on Permissions.
I'm using the instructions at https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/
I've gotten virtually all the way through. When my Metamask was pointed at the public Ethereum Network, the program recognized that and gave the correct error message.
Unfortunately, when Metamask is pointed at my Besu Quickstart the following occurs
Using Typescript 3.2.1 (per previous error message saying I needed to downgrade)
Web browser starts up & console says "Files successfully emitted, waiting for typecheck results..."
After five minutes of watching the blue spinning loop on the Besu Permissioning page, I get the following error on both the web browser and the console
Failed to compile.
/mnt/c/Users/markw/permissioning-smart-contracts/node_modules/@babel/types/lib/index.d.ts
TypeScript error in /mnt/c/Users/markw/permissioning-smart-contracts/node_modules/@babel/types/lib/index.d.ts(1450,50):
'{' or ';' expected. TS1144
1448 | }): ReturnedChild[];
1449 |
1450 | declare function assertNode(node?: any): asserts node is Node;
| ^
1451 |
1452 | declare function assertArrayExpression(node: object | null | undefined, opts?: object | null): asserts node is ArrayExpression;
1453 | declare function assertAssignmentExpression(node: object | null | undefined, opts?: object | null): asserts node is AssignmentExpression;
Any help would be greatly appreciated!
Thanks!
Doing more research, I note that asserts wasn't added to Typescript until version 3.7 (i.e. well after the versions we're supposed to be using).
Actually though -- now I'm thinking that the problem is actually above line 1450 . . . .
Hi! Thanks for responding.
I switched over to trying to build a functioning release (I'm failing with a last compile error as described at the bottom of the chat) & actually missed your reply until now . . . .
The release artefacts seem to be missing a config.json that is necessary. Below is the session where I ran http-server and tried both firefox and chrome against it . . . .
mwaser@DESKTOP-PP2MO7N:/mnt/c/Users/markw/besu-perms$ http-server
Starting up http-server, serving ./
Available on:
http://127.0.0.1:8080
http://172.24.124.107:8080
Hit CTRL-C to stop the server
[2021-01-26T22:08:02.503Z] "GET /" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"
(node:459) [DEP0066] DeprecationWarning: OutgoingMessage.prototype._headers is deprecated
(Use `node --trace-deprecation ...` to show where the warning was created)
[2021-01-26T22:08:02.680Z] "GET /static/css/main.cc258d2f.chunk.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"
[2021-01-26T22:08:02.683Z] "GET /static/js/main.e6a2cbe7.chunk.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"
[2021-01-26T22:08:02.684Z] "GET /static/js/2.68f7f0a0.chunk.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"
[2021-01-26T22:08:03.442Z] "GET /config.json" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"
[2021-01-26T22:08:03.443Z] "GET /quorum-avatar.png" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0"
[2021-01-26T22:08:03.445Z] "GET /config.json" Error (404): "Not found"
[2021-01-26T22:09:18.741Z] "GET /" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
[2021-01-26T22:09:18.789Z] "GET /static/css/main.cc258d2f.chunk.css" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
[2021-01-26T22:09:18.791Z] "GET /static/js/2.68f7f0a0.chunk.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
[2021-01-26T22:09:18.792Z] "GET /static/js/main.e6a2cbe7.chunk.js" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
[2021-01-26T22:09:19.248Z] "GET /config.json" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
[2021-01-26T22:09:19.253Z] "GET /quorum-avatar.png" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
[2021-01-26T22:09:19.254Z] "GET /config.json" Error (404): "Not found"
[2021-01-26T22:09:19.303Z] "GET /manifest.json" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36"
Added the besu user to sudoer group and the error is the same that "can not store generated private key" Is there other problem which may cause the error? @shemnon
Which is the target directory? Here is the line in service file, The besu is installed under home/myUser which myUser has full access right: ExecStart=/bin/sh -c "/home/myUser/bin/besu/bin/besu --config-file=/home/myUser/bin/besu_network/node1/config.toml >> /var/log
Also myUser has been added to sudoer group and the error is the same.
[ ](https://chat.hyperledger.org/channel/besu?msg=neznk3t7382yR2rSM) The manual start of the nodes works fine for all 4 nodes before using service. It is very strange that the private key can not be stored.
You need to provide the config.json file with some info about your setup (https://github.com/ConsenSys/permissioning-smart-contracts#deploying-the-dapp) :)
Hi @mwaser - is the error from MetaMask or from Typescript?
@Julian178 we've run networks with upto 20 validators and it seemed to run ok (though all in the same data centre from memory). The question probably comes down to "how many validators are likely to become corrupted/crash in the same time period" - then build a network which supports that many simultaneous failures.
I.e. 4 validators is _fine_ if you only expect 1 node to be offline at any time.
If you think there's a risk that 4 validators might be failed at the same time, then you need to have at least 12 validators in the network to prevent the chain from halting
Has joined the channel.
Hi All, I need help with permissioning BESU DAPP.
We are working to build a permissioned network, so only indentified organization can join the nwtwork and add a node, but public meaning that all the users can submit transaction to the network. But we must avoid that users can deploy new smart contracts. ```
There is a way to do this just using the permissiong DAPP (for example by defining an authorization policy)?```
Thanks, Emiliano
```
```
```
```
[ ](https://chat.hyperledger.org/channel/besu?msg=6fQ4HcNuN3ySLXHCq) Thanks for answer! I was referring to the maximum number of validators, as we have already a network of 50 nodes and all of them are asking to be validators. We are concern that making all of them validators the performance of the network will decrease
Typescript. It shows in both the server's console and the server page.
DOH! RTFM. My bad. I'll let you know how it goes but I'd be surprised if it doesn't work. :stuck_out_tongue_winking_eye:
whatever data-dir is set to in your config.
[ ](https://chat.hyperledger.org/channel/besu?msg=jFbTkpsrqFamBWWZC) Shall the service be started under myUser's home directory where the config.toml resides? The data-dir is under the myUser's home directory and myUser has full access.
I tested manually start the node.service and it works fine, even though it took more than 5 minutes to get synced (no console output after starting service for 5 or 10 min)
The log indicates it's '/.' Try setting the working directory to your data-dir prior to launch and see if that helps.
or '/./data' based on the static-nodes lookup.
Hello, why node starting stuck for a few minutes before proceeding? Here is the console output
Hello, why startup node starting stuck for a few minutes before proceeding? Here is the console output
2021-01-27 11:46:57.810-08:00 | main | DEBUG | NativeLibrary | Adding system paths: [/usr/lib/x86_64-linux-gnu, /lib/x86_64-linux-gnu, /lib64, /usr/lib, /lib, /usr/lib/x86_64-linux-gnu/libfakeroot]
2021-01-27 11:46:57.810-08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-01-27 11:46:57.810-08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-01-27 11:46:57.810-08:00 | main | DEBUG | NativeLibrary | Looking for version variants
2021-01-27 11:46:57.813-08:00 | main | DEBUG | Native | Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@5bc2b487 for secp256k1
2021-01-27 11:46:57.814-08:00 | main | DEBUG | Native | Found library resource at jar:file:/home/cjadmin/bin/besu/lib/secp256k1-0.3.0.jar!/linux-x86-64/libsecp256k1.so
2021-01-27 11:46:57.814-08:00 | main | DEBUG | Native | Extracting library to /home/cjadmin/.cache/JNA/temp/jna5291301838090606776.tmp
2021-01-27 11:46:57.820-08:00 | main | DEBUG | NativeLibrary | Found library 'secp256k1' at /home/cjadmin/.cache/JNA/temp/jna5291301838090606776.tmp
The last line (Found library 'secp256k1' is where stuck for a few minutes.
Here is where regular node stuck for a few minutes before proceeding:
2021-01-27 11:54:25.324-08:00 | main | INFO | AbstractAltBnPrecompiledContract | Using LibEthPairings native alt bn128
The standard DAPP implementation doesn't provide this functionality. Any account added to the allowed-list will have its transactions accepted by the nodes.
However, the rule check that is done in the smart contract can be customised to fit other use cases like yours.
Take a look at https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/AccountRules.sol#L76 and you'll see that the smart contract is only checking if the account belongs to a list of authorised accounts, but the api has got all the information regarding a tx that can be used to write custom rules.
For example, you could check if the 2nd address parameter (to) is null, what implies a contract deployment, and check the sender address agains another list, of accounts that can deploy contracts.
By extending the contract you can create your own rules.
Thanks for answer!
Has joined the channel.
@EmcLab could you please open a Github issue for this? It will be easier for our engineers to have a look. Thanks!
I think you are seeing issues with the very secure randomization of the secp256k1 library. It drains the native entropy and takes time to re-fill. Here's how the ethereum hive tests fixed it: https://github.com/hyperledger/besu/issues/1464#issuecomment-710027687
ah ok and I see in your later message you're using a feature from a later version of typescript.
Has joined the channel.
Hey guys, can you let me know why is this happening in the gas-free-network (I have followed instructions for setting gas-free-network on the official besu docs) ?
The transaction I am executing is returning me this:
`java.lang.RuntimeException: org.web3j.protocol.exceptions.TransactionException: Transaction has failed with status: 0x0. Gas used: 27506. (not-enough gas?)`
I'm trying to deploy the permissioning contracts per https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/
I had one oddity in that it wanted my account to have a balance despite have a free-gas setup. Whatever. I gave it a balance.
What has me stopped is that the truffle migration never completes
--------------------------------------------------------------------------------
s$ yarn truffle migrate --reset
yarn run v1.22.10
$ /mnt/c/Users/markw/besu-perms-full/permissioning-smart-contracts/node_modules/.bin/truffle migrate --reset
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'development'
> Network id: 2018
> Block gas limit: 0x1fffffffffffff
0_initial_validation.js
=======================
> Initial validations ...
-------------------------------------
> Total cost: 0 ETH
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0xa46ce830d50521e3267e2b60595c07d816c6fcaeaa313c3311ccdbe70bd2ec7b
⠧ Blocks: 0 Seconds: 4560
-------------------------------------------------------------------------------------------------------------------------
I've searched Google and seen comments about starting mining but that doesn't seem right . . . .
I'm trying to deploy the permissioning contracts per https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/
I had one oddity in that it wanted my account to have a balance despite have a free-gas setup. Whatever. I gave it a balance.
What has me stopped is that the truffle migration never completes
--------------------------------------------------------------------------------
s$ yarn truffle migrate --reset
yarn run v1.22.10
$ /mnt/c/Users/markw/besu-perms-full/permissioning-smart-contracts/node_modules/.bin/truffle migrate --reset
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'development'
> Network id: 2018
> Block gas limit: 0x1fffffffffffff
0_initial_validation.js
=======================
> Initial validations ...
-------------------------------------
> Total cost: 0 ETH
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0xa46ce830d50521e3267e2b60595c07d816c6fcaeaa313c3311ccdbe70bd2ec7b
⠧ Blocks: 0 Seconds: 560
-------------------------------------------------------------------------------------------------------------------------
I've searched Google and seen comments about starting mining but that doesn't seem right . . . .
Repeated from a new entry on the main board (hope you don't mind . . . .)
I'm trying to deploy the permissioning contracts per https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/
I had one oddity in that it wanted my account to have a balance despite have a free-gas setup. Whatever. I gave it a balance.
What has me stopped is that the truffle migration never completes
--------------------------------------------------------------------------------
s$ yarn truffle migrate --reset
yarn run v1.22.10
$ /mnt/c/Users/markw/besu-perms-full/permissioning-smart-contracts/node_modules/.bin/truffle migrate --reset
Compiling your contracts...
===========================
Everything is up to date, there is nothing to compile.
Starting migrations...
======================
Network name: 'development'
Network id: 2018
Block gas limit: 0x1fffffffffffff
0_initial_validation.js
=======================
> Initial validations ...
-------------------------------------
> Total cost: 0 ETH
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0xa46ce830d50521e3267e2b60595c07d816c6fcaeaa313c3311ccdbe70bd2ec7b
⠧ Blocks: 0 Seconds: 4560
-------------------------------------------------------------------------------------------------------------------------
I've searched Google and seen comments about starting mining but that doesn't seem right . . . .
THANKS!
Hi @mwaser, you may need to remove the Migrations contract. Once you enable the permissioning, Truffle may be unable to complete the Migrations cycle trying to invoke `setCompleted` method. I think [here](https://github.com/trufflesuite/truffle/blob/master/packages/migrate/Migration.js#L97) you'll find the relevant part of the Truffle source code
Same thing happened with the Admin contract after I removed the Migrations contract.
Is my block gas limit possibly too high? I set it per the zero-price-gas instructions . . . .
I dropped my block gas limit. No effect . . . . :-(
Starting migrations...
======================
> Network name: 'development'
> Network id: 2018
> Block gas limit: 0xf7b760
0_initial_validation.js
=======================
> Initial validations ...
-------------------------------------
> Total cost: 0 ETH
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0xf77073fa6a7c64c71a292351fcd06663b854ecc56d6f8e202901a4562c5af19f
⠏ Blocks: 0 Seconds: 692
Removing the zero gas price also had no effect.
I'm at a loss here. I'm clearly connected to my node and the transaction hash indicates that it has been submitted. Are blocks not being produced because there is only one node? That would make sense except the instructions say that you're starting with one node. I'm at a total loss here. :-(
If you start the node with `BESU_LOGGING=TRACE`, you should see messages containing *Account permissioning - Smart Contract* that may tell you what's going on
btw, do you have `BESU_MINER_ENABLED=true` and a `BESU_MINER_COINBASE` defined?
Interesting . . . .
I let it run a while longer and it stopped with the error message
Deploying 'Migrations'
----------------------
> transaction hash: 0xf77073fa6a7c64c71a292351fcd06663b854ecc56d6f8e202901a4562c5af19f
Error: Error: Error: *** Deployment Failed ***
"Migrations" -- Transaction was not mined within750 seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!.
I have tried it both with the --miner-enabled and the --miner-coinbase options and without. And both with and without --min-gas-price=0.
I did just let it run a while longer and it stopped with the error message
"Migrations" -- Transaction was not mined within750 seconds, please make sure your transaction was properly sent. Be aware that it might still be mined!.
I have tried it both with the --miner-enabled and the --miner-coinbase options and without. And both with and without --min-gas-price=0.
Why isn't it being mined?
if you set the logging to `DEBUG` you should see the blocks being produced and the transaction count for each block
Has joined the channel.
I was looking to confirm the status of EIP-1898 implementation ? For version 20.10.4 it's mentioned in the changelog, but the the release notes.
I was looking to confirm the status of EIP-1898 implementation ? For version 20.10.4 it's mentioned in the changelog, but not in the release notes.
It's in 21.1.0-RC1, not 20.10.4
21.1.0 will have a production release and announcement at the end of February, there will be another RC in two weeks. - https://wiki.hyperledger.org/display/BESU/Future+Release+Dates
Generally speaking we don't publicly announce RC releases.
Generally speaking we don't publicly announce RC releases, they just show up on the github releases page on teh appropriate day.
If i wanted to sync an archive node from scratch, approx how much time would this take with besu and would it be best to start with 20.10.4 or 21.1.0-RC1 if my requirement is EIP-1898 support ?
Has joined the channel.
As @diegoll says, you should see blocks being produced even if you are only running one node. Can you see blocks being produced in your logs?
Has joined the channel.
Don't archive sync a mainnet node. It will take months and use 6+ Tib of storage (https://etherscan.io/chartsync/chainarchive). Testnets would be quicker, classic can be done full, and most private networks I expect could be full synced if the tx load is below mainnet.
Don't archive sync a mainnet node. It will take months and use 6+ TiB of storage (https://etherscan.io/chartsync/chainarchive). Testnets would be quicker, classic can be done full, and most private networks I expect could be full synced if the tx load is below mainnet.
My use case is explicitly ETH archive mainnet though. Just want to try an alternative to Open Ethereum, though also with tracing support and EIP-1898. I had a big difference in sync time between OE3.0 (3-4 weeks) and OE2.5 (almost 2 months), that's why i'm asking what the experience is with besu is and which release would be best to start from ?
Hi, I am building a permissioned network that has an onchain permissioning check. I cannot understand why a new node has the option to participate in the permissiong or not. In other words, I cannot understand the flag permissions-nodes-contract-enabled. In each condition this flag should be false in this context?
I mean, the network is already working and the nodes are using the onchain permissiong.
What happens when a new node wants to join this network with this flag (permissions-nodes-contract-enabled) off?
Actually, we are having some problems to include a new node and we received the suggestion to disable this flag on the new node. So, We are trying to understand how this works.
Say nodes A and B are already running with permissioning enabled, and node C starts up with permissioning disabled - node C can only connect to A/B if their permissioning rules permit node C, otherwise they will reject the connection.
Alternatively, node C starts with permissioning enabled - nodes A/B still need to add C to their rules, and node C will connect only to bootnodes until it is in sync (and can thus then get the latest state of the onchain permissioning rules).
More context for bootnodes and permissioning here https://besu.hyperledger.org/en/stable/Concepts/Permissioning/Onchain-Permissioning/#bootnodes
Hi @macfarla. I tried the link you mentioned but there is no much info.
In my case, I have nodes A and B are already running with permissioning enabled. I want to include a bootnode C. C is permissioned (using onchain permissioning).
For some reason, however, C cannot connect.
I was informed to start C with its flag false to solve the problem.
So, two questions.
Does this recommendation make sense? What is the logic behind it? In this case, putting this flag to false helps in any way?
thank you for your help
Our next quarterly release is scheduled for rough Feb 24th, that's what will be the most stable. If you want to try it ASAP, @Koen84, either 20.10.4 or 21.1.0-RC1 will have EIP-1898 support :+1:
APAC/AMER office hours in ~ 5 min - https://consensys.zoom.us/j/524697595
starting C with permissioning disabled won't really help in this case. I would 1. check that A and B list C as a bootnode and 2. check that they connect if you turn permissioning off on A and B. 3. you can check the logs to see which node is rejecting the connection (A/B or C?)
I will do that, thank you @marfarla
Hi, I am trying to create a set of metrics to monitor a permissioned Besu network. Among the metrics, I want to have an idea of how many transactions are arriving in each the writer node. I found the metric besu_transaction_pool_transactions_added_total. Is it the correct one to use? Will it give the total number in the mempool (all transactions that still not entered in the blockchain)?
Running with --logging=DEBUG it is endlessly trying to connect to peers with no blocks being produced.
Another oddity is that even after seeing "JSON-RPC service started and listening on 127.0.0.1:8545", trying to send a miner_start (using the besu Postman export) results in an ECONNREFUSED 127.0.0.1:8545
I'm guessing that the miner_start should be unnecessary but I'm trying everything . . . .
My command line is
bin/besu --genesis-file=testconfig/genesis.json --node-private-key-file=testconfig/key --min-gas-price=0 --miner-enabled --miner-coinbase=0xC3D693fBE006154eF80C288DB527FaC4bd38ca09 --rpc-http-enabled --rpc-http-api=ETH,MINER --logging=DEBUG --data-path=chester
My genesis.json is
{
"config": {
"chainId": 2018,
"constantinoplefixblock": 0,
"contractSizeLimit": 2147483647,
"ibft2": {
"blockperiodseconds": 2,
"epochlength": 30000,
"requesttimeoutseconds": 10
}
},
"nonce": "0x0",
"timestamp": "0x58ee40ba",
"gasLimit": "0x1fffffffffffff",
"difficulty": "0x1",
"mixHash": "0x63746963616c2062797a616e74696e65206661756c7420746f6c6572616e6365",
"extraData": "0xf8bda00000000000000000000000000000000000000000000000000000000000000000f89394c3d693fbe006154ef80c288db527fac4bd38ca0994cff313da019649782ab9b108c49f216de56209ee94d008f61c85252dda2217afe18e61dd96a5254f5294ba857693079c13981b1da9b46e4b4ec448e2d35e94786796f0906b38a72b8fdebe1ecc77263e6bde919475a10bd9b490d51f3a47ba4bb1cfdc136a8f9c3394bd293eb161ce4f5c809bc91d4f9751f59be118e8808400000000c0",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": {
"786796f0906b38a72b8fdebe1ecc77263e6bde91": { "balance": "0xad78ebc5ac6200000" },
"c3d693fbe006154ef80c288db527fac4bd38ca09": { "balance": "0x1b1ae4d6e2ef500000" },
"bd293eb161ce4f5c809bc91d4f9751f59be118e8": { "balance": "90000000000000000000000" },
"0x0000000000000000000000000000000000008888": {
"comment": "Account Ingress smart contract",
"balance": "0",
"code":
I'm trying to start with a single node in order to use on-chain permissioning but I can't get it to mine. Dropping back to just trying to get it to mine with --logging=DEBUG is just endlessly trying to connect to peers with no blocks being produced.
Another oddity is that even after seeing "JSON-RPC service started and listening on 127.0.0.1:8545", trying to send a miner_start (using the besu Postman export) results in an ECONNREFUSED 127.0.0.1:8545
I'm guessing that the miner_start should be unnecessary but I'm trying everything . . . .
My command line is
bin/besu --genesis-file=testconfig/genesis.json --node-private-key-file=testconfig/key --min-gas-price=0 --miner-enabled --miner-coinbase=0xC3D693fBE006154eF80C288DB527FaC4bd38ca09 --rpc-http-enabled --rpc-http-api=ETH,MINER --logging=DEBUG --data-path=chester
Note: I've also stuck this back in the main conversation . . . .
just to discard an issue in your `genesis.json`, have tried replacing the `--genesis-file=testconfig/genesis.json` with `--network=dev`
just to discard an issue in your `genesis.json`, have you tried replacing the `--genesis-file=testconfig/genesis.json` with `--network=dev`?
Fantastic catch. That solved it.
I guess I'll go grab dev.json and start swapping lines one by one . . . . (I'll let you know what blocked mining).
THANK YOU!
SOLVED By @diegoll by using --network=dev instead of my genesis file.
Time to go grab dev.json and start swapping lines one by one
awesome! I'm glad it helped :)
So, I see the problem now . . . .
I need ethash rather than ibft2
but . . . . can I change that later?
I started trying permissioning with a set of four nodes modified from the quick-start but reverted to a single-node to debug. DO I need to go back to that? :-(
no, that's part of the genesis so you cannot change the consensus algorithm later AFAIK. If you go back into your four nodes setup you'll need to setup the initial set of validators to match the addresses for each of the participants
there is a tool for generating a genesis with 4 validators properly setup plus their private keys https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/#3-generate-node-keys-and-a-genesis-file
So . . . . with the four-node setup, they were all in a permssions_config.toml and that worked just fine (which is the exact equivalent to your link).
Then, I tried switching to on-chain permissioning . . . .
I'm going to have to go back to be sure -- but I believe that the second I added the
--permissions-nodes-contract-enabled --permissions-nodes-contract-address "0x0000000000000000000000000000000000009999"
it all stopped working
ok, so you are looking for an IBFT2 network with on-chain permissioning. I would go step by step.
- Generate the genesis with the tool
- Modify the genesis and add the proper Ingress contract as stated here https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/#add-the-ingress-contracts-to-the-genesis-file
- Start the four nodes without permissioning enabled and check that they are generating blocks well
- stop the nodes and start them with the flags and check if they are still generating blocks (they should b/c the ingress by default doesn't restrict any connection)
I've always had the contracts in the genesis because the quick-start has them
ok, great
so if you start the four nodes you can see them producing blocks but when you enable the on-chain permissioning on the four nodes then you don't see the blockchain moving?
correct.
The bootnode shows 7 peers (I made the quick-starts members peers as well) but each of the other nodes shows only one peer. When it is working, they all show 7 peers.
NOTE: I just restarted the working network with only the two argument different -- so that is what has me tripped up.
ok... this is interesting... looking at the source code for the NodeIngress it works different as the AccountIngress that I was used to use. The AccountIngress allows any transaction to go through when there is no configuration by default, but it seems that the NodeIngress rejects everyconnection by default https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeIngress.sol#L29
so I would say that before enabling the permissioning, you should deploy your own https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeRulesProxy.sol and set it in the 0x00....9999 contract
as a first attempt I would try just returning true for every connection attempt
as a first try I would try just returning true for every connection attempt
as a first step I would try just returning true for every connection attempt
once you deploy your own `NodesRulesProxy` you'll only need to invoke `setContractAddress` into the `0x00...9999` contract pointing to your own contract
once you deploy your own `NodesRulesProxy` you'll only need to invoke `setContractAddress` into the `0x00...9999` contract pointing to your own contract address
I was just looking at accounts ingress. It looks like it disallows everything by default as well -- except it is my understanding that the first (admin) account is set up by the migrate . . . .
if there is no proxy contract setup, the accounts ingress allows every transaction AFAICS https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/AccountIngress.sol#L23
Wouldn't it just be easier to change the nodes contract to be like the accounts contract?
I.e. change the false in the following to true
if(getContractAddress(RULES_CONTRACT) == address(0)) {
return false;
}
Or would that block setting up new rules?
(I missed the false/true switch before when I was comparing the two)
well, yes... but then you'll need to properly setup the assembly code in the genesis on your own b/c it'll differ from the one provided by the tool. In this case, being just changing a boolean I think it's safe enough
on other cases, setting up the storage for the contract may not be so straightforward
Mmm. Good point. I forgot that the Genesis was *_special_*
haha you can give it a try, but maybe you'll be changing many pieces at the same time
gotta go, I'll check later how it went
THANK YOU!
Yea, there's no good metric at the moment. besu_transaction_pool_transactions_added_total and besu_transaction_pool_transactions_removed_total will always go up, added - removed is a rough estimate of the size, but because of besu_transaction_pool_transactions_duplicates_total that will never to to zero. In theory subtracting duplicates removed should get that.
Really we need to add a new metric that is a gauge metric.
So . . . . I'm trying to work my way through exactly how to do this.
QUESTION 1. Am I correct in assuming that, contrary to the instructions, I do not have to add the two command line arguments until after I migrate/deploy the contracts? If I'm wrong, aren't I dead in the water?
QUESTION 2. I don't see where the admin tool requires the command line arguments to be in place before it will function. Am I missing something or could it be as easy as migrating the contracts, running the admin tool and then restarting after adding the command line args?
If the admin tool does require the command line arguments, it seems as if I have two options.
Both involve altering enodePermitted in NodeRules.sol
1. Just include my initial nodes as always returning true before the exists call for everything else. I can even leave the code in place forever.
2. Always return true, wait until the network is all connected and then migrate again with the normal contract file (I assume that the nodes won't check again until they have to reconnect for some reason).
What do you think? I'd love it if the answer to question 2 was DOH! It is that easy.
I'm way past quitting time so I'll try it tomorrow if you think it'll work.
Thank you @shemnon. By the way, when I was looking for references on the web, I found a site that should be from you: https://gist.github.com/shemnon.
[ ](https://chat.hyperledger.org/channel/besu?msg=yKM6fK4zLHjeCbfZR) Do you have recommendation for amount of CPU cores and RAM (to run a mainnet archive node) ?
Do you mean [these](https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/) instructions? I think those instructions aren't necessarily for the use case when you start a PoA network with 4 validators. I think what they propose there is to start with a single node, setup everything to be controlled from it and then make it grow (allow specific peers, vote for new validators, etc). In the case of starting with 4 validators I would say you'll need to go with what we discussed earlier
1. set the ingress at `0x...9999` in your genesis
1. deploy your own `NodeRulesProxy` (as said, just make one that always return true)
1. set it it in the _ingress_
1. stop the whole network (without loosing the state for each node)
1. restart all of the participants with the options mentioned in the instructions.
About your second question, I'm sorry but I'm not familiar with the admin tool at all, but I would imagine it's meant to be used with the [NodesRules.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeRules.sol) that Consensys provide. If you want to use this contract, that would be the second bullet of the previous list then, and you'll need to add another step after that to setup this contract instance (either manually hitting the smart contract or through the admin tool)
Do you mean [these](https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/) instructions? I think those instructions aren't necessarily for the use case when you start a PoA network with 4 validators. I think what they propose there is to start with a single node, setup everything to be controlled from it and then make it grow (allow specific peers, vote for new validators, etc). In the case of starting with 4 validators I would say you'll need to go with what we discussed earlier
1. set the ingress at `0x...9999` in your genesis
2. deploy your own `NodeRulesProxy` (as said, just make one that always return true)
3. set it it in the _ingress_
4. stop the whole network (without loosing the state for each node)
5. restart all of the participants with the options mentioned in the instructions.
About your second question, I'm sorry but I'm not familiar with the admin tool at all, but I would imagine it's meant to be used with the [NodesRules.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeRules.sol) that Consensys provide. If you want to use this contract, that would be the second bullet of the previous list then, and you'll need to add another step after that to setup this contract instance (either manually hitting the smart contract or through the admin tool)
Yes, those are my public gists.
Here is a PR that will add this metric in 21.1.1 (released in the second week of march) - https://github.com/hyperledger/besu/pull/1869
I am facing some wierd issue while trying to get the extraData from for genesis.json file
Clipboard - February 3, 2021 3:33 PM
Has joined the channel.
Hi... I'm new to Besu and have recently started exploring it and have basic queries.
1. After deploying a permissioned network using OnChain settings can it be reverted back to being permissionless?
2. Also can an ongoing public network be introduced with onchain permissions?
thanks in advance for any help.
@shemnon Could you please check @mayankmk14 's questions? I do not have insights into Besu. Mayank is from India and he reached out to me asking these questions.
@arsulegai thanks
Hi there hope you guys are doing great. I have been working with besu and have some questions
https://github.com/ConsenSys/permissioning-smart-contracts#deploying-the-dapp Do I need this to work with permissioned besu? Can I just use my smart contracts as is?
Right now what I have been able to do is connect to metamask and run txs on the besu network. I have been able to run truffle migrate to do some migrations to the network.
Now what I cannot do
Use remix to read from the block chain
Use ethers.js to connect to smart contracts -> gives me error :
UnhandledPromiseRejectionWarning: Error: contract not deployed (contractAddress="0xF9e0929a9D7D5AA6991C441B1FE23901d1193c4a", operation="getDeployed", version=4.0.47)
[0] at Object.throwError (...node_modules\ethers\errors.js:76:17)
Any tips on how to use my private key to whitelist me when querying this blockchain?
I have also had problems with the eth lite explorer from the documentation. Issue here
https://github.com/Alethio/ethereum-lite-explorer/issues/84
Any help would be greatly appreciated
Hi there hope you guys are doing great. I have been working with besu and have some questions
https://github.com/ConsenSys/permissioning-smart-contracts#deploying-the-dapp Do I need this to work with permissioned besu? Can I just use my smart contracts as is?
Right now what I have been able to do is connect to metamask and run txs on the besu network. I have been able to run truffle migrate to do some migrations to the network.
Now what I cannot do
Use remix to read from the block chain (with the code compiling in remix, I can send txs to methods fine)
Use ethers.js to connect to smart contracts -> gives me error :
UnhandledPromiseRejectionWarning: Error: contract not deployed (contractAddress="0xF9e0929a9D7D5AA6991C441B1FE23901d1193c4a", operation="getDeployed", version=4.0.47)
[0] at Object.throwError (...node_modules\ethers\errors.js:76:17)
Any tips on how to use my private key to whitelist me when querying this blockchain?
I have also had problems with the eth lite explorer from the documentation. Issue here
https://github.com/Alethio/ethereum-lite-explorer/issues/84
Any help would be greatly appreciated
Hi there hope you guys are doing great. I have been working with besu and have some questions
https://github.com/ConsenSys/permissioning-smart-contracts#deploying-the-dapp Do I need this to work with permissioned besu? Can I just use my smart contracts as is?
:besu: Right now what I have been able to do is connect to metamask and run txs on the besu network. I have been able to run truffle migrate to do some migrations to the network.
Now what I cannot do
:pensive: Use remix to read from the block chain (with the code compiling in remix, I can send txs to methods fine)
:disappointed: Use ethers.js to connect to smart contracts -> gives me error :
UnhandledPromiseRejectionWarning: Error: contract not deployed (contractAddress="0xF9e0929a9D7D5AA6991C441B1FE23901d1193c4a", operation="getDeployed", version=4.0.47)
[0] at Object.throwError (...node_modules\ethers\errors.js:76:17)
:disappointed: I have also had problems with the eth lite explorer from the documentation. Issue here
https://github.com/Alethio/ethereum-lite-explorer/issues/84
Any tips on how to use my private key to whitelist me when querying this blockchain?
Any help would be greatly appreciated
Cool! Thank you very much
Will there be any future additions for the whisper protocol? EY's nightfall project requires it. https://github.com/EYBlockchain/nightfall#using-other-networks
Hello everyone, please guys could you help me understand how private transaction logs are stored and how they relate to the public ones. I am confused why I have the option to enter a fromBlock parameter for a private log. Thanks in advance.
Hello everyone, please guys could you help me understand how private transaction logs are stored and how they relate to the public ones?. I am confused why I have the option to enter a fromBlock parameter for a private log. Thanks in advance.
Hi. I am starting with the account permissioning and I was surprised to note that the default implementation of permissioning smart contracts use the same set of admins to node permissioning and account permissioning. That is not the reality in our network. We want to segregate these roles. Are there a ready implementation of permissioning smart contract that segregate the admins of these two different functions?
Hello, I think if you deploy two instances of the [Admin.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/Admin.sol) contract and set them into the corresponding ingress (accounts or nodes), you should have two different set of administrators. Would that be enough for your use case?
It would definitely help. I need to check if it would be just a matter of two deploys or if there is any other impact.
The permissioning dapp will also be impacted.
I am wondering if it is a frequent issue and if there is a ready solution to that.
Also, I believe it is very common to have the admin role of the permissioning dapps linked to a multisig contract. Do you have this ready? What multisig contract do you recommend?
the short answer to both is yes :)
to achieve 1. you just need to restart nodes with the permissions-enabled option/s set to false
to achieve 2 (assuming you want to continue with an existing genesis and chain) is slightly more complicated if you don't have the onchain contracts already deployed - you will need to deploy them and set the permissions-enabled option/s as well as the contract-address values, and ensure that all the nodes/accounts you want to participate are added to the allowlists. Permissioning with a public network can be a bit counter-intuitive though so whether it will work well depends on what your use case is
We don't have a ready solution to this. You are right that the dapp currently doesn't support this. You could do the 2 deploys as @diegoll suggests and interact with the second one using remix
There is also the environment variable INITIAL_ADMIN_ACCOUNTS which is used by the migration scripts to set initial values in the contract - you could duplicate this - but this will only help with initial values - if you need to add/remove admins, this will mean interacting with the contract
Updating the dapp isn't on our immediate roadmap at this stage, unfortunately - but feel free to create an issue on the repo and we can see if there is appetite for it
you don't _need_ the dapp - you can interact with the smart contracts using your preferred method
Besu permissioning doesn't rely on private keys - if MetaMask can connect to your node, the alethio explorer should be able to as well.
the fromBlock parameter is used to define the range of blocks to search for private logs, just the same as for public logs
Please @macfarla could you let me know where are the private logs stored and how they are related to the blocks in the public chain? thanks
private logs are stored in the private state, they are events emitted by private contracts
It's not on our immediate roadmap
Hey all,
Currently writing some tests which would benefit hugely from an easy-to-use test parameterization framework (a la JUnit-5) ... is there any appetite to move from JUnit4 --> JUnit5?
permission denied - the process is trying to create a file in /var/log but the directory does not exist or the user doesn't have permission to create a file in that dir. check directory permissions OR change your log4j config - that's what's trying to write to /var/log
#besu-contributors may be a better place to ask, this room seems to be focused on community support and I think Antoine and Ed pay more attention there.
@macfarla thanks for your help :relaxed: .
I have some more queries which would require your expertise. As far as my understanding Besu is just an Ethereum client with node permissioning enabled.
1. Is a running Besu ledger also compatable with Geth client or something similar?
2. Is Account Permissioning applicable to type of txn also:-
a. Contract deployment b. transfer/contract interaction txn ?
3. Can geth client be used in conjuction with Besu?
4. As for permissioning - 'permissions-enabled option/s set to false' is for disabling Onchain permissioning or Ofchain?
5. I'm running Besu in a permissioned enviornment - nd later want to make it a public chain to expand the customer base, does it require to:
a. self-destruct the permissioning contract if that functionality is available?
b. Emptying the Allowed List of Nodes or Accounts?
c. Any third way which you might suggest?
I know its a very long and complex scenario question, your time and help will be really valuable in understanding the nuances of Besu Protocol.
Thanks again :slight_smile:
Hi All. I'm still dealing with the permissioning dapp and smart contracts. I've modified the smart contract logic in order to allow any user to send a transaction, but only accounts with admin role (added to the allowlist) to deploy a smart contract. I also want to to add a blacklist to list accounts that could not use the blockchain. Now i'm trying to understand if i can update the smart contract on the same blockchain or i have to start a new one with a new genesis block (since the permissioning smart contract bytecode is included in the genesis file).
Thanks! Emiliano
Hi Emiliano. You should be able to update the permissioning proxy calling the `setContractAddress` method of the ingress that you defined in the genesis
Hi Emiliano. It would depende if you used the default provided ingress contract or a custom one. In the default you should be able to update the permissioning proxy calling the `setContractAddress` method of the ingress that you defined in the genesis
Hi Emiliano. It would depend if you used the default provided ingress contract or a custom one. In the default you should be able to update the permissioning proxy calling the `setContractAddress` method of the ingress that you defined in the genesis
depending on which permissioning are you dealing with you gonna need to implement a [AccountRulesProxy.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeRulesProxy.sol) or [AccountRulesProxy.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/AccountRulesProxy.sol)
depending on which permissioning are you dealing with you gonna need to implement [AccountRulesProxy.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeRulesProxy.sol) or [AccountRulesProxy.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/AccountRulesProxy.sol)
depending on which permissioning are you dealing with you gonna need to implement [NodeRulesProxy.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeRulesProxy.sol) or [AccountRulesProxy.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/AccountRulesProxy.sol)
if you are using a custom one and you don't want to restart the blockchain by changing the genesis, I think you could deploy new contracts respecting the mentioned interfaces, and restart all of your nodes by pointing into those address directly in the [--permissions-accounts-contract-address](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-accounts-contract-address) and [--permissions-nodes-contract-address](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-nodes-contract-address) options
if you are using a custom one and you don't want to restart the blockchain by changing the genesis, I think you could deploy new contracts respecting the mentioned interfaces, and restart all your nodes by pointing into those address directly in the [--permissions-accounts-contract-address](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-accounts-contract-address) and [--permissions-nodes-contract-address](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#permissions-nodes-contract-address) options
@shemnon
@shemnon
Let me look for the code snippet, but only the most "recent" registered fork applies. No matter from what they extend their definition.
org.hyperledger.besu.ethereum.mainnet.ProtocolScheduleBuilder#createProtocolSchedule registers a set of protocol specs in order. If a block has multiple at the same number the last one registered is used.
Each spec is 100% independent from prior specs. However you will notice that the pattern is when we define a spec we reference the prior spec. This is how we get the definition of "Muir Glacier is Istanbul plus Difficulty Defuse".
If we added a definition that skipped muir glacier but exetended from petersburg things would work just fine. We also don't need to list all fork blocks in a genesis.config.
So while we say skipping a fork block (like setting istanbulBlock to zero) implies that all the other forks that is only because the definition for istanbul includes all those changes.
This is how we support classic forks. Many classic fork blocks skip features mainnet has (like block reward changes) and there are classic changes not in mainnet (difficulty defuse and block reward schedule policy for example).
so you don't need to remove other hard forks from the code.
ok, resuming i not want muirGlacier :sweat_smile: , i have a forkA(extended from istanbulDefinition that starts in blockNumber 0 in custom genesis) and forkB(extends forkA for a blockNumber 1000), in the code i need to extend muirGlacier from (forkA) instead of actual (istambulDefinition) OR just add my forksA and B put my definitions in the code and set in genesis only this two forks configs stay the all like it is ?
@shemnon ok, resuming i not want muirGlacier :sweat_smile: , i have a forkA(extended from istanbulDefinition that starts in blockNumber 0 in custom genesis) and forkB(extends forkA for a blockNumber 1000), in the code i need to extend muirGlacier from (forkA) instead of actual (istambulDefinition) OR just add my forksA and B put my definitions in the code and set in genesis only this two forks configs stay the all like it is ?
using only this two forks in genesis config it will skip muir glacier
Just use forkA and forkB in the genesis config. Have ForkB extend ForkA.
Unless you have a PoW network MuirGlacier won't have an impact.
hm ok, my network is IBFT
was asking me the same :smile: cool thank you about this explanation @shemnon
Has joined the channel.
@shemnon, do we have a metric to check if the besu nodes have their permissioning flag enable? I mean, if any node in the network forgot to enable this flag, we can have problems, so it would be nice to monitor this. What do you think?
Hello everyone, I've been testing eth_getLogs and priv_getLogs, I am surprised that even when I have --auto-log-bloom-caching-enabled some tests takes too long to resolve(It is with the besu version 20.10.2). The same happens when searching private logs (in this case I noticed that searching a range greater than 100K blocks can throw a timeout error, I assume it is because the search is slow).
Hello everyone, I've been testing eth_getLogs and priv_getLogs, I am surprised that even when I have --auto-log-bloom-caching-enabled some tests takes too long to resolve(It is with the besu version 20.10.2). The same happens when searching private logs (in this case I noticed that searching a range greater than 100K blocks can throw a timeout error, I assume it is because the search is too slow).
I would defer to Sally and Lucas on this. My question would be would the flag change value over the life of a chain or will it always have the same value?
SIGH. FINAL rat-simple resolution (isn't it always that way? :stuck_out_tongue_winking_eye: )
Deploy quickstart somewhere in the cloud with local node info added to permissions_config.toml
Do NOT run with the
--permissions-nodes-contract-enabled
--permissions-nodes-contract-address
options
The four (or in my modified case seven) quickstart nodes mine nicely.
Connect the local node to the blockchain.
Deploy the contracts to the local node.
Run the admin tool.
NOW you can stop and restart all the nodes with the
--permissions-nodes-contract-enabled
--permissions-nodes-contract-address
options
It was my attempts to run with the command line arguments at the beginning that kept the quickstart from working and mining and I never should have expected a single BFT node to mine . . . Ah well. It's all good now.
individual nodes can turn their permissioning on and off, so it can change over time.
I don't know what your use case is - but even if you know that all the nodes have permissioning enabled, they could be pointing to different contracts so I think you're going to have to have some level of trust and/or control outside of this
1. yes Besu can talk to Geth and other nodes - we run Besu nodes on mainnet, goerli and other test nets
2. you would need to extend the existing smart contract implementation to add more granular permissions. If you search this channel you will find other users doing exactly this
3. see 1
4. Whichever permissioning method you are using - all are false by default so whichever ones you have set to true
5. if you turn permissioning off on that node (see 4) and restart, it will ignore the smart contract - you don't have to destroy the contract.
I should add - it can change over time _in theory_ but in practice it probably won't
but I guess that also depends on your use case
So we do have a whole set of metrics that count permits and denys for each permissioning scheme. If there are any metrics that have `besu_permissioning_` as a prefix then permissioning is enabled. But our devops guru said that metrics are not meant for echoing configurations.
Has joined the channel.
Has joined the channel.
In version 20.10.4 I deployed the smart contracts taken on git https://github.com/ConsenSys/permissioning-smart-contracts,
with no problem. Now I have enabled authenticated RPC and would like to know if it is possible to do the same thing? Thank you
Thanks @diegoll!
Thank you for your reply. The original idea was to check if a node is misbehaving by lefting its flag disable in a permissioned newtork. By not checking permissiong, a node would allow other nodes to connect and send transactions and it can be an issue. This rule could be included in an offchain legal agreement among the nodes.
Since the flag is not enough, the metric would need to check that every node is using the same smart contract to check permissions. If any deviation is detected, the misbehaving node should be pushined.
It does not seems that the current metrics will allow me to do that @shemnon
Is there any situations in each a Besu node sign a transaction (and not a block)? I know a node does not sign for eth transactions, but it also does not sign to admin or ibft or any other transaction?
Is there any situation in each a Besu node signs a transaction (and not a block)? I know a node does not sign for eth transactions, but it also does not sign to admin or ibft or any other transaction?
Hi Suzana, the node itself signs RLPx messages as part of the wire protocol and also, in an IBFT network, it adds their signature to the proposed block in each round (and eventually, as you said, they can cast a vote for add/remove a member)
@macfarla thanks :thumbsup:
We have a network with two institutions (each one with a writer, 2 validators and 1 boot). We were trying to include a third institution in the network (with a write, 2 validators and 1 boot). After permission the new nodes with onchain permissioning, we have the could successfully synchronize the writer and the validator nodes. However, the boot node did not synchronize nor could connect to any peer (we existing nodes have included the new boot node as an existing boot node in the config.toml). We could finally synchronize the boot when we disable the permissioning flag of this new boot node (obs.: we did not disable the flag of any other node, only from this new boot node), we could synchronize and connect. After that, we put the flag true again. My question is: why it is different only to the boot node?
We have a network with two institutions (each one with a writer, 2 validators and 1 boot). We were trying to include a third institution in the network (with a write, 2 validators and 1 boot). After permission the new nodes with onchain permissioning, we have the could successfully synchronize the writer and the validator nodes. However, the boot node did not synchronize nor could connect to any peer (we existing nodes have included the new boot node as an existing boot node in the config.toml). We could finally synchronize the boot when we disabled the permissioning flag of this new boot node (obs.: we did not disabled the flag of any other node, only from this new boot node), and later the boot node connected. After that, we put the flag true again. My question is: why it is different only to the boot node?
Thank you, Diego!
Has joined the channel.
Hello, we've been testing performance under a continuous 200 tps load on hyperledger besu using IBFT 2
Hello, we've been testing performance under a continuous 200 tps load on hyperledger besu using IBFT 2.0, however we noticed that some transactions that had an invalid nonce were kept in the transaction pool and taking place there and slowing down the generation of blocks by the validator nodes. With a transaction pool of 4096 transactions it was full with these invalid nonce transactions, is this a bug or is there some configuration to ignore invalid nonce transactions from filling the pool.
Can you qualify what you mean by invalid nonce? Was it a nonce that was set to zero for example, or was less than the current account nonce?
There were transactions both that had zero nonce (sent wrong) and some that had non zero nonce but less than the current account nonce.
There is nothing special about bootnodes, it is only that during discovery, nodes treat addresses in their _bootnodes_ list differently. But a bootnode doesn't know it's a bootnode for other nodes, if that makes sense. So - it shouldn't be different. I would ask 1. did the "bootnode" have other nodes for its bootnodes? Because with onchain permissioning, a new node has to sync with the chain in order to get the latest state of the permissioning contracts ie the allowlist. So if the new node has no bootnodes (or has discovery disabled) it can't connect to any nodes because its allowlist is effectively empty.
You can confirm this by looking at the logs to see which node is rejecting the connection.
This behavior seems to be easily reproducible I started fresh besu nodes and sent again this load including some invalid nonce transactions and these transactions remained in the pool. Enabling debug logs shows the node reading them on the generation of every block and logging that the transactions have invalid nonce. So they are being processed on every block and remaining in the pool.
Agree metrics is not the answer for this kind of control
HI, i'm updating my besu from 1.4 to tag version 20.10.4, and when a launch my IBFT network 3 nodes with oldversion and try to join 4 node with new client and this client without database start to sync, sometimes when importing blocks says "Decrypting an incoming handshake message failed give me an Invalid Mac" https://gist.github.com/helderjnpinto/3c7fd4a00b54ca51b3fcc3da029e6c16
but the node with the latest version continues to importing
but this new node with the latest version (20.10.4) continues to importing
what this means ?
Thank you, @macfarla. Actually, you gave me some instructions in the past saying that it does not make sense. People from other Besu network said that they have seen this behaviour other times in the past. Bootnodes sometimes have problems to syncronize with the flag enable.
Regarding your question. Yes, the "bootnode with problems to connect" has in its config.toml file other bootnodes. And other bootnodes have also include this new bootnode in theirs config.toml.
Thank you, @macfarla. Actually, you gave me some instructions in the past saying that it does not make sense. People from other Besu network said that they have seen this behaviour other times in the past. Bootnodes sometimes have problems to syncronize with the flag enable.
Regarding your question. Yes, the "bootnode with problems to connect" has in its config.toml file other bootnodes. And other bootnodes have also include this new bootnode in their config.toml.
Do you recommend any way to solve this issue?
Is there any documentation about how close the clock of different nodes need to be? We generate blocks every 2sec and we are facing some issues with clock from nodes that are "on premise". How close the clocks need to be?
that sounds like a valid problem, thanks for providing context. Would you like to file an issue?
Clique or IBFT2?
IBT2
IBFT2
Hi @SuzanaMaranhao at the moment IBFT2 expects blocks to not have a timestamp more than 1 second later than current system time.
But, to be honest, its probably a restriction we should/could rethink - its a useful check for PoW, but IBFT2 much less so ...
Sure, since we need to find a solution to this problem as we can't have such a case appearing in production. What should we do?
It is possible. The dapp would need to send the JWT token in all requests. And the logged in user would need to have permission to the JSON-RPC APIs that the dapp uses. It would depend on your use case as to whether this is worth doing.
FYI the option for generating the logs blooms only applies for public logs. We don't support bloom filters for private logs atm.
FYI the option for generating the logs bloom caching only applies for public logs. We don't support bloom filters for private logs atm.
It is hard to suggest a solution without more context.
If you have control over all nodes in the network, you could prevent misconfigurations by using an automated deployment process.
If you don't have control over the nodes in the network, you can't really prevent another node from misbehaving. As long as the majority of nodes in the network are playing fair, you should be fine and any transactions that aren't allowed won't make it into the canonical chain.
And it isn't possible to prevent a node from relaying messages to an unauthorised node if they don't want to.
open an issue here: https://github.com/hyperledger/besu/issues the issue has a template to guide you along
Hello @lucassaldanha, yes I read that in the documentation. So the slow responses for private logs makes sense. On the other hand I am curious why public logs have slow responses (when it is supposed that logs bloom caching is enabled). In the past (1 year ago) I tested searching public logs with besu 1.4.1 (with this version the search was performed very fast) but with the version 20.10.2 I notice very slow responses.
Hey @helderjnpinto, I believe the short-answer - it means a peer has sent an invalid peering request - and thus you won't peer with said node.
From memory, its to do with a peer sending an encrypted handshake msg, which contains its node-key - if the encrypting key and the node-key contained therein do not align, you get this error.
Hey @helderjnpinto, I believe the short-answer - it means a peer has sent an invalid peering request - and thus you won't peer with said node.
From memory, its to do with a peer sending an encrypted handshake msg, which contains its node's address - if the encrypting key and the node-key contained therein do not align, you get this error.e
Hey @helderjnpinto, I believe the short-answer - it means a peer has sent an invalid peering request - and thus you won't peer with said node.
This check has been in every version of besu in memory - and its more about the interop between besu and the remote node - and potentially caused by a configuration failure on the other end.
Hi,
As most people aren't aware of the #jobs channel, so I'm posting this here.
We have an urgent opening for people with relevant experience in Hyperledger Fabric/ Hyperledger Besu/ Ethereum.
Kindly dm or reach out at reenu.choudhary@prolitus.com.
https://chat.hyperledger.org/channel/jobs?msg=oLtXMkkXEP5xkZkJ4
Thank you, will do!
@trent.mohay Hi thank you for the answer, if the node continues to importing blocks and giving sometimes this error, is a bad continue like this right Or if is just a P2P communication its not a problem ?
That is good to know the rule and the possibility of changing in the future. Thank you @trent.mohay.
Thank you @lucassaldanha. I agree with you about having an automated deploy process. We have it and it helps a lot.
However, we definitely do not have control of what other nodes can do. Thank you for explaining that we cannot prevent a node from misbehave.
About this part: " As long as the majority of nodes in the network are playing fair, you should be fine and any transactions that aren't allowed won't make it into the canonical chain".
IMHO -> I think it is important to implement security barriers in many layers. Since a misbehaving node can open to the door to many other nodes, unfortunately this permissioning layer, although keeping the data onchain, is still fragile.
Thank you for explaining, @macfarla and @diegoll
Is there any metric that deals with specific transactions in the standard way of doing Besu monitoring? For example, I would love to create an alert if a transaction (any transaction) is still not included in a block after x seconds. I bet the answer is no, but still trying :-)
You do need mining enabled if you want transactions to be processed. And truffle migrations send transaction to the node. So you do need to have at least one mining node in your setup.
Has joined the channel.
@grace.hartley :wave:
No, that's not what metrics are for. The best practice would be for a node to observe the resulting blocks and if it does not see it's transaction committed within a certain window of time to re-submit the transaction.
No, that's not what metrics are for. The best practice would be for a client program (not the node itself) to observe the resulting blocks and if it does not see it's transaction committed within a certain window of time to re-submit the transaction.
welcome @mdwright88
Agree. Thank you @shemnon
Has joined the channel.
Has joined the channel.
Hello, I am new to besu, and I have a simple question.
`besu can interact with ethereum mainnet?`
It is real ethereum mainnet or just besu network?
@shemnon could you give me answer?
Hi @tenghu 1 it can interact with real Ethereum mainnet, that is correct.
Clipboard - February 11, 2021 11:33 PM
I am trying to setup onchain permissioning but getting this error
Has joined the channel.
Hello, I would like to know more about Besu
I would like to send transaction to nodes, like this one (it's random node) https://www.ethernodes.org/node/007393595c6622e58b3383f4876691d455dab198a59488524ff9de56e773800b0398eb7de04fc75cafd89ea078ff830dfd87e2f3c62d1841e95af7b168468ce5
Can I tell to Besu to connect to a list of nodes I provide ?
So the usage I looking for is to use Besu like a proxy node
Or can I connect to node and send transaction by using Java depency to your code? (org.hyperledger.besu.internal or
Or can I connect to node and send transaction by using Java depency to your code? (org.hyperledger.besu.internal or .plugin-api)
Or can I connect to node and send transaction by using your Java depency ? (org.hyperledger.besu.internal or .plugin-api)
Hi @mmaryo 1, we have some documentation regarding sending transactions, see https://besu.hyperledger.org/en/latest/HowTo/Send-Transactions/Transactions/.
Besu does not sign transactions, so you’ll need to use a client library, or use EthSigner to create and sign a transaction.
EthSigner documentation: https://docs.ethsigner.consensys.net/en/stable/Reference/API-Methods/#eth_sendtransaction
ping
The fix is to add --permissions-nodes-contract-version=2 to your besu command line
This is because in v 2.0.0 of permissioning smart contracts repo we changed the interface as per the changelog https://github.com/ConsenSys/permissioning-smart-contracts/releases/tag/v2.0.0
It is in the besu docs here https://besu.hyperledger.org/en/stable/HowTo/Limit-Access/Specify-Perm-Version/ but I will also raise a ticket to update the onchain permissioning tutorial in the besu docs
pong
Has joined the channel.
Sounds like you should just make your own network and sync some aggregate of that to ethereum via a transaction?
@bgravenorst thank you for transactions
@spacecadet yes I would like to choose nodes which besu will connect
Is it possible
Is it possible?
It is :-)
Top! I see "specify bootnodes" in document
Because I don't know well Etherum protocol, do you think Besu can connect to any node if I give to him address like this? https://www.ethernodes.org/node/007393595c6622e58b3383f4876691d455dab198a59488524ff9de56e773800b0398eb7de04fc75cafd89ea078ff830dfd87e2f3c62d1841e95af7b168468ce5
Ok for the dapp we have to rewrite the code to use the jwt, but we also have the problem of authorizing the deployment of the smart contract made through Truffle. How do we insert the JWT Token in the deployment with Truffle? Thank you
If you want I can help you out over some VOIP application?
Or I can try at least
It's a bit too involved for me to explain via chat
Partly due to the tech being pretty new to me as well
But I have a understanding of the Besu source code at a high level
Think we can figure the rest out
Hello team, quick question, is it planned to implement the [non-normative spec from the EEA](https://entethalliance.github.io/client-spec/spec.html#sec-account-permissioning) regarding account permissioning? they added two more parameters to the `transactionAllowed` method
Has joined the channel.
Hello besu
Hi @spacecadet where would you like chat or have a call?
Postman
https://www.postman.com/assets/logos/pm-orange-logo-horiz.svg
Hi everyone, you now find a nice Besu JSON-RPC doc at https://api.besu.hyperledger.org/
Thanks @rjones for the help!
Hi everyone, you now find a nice Besu JSON-RPC doc at https://api.besu.hyperledger.org/
Thanks @rjones for the help!
Hi everyone, you can now find a nice Besu JSON-RPC doc at https://api.besu.hyperledger.org/
Thanks @rjones for the help!
Hi i need some help about P2P, i have a IBFT 2.0 network with bootnode and genesis specified, i don't know how the client is connecting with others of my network (i recently updated my besu version of 1.4 for 20.10.4)
Clipboard - February 13, 2021 3:24 PM
the green box is my bootnode, the red ones is other mainnet of ethereum with chain id 1.
i tested comment the code about EthNetworkConfig for other networks but still give-me other peers
Exist any fallback to Mainnet ?
This is one of the emergent behaviors of the discovery protocol. At discovery the nodes do not know key information about other nodes, such as the chainID or clients. They only know ports and addresses, and sometime fork IDs. Some clients makes sure the fork IDs match before "knocking," others don't. My guess is the two red clients are forked off of 1.9.6 geth or earlier.
So the ports and ips get gossiped across the DHT and once an entry is added it's hard to get it out if it's live.
One way to make sure these peers get disconnected promptly is to add required blocks to the bootnodes. (https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#required-block) - This will cause connected peers to be polled for specific blocks and dropped if the check fails.
This was initially deployed to deal with the net split style forks often seen in Ropsten but can be used to ensure that different networks that cross-connect will disconnect promptly. Other blockchains call this "checkpointing"
thanks @shemnon it worked. with the previous version that I had 1.4. this did not happen.
when I made the query to get the peers only gave me what was supposed to be 5, I found it strange to be going to get others if I had a bootnode on a closed network!
Has joined the channel.
@mmaryo 1 shoot me a mail at konstantinovitz@blackswan.engineer and we can figure it out :-)
Hi guys! I'm pretty interested in running my own Ethereum Archive Node using the Besu client, especially after the recent support for EIP 1898 (querying by hash), which I was interested to have support for. I'm interested to know how much space does the current Besu requires. The Open Ethereum client goes in the direction of 6.4-6.5T.
I have heard that besu requires only 3.6-4T currently, is this true?
Hi @IonutS, we currently have some documentation which you might find useful. It also includes some sizing suggestions.
https://besu.hyperledger.org/en/latest/Concepts/Pruning/
Thank you @bgravenorst. I've read that but wasn't sure if is still up to date because 3TB is half of Open Ethereum and is amazing!
Any reason why it actually requires half of the disk space, are some informations missing from the archive node or do you use compression? The difference is impressive. :-)
Also I'm curious how far your implementation differs from GETH or Open Ethereum. Is there maybe a comparison table to see which feature is extra and what is maybe missing?
Thank you @bgravenorst. I've read that but wasn't sure if is still up to date because 3TB is half of Open Ethereum and is amazing!
Any reason why it actually requires half of the disk space, are some informations missing from the archive node or do you use compression? The difference is impressive. :-)
Also I'm curious how far your implementation differs from GETH or Open Ethereum. Is there maybe a comparison table to see which feature is extra and what is maybe missing?
Thank you!
Also which version is recommended to be used to have full support of EIP 1898?
FWIW, last time I ran a Besu archive node, up to block ~10M, it took around 4TB
that was around last August. No idea how things have evolved since then
it doesn't seems to be supported yet https://github.com/hyperledger/besu/issues/1733
The initiative for that comes from me more or less :) But I've found it, it got implemented so v20.10.4 has support for it: https://github.com/hyperledger/besu/blob/21.1.0-RC1/CHANGELOG.md
Ah cool, so 4.5 TB maybe is more realistic. Thanks! I would have planned anyway with more than 6 TB, just to be prepared to run it longer.
oh, that's great. It seems they forgot to add the entry to the 20.10.4 [changelog](https://github.com/hyperledger/besu/blob/20.10.4/CHANGELOG.md) :)
You are totally right. That's why I couldn't find that info in the past as I searched for it also last week or so...
And that's a serious feature. :)
Hey all, when working with Quorum/Geth and Besu, it appears that besu responds differently to a few Json RPCs, to that of Geth. Specifically:
admin_peers.result.id on Besu == node's public key; on Geth == keccack256(publicKey)
admin_nodeInfo.result.id on Besu == node's public key; on Geth == keccack256(publicKey)
I'm assuming its in everyone's best interests if these line up - should Besu be updated to reflect Geth's behaviour?
For more info, here are the links to Geth docs (aka the spec):
- https://geth.ethereum.org/docs/rpc/ns-admin#admin_peers
- https://geth.ethereum.org/docs/rpc/ns-admin#admin_nodeinfo
But we can only deduce that from the example and the return data type is not clearly described.
We can still ask them what they plan to do though.
Has joined the channel.
Hey everyone, I heard the Consensys founder say in a podcast that eventually Hyperledger Besu will replace GoQourun completely but it would use Tessera as its private transaction manager instead of Orion. Can u allready use this configuration at this point in time or are these two not compatible yet?
Are 12 physical cores(24vcpu) and 128 GB RAM good enough for Besu Archive node?
Are 12 physical cores(24vcpu) and 128 GB RAM good enough for Besu Archive node with trace api enabled?
Cores and memory are not the issue in creating the archive node, it's raw disk i/o that is the bottleneck. While creating the archive node 16-32 Gib should be more than sufficient (16GiB will fall into some cached induced memory pressure during import but if you reboot it every few weeks will be fine). 12 cores will be excessive during the import. May be useful once service RPCs.
The lack of clear definition is an issue. I have a script that uses admin_peers to extract enode URLs from the result, so a keccack in the ID would hurt. If we do align with Geth I think we should add an "enode" field.
4Tib at 10M blocks aligns with Geth and OE's size growth. This chart says 6 TiB us the current size - https://etherscan.io/chartsync/chainarchive
4Tib at 10M blocks aligns with Geth and OE's size growth. This chart says 6 TiB is the current size - https://etherscan.io/chartsync/chainarchive
That's ~ 2TiB a year growth rate.
Sure, disks are super important. For that I'll use already use some good NVMe. I run already OE 3.0.1 and a lot of RAM helped due to many issues of OE properly gestioning OOM issues. From what I understand besu seems to be more stable in this regard.
Sure, disks are super important. For that I'll use already some good NVMe. I run already OE 3.0.1 and a lot of RAM helped due to many issues of OE properly gestioning OOM issues. From what I understand besu seems to be more stable in this regard.
After over a month of uptime memory beyond 16GiB is useful.
Hi @shemnon when i execute the node "besu v20.10.4" to my old network "besu v1.4", i getting this Snappy decompression failed https://gist.github.com/helderjnpinto/faa4b09efe350dabe049c1a01823c83d (Caused by: org.hyperledger.besu.ethereum.p2p.rlpx.framing.FramingException: Snappy decompression failed AND Caused by: java.io.IOException: FAILED_TO_UNCOMPRESS(5)), also the flag of required-block works but why version 20.10.4 gets this peers if my network is private IBFT 2.0 with only 5 nodes, maybe this Exceptions is about P2P messages of this ethereum mainnet clients ? with version of 1.4 this not happening
Clipboard - February 15, 2021 7:16 PM
also i get this SocketException https://gist.github.com/helderjnpinto/00e6ad61a1504919e98ba1b4084a8e1f
In a closed IBFT 2.0 network with custom transaction processor this peers not make sense
This is a parity bug - https://github.com/openethereum/parity-ethereum/issues/6647 - Parity doesn't properly support snappy. When they advertise v5 then subsequent messages should be snappy compressed.
these are all in the same nio thread nioEventLoopGroup-3-5. Multiple connections are going on at the same time.
Quorum (and I guess Geth) has added the enode field to admin_peers (as well as modifying the id to be the k256 hash of pubkey).
We should open a PR to compare and contrast. The question is if this is a strong enough break of backward compatability to wait untul a quarterly release to change. The last one just barely closed the cargo bay doors...
https://github.com/hyperledger/besu/pull/1917 should fix this.
Has joined the channel.
hey guys, I have problem connecting to besu
2021-02-16 10:46:33.285+03:30 | main | INFO | DefaultSynchronizer | Starting synchronizer.
2021-02-16 10:46:33.288+03:30 | main | INFO | FullSyncDownloader | Starting full sync.
2021-02-16 10:46:33.290+03:30 | main | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-02-16 10:46:33.307+03:30 | main | INFO | JsonRpcHttpService | Starting JSON-RPC service on 127.0.0.1:8545
2021-02-16 10:46:33.376+03:30 | main | INFO | WebSocketService | Starting Websocket service on 127.0.0.1:8546
it all working and mining but when i try rpc it fails
no matter If I run it from binary, docker or brew I have tried all but I hot nothing
:rocket:
@shemnon if i put static nodes configuration https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Static-Nodes/#configure-static-nodes this problems of my private network IBFT2.0 connecting with Ethereum nodes will disappear?
If the IPs are out and in the main DHT other nodes may start connecting. If you could change the external IPs as well that should address it. Another option is to add firewall rules blocking it from outside the vpn.
Office Hours in ~ 30 minues - https://wiki.hyperledger.org/display/BESU/2021-02-16+Office+Hours -- https://consensys.zoom.us/j/199741148
Has joined the channel.
Has joined the channel.
Hi, I'm trying to install Besu on linux, but I don't understand the last step in the instructions. After extracting the release, there is no bin/besu executable in the archive, but the instructions say to run `bin/besu --help`.
nevermind I figured it out, I just needed to run `sh gradlew` to compile besu. (I think that should be in the instructions.)
Can you give some more information - what rpc command are you sending, and what error do you get?
Hi @Skyler827, did you download the the packaged binary from link on the releases page?
The latest packaged binary is available on Artifactory. See https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/21.1.0-RC2/besu-21.1.0-RC2.zip
The steps you described sounds like you possibly downloaded the source code.
You will find the build from source instructions on the Hyperledger wiki:
https://wiki.hyperledger.org/display/BESU/Building+from+source
https://wiki.hyperledger.org/display/BESU/Building+from+source
Hi Team,
I am using Besu for ETH fast node, from this can i get the balance of an account at a particular blockheight?
Hi Team,
I am using Besu for ETH fast node, from this can i get the balance of an account at a particular blockheight?
I tried with curl getting null as result
You can get a balance for any block height after the pivot. For historical values you will need an archive node.
Typically the pivot block is around the height of the block chain when the fast sync started.
i am getting error Wrong chainId, when i am trying to deploy the contract.
` const besuAccount = web3.eth.accounts.privateKeyToAccount(`0x${privateKey}`);
const rawTx = {
nonce: web3.utils.numberToHex(0),
from: besuAccount.address,
value: 0,
to: null,
data: bytecode,
gasPrice: "0xFFFFFF",
gasLimit: "0xFFFFFFF",
};
const tx = new Tx(rawTx);
tx.sign(Buffer.from(privateKey, "hex"));
const serializedTx = tx.serialize();
return web3.eth.sendSignedTransaction(
`0x${serializedTx.toString("hex")}`
)
.then(transactionReceipt => {
console.log("Public Transaction Receipt\n", transactionReceipt);
logBuffer += `now you have to run:\n export PUBLIC_CONTRACT_ADDRESS=${
transactionReceipt.contractAddress
}\n`;
return transactionReceipt.contractAddress;
});`
i am getting error Wrong chainId, when i am trying to deploy the contract.
let chainId=2018
const Web3 = require("web3");
const EEAClient =require('web3-eea')
const web3 = new EEAClient(new Web3("http://localhost:20000"), chainId);
` const besuAccount = web3.eth.accounts.privateKeyToAccount(`0x${privateKey}`);
const rawTx = {
nonce: web3.utils.numberToHex(0),
from: besuAccount.address,
value: 0,
to: null,
data: bytecode,
gasPrice: "0xFFFFFF",
gasLimit: "0xFFFFFFF",
};
const tx = new Tx(rawTx);
tx.sign(Buffer.from(privateKey, "hex"));
const serializedTx = tx.serialize();
return web3.eth.sendSignedTransaction(
`0x${serializedTx.toString("hex")}`
)
.then(transactionReceipt => {
console.log("Public Transaction Receipt\n", transactionReceipt);
logBuffer += `now you have to run:\n export PUBLIC_CONTRACT_ADDRESS=${
transactionReceipt.contractAddress
}\n`;
return transactionReceipt.contractAddress;
});`
i am getting error Wrong chainId, when i am trying to deploy the contract.
` const Tx=require('ethereumjs-tx').Transaction
let chainId=2018
const Web3 = require("web3");
const EEAClient =require('web3-eea')
const web3 = new EEAClient(new Web3("http://localhost:20000"), chainId);
` const besuAccount = web3.eth.accounts.privateKeyToAccount(`0x${privateKey}`);
const rawTx = {
nonce: web3.utils.numberToHex(0),
from: besuAccount.address,
value: 0,
to: null,
data: bytecode,
gasPrice: "0xFFFFFF",
gasLimit: "0xFFFFFFF",
};
const tx = new Tx(rawTx);
tx.sign(Buffer.from(privateKey, "hex"));
const serializedTx = tx.serialize();
return web3.eth.sendSignedTransaction(
`0x${serializedTx.toString("hex")}`
)
.then(transactionReceipt => {
console.log("Public Transaction Receipt\n", transactionReceipt);
logBuffer += `now you have to run:\n export PUBLIC_CONTRACT_ADDRESS=${
transactionReceipt.contractAddress
}\n`;
return transactionReceipt.contractAddress;
});`
Screenshot 2021-02-17 at 11.20.59 PM.png
What library are you using for signing the transaction? I don't see in your code where are you setting the `chainId` value in the `rawTx` object. There are some libraries, like web3js, that can resolve it by calling the `eth_chainId` JSON-RPC method and set the proper one
i am using ethereumjs-tx
I tried setting by setting it in rawTx like this ` const rawTx = {
nonce: web3.utils.numberToHex(0),
from: besuAccount.address,
value: 0,
to: null,
data: bytecode,
gasPrice: "0xFFFFFF",
gasLimit: "0xFFFFFFF",
chainId
};`
but still getting same issue
it seems to me that this is not an issue on Besu but in the transaction you are intending to send. I'm not used to use `ethereumjs-tx` but on your last modification it looks like what you would need to add is `chainId: 2018` instead of just a single reference to the `chainId` object. Somethig like
```javascript
const rawTx = {
nonce: web3.utils.numberToHex(0),
from: besuAccount.address,
value: 0,
to: null,
data: bytecode,
gasPrice: "0xFFFFFF",
gasLimit: "0xFFFFFFF",
chainId: 2018
};```
I tried that also but no luck
Has joined the channel.
Has joined the channel.
Greetings community, I'm new to this protocol and was wondering Hyperledger Besu can also be run for public networks(perhaps switching the permissions off for most part of it except selected components). Does it go against the purpose of Hyperledger Besu and in inadvisable? If not can it be used then with current public ethereum networks as well?
@CodeReaper - Hyperledger Besu can be run for public Ethereum mainnet, as well as testnets. Here is some documentation on how to start Besu for the various networks (mainnet and testnets): https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Starting-node/
Please be specific as to why the nonces are invalid. That will help in reproducing the bug.
Finally got the machine for Besu. Is there any config.toml for Ethereum Archive Node on Mainnet available? I would be particularly interested in the bootnodes. I guess genesis-file isn't actually needed as well as mining can be turned off.
Has joined the channel.
I would say that the most important config for an archive node is to set `BESU_SYNC_MODE=FULL`
Definitely, already on the list but I guess I also need some bootnodes for Mainent. Are those published somewhere?
Definitely, already on the list but I guess I also need some bootnodes for Mainnet. Are those published somewhere?
by default, when connecting to mainnet, Besu uses [this list](https://github.com/hyperledger/besu/blob/master/ethereum/p2p/src/main/java/org/hyperledger/besu/ethereum/p2p/config/DiscoveryConfiguration.java#L39) of bootnodes
Ah cool, so is not necessarily to add them manually. Coming from Open Ethereum where I had to define them.
Ah cool, so is not necessarily to add them manually. Coming from Open Ethereum where I had to define them. Thanks a lot!
For besu the trace api is simply enabled by using --rpc-ws-api=trace, etc. and --rpc-ws-api=trace, etc. ?
I noticed Besu supports push or pull monitoring methods using Prometheus. Is there any significant difference in performance between these two methods considering the Besu node? I mean, is pull more demanding to a Besu node? If we think in a monitoring process running every 1 minute, is it a problem if 20 processes query a Besu node (1 request each 3seconds)? Is it possible that it impacts on the Besu node performance considering a machine good enough? An alternative would be to export the metrics to an external monitoring tool, but it would demand more work to the infra team so we are analyzing possibilities.
Or is there another flag. At Open Ethereum was --tracing=on
Each request is the same amount of demanding. All the same metrics are queried. Typically a prometheus setup will have one centralized prometheus instance polling multiple nodes, not the other way around. Tools like grafana are put in front of the prometheus instance to render fancier graphs than the prometheus instance can render.
Another service to pair with prometheus is alertmanager, which can fire off slack alerts based on configurable alerts, such as the process being down, blocks not being produced, node behind chain head for too long.
besu also added support for reading nodes from the EF's DNS discovery list. Mainnet has a nice large list.
One quick question about enabling trace api on Besu: is that being activated by simply defining it using --rpc-ws-api=trace, etc. and --rpc-ws-api=trace, etc. ?
Also are there any flags related to performance, for example cache size db, blocks, queue ? Same for disks if one uses hdd or ssd/nvme or it doesn't matter?
If WS and RPC are already enabled those flags will enable it. If you specify any APIs only those APIs are enabled, so I would include trace,eth,admin,etc.
If WS and RPC are already enabled those flags will enable tracing. If you specify any APIs only those APIs are enabled, so I would include trace,eth,admin,etc.
We haven't plumbed through many rocksdb configuration options yet.
I see, cool, thanks. Yes, I already added web3,eth,net,trace. Those are the ones I'm mostly interested in. Syncing working fine, almost at block 1,5M
I see, cool, thanks. Yes, I already added web3,eth,net,trace. Those are the ones I'm mostly interested in. Syncing working fine, almost at block 1,5M :woo:
Hello team, why do I need to assign large amount of gas when deploy to besu network? Otherwise it throws error.
Hi, I don't know the full extent of permissions in Besu. But is it possible to have a new public network without POA, but with an on-chain permission of who can deploy the smart-contracts on the network?
Hello,
We have noticed that if a private tx reverts (e.g, when a _require_ condition fails), then the private nonce is not incremented. On the other hand, the public nonce, that of the privacy marker tx, do increment. So my question is: ¿is there any way to change this behaviour? We have found it problematic when leading with concurrent private tx, because if tx n fails, then n+1, n+2, etc will also fail.
Hello,
We have noticed that if a private tx reverts (e.g, when a _require_ condition fails), then the private nonce is not incremented. On the other hand, the public nonce, that of the privacy marker tx, do increment. So my question is: ¿is there any way to change this behaviour, allowing the private nonce to increment? We have found it problematic when leading with concurrent private tx, because if tx n fails, then n+1, n+2, etc will also fail.
Hello,
We have noticed that if a private tx reverts (e.g, when a _require_ condition fails), then the private nonce is not incremented. On the other hand, the public nonce, that of the privacy marker tx, do increment. So my question is: ¿is there any way to change this behaviour, allowing the private nonce to increment? We have found this situation problematic when leading with concurrent private tx, because if tx n fails, then n+1, n+2, etc will also fail.
Hi community,
We have noticed that if a private tx reverts (e.g, when a _require_ condition fails), then the private nonce is not incremented. On the other hand, the public nonce, that of the privacy marker tx, do increment. So my question is: ¿is there any way to change this behaviour, allowing the private nonce to increment? We have found this situation problematic when leading with concurrent private tx, because if tx n fails, then n+1, n+2, etc will also fail.
Thank you very much in advance community!
error_on_startup.png
Has joined the channel.
on running the besu node, this error came up but the node kept syncing .
is there any way to remove all the pending transactions?
I got the same, then I restarted and went away...
So my experience so far syncing besu archive node - it went very fast until around 2,2M but now I have the feeling is very slow, syncing at 0,25-0,7Mg/s. An is only block 2,4M where Ethereum wasn't used too much so not that many tx. I use max peers 200. Anything it can be done to improve sync speed? Using nvme disks, 128 GB RAM, 32G min heap with 64G max heap memory and 12 core (24vcore) ryzen.
So my experience so far syncing besu archive node - it went very fast until around 2,2M but now I have the feeling is very slow, syncing at 0,25-0,7Mg/s. An is only block 2,4M where Ethereum wasn't used too much so not that many tx. I use max peers 200. Anything it can be done to improve sync speed? Using nvme disks, 128 GB RAM, 32G min heap with 64G max heap memory and 12 core (24vcore) amd ryzen.
So my experience so far syncing besu archive node - it went very fast until around 2,2M but now I have the feeling is very slow, syncing at 0,25-0,7Mg/s. And is only at block 2,4M where Ethereum wasn't used too much so not that many tx. I use max peers 200. Anything it can be done to improve sync speed? Using nvme disks, 128 GB RAM, 32G min heap with 64G max heap memory and 12 core (24vcore) amd ryzen.
I think it should be possible. Permissioning is independent of the proof. Bear in mind that the transaction permissioning intercepts incoming transactions where you can check the destination address to be 0x0, but that's not the only way to deploy smart contracts. You can deploy an smart contract from another smart contract and filtering that will be more difficult b/c you'll need to somehow instrument the bytecode of every deployed smart contract to detect that behavior
in my case i see this error every time
This matches typical experiences. 2.2M block is the "shanghai" attacks and state bloat clearing. core count and memory isn't the issue it's the serial need to re-calculate the merkle trie. I/O speed is the blottleneck. Things will get markedly better in the late 2.xmm blocks when the state clearing ends, then get gradually worse until byzantium fork where we stop calculating state roots in TXes. Then better, then gradually worse due to general use. You will get some relief at hard forks when storage gas prices go up, but block gas limit always rises. It's months to catch up to chain head via archive sync.
Thank you for your reply, @shemnon
So let's say that all the smart-contracts that are deployed were allowed by this whitelisting. None of them allow to deploy other smart-contracts or at least they were all intentional. The first check on the parent contract should be sufficient by this, is that correct assumption?
The check itself that if destination address to if 0x0 would require additional checks in bytecode perhaps? Otherwise other transactions which have destination address as 0x0 might also be blocked by this logic.
I think yes, your first assumption is correct, not an easy task though. Essentially you should inspect the bytecode and look for `CREATE` or `CREATE2` opcodes and even in that case I think you'll not be covering all cases, because, for example, you may even have a contract receiving arbitrary data in the constructor which would look like just data but it's intended to be executed, so in that case you should inspect the parameters to every invocation to `CALL` opcode, and so on...
About your second statement I don't know if I'm getting it right, but AFAIK there isn't other usage for sending a transaction to the 0x0 address other than deploying an smart contract (it may also be a conventional address to burn gas/assets but I think that's something that can be advised to your network users)
Hello team, is there a bounty program for Besu? I found one in H1 from hyperledger but it seems to be only for Fabric
https://hackerone.com/hyperledger
@diegoll the hacker one program is only for fabric. Please report security issues to security@hyperledger.org
If the 0x0 address is only used for contract deployment in to address then I think there shall be no need of checking opcodes. which I'll make a check on separately.
However I'm looking at some contract deployment transactions on etherscan and I can see the to address is the contract address itself. For example- USDT's cotract deployment transaction:- https://etherscan.io/tx/0x2f1c5c2b44f771e942a8506148e256f94f1a464babc938ae0690c6e34cd79190
what you are seeing in the etherscan dashboard is an interpretation of a contract creation transaction, in this case it prints the contract address field from the transaction receipt resulted from executing the transaction
here you can see a raw view of the same transaction https://www.ethereumdecoder.com/?search=0x2f1c5c2b44f771e942a8506148e256f94f1a464babc938ae0690c6e34cd79190
you'll see there the `"to": null` field
Wow, if is really months than that is really long. I synced Open Ethereum Archive sync with trace api enabled in about 5 weeks to chain head.
Merkle Trie caching is a weak spot for us right now.
I see
Has joined the channel.
It picked up steam once again, you were right, now at 3,86M blocks.
It picked up steam once again, you were right, now at 3,86M blocks. Hope will do it in 5 weeks, let's see :fingers_crossed:
So, I'm still not succeeding at setting up on-chain permissioning
I have the web app working
I add all of my validator nodes
I restart the network after uncommenting "permissions-nodes-contract-enabled=true" in my config.toml
And, all of a sudden, my nodes can't connect to each other.
So, I'm still not succeeding at setting up on-chain permissioning
I have the web app working
I add all of my validator nodes
I restart the network after uncommenting "permissions-nodes-contract-enabled=true" in my config.toml
And, all of a sudden, my nodes can't connect to each other.
If I comment out that line again and restart, everything is fine again.
I've gone back and forth several times uncommenting and commenting and the behavior is 100% consistent.
What could I be doing wrong?
The web app is showing the correct e-nodes. Grafana shows that the first/boot node often has a connection with one other node -- but that is pretty much it . . . .
Should I grab a new version of the contracts?
Thanks @diegoll . It turns out that the 0x00 address isn't used by any other transaction by design. However, it is actually is used for 'signifying' burning of ether by sending it in t address, which I'm willing to block as a transaction itself if needed.
I was wondering:-
1. if the current onchain permission contracts will allow me to block all transactions coming to 0x00 address without any modifications.
2. The contract deployment transactions as it seems don't have the to field at all associated with them. 0x00 is picked just to satisfy the transaction schema. Would Besu still block 0x00 with destination address transactions in case of smart-contract deployment?
The idea is to enable/disable the simple capability of smart-contract deployment in the network.
I am seeing that the permissive contracts are present to check if the sender account has ability to perform a transaction on the network. For my implementation where 'to' if set to 0x00 needs to be blocked to disallow any contract deployments.
In my case then it then shall be the receiver that needs to be checked instead in a transaction.
It will be good if someone can point me the lines in Besu where this the current from address checks are made.
I am seeing that the permissive contracts are present to check if the sender account has ability to perform a transaction on the network. For my implementation where 'to' if set to 0x00 needs to be blocked to disallow any contract deployments.
In my case then it then shall be the receiver that needs to be checked instead in a transaction.
It will be good if someone can point me the lines in Besu where this the current from address checks are made.
Hi, block syncing on one of the nodes while syncing to a public network failed due to an error:- ```max retries reached, cancel pivot block download```. Can anyone confirm that this is the expected behavior?
Clipboard - February 21, 2021 4:34 PM
So . . . going back to February 11th, I see that I need to add the following to my config file
permissions-nodes-contract-version=2
Unfortunately, doing so prevents the containers from coming up.
Commenting this line out again, fixes the problem.
Anyone have a guess?
@macfarla @diegoll the awesome
So . . . going back to February 11th, I see that I need to add the following to my config file
permissions-nodes-contract-version=2
Unfortunately, doing so prevents the containers from coming up.
Commenting this line out again, fixes the problem.
Anyone have a guess?
@macfarla @diegoll the awesome
EDIT: adding that line to the config file for a stand-alone besu (i.e. no docker) causes no problems
Looking at the logs - on a startup WITHOUT the permissions-nodes-contract-version=2, the first four lines (at DEBUG level) are
{"timestamp":"2021-02-21T13:47:39,490","container":"3c7ca855fffe","level":"INFO","thread":"main","class":"KeyPairUtil","message":"Loaded public key 0x4aa4d644343ab239d28f3b15cd9199e36ac5fd72b884ae5d9a0a2121c5fa51b224665eb0cd9eb8f5cbb1bebc642a834c0f74525768cb93e42cc74175643b006a from /opt/besu/key","throwable":""}
{"timestamp":"2021-02-21T13:48:02,946","container":"3c7ca855fffe","level":"INFO","thread":"main","class":"AltBN128PairingPrecompiledContract","message":"Using native alt bn128","throwable":""}
{"timestamp":"2021-02-21T13:48:11,075","container":"3c7ca855fffe","level":"INFO","thread":"main","class":"SECP256K1","message":"Using native secp256k1","throwable":""}
{"timestamp":"2021-02-21T13:48:11,136","container":"3c7ca855fffe","level":"INFO","thread":"main","class":"Besu","message":"Starting Besu version: besu/v20.10.0/linux-x86_64/oracle_openjdk-java-11","throwable":""}
With the line permissions-nodes-contract-version=2, it just repeats the first line indefinitely (presumably as the container keeps restarting)
The "class":"AltBN128PairingPrecompiledContract","message":"Using native alt bn128","throwable":""} in the second line seems pretty suspicious since it does talk about Precompiled Contracts . . . .
OOF! The latest docker image is 20.10.0 from 3 months ago.
https://github.com/ConsenSys/permissioning-smart-contracts/releases/tag/v2.0.0 says that it supports Besu 20.10.1+ permissioning features.
My stand-alone version is 20.10.4.
Could the team please put a newer version in the hyperledger/besu registry?
There are more current versions - https://hub.docker.com/r/hyperledger/besu/tags?page=1&ordering=last_updated
what command are you using to update your docker image?
rpc connection is established
rpc connection is established
Has joined the channel.
hi
i am working in private chain and want to explore verified blocks
please help
its already been crossed 20 million blocks
You could take a look to the [Permissioning Smart Contracts](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/AccountRulesProxy.sol) you can see there that you can make checks for `sender`, `target`, `value`, `gasPrice`, `gasLimit` and the whole raw `payload`
showing status DOWN on readiness
showing status DOWN on readiness
DOH! I missed where it was specified in .env
FIXED! Thank you!
Our Besu nodes have key saved in plain text (saved data/key). Is it possible to encrypt these keys in a way that Besu can still use?
Hello Suzana, Besu allows you to setup a [security module](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#security-module) for how you store the credentials, but the [Encrypted Storage plugin](https://doc.quorumplugins.consensys.net/en/latest/Concepts/Besu-Plugins/Encrypted-Storage/) is under a Consensys Quorum subscription
Hello Suzana, Besu allows you to setup a [security module](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#security-module) for how you store the credentials
Good!! So if I use --node-private-key-file=
no, the `--node-private-key-file` expects a plain text file, I think you would need to develop your own plugin for supporting [Web3 Secret Storage Definitions] (https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition)
no, the `--node-private-key-file` expects a plain text file, I think you would need to develop your own plugin for supporting [Web3 Secret Storage Definitions](https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition)
idk if there is something for that under a Consensys Quorum subscription. I can see there is at least [one](https://doc.quorumplugins.consensys.net/en/latest/Concepts/Besu-Plugins/Hardware-Security-Module/) for supporting HSM
Oh, not seem easy! Thank you for giving the directions.
did you enable the debug namespace? `--rpc-http-apis=debug`? probably will need `--rpc-http-apis=debug,eth,net,web3`
rpc-http-api=["DEBUG","ETH","NET","WEB3"]
I have included above line in the config.toml still /liveness is not giving the expected result.
can you set logging to debug? `logging="DEBUG"` - that should tell us if connections are being attempted.
Also, I'm making the assumption that this is directly on localhost, and not in some separate node docker container. If so you will need to set `rpc-http-host='0.0.0.0'` so it will listen to all interfaces
Also, I'm making the assumption that this is directly on localhost, and not in some separate node or in a docker container. If so you will need to set `rpc-http-host='0.0.0.0'` so it will listen to all interfaces
Nodes are only connecting to nodes in a static nodes file . . . .
I can't seem to get any of the boot nodes commands to work nor are nodes discovering additional nodes. If it isn't in a static-nodes file, it isn't connected to.
What am I missing?
Hi mwaser, could you share the config file that you are using with your Besu node? Also, please let us know the version that you are using. Cheers!
Hmmm. Just found out that some nodes have 20.10.0 and some have 20.10.4. I needed to get that straightened out anyway -- but could that be causing the problem? Those are two awfully close versions . . . .
# desktop config.toml
host-whitelist=["*"]
# rpc
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-cors-origins=["*"]
# ws
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
# graphql
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
graphql-http-cors-origins=["*"]
# metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# permissions
# permissions-nodes-config-file-enabled=true
# permissions-nodes-config-file="/config/permissions_config.toml"
# bootnodes
bootnodes=["enode://45f5
Hmmm. Just found out that some nodes have 20.10.0 and some have 20.10.4. I needed to get that straightened out anyway -- but could that be causing the problem? Those are two awfully close versions . . . .
# desktop config.toml
host-whitelist=["*"]
# rpc
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-cors-origins=["*"]
# ws
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
# graphql
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
graphql-http-cors-origins=["*"]
# metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# permissions
# permissions-nodes-config-file-enabled=true
# permissions-nodes-config-file="/config/permissions_config.toml"
# bootnodes
bootnodes=["enode://45f5
We are sooooo close to being fully operational . . . .
I don't think the version is an issue. And I can't see anything in your config that seems wrong. Have you checked your firewall config for the port used by discovery? By default it uses UDP 30303.
And just to confirm, your node isn't connecting to the bootnode enode://45f5
Hello, a newbie here. I was wondering what's the difference (or rather one's advantage over the other) between JSON-RPC API and web3j?
web3j is a Java library that calls out to the JSON-RPC API
great, thanks. So, I can directly call the JSON-RPC API in my java application but if I use web3j then it makes my work slightly easierI assume?
great, thanks. So, I can directly call the JSON-RPC API in my java application but if I use web3j then it makes my work slightly easier I assume?
yes
I built a simple JSON-RPC client for my own needs here: https://github.com/apache/incubator-tuweni/blob/master/jsonrpc/src/main/kotlin/org/apache/tuweni/jsonrpc/JSONRPCClient.kt
since I just wanted to get some very specific things.
web3j IIUC also has the ability to help you interact with smart contracts, I have never used that.
Neat.
Thanks for the help 🙏
Is JDK 11 (LTS) or JDK 15 (latest) prefered ? How about Oracle OpenJDK over "regular" Oracle JDK ?
JDK 15 will have better performance. We target Java 11 as it is a LTS version. There's not much difference between OracleJDK and OpenJDK, the main differentiator being one offers paid support.
GraalVM has slightly better performance overall, but it is still at Java 11.
I think I pushed https://github.com/hyperledger/besu/pull/1882 to a better state and it can be reviewed again. Most recently, I added an acceptance test showing the chain can create valid blocks.
btw, does web3j use web sockets for some use cases? Or, is it configurable in web3j whether to use json-rpc or WS?
facing same issue, but after multiple restart of docker image syncying working fine.
[ ](https://chat.hyperledger.org/channel/besu?msg=YaDcLmC2GPRheJ7FN) Cool. People using GraalVM on production high-load besu installs ?
Be sure to do your own validation, but that is a reason we also ship graalVM variant docker images.
Still fighting with discovery.
Oddity #1 - I've got a core network of 7 validation nodes and 1 RPC node (like the quickstart but I changed the members to validators).
Each time I restart, the bootnode has seven peers, four validators have five peers and two validators have one peer.
Which validator have five peers and which have only one peer changes each time I stop and restart.
What do I not understand here?
Oddity #2 - Remote nodes can connect via a static-nodes.json file but cannot connect using the bootnodes command either in the command line or in a config.toml file. This is despite the fact that the core network nodes are connecting via a bootnodes command in a config.toml file. The core network is on Azure and does have 30303 open for Any protocol. One remote node is on WSL2 and the windows firewall is open both inbound and outbound for Any. Another remote node is on a Raspberry Pi.
They all see one peer and process it
DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 1 peers processed over 1 rounds.
but then are forever waiting for peers
DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
The node is NOT connecting to the bootnode UNLESS I put it in a static-nodes.json file.
I've upgraded so everything is 20.10.4 (which solved the last of my permissions problems).
periodically it tries the iterative peer search but finds no peers
RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
Got it. Could you try updating your config file with the property p2p-host matching your server external IP address?
https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#p2p-host
This property will be used when advertising this peer address to other peers in the network. So you need to ensure it contains the ip for your server that is accessible by other peers.
When you say server -- do you mean the Azure core network or the remote node? I tried with the remote node to no effect. If I try it on the core network, won't that mess up the internal communications between the core nodes which is happening on the internal (Docker) network? If so, should I try exposing all their ports to the outside world and then use the external addresses (seems a bit problematical)?
I'm not familiar with Azure deployment so I'm afraid I can't really help you on the actual setup.
But I did notice that you don't have the p2p-host property on your config file. That means that the node will advertise its enode as enode://
hi @adovale - we're investigating this and have raised https://github.com/hyperledger/besu/issues/1942 to track.
Clipboard - February 24, 2021 3:19 PM
Now i can connect the besu node with remix, but i am having trouble when deploying as their is no account addresses in the remix account section.
How can i create accounts for the deployment which have ethers in the addresses.
Clipboard - February 24, 2021 3:27 PM
Hello guys. I need some help again with a question about P2P, so i have the follow scenario. I have version 1.4 of besu, (2 public nodes + 4 validators in private network IBFT2.0).
One of public nodes is a bootnode also!
I have the next problems:
1) Other clients networks try to connect as peers (OpenEthereum, Parity, Geth, etc...). For this i put the flag of `--required-block=` and only for validator in private network i cut access to external network, only comunicate with relayed transactions from public nodes.
I don't know if static nodes resolve this problems and disable discovery ?
> https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Static-Nodes/
2) Next and more critical problem is, when i stop one validator for update something for example, all network stops!!!
When i put this validator up again with --bootnodes flag of public node nothing happens i wait more than 10 minutes and nothing!
So what i did, i get enode of validator-0 and via ADMIN api added to others validator this enode... and all network start to process blocks again...
What is happening here? bootnode struggling with peers like OpenEthereum, Geth....? Becase in the first year that we lunch the network this not happen.
Hello guys. I need some help again with a question about P2P, so i have the follow scenario. I have version 1.4 of besu, (2 public nodes + 4 validators in private network IBFT2.0).
One of public nodes is a bootnode also!
I have the next problems:
1) Other clients networks try to connect as peers (OpenEthereum, Parity, Geth, etc...). For this i put the flag of `--required-block=` and only for validator in private network i cut access to external network, only comunicate with relayed transactions from public nodes.
I don't know if static nodes resolve this problems and disable discovery ?
> https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Static-Nodes/
2) Next and more critical problem is, when i stop one validator for update something for example, all network stops!!!
When i put this validator up again with --bootnodes flag of public node nothing happens i wait more than 10 minutes and nothing!
So what i did, i get enode of validator-0 and via ADMIN api added to others validators this enode... and all network start to process blocks again...
What is happening here? bootnode struggling with peers like OpenEthereum, Geth....? Becase in the first year that we lunch the network this not happen.
Hello guys. I need some help again with a question about P2P, so i have the follow scenario. I have version 1.4 of besu, (2 public nodes + 4 validators in private network IBFT2.0).
One of public nodes is a bootnode also!
I have the next problems:
1) Other clients networks try to connect as peers (OpenEthereum, Parity, Geth, etc...). For this i put the flag of `--required-block=` and only for validator in private network i cut access to external network, only comunicate with relayed transactions from public nodes.
I don't know if static nodes resolve this problems and disable discovery ?
> https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Static-Nodes/
2) Next and more critical problem is, when i stop one validator for update something for example, all network stops!!!
When i put this validator up again with --bootnodes flag of public node nothing happens i wait more than 10 minutes and nothing!
So what i did, i get enode of validator-0 and via ADMIN api added to others validators this enode... and all network start to process blocks again...
What is happening here? bootnode struggling with peers like OpenEthereum, Geth....? Becase in the first year that we launch the network this not happen.
When i query https://besu.hyperledger.org/en/stable/Reference/API-Methods/#debug_metrics, i get this about p2p
```"peers": {
"pending_peer_requests_current": 0.0,
"disconnected_total": {
"remote": {
"ALREADY_CONNECTED": 2.0
},
"local": {
"ALREADY_CONNECTED": 3.0
}
},
"connected_total": 10.0
},````
```"discovery_interaction_count": {
"PONG": 37.0,
"NEIGHBORS": 33.0
},
"discovery_interaction_retry_count": {
"PONG": 167.0,
"NEIGHBORS": 66.0
}
```
```
"discovery_messages_inbound": {
"PING": 2.0,
"FIND_NEIGHBORS": 15.0,
"PONG": 3.0,
"NEIGHBORS": 19.0
},
"discovery_messages_outbound": {
"PING": 204.0,
"FIND_NEIGHBORS": 99.0,
"PONG": 2.0,
"NEIGHBORS": 15.0
}
```
I notice that i have "FIND_NEIGHBORS": 99.0
my network only have 10 peers
Maybe @shemnon can help with this ???
Hmmm. I think you're on to something.
The Azure deployment is just that there are multiple besu instances, each in it's own Docker container.
Docker-compose then sets up a private network between them.
What I didn't notice before that their command line has a
--p2p-host=$$(hostname -i)
option which advertises that private network.
I'll try changing that to the external ip address as I mentioned above. I'm not savvy enough on ip routing to know whether that is tremendously inefficient or not but I'm guessing/hoping not.
I'll report back after I try.
Do you have any idea why p2p-host doesn't default to (hostname -i) ?
@helderjnpinto
2) Static-nodes resolves p2p discovery problems1) If you have only 4 validators and 1 is stopped, you've fallen below the number needed to continue producing blocks (assuming that your public nodes are not validatprs)
@helderjnpinto
!) Static-nodes DO skips p2p discovery problems when connecting to the nodes listed (and thus avoids any discovery problems) but does not shut off discovery for other nodes. I'm guessing that you are missing the p2p-host option (like I was ;-) ) which unfortunately defaults to the useless 127.0.0.1:30303)
2) If you have only 4 validators and 1 is stopped, you've fallen below the number needed to continue producing blocks (assuming that your public nodes are not validators)
@helderjnpinto
!) Static-nodes DO skip p2p discovery process when connecting to the nodes listed (and thus avoids any discovery problems) but does not shut off discovery for other nodes. I'm guessing that you are missing the p2p-host option (like I was ;-) ) which unfortunately defaults to the useless 127.0.0.1:30303)
2) If you have only 4 validators and 1 is stopped, you've fallen below the number needed to continue producing blocks (assuming that your public nodes are not validators)
@mwaser (2) yes but when i start up this node again, the network not run until i add peers via ADMIN api again... there is any timeout for p2p discovery
@mwaser (2) yes but when i start up this node again, the network not run until i add peers via ADMIN api again... there is any timeout for p2p discovery?
(1) so for p2p-host is to listen on all interfaces with 0.0.0.0 and only local 127.0.0.1, i not understand what this can help in stating p2p network
(1) so for p2p-host is to listen on all interfaces with 0.0.0.0 and only local 127.0.0.1, i not understand what this can help in p2p discovery
(1) so for p2p-host is to listen on all interfaces with 0.0.0.0 and only local 127.0.0.1, i not understand what this can help in p2p discovery, if they after ADMIN api add peer connects it's not a problem of network right?
ok maybe i will put static-nodes list...
ok maybe i will put static-nodes list... and disable p2p discovery like doc says https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Static-Nodes/#configure-static-nodes
thanks....
Hi, Besu 1.4 is exactly 1 yo in 3 days... we fixed a lot of issues since. Could you try to see if that also happens with latest version please?
Latest stable release is currently 20.10.4
yes i notice that because i recently updated the client to 20.10.4 version... and add it as 5 validator with the others in previous version for testing upgrade of client if all its good.
Again a greenhorn question, is it advisable to have our application as a separate node and interact with the besu node via jsonrpc/ws or is there a way I can embed my application and besu node into one? Is the latter even worth it?
so i have 4 validators 1.4 and 2 public nodes ... and added yesterday the 5 validator with 20.10.4
I am referring to the normal besu node here and not the validator or bootnode.
Any link or reference would also be helpful. 🙏
the usual architecture for blockchain applications is to connect to your node through http/ws. It would depend on your application if the latency introduced by that connection affects your performance and may justify embedding somehow your application into Besu, most usual dapps doesn't have those requirements AFAIK
yea, was wondering the same. But is it even possible, in a straight forward way, to have my application code in the besu node itself?
yea, was wondering the same. But is it even possible, in a straight forward way, to add besu as a java dependency or something to my java application?
yea, was wondering the same. But is it even possible, in a straight forward way, to add besu as a java dependency (i.e, maven/gradle) or something to my java application?
the most straight forward extension point for Besu is its [plugin system](https://besu.hyperledger.org/en/stable/Reference/Plugin-API-Interfaces/) you should evaluate if that provides enough information for your use case
cool, thanks for confirming and clarifying my doubts.
Besu is not a wallet provider. You should put something like ethsigner between besu and remix - https://github.com/consensys/ethsigner
It seems that p2p between 1.4 and 20.10.4 Besu nodes could require the `--compatibility-eth64-forkid-enabled` CLI option to be used on 20.10.4 nodes to be able to discover 1.4 nodes. See https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#compatibility-eth64-forkid-enabled
_Note that it is only in our latest doc but still apply since 20.10.1_
hm... ok i will try
about p2p-host flag is important ? i think this is not a problem but mwaser talks about this case....
exist any timout when we have unsuficient peers as validators to p2p discovery ?
exist any timout when we have unsuficient peers as validators to trigger p2p discovery ?
becasuse all works when i put via ADMIN api add new peer to all validator... all starts to produce blocks
Hi. I want to enable some “observer nodes” in a permissioned Besu network. I mean, a set of nodes that are able to synchronize the blocks of the network but cannot relay transactions from users. The default permissioning smart contracts provided by Besu do not help me, because I cannot restrict that a node can only read transactions and not receiving transactions. Also, I do not want to use gas to solve that (I have some arguments to this decision, but I do not want to go in details about them to avoid confusion).
I am wondering what the best option is.
One possibility would be to filter what is been received by the peer-to-peer port. Besu offers the possibility of exposing or not some APIs to the user (for example, enabling ETH and disabling ADMIN) so I am wondering if it also possible to filter or not some functions on the peer-to-peer port. In this case I want to enable block synchronization (I mean, the observer node can synchronize and read all the info) but disable the possibility of receiving transactions (I mean, the observer nodes cannot send/relay transactions to the network.
Hello everyone,
Our permissioned network is made by 3 organizations (A, B and C), 2 validators each organization.
Organization C is still pending in the rpc ibft_getPendingVotes query in A and B, although A and B has proposed/voted for C.
Organization C is already validating blocks, we can see that in the block explorer.
So my question is... Is it common to have a validator pending in the ibft_getPending Votes query and the same validator running the consensus as if it was not pending ?
I can see the C validators in the ibft_getSignerMetrics. However, they simply proposedBlockCount is ZERO
Hi everyone,
Hi everyone,
I'm pretty new at using docker but I think I have a good understanding of how to setup a private network using the binaries.
I'm struggling getting it to work using docker tho. What would a docker command look like if I wanted to use a config.toml file?
Hey @SuzanaMaranhao, So to confirm - you're looking fora. way to prevent Ethereum transactions from being sent to a given node in the network?
Would this node would still be expected to receive blocks and update its internal world state? Or what is the purpose of this node in your network?
This is what I got so far:
docker run --rm --name node1 -p 8545:8545 -p 13001:30303 hyperledger/besu --config-file=/config.toml
Unable to read TOML configuration, file not found. I'm getting this error even tho the file is located there.
If I've got that somewhat right - the answer is "receiving transactions over Eth doesn't affect the world state" - only mined blocks can do that.
So every node receives every transaction, and stores it in the local transaction pool, _but doesn't execute it_. So, I'd typically say that receiving transactions over the P2P port is normal & safe, but without full understanding of your goals, I just want to be careful :)
Hello RobbeV, I think you need to [mount](https://docs.docker.com/storage/volumes/#choose-the--v-or---mount-flag) the `config.toml` from the host file system into the container
My understanding is that @SuzanaMaranhao wants a node to be able to have a local copy of the blockchain, but not be able to inject new transactions into the network. So it would be a "read only" node.
It can be used to "publish" the information of the blockchain and allow (for example) any actor to participate as "observers" but without having the possibility to inject new transactions.
This could be done by wrapping the JSON-RPC interface with a filtering sw, but it would depend on the operator of the node.
The question is if the restriction on writes can be imposed at the replication protocol level, so the operator of the observer node can not override it
As a side note, @SuzanaMaranhao in Brasil, LACChain in several other countries, we in Alastria and the European Union EBSI (where I also participate) would welcome this functionality, to better implement what we all call Public-Permissioned blockchain networks.
It's possible "account permissioning" may provide the required behaviour. In that, every transaction must be signed - and account permission effectively only allows certain keys to sign transactions. Thus, transactions signed by disallowed keys would be rejected by the miner, and never included in a block.
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
fast_sync
*Fast sync was requested, but cannot be enabled because the local blockchain is not empty.*
data-path="~/database_ropsten"
sync-mode="FAST"
I have defined the configuration options and when using with different network, different path for the data directory was defined. What I am doing wrong here.
*Fast sync was requested, but cannot be enabled because the local blockchain is not empty.*
data-path="~/database_ropsten"
sync-mode="FAST"
I have defined the configuration options and when using with different network, a different path for the data directory was defined. What I am doing wrong here.
That is a possibility, but is is not very scalable in a setting like that. The idea is that anybody can join the network and create and deploy whatever smart contracts the want, including any accounts they want. Permissioning should be only at the node level. Once an entity has one node connected to the network, it essentially works as decentralized as the public Ethereum. Even more: permissioning should only be required if the node is a "writer". For reader nodes, the ideal would be that anyone can join and leave the network when they wish.
Using an analogy: it would work like in the "real economy": in order to create a business and start operation, you have to register the identity of the company in the business registry of some country. Once this is done, you can do whatever you wish (legal things, of course).
But there may be "observers", like regulators or civil society watchdogs, that do not participate in the economic activity but can observe it.
Or an even better analogy: the Internet (at the level of the infrastructure).
The Internet is permissioned: the carriers, the access providers, the businesses, and even the citizens, they need to "register" to participate. Once this is done, you are basically free to do your business without asking permission.
But in the case of the blockchain we want those observer nodes to join the network but not inject transactions.
hey Diego! I tried mounting like this:
docker run --rm --name node1 -p 8545:8545 -p 13001:30303 --mount type=bind,source=/mnt/c/Users/robbe/network/udemy/node1,target=/var/lib/besu hyperledger/besu --config-file=./config.toml
Unable to read TOML configuration, file not found.
hey Diego! I tried mounting like this:
docker run --rm --name node1 -p 8545:8545 -p 13001:30303 --mount type=bind,source=/mnt/c/Users/robbe/network/node1,target=/var/lib/besu hyperledger/besu --config-file=./config.toml
Unable to read TOML configuration, file not found.
Still getting same error :/
try this:
```shell
$ docker run --rm --name node1 -p 8545:8545 -p 13001:30303 -v /mnt/c/Users/robbe/network/node1/config.toml:/config.toml hyperledger/besu --config-file=/config.toml
```
I don't know exactly the path of your local `config.toml` but you should adjust this command to your needs
That found the file, thank you so much! So if i want to use a path on my local machine I have to first set it with the -v flag and than type the path followed by : and then an alias?
the `-v` links files (or directories) between your system and the container. The `--config-file=/config.toml` is executed in the context of the container, then the path you should refer there is the one that's linked in the `-v` option (the value after the colon)
Thank you very much, u helped me alot!
Are normal besu nodes mandatory? Can I have just my application nodes (dApp) and validator nodes only? _My app nodes can directly make requests to validator nodes and they in turn can validate/add block._
Are normal besu nodes mandatory? Can I have just my application nodes (dApp) and validator/bootnodes nodes only? _My app nodes can directly make requests to validator nodes and they in turn can validate/add block._
thank you, @hesusruiz. You explained very well the point.
As pointed out, it cannot depend on the observer node operator. Like principle of least privilege.
Unfortunately, account permissioning is also not the solution to this problem. The issue is really nodes, and I do not want to use accounts to solve nodes.
By the way, the observer node is a very important feature to our Brazilian Blockchain Network too. We want to create a permissioned government network. Not everyone can validate, not everyone can write. But every citizen should be able to deploy an observer node and read the information “by themselves”. Ideally this observer node would not even need permissioning.
So the question is… What is the best way to implement “observer nodes” in Besu?
One solution we imagined was the one described before. "One possibility would be to filter what is been received by the peer-to-peer port. Besu offers the possibility of exposing or not some APIs to the user (for example, enabling ETH and disabling ADMIN) so I am wondering if it also possible to filter or not some functions on the peer-to-peer port. In this case I want to enable block synchronization (I mean, the observer node can synchronize and read all the info) but disable the possibility of receiving transactions (I mean, the observer nodes cannot send/relay transactions to the network.)"
Does it make sense? What would be other approaches?
Im still struggling to get the besu docker network working, but i feel like im close!
I use this command for node 1:
`docker run --rm --name node1 -p 8545:8545 -p 30303:30303 -v /mnt/c/Users/robbe/network/IBFT-Network/Node-1/data:/data -v /mnt/c/Users/robbe/network/IBFT-Network/genesis.json:/genesis.json hyperledger/besu --data-path=/data --genesis-file=/genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-allowlist="*" --rpc-http-cors-origins="all"`
For node 2 I use:
`docker run --rm --name node2 -p 8546:8545 -p 30304:30303 -v /mnt/c/Users/robbe/network/IBFT-Network/Node-2/data:/data -v /mnt/c/Users/robbe/network/IBFT-Network/genesis.json:/genesis.json hyperledger/besu --data-path=/data --genesis-file=/genesis.json --bootnodes=enode://f13e0a2e23eb233f7eccd52e0cec902c4d0178838d205a53fd1f3bd72ad6bdb330e0d94d6579db2567c4c462e05a1d3c5c75311fe2a1140532edb6913a6db201@127.0.0.1:30303 --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-allowlist="*" --rpc-http-cors-origins="all" --rpc-http-port=8546 --p2p-port=30304`
Both nodes can't find each other and stuck on: No sync target, waiting for peers: 0
Im still struggling to get the besu docker network working, but i feel like im close!
I use this command for the bootnode:
`docker run --rm --name node1 -p 8545:8545 -p 30303:30303 -v /mnt/c/Users/robbe/network/IBFT-Network/Node-1/data:/data -v /mnt/c/Users/robbe/network/IBFT-Network/genesis.json:/genesis.json hyperledger/besu --data-path=/data --genesis-file=/genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-allowlist="*" --rpc-http-cors-origins="all"`
For the other nodes I use:
`docker run --rm --name node2 -p 8546:8545 -p 30304:30303 -v /mnt/c/Users/robbe/network/IBFT-Network/Node-2/data:/data -v /mnt/c/Users/robbe/network/IBFT-Network/genesis.json:/genesis.json hyperledger/besu --data-path=/data --genesis-file=/genesis.json --bootnodes=enode://f13e0a2e23eb233f7eccd52e0cec902c4d0178838d205a53fd1f3bd72ad6bdb330e0d94d6579db2567c4c462e05a1d3c5c75311fe2a1140532edb6913a6db201@127.0.0.1:30303 --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT --host-allowlist="*" --rpc-http-cors-origins="all" --rpc-http-port=8546 --p2p-port=30304`
Both nodes can't find each other and stuck on: No sync target, waiting for peers: 0
The official doc says IBFT 2.0 needs 4 nodes to be BFT and also says 2/3rd should be up and running in order to successfully add blocks. So, does this mean that having 6 validator nodes will give me leeway of 2 failed nodes?
I would suggest you to take a look at [this repository](https://github.com/ConsenSys/quorum-dev-quickstart), where are many examples for running a few nodes and services in isolated environments (basically through docker-compose)
I fixed it. the nodes couldnt connect on the docker bridge network so i added a flag --network host to all the nodes and it worked!
excellent!
Hey @rampatra, Sorry for the confusion - you must have at least 4 validators to be BFT safe - meaning you can afford to lose 1 validator due to failure/byzantine behaviour.
You do NOT need 6 (though if you do, you can afford to lose 2 validators at the same time)
Hei @rampatra, normal nodes are completely not required. A validator offers all the features of a "normal" node, plus a few extra ones (ie making blocks). So yes, you can a validator can be a bootnode, and you can also submit transactions to a validator.
Hi @mwaser is this a single compose file with n nodes on a single VM? Or mulitple VMs each with an instance of Besu managed by docker? If it is the former using a docker bridge for the networking would be the simpler approach akin to https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/templates/besu/docker-compose.yml#L505
Hi @mwaser is this a single compose file with n nodes on a single VM? Or mulitple VMs each with an instance of Besu managed by docker? If it is the former using a docker bridge for the networking would be the simpler approach akin to https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/templates/besu/docker-compose.yml#L505
Also on that note, if you're attempting to peer to the bootnode, you'll need to map the discovery port to the host port.
We've got a quickstart which you can spin up here: https://www.npmjs.com/package/quorum-dev-quickstart - this creates a compose file you can use for reference and customize to suit your requirements
Has joined the channel.
Thank you very much madeline!
So, in short, if I have 4 then I can afford to lose 1 and still successfully add blocks. If I have 6 then I can afford to lose 2 while still successfully adding blocks.
@trent.mohay So, in short, if I have 4 then I can afford to lose 1 and still successfully add blocks. If I have 6 then I can afford to lose 2 while still successfully adding blocks.
If this is the case then I am still confused. In the former, having 3 nodes suffices but in the latter, it is 4 nodes. Could you pl kindly clarify?
sure sure :) So - for a network to be BFT safe, there must be enough validators to determine if one of them is "faulty" - and the minimum number required (including the faulty one) is 4.
sure sure :) So - for a network to be BFT safe, there must be enough validators to overcome the effects of a faulty/byzantine node - and the minimum number required (including the faulty one) is 4.
i.e. having 4 validators allows the IBFT 2.0 protocol to still successfully produce blocks, even if 1 of the nodes is faulty.
If, in a network of 4, you have 2 or more faulty nodes you could:
1. Get the chain halting
2. have forks in the chain (which is bad, as IBFT is meant to provide transaction finality)
If you only had a network configured with 3 nodes, then a single faulty node would be sufficient to halt the network.
Thanks @trent.mohay. This makes sense. 🙏
Hi there,
Is it possible to upgrade private network protocol (IBFT2.0) attributes such as gasLimit or others without restart the node ?
Has joined the channel.
hello, I am not able to make backup of Besu node. I have tried copying the /opt/besu/data/database folder from docker container but I don't know what to do with it. Previously I was using a ethash consensus network but now I want to change consensus to Clique with the backup from ethash node. please help me it is very urgent
Hi @joshuafernandes It started life as the quickstart and is using the docker bridge. Have you ever tried implementing permissions on the quickstart? It works perfectly without permissions but with permissions, discovery does not work either internally or externally. I understand that it has to do with p2p-host -- and I probably have to make sure that each node has only one address (for internal and external) but haven't had a chance to implement yet.
It would be awesomely helpful if the team 1) just changed the .env file to the newest version so it doesn't fail the second you tell it to use the newest perms version (that took me a while to debug) and 2) told us what we need to do to get internal and external peer-discovery working -- particularly if there is an easier way than having seven separate config files (each with a different p2p host)
Hi @joshuafernandes It started life as the quickstart and is using the docker bridge. Have you ever tried implementing permissions on the quickstart? It works perfectly without permissions but with permissions, discovery does not work either internally or externally. I understand that it has to do with p2p-host -- and I probably have to make sure that each node has only one address (for internal and external) but haven't had a chance to implement yet.
It would be awesomely helpful if the team 1) just changed the quickstart .env file to the newest version so it doesn't fail the second you tell it to use the newest perms version (that took me a while to debug) and 2) told us what we need to do to get internal and external peer-discovery working -- particularly if there is an easier way than having seven separate config files (each with a different p2p host)
@rampatra - The system can tolerate at most F faulty nodes in a N validator nodes network, where N = 3F + 1 -- or F <= (N - 1)/3 -- with a minimum of four nodes. Using this formula, 4 nodes can't have any faulty nodes, 5-6 can have 1, 7-9 and each successive triplet can support 1 additional faulty node (So, at the limit, it can tolerate 1/3 faulty nodes).
@lemonsuy - Why is restarting the node a problem?
I suspect that your real problem is that your gasLimit is in the genesis file and all your nodes must have the same genesis file hash -- so even restarting the node won't solve the problem since it won't be able to connect.
@mwaser My problem is I already launched the blockchain network and want to adjust the gasLimit value in the genesis file to update the network but I don't wanna have a down time for the network.
So my question is there are any ways to update the network without down time ?
@lemonsuy - I do NOT have enough knowledge to be sure that I can accurately answer your question. I *THINK* that you may not increase your gas limit above that set in your Genesis file -- but someone else who knows the answer needs to chime in.
The answer to your question "is there are any ways to update the network without down time?" is --
a) anything in the command line or config file can be changed and nodes bounced one by one and you'll have no downtime
b) someone else needs to answer the question about items in the genesis file
@mwaser Thank you 🙏
Has joined the channel.
Hi, is there a use case with sample code to test besu in lab
What kind of test would you like to do? Just tryout Besu and see how it works or more?
I would like access to all test use cases with sample code if there are more than one
Thank you Nicolas for responding so quickly
Okay, I initially understood this from the doc but @trent.mohay said a slightly different thing.
@mwaser Okay, I initially understood this from the doc but @trent.mohay said a slightly different thing.
This is what we discussed earlier: https://chat.hyperledger.org/channel/besu?msg=kzkcR2apcLy8BWXDr
Does Besu have a feature that lets my different dApp nodes to communicate with each other? Can this be done somehow with the help of Orion nodes? Any link or reference would be really helpful.
Use cases for Besu are the same as for any Ethereum client. You can tryout any dapp, any smart contract that you can find in the Ethereum ecosystem and play with them on Besu. Besu is just a regular Ethereum client.
Could you please provide me one link you have handy
For instance, you can play with the Truffle pet shop example, we provide a full example of how to run it on a private Besu network here https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/#smart-contract-and-dapp-usage-with-the-blockchain-network
The reason why we suggest to play with it on a private network is for you to be in a free gas network and experiment with Besu. But this is the same Truffle pet shop example code that you can test on Ropsten or any testnet. (Try not to play with it on Mainnet if you want to save your money...).
One thing that is specific to Besu is enterprise parts:
- the private network privacy
- permissionning
- monitoring
These enterprise features are expected to run in a private network:
- https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network/
- https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/
Thank you Nicolas. That was very helpful
Then one you will have tried that, you will be able to clone and customise and deploy any dapp/smart contracts that you can find on Ethereum network. They usually provide source code in a Github repository, so you have everything to learn from it.
Also look at https://www.trufflesuite.com/tutorials for good tutorials and for instance https://openzeppelin.com/contracts/ for framworks to write your own advanced contracts.
Last step will be to design your own use case. Good luck!
Then once you will have tried that, you will be able to clone and customise and deploy any dapp/smart contracts that you can find on Ethereum network. They usually provide source code in a Github repository, so you have everything to learn from it.
Also look at https://www.trufflesuite.com/tutorials for good tutorials and for instance https://openzeppelin.com/contracts/ for framworks to write your own advanced contracts.
Last step will be to design your own use case. Good luck!
Hi, could you explain exactly what you would like to do? To me dapps usually communicate by reading/writing the chain, so there's nothing to do on the Besu side. But given you cite Orion, that is our privacy enclave software that has nothing to do with making dapps communicate together, I wonder what your goal really is. Thanks for providing more detail.
Thanks for helping out.
Let's say I have 2 app nodes connecting to 2 different besu nodes (each having their own orion nodes).
Now, I want one app node of mine to send some messages to the other app node. So, does Besu provide a way to do this?
@NicolasMassart
He is correct that you do not need six. He is incorrect that you can lose 2 validators at six. You must have 7 validators to survive having 2 faulty ones.
I will consider that what you call "app node" is a service running on some machine with or without a graphical web interface. So let's say it's just regular services. They connect to your Besu node using either a library (web3j for instance if your apps are Java apps) or directly by making JSON-RPC calls to Besu. Is that right?
Yes, think of them as simple java sprint-boot apps communicating with besu nodes via web3j.
Now I want the 2 java sprint-boot apps to communicate with each other without involving the chain.
Of course, I can implement this myself but lookup etc. would be needed and it would be a lot of work to do. If Besu supports this out of the box somehow then nothing like it.
Or, does besu have an api to send messages among besu nodes?
If yes, I can use the same to send the messages and the other app node can somehow subscribe/poll for messages at the other end.
Or, does besu have an api to send messages among besu nodes?
If yes, I can use the same to send the messages and the other app node can somehow subscribe/poll for messages from the other besu node.
Thanks a lot for the clarification.
No, sorry, Besu doesn't provide this kind of feature. P2P communication happens only Between Ethereum nodes about the Ethereum protocol itself. There's not way to "plug" your apps in this network to exchange informations with other apps that would be somewhere connected on the network for what I know.
If you don't want to pass through the chain to exchange data, you will have to setup your own communication system. You can use a lot of existing technologies for that but they are not related to Ethereum.
Also, last detail, what kind of info would you like to pass between your apps? Maybe it would help me give you some ideas.
A straight forward example would be to instruct an app node to make a transaction on the chain. Another would be one app node requesting some internal data from other app node.
Hum, I guess yes you have all the current decentralised computing tools to check for... discovery, messaging, this subject is to broad to give an enlightened advice without knowing far more about your project. If you would like to give me more confidential infos, just DM me.
Hi team, how to limit the log size under /log/besu/node1.log? The log with debug info can grow to over 1GB in a couple of weeks.
log4j2-rollingdebug.xml.txt
There's several solutions. First, log4j can be used to setup rolling debug files. I've attached a fairly elaborate one I use for debugging.
Second many sysadmin tools can do zip and rolling archives. I'd have to ping our devops folks but it's a fairly low overhead service that will do daily ziping of a particular /var/log/* set/
Second many sysadmin tools can do zip and rolling archives. I'd have to ping our devops folks but it's a fairly low overhead service that will do daily ziping of a particular /var/log/* set.
Antoine works at Splunk and can also help set up sending logs directly to splunk as a third option. Elk is another such solution.
thanks @shemnon!
@EmcLab check out https://besu.hyperledger.org/en/stable/HowTo/Monitor/Logging/ and https://besu.hyperledger.org/en/stable/HowTo/Monitor/Splunk-Enterprise/
Still fighting with permissions and discovery with the quick-start. Without permissions, the nodes are fully interconnected. With permissions, every node connects to the boot node and nothing else. With permissions, the boot node must have --p2p-host=$$(hostname -i) but whether all other nodes have it or not has no effect. If I drop a node off the permissions list. the boot node immediately drops it. Dropping the boot node off the permissions list obviously kills everything. What am I missing here?
An external node will connect to the boot node and start downloading blocks. It often will crash with maximum retries and show no peers. When I retry enough so that it finally reaches the current block, it shows no peers and doesn't continue. If I restart it, it downloads the intervening blocks and repeats the behavior.
An external node will connect to the boot node and start downloading blocks. It often will crash with maximum retries and show no peers. When I retry enough so that it finally reaches the current block, it shows no peers and doesn't continue. If I restart it, it downloads the intervening blocks and repeats the behavior. Eventually though, it does connect and stay connected to the boot node.
To run an ETH archive node, it's the combination of these 2 options, right ?
`--pruning-enabled=false
--sync-mode=full`
To run an ETH archive node, it's the combination of these 2 options, right ?
```--pruning-enabled=false
--sync-mode=full```
Are there any sort of cache options, to configure how much RAM besu uses ? (in combination with graalVM) Or any other sort of performance tweaking when running on a beefy server ?
Has joined the channel.
Hi
i am working on the onchain permisioning
git clone https://github.com/ConsenSys/permissioning-smart-contracts.git
when i tried to build using the yarn run build getting the following error message
SUPPORTED TYPESCRIPT VERSIONS: >=3.2.1 <3.5.0
YOUR TYPESCRIPT VERSION: 3.5.1
after that not continuing
@s157261 - Yeah. I never got it to compile. Use one of the top two artifacts at https://github.com/ConsenSys/permissioning-smart-contracts/releases -- don't try to compile from source. Also, note that it is VERSION 2. Make sure that you are using a besu version > 20.10.0 and be sure to use the --permissions-nodes-contract-version=2 command line option (or config file or env option).
I've got it working (finally) but it breaks discovery for me. :-( If you can figure out why, I'd love a "heads-up"
@s157261 - Yeah. I never got it to compile from source. Use one of the top two artifacts at https://github.com/ConsenSys/permissioning-smart-contracts/releases -- don't try to compile from source. Also, note that it is VERSION 2. Make sure that you are using a besu version > 20.10.0 and be sure to use the --permissions-nodes-contract-version=2 command line option (or config file or env option).
I've got it working (finally) but it breaks discovery for me. :-( If you can figure out why, I'd love a "heads-up"
@s157261 - Yeah. I never got it to compile from source. Use one of the top two artifacts at https://github.com/ConsenSys/permissioning-smart-contracts/releases -- don't try to compile from source. Also, note that it is VERSION 2. Make sure that you are using a besu version > 20.10.0 and be sure to use the --permissions-nodes-contract-version=2 command line option (or config file or env option).
Make sure you do things in the right order. For example, do not enable the contracts until after you've run the permissions app and added your initial set of nodes.
I've got it working (finally) but it breaks discovery for me. :-( If you can figure out why, I'd love a "heads-up"
With my permissioning/discovery problems, there are a couple of other probably related facts that I should repeat (actually, I'll repeat all facts here):
1. Putting more than one boot node in the boot nodes option causes a node to not connect to any boot node
2. The boot nodes option will not work for an external node. The only option that works is the static nodes option.
3. Internal nodes (those in the quickstart) discover each other when there is no permissioning, only connect to the boot node when permissioning is active.
4. External nodes connect to a static node but no other node (I'm guessing that you need a boot node for discovery to work).
I'm sure that I'm missing one last little discovery (or boot node) thing or two (though why it works internally but not externally without permissioning but not with permissioning has me scratching my head as well).
With my permissioning/discovery problems, there are a couple of other probably related facts that I should repeat (actually, I'll repeat all facts here):
1. Putting more than one boot node in the boot nodes option causes a node to not connect to any boot node
2. The boot nodes option will not work for an external node. The only option that works is the static nodes option.
3. Internal nodes (those in the quickstart) discover each other when there is no permissioning, only connect to the boot node when permissioning is active.
4. External nodes connect to a static node but no other node (I'm guessing that you need a boot node for discovery to work).
5. I'm guessing that my external boot node problem is probably because p2p-host is not set correctly because it is already set so that the internal nodes can connect (and discover when permissions are disabled). I could set the p2p-host correctly for external if I could get my internal nodes to use the external address as a boot node -- but I'm not succeeding at that.
I'm sure that I'm missing one last little discovery (or boot node) thing or two (though why it works internally but not externally without permissioning but not with permissioning has me scratching my head as well).
Hmmm. Possible new clue. Only the first node can serve as a boot node. If I try using node 3 as a boot node for node 4, it doesn't work and node 4 doesn't connect to the network. :-(
Hmmm. Possible new clue. Only the first node can serve as a boot node. If I try using node 3 as a boot node for node 4, it doesn't work and node 4 doesn't connect to the network. :-(
Though, of course, node 3 CAN serve as a boot node if permissions isn't enabled . . . . :-P
Hmmm. Possible new clue. Only the first node can serve as a boot node. If I try using node 3 as a boot node for node 4, it doesn't work and node 4 doesn't connect to the network. :-(
Though, of course, node 3 CAN serve as a boot node if permissions isn't enabled . . . . :-P -- but with the oddity that all nodes cross-connect EXCEPT 1 and 4.
Someone has got to know what is going on. Does ANYONE have boot nodes and permissions FULLY working (and discovery)? Team?
Hmmm. Possible new clue. Only the first node can serve as a boot node. If I try using node 3 as a boot node for node 4, it doesn't work and node 4 doesn't connect to the network. :-(
Though, of course, node 3 CAN serve as a boot node if permissions isn't enabled . . . . :-P -- but with the oddity that all nodes cross-connect EXCEPT 1 and 4.
Someone has got to know what is going on. Does ANYONE have boot nodes and permissions FULLY working (and discovery)? Team?
This is starting to reach the point of becoming a make-or-break issue as to whether or not we can use besu . . . .
Hmmm. Possible new clue. Only the first node can serve as a boot node. If I try using node 3 as a boot node for node 4, it doesn't work and node 4 doesn't connect to the network. :-(
Though, of course, node 3 CAN serve as a boot node if permissions isn't enabled . . . . :-P -- but with the oddity that all nodes cross-connect EXCEPT 1 and 4.
Someone has got to know what is going on. Does ANYONE have boot nodes and permissions FULLY working (and discovery) -- especially for the quickstart and external nodes? Team?
This is starting to reach the point of becoming a make-or-break issue as to whether or not we can use besu . . . .
Hmmm. Possible new clue. Only the first node can serve as a boot node. If I try using node 3 as a boot node for node 4, it doesn't work and node 4 doesn't connect to the network. :-(
Though, of course, node 3 CAN serve as a boot node if permissions isn't enabled . . . . :-P -- but with the oddity that all nodes immediately cross-connect EXCEPT 1 and 4 which take some time to finally connect.
Someone has got to know what is going on. Does ANYONE have boot nodes and permissions FULLY working (and discovery) -- especially for the quickstart and external nodes? Team?
This is starting to reach the point of becoming a make-or-break issue as to whether or not we can use besu . . . .
you're confusing bootnodes and connecting to peers. Bootnodes are used for discovery and give the address of other nodes, and possibly theirs. It is possible during discovery that your node will not connect to all the bootnodes as peers.
Bootnodes are only really useful for large public networks. You might be better off having static nodes for small private networks.
Has joined the channel.
is besu is same like geth fork?
[ ](https://chat.hyperledger.org/channel/besu?msg=x7RFfQwF9zvGtCsbJ) It's an ETH client like geth, but it's a completely different implementation in a different programming language.
@atoulme - Hi! No, I am not confusing boot nodes and connecting to peers. As I said in number 2, static nodes DOES work for external nodes and, though I didn't mention it, static nodes also works for internal nodes. It is definitely not a connectivity issue. It is a discovery issue. There is also the question why permissions have ANYTHING to do with discovery as long as there is connectivity (static nodes are stopped without permissions just like any other node so why do static nodes work and discovery does not?).
I wasn't expecting nodes to connect to all the boot nodes. The problem is that when I put two boot nodes in the command line or config file, the node stops working (i.e. [
@atoulme - Hi! No, I am not confusing boot nodes and connecting to peers. As I said in number 2, static nodes DOES work for external nodes and, though I didn't mention it, static nodes also works for internal nodes. It is definitely not a connectivity issue. It is a discovery issue. There is also the question why permissions have ANYTHING to do with discovery as long as there is connectivity (static nodes are stopped without permissions just like any other node so why do static nodes work and discovery does not?).
I wasn't expecting nodes to connect to all the boot nodes. The problem is that when I put two boot nodes in the command line or config file, the node stops working (i.e. [
@atoulme - Hi! No, I am not confusing boot nodes and connecting to peers. As I said in number 2, static nodes DOES work for external nodes and, though I didn't mention it, static nodes also works for internal nodes. It is definitely not a connectivity issue. It is a discovery issue. There is also the question why permissions have ANYTHING to do with discovery as long as there is connectivity (static nodes are stopped without permissions just like any other node so why do static nodes work and discovery does not?).
I wasn't expecting nodes to connect to all the boot nodes. The problem is that when I put two boot nodes in the command line or config file, the node stops working (i.e. [
@atoulme - Hi! No, I am not confusing boot nodes and connecting to peers. As I said in number 2, static nodes DOES work for external nodes and, though I didn't mention it, static nodes also works for internal nodes. It is definitely not a connectivity issue. It is a discovery issue. There is also the question why permissions have ANYTHING to do with discovery as long as there is connectivity (static nodes are stopped without permissions just like any other node so why do static nodes work and discovery does not?).
I wasn't expecting nodes to connect to all the boot nodes. The problem is that when I put two boot nodes in the command line or config file, the node stops working (i.e. [
Has joined the channel.
Hello, any node as a services where i can pay to get a private besu network to recommand pls ?
Thank you for clarifying and sorry for the assumption. Can you explain how it doesn’t work? Is it that besu doesn’t start, doesn’t run discovery, or something else?
Kaleido?
No worries. It's great that you stated your assumptions at the top and if I had been assuming that, it would have solved the problem.
If I have one boot node in the command line or the config file, it works (regardless of permissions) and a node connection (at least to the boot node) is made. If I have two boot nodes, no connection is ever made.
I'm hoping that this is key to unlocking the whole problem.
@Renaud404 - Azure has such a thing but it places the nodes on overly expensive machines. Besu will run on a Raspberry pi, it does NOT need the high-performance machines the Azure template gives it. The template is also a very old version of besu and has several other problems. Do NOT use this.
OTOH, you can easily set up a lightweight virtual machine on Azure and create your own node on it. This isn't really node-as-a-service but it is a pretty good alternative.
Are the two bootnodes aware of each other and have the same genesis file? Can you report this as a bug?
Will test and get back to you. Great question. May be a few hours or tomorrow so I don't piss off the wife working weekends too much. ;-)
Everything has the same Genesis file (they wouldn't connect even with static nodes otherwise). ;-)
I'm disinclined to immediately report this as a bug if no one else is having the problem -- unless I can determine what in my setup makes me a problem child (something that I can change or something that I cannot change).
I'm disinclined to immediately report this as a bug if no one else is having the problem -- unless I can determine what in my setup makes me a problem child (i.e. is it something that I can/should change or something that I cannot or should have to change).
I'm disinclined to immediately report this as a bug if no one else is having the problem -- unless I can determine what in my setup makes me a problem child (i.e. is it something that I can/should change or something that I cannot or should not have to change).
Same boat, family comes first
thx for the answer, yes azure is too expansive if you just need some nodes... but i dont want to install everything myself, just want my Dapp run on a hosting..
Exactly what i need @atoulme thx, any other to compare?
No idea. I should set one up I guess lol. What’s your budget? Are you trying to play with besu or get it run professionally?
I've run into a very interesting unexpected occurrence. While testing, i periodically remove the docker containers that my besu nodes are in. Recently, I dropped all but my boot node. The new nodes were syncing against that node for a while -- but now I see that all the new nodes are building a new chain while remaining connected to the old chain (which is not advancing -- but which is ten times the length). I'm curious how this happens. Did the new nodes all realize that they were syncing off of only one chain and decide to invalidate a block? Is it possibly because the longer chain had become stale? I'm not worried about this since it obviously won't happen on a production network -- but understanding it would, I believe, help me to better understand Besu.
Installing everything yourself is very easy if you use the quick-start. The biggest hassle is changing all the keys . . . .
What consensus algorithm?
In any case, losing over half the block producers is not a situation that will self-resolve without manual intervention. For a PoA chains (clique, IBFT, QBFT) I would recommend bringing validators back in one at a time and waiting for a full sync before starting up the next one. For Proof of Work I would turn off mining in that case until each miner has fully synced.
This is interesting. If I have the following boot node sequence:
1 uses 2, 2 uses 1, 3 uses 2, 4 uses 3, 5 uses 4, 6 uses 5 and 7 uses 6 . . .
WITHOUT PERMISSIONS:
1 immediately connects with 2 peers (probably 2 and the RPC),
2 and the RPC connect with all 7 nodes other than themselves),
3-7 connect with 6 (probably all but 1)
Interestingly, but possibly irrelevant. Node 2 and the RPC pick up the fact that there are 47K nodes. They quickly sync but the other nodes only recognize different target chain heights in the low hundreds and stop and stay there when they reach them despite being fully connected.
If I stop and restart the docker containers, node 3 recognizes node 1, quickly picks up the correct target chain height and quickly syncs. The other four nodes belatedly realize the correct chain height and sync somewhat more slowly as they are competing with each other for bandwidth. It is also worth noting that the peer counts are radically different with peers dropping off and reconnecting at a rate much higher than I am comfortable with -- but probably due to network bottle- necking.
Eventually, the nodes trifurcate into nodes 1,2,6 being fully connected; 3 by itself and 4,5,7 being connected only through 5.
My question here being, why don't they eventually all connect with their original boot nodes? The network is stuck in this position. Why don't the nodes reconnect?
Again, if I stop and restart the nodes. they reconnect again with boot root 2 and those needing syncing being fully connected and 1, the fully synced 6 and the rpc node with only one connection.
Eventually. they all are synced at 47K blocks but it requires a stop and restart to cause block production to start happening again -- even though several of the nodes have the three or more necessary peer validator connections.
Eventually. they all are synced at 47K blocks but it requires yet another stop and restart to cause block production to start happening again -- even though several of the nodes have the three or more necessary peer validator connections.
Repeating the process from the beginning showed exactly the same initial connection result:
1 immediately connects with 2 peers (probably 2 and the RPC),
2 and the RPC connect with all 7 nodes other than themselves),
3-7 connect with 6 (probably all but 1)
And again node 2 and the rpc fiure out the 47L target block while node 4 acts like node 6 did last time.
The runs diverged slightly in that node 4 *did* reach the 47K while the other four again stalled out with different targets in the low hundreds. This meant that the network only had to be stopped and restarted once for all of them to reach 47K blocks and one more time to start producing blocks again.
Behavior being replicated, time to move on to with permissions.
WITH PERMISSIONS:
exact same setup as previously with the sole difference being the argument --permissions-nodes-contract-enabled added to the command line of every node.
NOTHING CONNECTS.
Previously, when everything connected to node 1 as a boot node, every node totally interconnected without permissions and only connected to boot node 1 with permissions.
Next (tomorrow) I'll try everything connected to node 2 as a boot node with permissions to see if it is identical to the results with one or if there is a discrepancy that may tell me something.
This is killing me . . . . :-(
see what Danno says in the chat
you can't kill nodes like that and not have some problems. You might want to look at the consensus algo you're working with.
run professionnally, got a client ready to pay for a Dapp i can develop, looking for something easy to host
are you looking for a private network or mainnet?
you're right, but the security concern affraid me..
Has joined the channel.
Good morning!
I try to make a clique proposal on Goerli via HTTP RPC but I always get,
```
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -32604,
"message" : "Method not enabled"
}
}
```
I'm running Besu 21.1.0 with the following config:
```
--rpc-http-enabled=true \
--rpc-http-port=10545 \
--rpc-ws-api="ETH,NET,WEB3,CLIQUE" \
```
Why would it say, that the method is not enabled?
Hi,I use the dapp with metamask which however does not support authenticated rpc. are there other ethereum wallets that support it?
private
IBFT and yeah, I wouldn't try that with a real network. As Ii said "I'm not worried about this since it obviously won't happen on a production network -- but understanding it would, I believe, help me to better understand Besu."
I think I've got an idea for a really interesting test that may tease out a lot more info. I really think I've got something set up wrong related to discovery.
OK. This really, REALLY sucks. I did my test (had two boot nodes pointing at each other with evenly balanced nodes using each) expecting each boot node to connect to those nodes using them and no other cross-connections. I was surprised to see it work. I said "OK, using only one boot node doesn't work". BUT, I always test my hypotheses. I went back to one boot node (totally cleaning everything up).
Now that set-up works totally perfectly as well. I would almost swear that it is absolutely identical to the configuration that failed repeatedly before -- but I must be mistaken and changed something . . . .
SIGH. I wonder what the heck it was. It cost me multiple days and I have zero knowledge to show for it.
@shemnon - IBFT. But it does work if the chain is pretty short (like when you only ran it long enough to add nodes with the permissioning app and then restart it to enable the permissions contract). ;-)
Can anyone please kindly recommend a besu api or a seperate tool that will allow different application nodes of mine to communicate with each other off-chain?
your last parameter should say http not ws
Say more. What kind of messages? All the nodes? Point to point? Authenticated? Encrypted?
I am talking about message between my app nodes and not besu nodes (although I have no problem in using besu nodes for this).
The messages can be simple json payloads. Not encrypted. Point-to-point. Http would be fine as the messages won't be continuous like chat but one-off.
So maybe run a http server and send data between your apps?
GRPC would do too?
actually the thing is, we do not want to code the discovery of other nodes ourselves and wanted to use some existing api if possible.
For example, let's say, I have 2 nodes named, x and y. I just want to make a simple http call saying send message "abc" to "y" and that should be it.
With gRPC, I think I have to handle the addressing, etc. That is, I have to convert the node name to its proper ip address or something. Am i right?
As besu already supports some sort of private messaging via orion nodes, I was wondering if I can use the same API for my use.
As besu already supports private messaging via orion nodes, I was wondering if I can use the same API for my use.
well, ok. You could always talk over private transactions :)
There was also some years back a chat protocol called whisper that was quite interesting but was heavy on use. It had interesting properties, but was never implemented by besu and deprecated by geth.
if you'd like to create your very own subprotocol to send messages over rlpx to other nodes, I think that's doable, but would require some heavy coding in Besu. I made Apache Tuweni's implementation of subprotocols more modular so it would allow custom subprotocols, but it's not a client.
well discovery happens over udp
udp is lossy, best effort.
Okay, so the only ready to use option for us now would be to use private transaction to send private messages. Hmm.
What that tells me is we'd need a better discovery for private networks that leaves a lot less to chance.
Please also note - did you reset your node keys in between runs?
Discovery uses nodekeys to create identities, which are used to xor against the other nodes to find which bucket to place them in. This means that if you don't ask the right bucket, you can get an empty list of peers.
This is meant for max resilience on a crowded network of 1000+ peers.
No. I spent a long time changing all the keys at the very beginning and haven't changed them since.
You have a cool use case though. Care to open a bug on the repo?
how many nodes? Which consensus algo? What type of RPC? What SLA do you need?
Sure. You mean besu github issues?
ya
Cool, will do it right away.
If I changed them, I'd have to find them and update my list to permission. It already takes me way too long between test. :-(
awesome
sorry to hear.
It changed so radically and completely that I would doubt that it was due to udp. I would have expected it to work at least once in all my failed tests and fail in some of my successful tests.
It changed so radically and completely that I would doubt that it was due to udp. I would have expected it to work at least once in all my failed tests and/or fail in some of my successful tests.
I thought we'd settle on blaming udp, but if you want a bit more
It would be great to see a run that failed with logging level
see what played out.
You can also feel free to open an issue with Besu such as: "private networks have no guarantee of interconnection" and explain your use case.
Heh. If it happens again, I'll grab the logs. I just hate not knowing since if you don't know, you can't prevent it or fix it in the future.
Then we can think of a deterministic way of guaranteeing discovery. I have the sneaky feeling something is way off.
I believe the team also worked on other ways to guarantee connectivity, and maybe someone else will comment on the issue.
We also have DNS discovery, but it's mostly for public networks.
If you are part of the team and would like me to file a bug, I would be happy to. The next step is that I need to do is switch the p2p-host option to using the external addresses of at least a couple or three of the nodes so that they can be boot nodes for external nodes (unless there is some other way to do it). I'm currently living in fear that that won't work . . . .
I'm a committer yes. It would definitely be of value to me if you took the time to file an issue, and I would pay that forward by exploring how to best make sure this doesn't happen again.
Absolutely. I appreciate all the time you've spent on me. It will likely be a day or three -- after I've finished the last task of trying to externalize and I
Absolutely. I appreciate all the time you've spent on me. It will likely be a day or three -- after I've finished the last task of trying to externalize and I've collected as much knowledge as I'm going to have -- but I'd love to prevent others from going through the same agony. ;-)
Done: https://github.com/hyperledger/besu/issues/1964
thank you
shemnon
shemnon
Gotcha @mwaser Yep permissions have to do with the enode (node's public key and the ip of the node). There are 2 modes of permissioning that you can use:
1. static config file which you essentially make a list of enodes allowed. https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/config/besu/permissions_config.toml and then in the config of each node hand that file as an argument https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/config/besu/config.toml#L30 I believe this is the default mode the quickstart operates in.
Gotcha @mwaser Yep permissions have to do with the enode (node's public key and the ip of the node). There are 2 modes of permissioning that you can use:
1. static config file which you essentially make a list of enodes allowed. https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/config/besu/permissions_config.toml and then in the config of each node hand that file as an argument https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/config/besu/config.toml#L30 I believe this is the default mode the quickstart operates in.
2. Via an onchain permissions contract and you make an app to allow you to select which nodes are allowed/disallowed. Docs here: https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/ and a tutorial video here:
https://www.youtube.com/watch?v=MhOJKOoEZQQ&t=10s
Thankyou for raising that, I'll look into the newest perms version and see what we need to update :) I'll take a stab at the peering question that you have. Please feel free to correct me if Im wrong about assumptions and we can work through that.
By internal I take to mean you are referring to the containers on your box (laptop etc) locally? And externally I take to mean a box on say a different VM in Azure or another laptop etc?
The p2p-host tells Besu which host interface to listen to for p2p traffic, this is defaulted to 127.0.0.1 for security. If this isn't set on the docker containers it default to the localhost of the container and not the host, so it never sees the rest of the world.
If you're running a mixed mode like the above (some nodes on containers and some on VMs) then each container will need to use:
- set the p2p-host
- a different discovery port and bind to the host network ie `30303:30303` on one, `30303:30304` on the next and so on and adjust the same on the static-nodes.json. This allows each container node to be exposed on the same host, so that you can connect to them from an external VM on the LAN or equivalent
If you're running a mixed mode like the above (some nodes on containers and some on VMs) then each container will need to use:
- set the p2p-host
- a different discovery port and bind to the host network ie `30303:30303` on one, `30303:30304` on the next and so on and adjust the same on the static-nodes.json. This allows each container node to be exposed on the same host, so that you can connect to them from an external VM on the LAN or equivalent. Also edit any firewall rules to allow traffic
If you're running a mixed mode like the above (some nodes on containers and some on VMs) then each container will need to use:
- set the p2p-host
- a different discovery port and bind to the host network ie `30303:30303` on one, `30304:30303` on the next and so on and adjust the same on the static-nodes.json. This allows each container node to be exposed on the same host, so that you can connect to them from an external VM on the LAN or equivalent. Also edit any firewall rules to allow traffic
Internal vs. external:
I started with the dev-quickstart but changed the member nodes to also be validator nodes. Since they all use the private docker network, I've been calling them internal even though the are actually on Azure. ;-)
Similarly, my external node (i.e. not on the Docker network) is my local machine. I quickly learned that my local machine can only connect via static nodes and that I needed to use p2p-host to get discovery (and apparently connecting to boot nodes to work) since my p2p-host was set to the internal network address (soon to be changed to the external network address).
For some reason, I was having all sorts of difficulties with the internal network, permissions and discovery as well. They seem to have disappeared for no reason. Obviously I must have changed something but . . . .
For the newest perms version, the things that I noticed were
1. I had to figure out that the besu version was in the .env file and update that to a version higher than the current 10.20.0
2. I had to realize that I needed the permissions-nodes-contract-version (yes, it is elsewhere in the docs but there are . . . so . . . many . . . docs ;-) )
My firewalls are good. I can connect with static-nodes so I'm sure everything is open.
Isn't your port binding backwards?
Gotcha, now Im with you. Yep, fixed the binding :) Yep, am working over the next few months to sort out docs and examples and aiming ot make it simpler and more practical.
With permissions its a tricky one, even bootnodes wont connect unless they've been told about the new enode and then you've got connectivity. Glad its working for you now :)
Yeah, I was having weird circumstances like the second I enabled permissions (after adding the nodes), the boot node would connect to the other 6 nodes but they wouldn't cross connect. Now, after trying all sorts of experiments, it is working correctly but, as far as I know, I've undone all the changes that made it work and it still works. Makes me really nervous as "things that suddenly and inexplicably fix themselves can just as suddenly and inexplicably stop working" :-(
Gotcha, was the permissioning added to all the nodes? What I typically tend to do is to put the generalised config in a file and then share that across to all nodes so they're consistent, and then pass in dynamic args like p2p-host at runtime only. There is also a DNS mode which makes life a bit easier https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#xdns-enabled
When experimenting and firing things up, I start with the bootnodes first and then add 1 node at a time to see the effects. If the node doesnt connect then I use the APIs and go back and figure out why and then restart the process. Helps me isolate connectivity at least and if it works with one node, then it generally works with the rest - my 2c worth only ;)
There is one docker-compose.yaml in the quick-start that had the p2p-host argument with a system call. I moved that out to individual config files. I should go back and reverse that and see if that was the fix (though it still wasn't working for quite some time after that).
Normally, I am MUCH better at determining the source of a problem -- especially since I always reverse the last step just to confirm that it was the cause of the problem. I was not happy when it worked after reversing the last several things I did . . . . Hopefully, I just forgot something. The tests involved a lot of steps to set it up each time . . . .
The problem was that all the nodes did connect to the boot node but didn't perform discovery when permissions was enabled. The permissions had to be correct for the nodes to connect to the boot node so why did they refuse to discover ONLY when permissions were enabled?
Aye understand, give me a yell if you need a hand. Not sure if this is an option for you or not re Azure, https://github.com/ConsenSys/besu-terraform/tree/master/azure
Thats a tf setup that will provision nodes in Azure (sans permissioning from memory) but you'll see the config in 1 place only - the config.toml and uses a galaxy role to setup besu so you treat it like another service managed by systemd
To connect external nodes, set this to publicIP https://github.com/ConsenSys/besu-terraform/blob/master/azure/files/besu/setup.sh#L9 and https://github.com/ConsenSys/besu-terraform/blob/master/azure/ibft-4-validators/main.tf#L170 to open up 30303 to `0.0.0.0`
Yeah. I had one config.toml until I moved the p2p-host option into it. I'm not enough of a Linux/Docker weenie to figure out if I can collapse it back with a system call or not.
I am unfortunately not familiar with Terraform and am going to try the public ip with 30303 through 30309 unless there si some reason why that is a terrible idea.
:thumbsup: Sounds like a plan.
Hey @mwaser, Not quite sure I understand - but am _somewhat_ worried - as the IBFT2 consensus is explicitly created to prevent forking.
So to confirm - you have a number of dockerised nodes running (some of which are validators).
If you stop all dockerised-nodes, except the bootnode, then restart them, rater than synchronizing from the bootnode (and then building atop the existing chain), decide to create their own fork?
do you have any logs for the various nodes?
were you using permissioning? I.e. were nodes potentially unable to connect, and thus resolved to create a new chain?
Has joined the channel.
Hi All, I am trying to listen events from my smart contract using web3js but it is not receiving any data on event emit. I am new to Besu, help me on this. Below is code snippet
``` var Web3 = require("web3");
var web3 = new Web3("ws://localhost:9546");
var contract = new web3.eth.Contract(JSON.parse(variables.ContractJSON),address);
contact.events.MyEvent( {
fromBlock: 0,
toBlock: 'latest'
}).on('error', function(error, receipt) {
console.log("error",error)
})
.on('data',function (result) {
console.log("got result");
})
.on("connected", function(subscriptionId){
console.log("connected",subscriptionId);
})
Output-
connected 0x4```
Clipboard - March 2, 2021 12:19 PM
thanks! I was blind
Clipboard - March 2, 2021 3:47 PM
Clipboard - March 2, 2021 3:47 PM
Clipboard - March 2, 2021 3:47 PM
Clipboard - March 2, 2021 3:47 PM
Clipboard - March 2, 2021 3:47 PM
Clipboard - March 2, 2021 3:47 PM
What's the best way to get callbacks (or subscribe) to new block additions to the chain? Do we have to make a custom besu plugin (implementing the BesuEvents interface) and expose the data via an API? Or, there are other ready to use APIs?
Custom plugins is one option to get "push" style events.
Another option for "push/pull" hybrid is to use websockets and add an event filter. If the socket becomes disconnected you will need to make sure the subscription covers possible missed blocks, but there are ways to do that too.
https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/RPC-PubSub/
Thanks a lot. Will give this a read now.
Which consensus? If you pick ibft you need enough nodes to mint blocks.
But this missed blocks handling thingy: wouldn't this be the same with either approaches?
I mean even if I go the plugin route, let's say my push didn't work for some network issue then my plugin should queue those to send later. Am I right?
@shemnon But this missed blocks handling thingy: wouldn't this be the same with either approaches?
I mean even if I go the plugin route, let's say my push didn't work for some network issue then my plugin should queue those to send later. Am I right?
Depends on how you write your plugin. If you add retry logic and confirm receipt then yes. There are so many creative ways to cause data loss on top of this, some architectures do a query of the latest push and then push all the remainder data to bring it up to chain head.
@shemnon "some architectures do a query of the latest push and then push all the remainder data to bring it up to chain head." --> I think this can be done in both the approaches if I understand you correctly?
I am just trying to gauge both the approaches, that's all.
Yea, the gap filling is distinct from push/pull.
abdelhamidbakhta
atoulme
bgravenorst
cjhare
davemec
mackcom
iikirilov
jframe
joshuafernandes
lucassaldanha
macfarla
madelinemurray
m.terry
mbaxter
NicolasMassart
pinges
trent.mohay
rai
timbeiko
usmansaleem
I am using IBFT2 and enabled 4 peer nodes
So do you have enough nodes at this time?
Has joined the channel.
grallvm
IBFT 2.0 requires four validators, and i have added them in the extraData of the genesis file
IBFT 2.0 requires four validators, and I have added them in the extraData filed in genesis file.
How do you cut down on " Invalid block header: timestamp 1614780690 is greater than the timestamp margin 1614780689" errors? That seems like a really tight margin . . . .
ok, does it work now?
Hi everyone! I have a dockerized network with 4 besu nodes and 4 orion nodes using IBFT2. I can connect to metamask just fine and see the initial balances of the accounts. When I try to send a transaction I can ssee the transaction in the logs but it stays on pending:
Hi everyone! I have a dockerized network with 4 besu nodes and 4 orion nodes using IBFT2. I can connect to metamask just fine and see the initial balances of the accounts. When I try to send a transaction I can ssee the transaction in the logs but it stays on pending:`node2 | 2021-03-03 14:54:30.068+00:00 | pool-9-thread-1 | INFO | IbftBesuControllerBuilder | Imported #619 / 0 tx / 5 pending / 0 (0.0%) gas / (0x24270303eca8f5cbdfa6fa4c0c3c4110edc6ffa952117d0511045037e29fa9ff)`
Hi everyone! I have a dockerized network with 4 besu nodes and 4 orion nodes using IBFT2. I can connect to metamask just fine and see the initial balances of the accounts. When I try to send a transaction I can ssee the transaction in the logs but it stays on pending:
`node2 | 2021-03-03 14:54:30.068+00:00 | pool-9-thread-1 | INFO | IbftBesuControllerBuilder | Imported #619 / 0 tx / 5 pending / 0 (0.0%) gas / (0x24270303eca8f5cbdfa6fa4c0c3c4110edc6ffa952117d0511045037e29fa9ff)`
Anyone has any idea why this is happening? I tried deploying a contract with remix too with the same result.
https://www.splunk.com/en_us/blog/devops/hyperledger-besu-is-an-observability-pioneer.html
Folks, we just published a blog post showcasing Hyperledger Besu with Splunk. Please take a look and let me know, feedback welcome: https://www.splunk.com/en_us/blog/devops/hyperledger-besu-is-an-observability-pioneer.htmle
Folks, we just published a blog post showcasing Hyperledger Besu with Splunk. Please take a look and let me know, feedback welcome: https://www.splunk.com/en_us/blog/devops/hyperledger-besu-is-an-observability-pioneer.html
suspect you've initialised your besu nodes with the default "min-gas-price" - which means you need to set the gas price to 1000wei - you can change this with the --min-gas-price=X cmdline arg - then the pending txns will get mined into a block
Yeah, its a bit tight, and should be relaxed :/ Ultimately you need to have all our nodes time-synced (ideally with NTP)
Yeah, its a bit tight, and should be relaxed :/ Ultimately you need to have all your nodes time-synced (ideally with NTP)
Screenshot from 2021-03-04 09-09-13.jpg
I set up a free gas network by using the --min-gas-price=0. I figured I didnt have to add gas to a transaction then. + one of those 5 pending transactions I added lots of wei
Has joined the channel.
Hi All, I am trying to add signer while using clique consensus on private network. By using *clique_propose* method of rpc api I can propose signer, and I did this for all the peer nodes by calling the same method. By calling *clique_proposals* I can get the porposed signer as result. When I call the *clique_getSigners* method still I am getting the same signer which I defined in the genesis file.
How will these added signers reflects??
transaction
*txpool_besuStatistics* API result in the number of transactions initiated on the node but they are not committed yet, because when I call the *eth_getTransactionByHash* it gives the transaction hash detail but *eth_getTransactionReceipt* is giving null as result.
When will these transactions will be succeed??
*txpool_besuStatistics* API result in the number of transactions initiated on the node but they are not committed yet, because when I call the *eth_getTransactionByHash* it gives the transaction hash detail but *eth_getTransactionReceipt* is giving null as result.
When will these transactions will be succeed??
*eth_blockNumber* is also resulting *0* so I think blocks are not getting commited..
It works again, no idea why tho
:woo:
I've solved my permissions issue but am still fighting with bootnodes issues on external nodes
External nodes WILL connect with a static-nodes.json file -- so I am positive that I have tcp connectivity
External nodes will NOT connect using the bootnodes option in any of the command line, environment variable or config file
The following command says that I have UDP connectivity
nc -z -v -u 104.209.172.204 30303
Connection to 104.209.172.204 30303 port [udp/*] succeeded!
Internal node has p2p-host="104.209.172.204" and is on port 30303
External node has p2p-host="73.251.174.207" and is on port 30303
Relevant sections of the external node log are
2021-03-04 08:04:33.016-05:00 | nioEventLoopGroup-2-1 | INFO | RlpxAgent | P2P RLPx agent started and listening on /[0:0:0:0:0:0:0:0]:30303.
2021-03-04 08:04:33.017-05:00 | main | INFO | PeerDiscoveryAgent | Starting peer discovery agent on host=0.0.0.0, port=30303
2021-03-04 08:04:33.098-05:00 | vert.x-eventloop-thread-2 | INFO | VertxPeerDiscoveryAgent | Started peer discovery agent successfully, on effective host=0:0:0:0:0:0:0:0 and port=30303
2021-03-04 08:04:33.099-05:00 | vert.x-eventloop-thread-2 | INFO | PeerDiscoveryAgent | P2P peer discovery agent started and listening on /[0:0:0:0:0:0:0:0]:30303
2021-03-04 08:04:33.201-05:00 | vert.x-eventloop-thread-2 | DEBUG | RecursivePeerRefreshState | Start peer search.
2021-03-04 08:04:33.205-05:00 | vert.x-eventloop-thread-2 | DEBUG | RecursivePeerRefreshState | Initiating bonding round with 1 candidates
2021-03-04 08:04:33.228-05:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://8fe8ba6f6da225d6aec4ec06983607c9f5d6d86daa760277dace8acf62529a04448c1a68ff9f69c49d0cb1685ff5b93052d2e157acbb3240af5485f9f9796317@73.251.174.207:30303
2021-03-04 08:04:33.229-05:00 | main | INFO | DefaultP2PNetwork | Node address 0xd4e26b34de495b4bab2de440202b16d40b21ed1e
2021-03-04 08:04:33.234-05:00 | main | INFO | DefaultSynchronizer | Starting synchronizer.
2021-03-04 08:04:33.236-05:00 | main | INFO | FullSyncDownloader | Starting full sync.
2021-03-04 08:04:33.237-05:00 | main | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-03-04 08:04:33.246-05:00 | main | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
AND
2021-03-04 08:04:33.529-05:00 | main | INFO | Runner | Ethereum main loop is up.
2021-03-04 08:04:33.547-05:00 | main | INFO | AutoTransactionLogBloomCachingService | Starting auto transaction log bloom caching service.
2021-03-04 08:04:33.551-05:00 | main | INFO | LogBloomCacheMetadata | Lookup cache metadata file in data directory: /mnt/c/Users/markw/besu-20.10.4/devdir/caches
2021-03-04 08:04:38.232-05:00 | vert.x-eventloop-thread-2 | DEBUG | RecursivePeerRefreshState | Bonding round timed out
2021-03-04 08:04:38.234-05:00 | vert.x-eventloop-thread-2 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 1 peers processed over 1 rounds.
2021-03-04 08:04:38.269-05:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-03-04 08:04:38.270-05:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-03-04 08:04:43.272-05:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-03-04 08:04:43.274-05:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
I'm at my wit's end here . . . .
We have a 4-node permissioned network using Besu and recently we included 4 new nodes. 3 were successful included and are generating blocks.
The last one is a validator according to a Alethio block explorer but is not generating blocks (using IBFT2). We checked its peers and seems fine.
The log of this node was on info level without any message. When the log was set to debug, we noticed that this message sometimes is printed. Any ideas?
2021-03-04T11:48:55.307-0300
DEBUG Handshake error:
org.hyperledger.besu.ethereum.p2p.rlpx.handshake.HandshakeException: Decrypting an incoming handshake message failed
at org.hyperledger.besu.ethereum.p2p.rlpx.handshake.ecies.ECIESHandshaker.handleMessage(ECIESHandshaker.java:207) ~[besu-p2p-1.5.2.jar:1.5.2]
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.HandshakeHandlerInbound.nextHandshakeMessage(HandshakeHandlerInbound.java:54) ~[besu-p2p-1.5.2.jar:1.5.2]
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.AbstractHandshakeHandler.channelRead0(AbstractHandshakeHandler.java:85) ~[besu-p2p-1.5.2.jar:1.5.2]
Please open an issue
I don't know either, sorry. Those logs contain little info that helps. I hesitate on next steps:
- turn on trace logging
- turn on metrics and look at discovery metrics
Both are paltry options.
Truth be told for most private networks we tend to use static peering since they're relatively small.
[ ](https://chat.hyperledger.org/channel/besu?msg=jKcLDqhjoXjkbHBuX) Handshake failed - the peer key doesn't match. Check the enodes and make sure they are correct.
Yeah. They want to grow this one to an obnoxious size so static is not an option. I think what I want to focus on is why the external node doesn't even connect to the boot node. It seems as if it should, at least, do that . . . .
but it just might be connecting
???
the notion of discovery doesn't stop at the UDP packet, discovery in ethereum relies on kademlia buckets
so you organize your peers in buckets and only send _some_ of them when asked
if the code of besu is not trying hard enough, you hit an empty bucket...
Hmm. So I should try again with different keys . . . . (or a different node.
hence why you get weird results
my hunch though
I was guessing that the first node would be more like connecting to a static node and then discovery after that.
Seems like that would be faster and more logical . . . .
no that's not how bootnodes work
the idea is that the bootnode is your entry into the network and you connect to it, it doesn't peer with you, instead, it sends you a list of peers to connect to
But . . . if it doesn't try to connect to the first node as a peer . . . and if the other nodes are having trouble connecting . . . . that explains it all.
with public networks, there is even an option for the bootnode to not reply to you if you try to tcp in
Especially since I'm having a tcp oddity on the other nodes (they are UDPing just fine but refusing tcp connections). Crap! I'm looking in the wrong place at the wrong problem. THANK YOU!!
oh cool good luck
I also need to replicate it a couple more times but I think I understand the previous problem. I was trying to avoid having to constantly enter permissions so I was saving and reusing the database on the first node letting the rest sync to it. That is NOT a good plan . . . .
(Apparently, I'm making most of my own problems here :-P )
(I hate being THAT GUY/a twit ;-) )
you're helping everyone else imo
so keep whinging, you're showing where the code falls short
enter issues such as "I need better ways to understand why I don't get any nodes"
I prefer that to indifference
AH. That is a GREAT idea! I will do so.
What do you mean by check the enodes, @atoulme? The node is synchronizing, permissioned and the enode string is correctly presented in command admin_nodeInfo. I also checked that the address of node is equal to the last bytes of the public key hash.
I mean that is seems like there is a problem with your handshake indicating that the exchange breaks because the node is not using the right key when connecting to the peer. The key is a portion of the enode URL.
Has joined the channel.
Hi everyone. Does anyone have a snippet for web3js raw transaction? I am following the docs but keep getting the error "invalid params".
For future reference, if you are using ethereumjs-tx, don't forget to include CustomChain option as seen here: https://github.com/ethereumjs/ethereumjs-tx/blob/master/examples/custom-chain-tx.ts
Hi..
In besu, Permissioning is present for the account list and the node list.
The ethereum accounts can be whitelisted for creating the permissions over the transactions using the smart contracts deployed over the besu node.
Is it possible to modify the account-list permission and provide access to the besu node to all accounts but restricts the account from deploying the contract..
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted for creating the permissions over the transactions using the smart contracts deployed over the besu node.
Is it possible to modify the account-list permission and provide access to the besu node to all accounts but restricts the account from deploying the contract..
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted for the transactions using the smart contracts deployed over the besu node.
Is it possible to modify the account-list permission and provide access to the besu node to all accounts but restricts the account from deploying the contract..
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted using smart contracts to carry out the transactions with the whitelisted accounts.
Is it possible to modify the account-list permission and provide access to the besu node to all accounts but restricts the account from deploying the contract..
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted using smart contracts to carry out the transactions with the whitelisted accounts.
Is it possible to modify the account-list permission such that the provided account list can deploy the contract; while all other accounts have access to the transaction.
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted using smart contracts to carry out the transactions with the whitelisted accounts.
Is it possible to modify the account-list permission such that the provided account list can deploy the contract; while all other accounts have access to the transaction?
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted using smart contracts to carry out the transactions with the whitelisted accounts.
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted using smart contracts to carry out the transactions with the whitelisted accounts.
Is it possible to modify the account-list permissions such that the address in the account list can only deploy the contract; while all the accounts can do the transactions over the network.
Hi..
In besu, Permissioning is present for the account list and the node list.
The accounts can be whitelisted using smart contracts to carry out the transactions with the whitelisted accounts.
Is it possible to modify the account-list permissions such that the address in the account list can only deploy the contract; while all the accounts can do the transactions over the network?
if we hae to change the account allow l,ist permissioning which files do we need to take in considerations in permissions repo
Also if it is possible to modify the account list permissions, which files of the smart contract need to take in the consideration in *permissioning-smart-contracts* repository??
Has joined the channel.
Hi all. I am developing an energy exchange smart contract to exchange energy between different users of a blockchain. As I need to now the energy that each user has offered and the energy that each user want to buy, I need to make queries to the blockchain to extract these data from the previous transactions. Could you please give me any idea to do that? I need to do it from a user interface, so I need to do it using an API or something similar. Thank you in advance!
Ah, sorry.. I am using Hyperledger Besu
Has joined the channel.
@atoulme. Thank you for your answer. I checked private key, public key and enode and it seems fine. It took an entire day but the node was suddenly included as a new validator.
So, now we have a node that can sign blocks but there is still the same error message every 30seconds (handshake error). It only happens in this specific node. It is not happening in a similar validator node in the same institution. It also only appear when the LOG LEVEL is debug. Any ideas?
Clipboard - 5 de Março de 2021 às 12:47
in which direction does it happen?
Sorry, I did not understand. It is in the validator node (the one the took long time to become a validator even after all votes)
Hi,
Hi all,
So, we're creating a personal public network with on-chain permissions. Along with the basic accounts and nodes rules, we need to create rules for deploying smart contracts. For this, we started looking into the hyperledger/besu code and found the permissioning directory where we can incorporate our changes for our custom on-chain permission.
Since any node can join, we want permissioning to be present at some other point as well, maybe like block creation or validation. Could someone please point me to possible places where this additional check can be inserted and the corresponding files/directories the need to be modified?
Thanks
Hi all,
So, we're creating a personal public network with on-chain permissions. Along with the basic accounts and nodes rules, we need to create rules for deploying smart contracts. For this, we started looking into the hyperledger/besu code and found the permissioning directory where we can incorporate our changes for our custom on-chain permission.
Since any node can join and we are using PoA, we need to add checks in Validator nodes probably at block creation. Could someone please point me to the corresponding files/directories that needs to be modified?
Thanks
Or may be I'm looking at wrong place. Please guide.
Clipboard - March 6, 2021 3:29 PM
So, I found this function which I suppose add transactions to block. Found in package - package org.hyperledger.besu.ethereum.blockcreation;
Is it the correct place to implement custom permission check on smart contract transaction?
Clipboard - March 6, 2021 3:29 PM
So, I found this function which I suppose add transactions to block. Found in package - _package org.hyperledger.besu.ethereum.blockcreation;_
Is it the correct place to implement custom permission check on smart contract transaction?
I've added logs to Besu source code and built binaries from the source. Now, I created a new image by replacing the binaries in the original *hyperledger/besu* image. But it doesn't seem to work. It's giving me this error when I debug the container -
`Error: Could not find or load main class org.hyperledger.besu.Besu
Caused by: java.lang.ClassNotFoundException: org.hyperledger.besu.Besu
Error: Could not find or load main class org.hyperledger.besu.Besu
Caused by: java.lang.ClassNotFoundException: org.hyperledger.besu.Besu`
The container is just getting restarted. Why is this error showing? What is the right way to do it?
I've added logs to Besu source code and built binaries from the source. Now, I created a new image by replacing the binaries in the original *hyperledger/besu* image. But it doesn't seem to work. It's giving me this error when I debug the container -
```
Error: Could not find or load main class org.hyperledger.besu.Besu
Caused by: java.lang.ClassNotFoundException: org.hyperledger.besu.Besu
Error: Could not find or load main class org.hyperledger.besu.Besu
Caused by: java.lang.ClassNotFoundException: org.hyperledger.besu.Besu
```
The container is just getting restarted. Why is this error showing? What is the right way to do it?
I've added logs to Besu source code and built binaries from the source. Now, I created a new image by replacing the binaries in the original *hyperledger/besu* image. But it doesn't seem to work. It's giving me this error when I debug the container -
```
Error: Could not find or load main class org.hyperledger.besu.Besu
Caused by: java.lang.ClassNotFoundException: org.hyperledger.besu.Besu
Error: Could not find or load main class org.hyperledger.besu.Besu
Caused by: java.lang.ClassNotFoundException: org.hyperledger.besu.Besu
```
The container is just getting restarted. Why is this error showing? What is the right way to create new image with custom Besu binary?
Hey everyone, I'm having an error that i can't seem to figure out. This is the code I'm trying to run:
Hey everyone, I'm having an error that i can't seem to figure out. This is the code I'm trying to run:
`exports.deploy = (privateKey) => {
let besuAccount = web3.eth.accounts.privateKeyToAccount(`0x${privateKey}`)
console.log(besuAccount)
return web3.eth.getTransactionCount(besuAccount.address, "pending").then(async (txCount) => {
let gasPrice = await web3.eth.getGasPrice();
console.log("tx count", txCount);
console.log("gasPrice", gasPrice)
const txObj = {
nonce: web3.utils.toHex(txCount),
gasPrice: web3.utils.toHex(gasPrice),
gasLimit: web3.utils.toHex(210000),
data: contract.bytecode,
chainId: chainId
};
let custom = Common.default.forCustomChain(
"mainnet",
{
networkId: 2018,
chainId: chainId,
name: "besu-network"
},
"istanbul"
);
let tx = new Tx(txObj, { common: custom });
let private = Buffer.from(privateKey, "hex");
tx.sign(private);
let serialized = tx.serialize();
let rawSerialized = "0x" + serialized.toString("hex");
return web3.eth.sendSignedTransaction(rawSerialized)
.on("receipt", receipt => { console.log(receipt) })
.catch(error => console.log(error));
});
}`
When i run this code I get following error:
` let tx = new Tx(txObj, { common: custom });
^
TypeError: Tx is not a constructor`
Does anybody have any idea?
Hey everyone, I'm having an error that i can't seem to figure out. This is the code I'm trying to run:
`exports.deploy = (privateKey) => {
let besuAccount = web3.eth.accounts.privateKeyToAccount(0x${privateKey})
console.log(besuAccount)
return web3.eth.getTransactionCount(besuAccount.address, "pending").then(async (txCount) => {
let gasPrice = await web3.eth.getGasPrice();
console.log("tx count", txCount);
console.log("gasPrice", gasPrice)
const txObj = {
nonce: web3.utils.toHex(txCount),
gasPrice: web3.utils.toHex(gasPrice),
gasLimit: web3.utils.toHex(210000),
data: contract.bytecode,
chainId: chainId
};
let custom = Common.default.forCustomChain(
"mainnet",
{
networkId: 2018,
chainId: chainId,
name: "besu-network"
},
"istanbul"
);
let tx = new Tx(txObj, { common: custom });
let private = Buffer.from(privateKey, "hex");
tx.sign(private);
let serialized = tx.serialize();
let rawSerialized = "0x" + serialized.toString("hex");
return web3.eth.sendSignedTransaction(rawSerialized)
.on("receipt", receipt => { console.log(receipt) })
.catch(error => console.log(error));
});
}`
When i run this code I get following error:
` let tx = new Tx(txObj, { common: custom });
^
TypeError: Tx is not a constructor`
Does anybody have any idea?
Hey everyone, I'm having an error that i can't seem to figure out. This is the code I'm trying to run:
` exports.deploy = (privateKey) => {
let besuAccount = web3.eth.accounts.privateKeyToAccount(0x${privateKey})
console.log(besuAccount)
return web3.eth.getTransactionCount(besuAccount.address, "pending").then(async (txCount) => {
let gasPrice = await web3.eth.getGasPrice();
console.log("tx count", txCount);
console.log("gasPrice", gasPrice)
const txObj = {
nonce: web3.utils.toHex(txCount),
gasPrice: web3.utils.toHex(gasPrice),
gasLimit: web3.utils.toHex(210000),
data: contract.bytecode,
chainId: chainId
};
let custom = Common.default.forCustomChain(
"mainnet",
{
networkId: 2018,
chainId: chainId,
name: "besu-network"
},
"istanbul"
);
let tx = new Tx(txObj, { common: custom });
let private = Buffer.from(privateKey, "hex");
tx.sign(private);
let serialized = tx.serialize();
let rawSerialized = "0x" + serialized.toString("hex");
return web3.eth.sendSignedTransaction(rawSerialized)
.on("receipt", receipt => { console.log(receipt) })
.catch(error => console.log(error));
});
}`
When i run this code I get following error:
` let tx = new Tx(txObj, { common: custom });
^
TypeError: Tx is not a constructor `
Does anybody have any idea?
Hey everyone, I'm having an error that i can't seem to figure out. This is the code I'm trying to run:
` exports.deploy = (privateKey) => {
let besuAccount = web3.eth.accounts.privateKeyToAccount(0x${privateKey})
console.log(besuAccount)
return web3.eth.getTransactionCount(besuAccount.address, "pending").then(async (txCount) => {
let gasPrice = await web3.eth.getGasPrice();
console.log("tx count", txCount);
console.log("gasPrice", gasPrice)
const txObj = {
nonce: web3.utils.toHex(txCount),
gasPrice: web3.utils.toHex(gasPrice),
gasLimit: web3.utils.toHex(210000),
data: contract.bytecode,
chainId: chainId
};
let custom = Common.default.forCustomChain(
"mainnet",
{
networkId: 2018,
chainId: chainId,
name: "besu-network"
},
"istanbul"
);
let tx = new Tx(txObj, { common: custom });
let private = Buffer.from(privateKey, "hex");
tx.sign(private);
let serialized = tx.serialize();
let rawSerialized = "0x" + serialized.toString("hex");
return web3.eth.sendSignedTransaction(rawSerialized)
.on("receipt", receipt => { console.log(receipt) })
.catch(error => console.log(error));
});
}`
When i run this code I get following error:
` let tx = new Tx(txObj, { common: custom });
^
TypeError: Tx is not a constructor `
Does anybody have any idea?`d`
You’re leaving out how you made the image. Sorry, this feels like you need to do some digging of what you changed.
Yes, you are right.
When I build Besu as mentioned [here](https://wiki.hyperledger.org/display/BESU/Building+from+source), the JAR files that got created had different names than from the original ones.
Yes, you are right.
When I build Besu as mentioned [here](https://wiki.hyperledger.org/display/BESU/Building+from+source), the JAR files that got created had different names than from the original ones.
So replacing the JAR files worked.
If someone is looking to create custom Besu binaries, checkout this [link](https://wiki.hyperledger.org/display/BESU/Building+from+source). your JAR files are your
If someone is looking to create custom Besu binaries, checkout this [link]().
And your JAR files contains the changes. So make sure to use both - `bin` and `lib` directories.
If someone is looking to create custom Besu binaries, checkout this [link](https://wiki.hyperledger.org/display/BESU/Building+from+source).
And your JAR files contains the changes. So make sure to use both - `bin` and `lib` directories.
review request Remove EIP-2315 from Berlin: https://github.com/hyperledger/besu/pull/1986
hi @shail_19,
So to confirm - you called clique_propose(
hi shail_19,
So to confirm - you called clique_propose(
Check what does Tx reference? is there a constructor that matches what you're trying to pass in?
I am using PoW for private network and I want to add custom validations when the Node(s) validates the Block. What is the correct file to look into?
Clipboard - March 8, 2021 8:25 PM
Has joined the channel.
Are there any parameters i could tweak for a faster initial sync ?
I'm running on stripe NVMe drives, 128GB RAM, EPYC 7502P 32-Core & symmetric GBe (in a DC)
Besu is configured as ETH mainnet archive (yes it needs to be that).
Hii all,
Currently, the accounts can be whitelisted using smart contracts to carry out the transactions with the whitelisted accounts.
I have changed the smart contract code and introduced a check over the target address.
Inside *accountRules.sol* in * transactionAllowed* function to modify the account-list permissions such that the address in the account list can only deploy the contract; while all the accounts can do the transactions over the network.
After that I am compiling the contracts and including the *deployedBytecode* from JSON artificates inside the *AccountIngress.json*.
Then I am deploying the contracts on the besu node, after deployment and whitelisting the accounts, I am restarting the node with permissioning enabled.
On restarting the besu node again the error came up
* Supplied genesis block does not match stored chain data.*
What I am doing wrong here?
Hi, what kind of specific validation would you like to add?
Understand that if you do this, you will then become incompatible with other Ethereum protocol clients or unmodified Besu.
So we are looking into modifying the current use of `accounts-allowlist` to make a check on accounts allowed to deploy smart contracts; while all other txns will be allowed by every account.
So, it is just a small extra check for **To** address in a txn.
It's on the permissioning side then, great, nothing that changes the way tx are validated, it's before that. So that will require to be modified on all nodes of your network, otherwise you will have consensus issues. Let me do some research on you question now, will get back to you soon.
These are the 2 files that I think must be related -
- `MainnetBlockBodyValidator`
- `BodyValidation`.
I haven't tested this yet, but will be doing it today, after testing block creation with the same permissioning.
Although I'm not sure whether these are the correct files and the flow is still not fully clear to me.
I don't think doing this validation changes at block level on a private chain is the best. It will have too many side effects.
The verification of blocks is an integral part of PoW consensus. I don't think adding a small check at that point would create any issue.
It may be more something to update on the permissioning smart contract side that will tell Besu if a TX is allowed or not.
See https://github.com/ConsenSys/permissioning-smart-contracts/blob/abfdd543dde1b7405c7729c7f2b91a9da37d7a3a/contracts/AccountRules.sol#L59
Once a modified version of this contract deployed, it may be able to check the transaction more than only on its sender address and check if it's a contract deployment from an unallowed account and return false otherwise return true. Then you have probably nothing to change in Besu, or a very few changes to do to make in places like org.hyperledger.besu.ethereum.permissioning.TransactionSmartContractPermissioningController#isPermitted to provide the added reason for rejections for instance.
If the smart contract permissioning is enabled at the block verification, then I guess the change in the above said file will be enough.
When I went through the code, I couldn't find any link b/w smart contract permissioning and the block verification.
I guess I'll just have to try first with what you recommended.
The link to the smart contract is done with CLI or env variables as explained in https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/#5-set-the-environment-variables
There's no default value.
You set your ingress contract in the genesis and Besu will look for it if the variables or CLI options are found.
If you updated the ingress contract code in the Genesis, that creates a different genesis block and that's probably why you have this error. Any change in the genesis block requires to reset the chain. you can do that by deleting the data for your nodes and start with a fresh chain. You can keep everything else: keys, configs, genesis (must be the same for each node).
so after startup of besu node we can't touch genesis file in any condition.
to achieve smart contract tweaks I have to compile the contracts and add the deployedBytecode in the genesis file and leave address to be 0x0000000000000000000000000000000000008888.
so after startup of besu node we can't touch genesis file in any condition.
to achieve smart contract tweaks I have to compile the contracts and add the deployedBytecode in the genesis file and leave address to be 0x0000000000000000000000000000000000008888.
Is that correct ??
so after startup of besu node we can't touch genesis file in any condition.
to achieve smart contract tweaks I have to compile the contracts and add the deployedBytecode in the genesis file and leave address to be 0x0000000000000000000000000000000000008888.
Is that correct ??
@HiteshSharma You're looking in the right area, but I tend to agree with @NicolasMassart and while you _can_ modify this area to work, it's probably not quite right, and that the Account Permissioning framework is a more scalable solution.
I.e. you really want to reject a bad transaction _before_ it gets mined into a block
these are the unique message-codes used to identify messages in the Eth62 subprotocol
They allow besu to determine how a received packet is to be deserialised
So, if a block is received by a node, the code for that would be **NEW_BLOCK**, right?
And is it event based or besu is pooling to network?
if you have used the default [AccountIngress.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/AccountIngress.sol), you can deploy an instance of [NodeRulesProxy.sol](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/NodeRulesProxy.sol) and set that address in your genesis ingress at `0x0...08888` by calling [setContractAddress](https://github.com/ConsenSys/permissioning-smart-contracts/blob/master/contracts/Ingress.sol#L39). By this way you wouldn't need to reset your chain
Those are messages from the wire protocol, you can read more about this protocol [here](https://github.com/ethereum/devp2p/blob/master/caps/eth.md)
Thanks
See https://github.com/ethereum/devp2p/blob/master/caps/eth.md#newblock-0x07
Hey, the problem that I'm thinking is that any node can connect to my personal public network. So the node cannot be verified and if somehow that node publishes the block (let's say it uses different besu code or permissioning), I don't want genuine nodes to accept that block.
This is what I'm thinking. Please correct me if I somehow understood the concepts wrong.
An example of above could be that a bad node is defined a miner and it uses it's own custom besu code that bypasses the permissioning. In that case, the bad block will be accepted by every other node.
Another question, is this type of scenario is even possible? And is there a better architecture to have genuine nodes only?
Another question, is this type of scenario even possible? And is there a better architecture to have genuine nodes only?
So - besu supports "node-permissioning" - which is a list of the ethereum nodes which are allowed to communicate in the network.
You can either have a text file on every node which lists its valid peers, or you can store in on-chain.
Any node not in the list, is rejected as part of the peering process.
@HiteshSharma I suggest looking into the smart contract based permissioning model. https://besu.hyperledger.org/en/stable/Concepts/Permissioning/Onchain-Permissioning/ Its specifically design to maintain consistency with all parties in a private network. The node permissioning logic will mean only nodes that are allowed can participate, and the account permissioning logic will define which accounts can transact and change the rules on the network. You can then extend this smart contract to add in additional rules around who can create contracts.
If you're looking for more specifc enterprise support, please reach out directly.
Has joined the channel.
Hi all, is there a commercial support for Besu? can't find it.
By the way, @atoulme. We discover the problem.
We had a problem with enodes in the past that we had already solved. However, one bootnode was still seeing the old and wrong enode.
By the way, @atoulme. We discovered the problem.
We had a problem with enodes in the past that we had already solved. However, one bootnode was still seeing the old and wrong enode.
The restarted this bootnode and it there is no error anymore.
The only downstream commercial support I am aware of at this moment is ConsenSys Quorum. (kind of how IBM Blockchain is a downstream of HL Fabric)
User User_1 added by grace.hartley.
Yay!
@NicolasMassart
function transactionAllowed(
address sender,
address target, // target
uint256, // value
uint256, // gasPrice
uint256, // gasLimit
bytes memory // payload
) public view returns (bool) {
if((target == address(0) && accountPermitted(sender)) || (target != address(0))) {
return true;
} else {
return false;
}
}
@NicolasMassart
```
function transactionAllowed(
address sender,
address target, // target
uint256, // value
uint256, // gasPrice
uint256, // gasLimit
bytes memory // payload
) public view returns (bool) {
if((target == address(0) && accountPermitted(sender)) || (target != address(0))) {
return true;
} else {
return false;
}
}
```
I have changed the above code to fulfill the account permissioning for the deployment of the contract.
After the deployment of the contract, I wasn't able to do the transaction from metamsak as it gives the error for the invalid parameters for both contract and ether transfer transaction.
I have used clique consensus with a single node and also enabled the permissioning contract in the config.toml file.
Steps followed:
Steps followed:
1. Started the besu node with disabled onchain permissions in the config.toml file.
2. Deployed the contracts on the best node and added accounts and node in the allowlist by calling the contract methods.
3. Restarted the besu node with the onchain permissions enabled.
Steps followed:
1. Started the besu node with disabled onchain permissions in the config.toml file.
2. Deployed the contracts on the besu node and added accounts and node in the allowlist by calling the contract methods.
3. Restarted the besu node with the onchain permissions enabled.
Indeed the ingress contract should not be modified, but it can be updated to point to the real updated instance of your contract. You have to use the https://github.com/ConsenSys/permissioning-smart-contracts/blob/abfdd543dde1b7405c7729c7f2b91a9da37d7a3a/contracts/Ingress.sol#L39 to define the contract to be used in the end.
@trent.mohay or @lucassaldanha any suggestion here?
Screenshot from 2021-03-09 17-20-44.png
Sorry I didn't understand the question.
@pash
Sorry I didn't understand the question.
@prashantgangwar what do you mean by "I have changed the above code to fulfill the account permissioning for the deployment of the contract."
What are you trying to achieve?
And if you could provide your Besu configuration and trace logs of the node it would help us understanding what could be wrong.
Hello. We are using Truffle to deploy our smart contracts according with this doc: https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Truffle/. I would not want to left the private key as PLAIN text in the config file. Is there any way to use JSON UTC files to sign the deploy transaction?
I also looked directly at https://www.npmjs.com/package/@truffle/hdwallet-provider but there is no example to that.
Hello Suzana. I think [keythereum](https://github.com/ethereumjs/keythereum) can handle encrypted files, but at some point I would imagine you'll have to have the decryption password in plain text somewhere (at least in an environment variable)
@lucassaldanha
I have changed the smart contract code and introduced a check over the target address.
Inside accountRules.sol in transactionAllowed function to modify the account-list permissions such that the address in the account list can only deploy the contract; while all the accounts can do the transactions over the network.
# Valid TOML config file
data-path="Permissioned-Network/Node-1"
rpc-http-cors-origins=["all"]
host-allowlist=["*"]
# rpc-ws-enabled=true
rpc-http-enabled=true
rpc-http-api=["DEBUG","ETH", "NET", "WEB3", "EEA", "ADMIN", "CLIQUE", "PERM", "TXPOOL"]
# logging="DEBUG"
# Chain
genesis-file="Permissioned-Network/cliqueGenesis.json" # Path to the custom genesis file
rpc-http-host="0.0.0.0"
permissions-nodes-contract-version=2
permissions-accounts-contract-enabled=true
permissions-accounts-contract-address="0x0000000000000000000000000000000000008888"
permissions-nodes-contract-enabled=true
permissions-nodes-contract-address="0x0000000000000000000000000000000000009999"
p2p-port=30303
rpc-http-port=8546```
```
```
# Valid TOML config file
data-path="Permissioned-Network/Node-1"
rpc-http-cors-origins=["all"]
host-allowlist=["*"]
# rpc-ws-enabled=true
rpc-http-enabled=true
rpc-http-api=["DEBUG","ETH", "NET", "WEB3", "EEA", "ADMIN", "CLIQUE", "PERM", "TXPOOL"]
# logging="DEBUG"
# Chain
genesis-file="Permissioned-Network/cliqueGenesis.json" # Path to the custom genesis file
rpc-http-host="0.0.0.0"
permissions-nodes-contract-version=2
permissions-accounts-contract-enabled=true
permissions-accounts-contract-address="0x0000000000000000000000000000000000008888"
permissions-nodes-contract-enabled=true
permissions-nodes-contract-address="0x0000000000000000000000000000000000009999"
p2p-port=30303
rpc-http-port=8546
```
Genesis file
~https://plnkr.co/edit/QuDRNg6CS5gOR62W?open=lib%2Fscript.js~
Genesis file `https://plnkr.co/edit/QuDRNg6CS5gOR62W?open=lib%2Fscript.js`
Genesis file _https://plnkr.co/edit/QuDRNg6CS5gOR62W?open=lib%2Fscript.js_
nodeingresscontract deployement failure
nodeingresscontract deployement failure
nodeingresscontract deployement failure
nodeingresscontract deployement failure
nodeingresscontract deployement failure
nodeingresscontract deployement failure
oie_qFnEG7FYukVf.png
Make sense, @diegoll. Thanks. Our company is used to deal with passwords. The main point is to remove the sensitive info away from the config file.
Hello. I have a IBFT network and i get some problems with other Ethereum nodes trying connect for some reason the nodes stay awaiting for peers... after i test shutdown connections to external internet only giving access to private network, restarted all nodes and all works fine. So i don't want cut external connections in P2P because other people may want connect to this network and sync from a private node. Also i did --required-block flag but not resolve this issue. If i disable p2p discovery and add static-node.json is a solution for stopping this other peers connecting or i need to add nodes-whitelist https://besu.hyperledger.org/en/1.4.4/HowTo/Limit-Access/Local-Permissioning/#permissions-configuration-file ?
adding the nodes-whitelist is possible to get my private network working + external same clients version to connect excluding (Geth, Parity, OpenEthereum nodes... )?
Ran into the same issue. Was following the [onchain permissioning](https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/) from the docs.
I have the pre-deployed ingress contracts in my genesis file and using the same env. variables as mentioned in the example guide.
If I remove addresses env. variables, the migration scripts are deploying contracts with different address.
Any help @NicolasMassart
Ran into the same issue. Was following the [onchain permissioning](https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/) from the docs.
I created a network successfully from here - https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example. But when I'm trying onchain permissioning using the pre-deployed ingress contracts in my genesis file and using the same env. variables as mentioned in https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/#5-set-the-environment-variables.
If I remove these addresses env. variables, the migration scripts are deploying contracts with different address.
Any help @NicolasMassart
This is an error from https://github.com/ConsenSys/permissioning-smart-contracts/blob/c72cc42e7307d52ae218950918baf10a6227071a/migrations/3_deploy_node_ingress_rules_contract.js#L35
And it usually means that either the ingress contract address is wrong, but you may have copied it from the doc, or that the Ingress contract was not included in the genesis file.
Can you provide your genesis file please?
ethHashGenesis.txt
ethHashGenesis.txt
ethHashGenesis.txt
ethHashGenesis.txt
Clipboard - March 12, 2021 12:05 AM
Clipboard - March 12, 2021 12:05 AM
Clipboard - March 12, 2021 12:05 AM
One more thing that whenever I'm compiling the contracts, they are always generating different addresses, but as per this [stack exchange](https://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed/761#761) answer, that should not happen I guess.
Hey everyone, as far as i can understand every besu node is linked with an orion node via a keypair. This way you can make private transactions between different nodes. What if my network only has a handfull of nodes, but a hundred accounts using these nodes with their wallets. How would u go about using the privacy features between all these accounts? They dont have a orion node linked to their keys.
Hi @RobbeV 1 this is allowed using the multi-tenancy feature. For more details refer to https://besu.hyperledger.org/en/stable/Concepts/Privacy/Multi-Tenancy/
If you want external unknown nodes to connect to your network then you cant use permissioning and ideally not static peers. Permissioning will allow you to operate on a public network but only with known nodes.
Another thing is I was using the network from the [Private Network Example](https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/)
It's fine for the address to be different for each compilation, it depends on you address and nonce and contract. The SE answer says "deterministically computed from the address of its creator (sender) and how many transactions the creator has sent (nonce)" so if the nonce changes, the address will.
Your genesis file looks fine.
If you used the network from the private network example, then you have to reset the chain as the tutorial doesn't include the contracts in the genesis.
You may need to delete the data folder to start from a fresh network.
Also for the contract address being different each time you build/deploy it, it's not an issue, that's why the ingress contract is there. Once you deployed your contract on the network, you have to register the address in the ingress contract (who has a fixed defined address). Ingress contract is a proxy.
so this is my problem ... i don't know how resolve this and i don't understand how ethereum clients is connecting in my peer IBFT2.0 the connections is disconnected but for some reason validators not join to each other via public bootnode
and all have --genesis specified
and --bootnode
and --required-block
i think static-nodes.json and disabling p2p discovery in all nodes not stop the issue totally and i get external peers from my network to join via only two publicnodes
i think static-nodes.json and disabling p2p discovery in all nodes not stop the issue totally and i get external peers from my network to join via only two public nodes
firewall is not a solution for this i think
because is the same port but different peers ips ... and i cant filter valid and invalid peers through this way
Has joined the channel.
Hi all, does anyone know where I can get a native Secp256k1 library for windows that Besu will recognise?
Thanks @NicolasMassart, I was able to deploy the contract using your instructions.
The issue was that the byte code used in the genesis file was wrong. That was silly of me and I don't remember where I copy that from. But that was the problem.
Another thing I noticed is that when using multi node network setup, the contract is deployable only if the RPC node is also a miner. Why is it so?
Thanks @NicolasMassart, I was able to deploy the contract using your instructions.
The issue was that the byte code used in the genesis file was wrong. That was silly of me and I don't remember where I copy that from. But that was the problem.
Another thing I noticed is that when using multi node network setup, the contract is deployable only if the RPC node is also a miner. I tried other possible setup but that didn't worked. Why is it so?
Thanks @NicolasMassart, I was able to deploy the contract using your instructions.
The issue was that the byte code used in the genesis file was wrong. That was silly of me and I don't remember where I copy that from. But that was the problem.
Another thing I noticed is that when using multi node network setup, the contract is deployable only if the RPC node is also a miner. I tried other possible setup but that didn't worked. Why is it so?
BTW I'm using containers.
Thanks @NicolasMassart, I was able to deploy the contract using your instructions.
The issue was that the byte code used in the genesis file was wrong. That was silly of me and I don't remember where I copy that from. But that was the problem.
@arash009 I think we can have permissioning enabled for external nodes. Although, we need to get the enode URL for the node and have to add it to the nodes allowlist.
[ ](https://chat.hyperledger.org/channel/besu?msg=fdoZ9KAKzEsZiLtsd) @helderjnpinto if you are having trouble with validators not connecting with each other, please have a look at this [example](https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/). You should be able to resolve this issue.
[ ](https://chat.hyperledger.org/channel/besu?msg=JGt4bi8tcXmYQnX6f) You can't check the validity of peers if your public network does not have permissioning enabled. Since anyone can join, and a disconnected node can even join again.
On the other hand, if you enable permissions, you can use the Dapp from this [example](https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/#9-start-the-permissioning-management-dapp). You can add and remove nodes from here. No node will be able to connect to the network directly. They need to be added to the list first.
If you are looking for off-chain permissioning, it might be difficult to setup. I haven't tried it yet, but I think Besu stores the allowed nodes when starting the node, and if a new node has to be added, all the nodes have to be restarted.
Hey, I'm using Ingress contracts on my network. One thing I noticed is that when using multi node network setup, the contract is deployable only if the RPC node is also a miner. I tried other possible setup but that didn't worked. Why is it so?
BTW I'm using containers.
The library only build linux and mac binaries at the moment - https://github.com/hyperledger/besu-native
Building a windows DLL on CircleCI is a blindspot for us right now.
This doesn't sound right. You should be able to have "non-miner" nodes in the network.
Could you share the config file that you are using for your nodes? Also the debug logs would help us understanding what could be happening.
Also, what do you mean by "the contract is deployable"? What contract is this?
Thanks for the extra info.
What process are you using to update the account permissioning contract? e.g. are you using truffle or are you doing it manually?
I think the first thing we need to know is if the updated account rules contract has been deployed successfully, and if the Account Ingress contract has been updated to point to the address of the new Account Rules contract.
So I'd start validating these
Also, if you have the debug logs from Besu, when you send the transaction, it could help tracking the problem down.
Yeah the only scenario that I can think of that would cause this is if you have permissioning turned on from the get go (ie before you have deployed the contracts) - then if your RPC node does not have permission to contact the miner it won't be able to communicate - but you could get around this by using bootnodes config to bootstrap them - or turn on permissioning once the contracts are deployed.
Hi All, I am trying to do private transactions with Clique 4 node setup and running this script - https://github.com/ConsenSys/web3js-eea/blob/master/example/multiNodeExample/deployContract.js for smart contract deployment, but not getting contract address after deployment. Please help me on this.
Command used for node startup:
``` besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ADMIN,CLIQUE,DEBUG,EEA,MINER,PERM,PLUGINS,PRIV,TRACE,TXPOOL --host-allowlist="*" --rpc-http-cors-origins="all" --rpc-http-host=0.0.0.0 --p2p-host=0.0.0.0 --privacy-enabled --privacy-url=http://127.0.0.1:8888 --privacy-public-key-file=orion/nodeKey.pub --min-gas-price=0 ```
Output:
``` Transaction Hash 0x5168a737a06f0ceaa339fd4220875c51990249c9264b1f90454f90cf78c45984
Error: Returned error: Method not enabled```
Hi All, I am trying to do private transactions with Clique 4 node setup and running this script - https://github.com/ConsenSys/web3js-eea/blob/master/example/multiNodeExample/deployContract.js for smart contract deployment, but not getting contract address after deployment. Please help me on this.
Command used for node startup:
`besu --data-path=data --genesis-file=../cliqueGenesis.json --network-id 123 --rpc-http-enabled --rpc-http-api=ADMIN,CLIQUE,DEBUG,EEA,MINER,PERM,PLUGINS,PRIV,TRACE,TXPOOL --host-allowlist="*" --rpc-http-cors-origins="all" --rpc-http-host=0.0.0.0 --p2p-host=0.0.0.0 --privacy-enabled --privacy-url=http://127.0.0.1:8888 --privacy-public-key-file=orion/nodeKey.pub --min-gas-price=0`
Output:
`Transaction Hash 0x5168a737a06f0ceaa339fd4220875c51990249c9264b1f90454f90cf78c45984
Error: Returned error: Method not enabled`
Oh, interesting. You recompiled the ingress contract and it worked instead of using the compiled hex data provided in our documentation? Did you change something to the code or just recompiled?
Has joined the channel.
hi
Has joined the channel.
Hi, I'm following the Create a permissioned network tutorial on the docs (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network), and I'm unable to send a transaction using MetaMask, as it stays on pending. On the node terminals, I can see the message "No sync target, waiting for peers: 2". What am I doing wrong?
Could you try enabling the debug or trace logs in the nodes and posting them so we can try to help?
https://besu.hyperledger.org/en/latest/HowTo/Troubleshoot/Troubleshooting/#logging
Screenshot from 2021-03-15 22-50-38.png
I don't know if this is what you asked for, sorry if I'm mistaken
Yes, that's what I asked for. I wanted to check if the node permissioning rules were rejecting other node's connections.
From the log, it looks like they are able to talk to each other.
In the other node's logs, do you see the same msg: "[...] Node permissioning: permitted enode [...]"
Besu Office Hours in ~14 hours - https://wiki.hyperledger.org/display/BESU/2021-03-16+Besu+Office+Hours
Feel free to stop in and ask questions!
Has joined the channel.
hi. I want to deploy besu-hyperledger with BAF V0.7.0 in a kubernetes cluster. what steps should I take? is there any document by with I can deploy?
:de::rotating_light: Besu Berlin Bug :rotating_light::de:
We found an issue related to the Berlin upgrade in Besu 21.1.0 and 21.1.1. If you are using Besu, please download 21.1.2 and upgrade your node as soon as possible. The Goerli upgrade is scheduled for less than 24h from now.
https://github.com/hyperledger/besu/releases/tag/21.1.2
:de::rotating_light: Besu Berlin Bug :rotating_light::de:
We found an issue related to the Berlin upgrade in Besu 21.1.0 and 21.1.1. If you are using Besu, please download 21.1.2 and upgrade your node as soon as possible. The Goerli upgrade is scheduled for less than 24h from now.
https://github.com/hyperledger/besu/releases/tag/21.1.2
office hours: new link -> https://consensys.zoom.us/j/98246444303
Yes, on all three nodes
Is your Metamask connected to your network? Make sure you have the right URL and Chain Id.
I think so; the URL is the localhost in this case, right?
I copied it first from the recompiled hex code. Then just for verification checked it in the documentation. Both were same.
The one that I had in my code was different from both, which I don't know how did that happen.
So the one mentioned in the docs is the correct one.
URL should be - *http://localhost:8545*
and Chain Id should be - *1981*
You can check the network in your Metamask and create a new one if it does not exist.
These are my current settings. I have just seen that Metamask says that the network is not connected
Nevermind, I connected the accounts; the problem still persists though
Has joined the channel.
Hey everyone, I'm a bit confused about what Besu does. Would I able to create a private blockchain that uses the ethereum technology, with my own private currency? Or it only works with the main ethereum blockchain?
Both, which is probably why you are confused.
You can do both, which is probably why you are confused.
We have configurations for the named netowkrs (mainnet, classic) and testnets (ropsten, rinkeby, goerli, kotti, mordor, astor).
We have configurations for the named production networks (mainnet, classic) and testnets (ropsten, rinkeby, goerli, kotti, mordor, astor).
But you can also set up private or public networks too with custom configurations. There are a number of enterprise features that can be added to these custom networks such as private transactions and node permissioning (search for lacchain on github for an example)
Oh, that's really nice. Thanks!
I think you need to add `ETH` to the api list
I have started besu locally with this command:
```
docker run -p 8546:8546 --mount type=bind,source=/Users/rp/Projects/besu-dev,target=/var/lib/besu hyperledger/besu:latest --miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-ws-enabled --rpc-http-enabled --network=dev --data-path=/var/lib/besu
```
And, I see in the logs that the http service is started at localhost:8545. However, when I try to connect at the same host and port, I do not get any response. Any ideas?
I have started besu locally with the command:
```
docker run -p 8545:8545 --mount type=bind,source=/Users/rp/Projects/besu-dev,target=/var/lib/besu hyperledger/besu:latest --miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-ws-enabled --rpc-http-enabled --network=dev --data-path=/var/lib/besu
```
However, when I try to get the web3 client version like below, I do not get any response:
```
Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/
Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().sendAsync().get();
String clientVersion = web3ClientVersion.getWeb3ClientVersion();
System.out.println("Version" + clientVersion);
```
Any ideas as to what I may be doing wrong?
I tried running besu with this `docker run -p 8545:8545 -p 13001:30303 hyperledger/besu:latest --rpc-http-enabled` but still no response. :(
Hello rampatra, try adding `--rpc-http-host=0.0.0.0` so Besu binds the rpc interface to all available in the container
I think you most likely will need to add `--host-allowlist=*` as well to allow connections from the host
Tried both but still no luck
and in the logs I see that besu binds to 0.0.0.0 even without the flag.
Any other tips? 🤔
When I do a simple get call to `localhost:8545` on the browser, I see a blank page though. So, that's some response.
I just did a call from postman and I get the response:
```
{
"jsonrpc": "2.0",
"id": 1,
"result": "0x5e39a0a66544c0668bde22d61c47a8710000ece931f13b84d3b2feb44ec96d3f"
}
```
so that means my besu setup is okay
it is the web3j then
excellent
But do you have any idea about web3j? Why it isnt working? Didnt get any reply from their gitter chat group :(
Thanks for the help 🙏
no, I'm sorry, I've never used that library
okay, nw
okay, nw. 👍
do you get resonses from http://localhost:8545/readiness and http://localhost:8545/liveness?
Ok, so new guy question; I am able to successfully get the onchain based permissions up and running using clique consensus via the docs, but I am not seeing any docs on doing this with IBFT2. Are there any docs for that that I am missing?
I expect it is the same process. Just with a different consensus setting in the chain genesis file.
Permissioning is not dependent on the consensus algorithm.
Proposal: Move 4 maintainers to Emeritus status: https://github.com/hyperledger/besu/pull/2048
There are two things in the configurations that I don't understand. Please explain with some practical example -
1. What is difference between `p2p-interface` and `p2p-host`?
2. What is the use of `miner extra data`? I know that it gets saved in the block, but why to do so, and how it helps?
It's just as @shemnon mentioned. Here is the quick link -
https://besu.hyperledger.org/en/21.1.0/Tutorials/Private-Network/Create-IBFT-Network/
This one is for v21.1.0. Change the docs for your version. Though they will likely be same.
p2p host is what is advertised in the p2p messages as the host address, i.e. the public non-firewalled address. p2p-interface is what address is bound to locally. If you have only one network card then 0.0.0.0 is an acceptable interface. If you use nat-method=upnp or docker it should auto-populate.
miner extra data is for the graffiti or vanity data.
the extra data field is used in PoA algorithms like clique, ibft, and qbft for signing, but they leave room for vanity bytes.
Hi guys, any idea how to make pending jobs here start? https://github.com/hyperledger/besu/pull/1977
Has joined the channel.
I'll poke it to see if they kickoff
Hi, regarding the genesis config of a private network, is there an easy way to know which EIPs are included with which milestones?
[ ](https://chat.hyperledger.org/channel/besu?msg=xhbNxDDGfHyvG7GZq) you can look at ProtocolScheduleBuilder in the code. All hard forks are documented elsewhere I think.
Hi all, I'm having an issue using Truffle (at least on v5.2.5) with Besu. Basically the [MetaCoin sample project](https://www.trufflesuite.com/docs/truffle/getting-started/creating-a-project) doesn't deploy properly. It seems like it's a Truffle [bug](https://github.com/trufflesuite/truffle/issues/3913) and in the thread they're blaming the `--rpc.allow-unprotected-txs` added to geth. The thing is that I'm seeing a surprisingly similar behavior on Besu which, AFAIK, still allows non EIP-155 compliance txs (ref: [PR#1980](https://github.com/hyperledger/besu/pull/1980)), throwing an exception with the following message `An unsupported encoded 'v' value of 0 was found`. The only tweak needed on the sample project to reproduce it is to add a HDWalletProvider to the `truffle-config.js` for hitting _dev_ network accounts. Has anybody else experienced the same?
Hi all, I'm having an issue using Truffle (at least on v5.2.5) with Besu. Basically the [MetaCoin sample project](https://www.trufflesuite.com/docs/truffle/getting-started/creating-a-project) doesn't deploy properly. It seems like it's a Truffle [bug](https://github.com/trufflesuite/truffle/issues/3913) and in the thread they're blaming the `--rpc.allow-unprotected-txs` added to geth. The thing is that I'm seeing a surprisingly similar behavior on Besu which, AFAIK, still allows non EIP-155 compliance txs (ref: [PR#1980](https://github.com/hyperledger/besu/pull/1980) ), throwing an exception with the following message `An unsupported encoded 'v' value of 0 was found`. The only tweak needed on the sample project to reproduce it is to add a HDWalletProvider to the `truffle-config.js` for hitting _dev_ network accounts. Has anybody else experienced the same?
Hi all, I'm having an issue using Truffle (at least on v5.2.5) with Besu. Basically the [MetaCoin sample project](https://www.trufflesuite.com/docs/truffle/getting-started/creating-a-project) doesn't deploy properly. It seems like it's a Truffle [bug](https://github.com/trufflesuite/truffle/issues/3913) and in the thread they're blaming the `--rpc.allow-unprotected-txs` added to geth. The thing is that I'm seeing a surprisingly similar behavior on Besu which, AFAICS, still allows non EIP-155 compliance txs (ref: [PR#1980](https://github.com/hyperledger/besu/pull/1980) ), throwing an exception with the following message `An unsupported encoded 'v' value of 0 was found`. The only tweak needed on the sample project to reproduce it is to add a HDWalletProvider to the `truffle-config.js` for hitting _dev_ network accounts. Has anybody else experienced the same?
I tried some older 5.1.x versions of Truffle as well, with the same result, but I would blame the usual dependency instability that comes along with npm dependencies. I had a project with a cached `node_modules` which deployed fine, but once I wiped it out and installed the new Truffle version it never deployed again. Sadly, I lose the `package-lock.json` to know the proper working versions. Anyway, I went and tried the sample project with the reported results
nevermind, the issue was about using `@truffle/hdwallet-provider` version `1.2.4` :unamused: (ref: [comment@issue#3939](https://github.com/trufflesuite/truffle/issues/3939#issuecomment-804667940))
nevermind, the issue was about using `@truffle/hdwallet-provider` version `1.2.4` :unamused: (ref: [comment@issue#3939](https://github.com/trufflesuite/truffle/issues/3939#issuecomment-804667940) )
Hey everyone. I'm trying to create a zero gas permissioned network following this two pages in the docs: (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network/) (https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/). When I try to send a transaction through Metamask between the imported accounts the transaction stays on 'pending', although blocks keep being created. The transactions send properly when I'm using a non-zero gas network. Why is this happening?
Are there any docs explaining how to run besu locally (preferably via docker) with a private chain and ibft consensus protocol?
The link here: https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/ explains how to do the above but not via docker. Is there a doc explaining how to do this with docker instead? 🤔
Hello rampatra, you can take a look here https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/README.md
Hi everyone, I'm having a problem migrating my contracts on my besu network. When i try to migrate on my ganache network there is no problem. The migration error says:
Hi everyone, I'm having a problem migrating my contracts on my besu network. When i try to migrate on my ganache network there is no problem. The migration error says:
`Error: *** Deployment Failed ***
"Migrations" -- Internal error`
Hi everyone, I'm having a problem migrating my contracts on my besu network. When i try to migrate on my ganache network there is no problem. The migration error says:
`Error: *** Deployment Failed ***
"Migrations" -- Internal error`.
The node that gets the request says this:
`bootnode | 2021-03-25 10:03:57.756+00:00 | vert.x-worker-thread-15 | ERROR | JsonRpcHttpService | Error processing JSON-RPC requestBody
bootnode | java.lang.RuntimeException: An unsupported encoded `v` value of 0 was found`.
Hello RobbeV, try downgrading `@truffle/hdwallet-provider` to some version earlier than `1.2.4` which is [broken](https://github.com/trufflesuite/truffle/issues/3939#issuecomment-804667940)
Thanks diegoll, that worked!
Hi everyone, I was looking into pruning with hyperledger besu, and I have 2 questions: First of all, pruning is not supported for private transactions, is this something that will come in the future or is not possible? Second, I read that fast synchronization is enabled by default, wich also enables pruning by default. Therefor my network should allready be using pruning? I have used private transactions on this network so I'm a bit confused. Maybe it means that the public state can be pruned but not the private states?
To add to this, I checked the diskspace of my 4 nodes, 2 of them are 1GB in size, while to others are 250MB in size. all 4 have the same configurations. except that one is a bootnode ofc. Does anyone have an explanation for this?
Hi team, does besu JWT token authentication support algorithm EdDSA specifically Ed25519?
I believe we require RS256 JWT tokens, as described here https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/#jwt-public-key-authentication
does your use case require the EdDSA algorithm? could you explain more about your requirement if so?
Hey there, so there's a little inconsistency in the docs we need to fix- the updated content is here. https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#sync-mode
We are refocusing on Bonsai Tries instead of pruning, pruning is no longer a default in any mode https://wiki.hyperledger.org/display/BESU/Bonsai+Tries+Design+Overview
Additionally, if you are connecting to a private network (anything aside from named testnets or the Ethereum main net), the default should be full sync as per the docs.
We'll be testing private transactions against the new Bonsai Tries mode in the future for sure. :thumbsup: Do you have a specific need for something like that on your private network nodes? I'm honestly not sure why you have two larger nodes and two smaller, but I wouldn't recommend turning on pruning or fast sync on a private network in any case.
I am looking into besu for using in harbor logistics using a private network. We need private transactions but we also want to make it as easy as possible for our clients to run their own nodes. Smaller disk spaces would be one way to make it easier for them.
The bonsai tries looks promising, in what kind of timeframe can we expect the implementation of this?
Does Besu currently support Solidity 0.8?
If not, is there an ETA?
Hi @mwaser , Ethereum isn't designed to have any knowledge of Solidity actually. Solidity compiles contracts into EVM bytecode which is what is specified by the Ethereum network. For your situation, that means your version is fine.
But what if a newer Solidity version results in a newer bytecode that the old EVM doesn't understand? In other words, doesn't the EVM need updating in some cases when updating solidity?
EVM changes are made through the ethereum governance process and network upgrades so Solidity never requires that the EVM "update". The dependency is the other way around, solidity targets the EVM.
So, you mean before a newer solidity version is released, the EVM is already updated (if necessary) following the eth governance process?
Actually, you will find that the Azure Besu template is old enough that it uses Byzantium which is a problem for newer versions of Solidity and anything other than obsolete versions of OpenZeppelin.
Further, if I have a private Besu network, it isn't connected to the eth governance process.
So, my current question stands, slightly rephrased to -- can the current version of Besu handle Solidity 0.8? Or, do I need to do something else (i.e. the update mentioned above)?
Or, to rephrase again -- does Besu currently come with the necessary EVM bytecode to support Solidity 0.8?
This is a simple yes or no question and the original phrasing of "Does Besu currently support Solidity 0.8?" was entirely correct (and the pedantic lecture did NOT answer the simple yes or no question for a private network case).
Hi guys, could somebody make a review of this one please? https://github.com/hyperledger/besu/pull/1977
I have setup a prive IBFT network and 0.8 solidity works fine in my case
I have setup a private IBFT network and 0.8 solidity works fine in my case
Besu can handle current and all past EVM specifications.
If you are on a private network then you have various network upgrades specified in your genesis file. If you only specify old upgrade blocks, it's possible that Solidity 0.8 won't generate the correct bytecode for it.
Awesome! Thank you VERY much @rampatra
Has Besu been used in a real world CBDC use case where a transaction happens between Bank A (client 1) and Bank B (client 2) such that other banks don't know about it? I know we have private transactions via Orion but how do we maintain a central ledger of balances of each bank if we go with private transactions?
What are the options/approaches here?
didnt know these endpoints. Good to know
you might want to go to the EEA for those questions - in a nutshell, private transactions still maintain a central ledger, but only the hash of the private data is shared.
Hi All. I'm running some test on my besu private network using caliper. I'm using IBFT2 as the consensus algorithm with 8 validators.
Hi All. I'm running some test on my besu private network using caliper. The blockchain is configured with IBFT2 as the consensus algorithm with 8 validators and a blocktime of 10s. I've configured caliper to have 4 workers (every worker targets to a different validator) and a Master node, running each on a dedicated VM and connected using mqtt (distributed configuration). I'm using fixed rate controller with 1000 transactions and a fixed rate of 100 TPS. I've no problem with the query operation and the test gets completed. But when i run the transaction (or event the open) operation the test gets stucked waiting for "unfinished" transactions. Does anyone experienced the same behaviour? Any suggestions? Thanks, Emiliano
have DM'd you
have you?
where>?
where?
Has joined the channel.
Hey Vlad, I'll make sure someone takes a look. Cheers
Fix for a flaky test - review please https://github.com/hyperledger/besu/pull/2099
There's a Bank of Thailand project using Hyperledger Besu for CBDC you can find more information about online
Also known as Project Inthanon-LionRock or m-CBDC bridge
thanks for the info. I did check it out earlier but couldnt find info in this detail but would give another look.
Can I have smart contract that's only visible to a privacy group? Kind of a private smart contract?
Has joined the channel.
Hi everyone, I'm looking into privacy groups. One of the functions web3-eea offers is 'findPrivacyGroup()'. I can see cases where u want to use this, but in my case I'd rather have that users can't search for privacygroups. I'll explain further, when company A and company B make a privacygroup, I don't want company C to try to guess with findPrivacyGroup() if A and B have done private transactions. Is there a way to configer my network so findPrivacyGroup is not allowed? Or is my consern flawed?
Has joined the channel.
Hi! Does it make sense to run Besu with parameters ``--pruning-enabled=true --sync-mode=FULL``? My goal is to be completely trustless, sync and verify everything from genesis while not keeping all archive node data
Is there any document or github on the subject of how can I deploy Besu as a service? for example a script that ask the user question about network configuration and then deploy in a kubernetes cluster and then the user can import smart contract on it
Has joined the channel.
Hi team, after enabling rpc-http-authentication-enabled=true with RSA public key in all 4 nodes config.toml, the contract deployment throws an error of NoNetwork detected. Instead of 3 peers (4 nodes IBFT2 network) connected, there are only 1 or 2 peers connected. What can be wrong here?
Do the nodes' logs have any WARN/ERROR messages?
Also, could you share the config file that you are using?
Pruning doesn't run during sync IIRC. Using the early access bonsai tries may be a better path.
Hi `lucassaldanha`, I test the JWT token with cURL command provided in the doc and it did go through and result is `true`. etherjs 5.0.x is used to initialize JsonRpcProvider. The error when generating wallet is: [Error: Wallet has error: Error: could not detect network (event="noNetwork", code=NETWORK_ERROR, version=providers/5.0.17)]
import { ContractFactory, ethers } from "ethers";
let connectionInfo = {
url: GLOBAL.PROVIDER_URL, //<<=="http://my-ip:80"
headers: {
"Bearer": tokenBesu //<<==JWT token which validated on jwt.io and OKed with cUrl command provided in besu doc
},
};
const provider = new ethers.providers.JsonRpcProvider(connectionInfo);
wallet = new ethers.Wallet(privateKeyBesu, provider); //<<== this line throws error
The network must be working fine
Yes. If you follow this example it walks through deploying a private contract to a group of 2 nodes, and demonstrating that a third node cannot access the contract. https://besu.hyperledger.org/en/stable/Tutorials/Privacy/web3js-eea-Multinode-example/
What permissions have you given the JWT token that you are using? I suspect that EthersJS might be doing some calls to get information about the network but it is failing because it doesn't have the right permissions.
Maybe you can disable authentication, enable the JSONRPC api tracing log and run your EtherJS script to see what requests EthersJS is sending to the client.
permissions:["*:*"]. Give all to users
I'm not sure if this is a typo, but you are missing the *'s
All permissions -> ["*:*"]
All permissions -> `["*:*"]`
Or maybe it is just Rocket Chat messing with the format
Have you tried disabling auth and checking the logs? Maybe compare what methods are executed when you use cURL and what methods are executed when you use EthersJS
Sorry it is typo, shall be permissions: ["*:*"]
Here is the config.toml
data-path="/home/me/bin/besu_network/node1/data" # Path
# Network
p2p-port=30303
max-peers=42
rpc-http-host=["0.0.0.0"]
rpc-http-port=8545
rpc-http-enabled=true
rpc-http-api=["ETH", "NET","WEB3","ADMIN","TXPOOL","IBFT", "EEA","DEBUG"]
rpc-ws-host=["0.0.0.0"]
rpc-ws-port=8546
rpc-ws-enabled=true
#jwt token
rpc-http-authentication-enabled=true
rpc-http-authentication-jwt-public-key-file="/home/me/bin/besu_network/publicKeyRSA.pem"
#Metrics for monitoring
metrics-port=9545
metrics-push-port=9001
min-gas-price=0
logging="DEBUG"
#allow all
host-allowlist=["*"]
rpc-http-cors-origins=["*"]
# Chain
genesis-file="/home/me/bin/besu_network/genesis.json" # Path to the custom genesis file
#node-private-key-file="./key"
# Mining
miner-enabled=false
miner-coinbase="0xfe3b557e8fb62b89f4916b721be55ceb828dbd73"
Here is the debug log when the ethersjs is trying to init wallet:
[ ](https://chat.hyperledger.org/channel/besu?msg=tseqgjT2jC4E4C6eB) If you didn't see attached debug log, please let me know. The log seems normal.
wallet = new ethers.Wallet(privateKeyBesu, provider); //<<==this line causes error. No method was called. Before enabling auth, the app can init wallet, deploy contract and call methods of contract.
What I meant is that I believe that when you instantiate the wallet, EtherJS is trying to get some information from the client through a JSON-RPC call. So it would be helpful to find out if that is the case.
If everything works when using cURL, we need to find what EthersJS is doing differently.
From EthersJS docs, it looks like they make a call to eth_chainId (or eth_networkId as a fallback).
Could you try calling both endpoints with auth enabled using cURL to see if it works?
Reference: https://docs.ethers.io/v5/api/providers/jsonrpc-provider/#JsonRpcProvider
`If urlOrConnectionInfo is not specified, the default (i.e. http://localhost:8545) is used and if no network is specified, it will be determined automatically by querying the node using eth_chaindId and falling back on eth_networkId.`
Another thing that you could try for debugging purposes is configuring the JsonRpcProvider with the networkId and see if it works doing that.
Hello. `eth_estimateGas` on Besu rejects if we send the `nonce` argument with an error `Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "nonce" (class org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.JsonCallParameter), not marked as ignorable (11 known properties: "gasPrice", "value", "gasLimit", "gas", "from", "to", "feeCap", "gasPremium", "strict", "data", "payload"])`.
the spec https://eth.wiki/json-rpc/API doesn't specify anything about `nonce`. however, other platforms like go-ethereum/GoQuorum ignore if that argument is sent. This is useful when using Web3j Transaction request factory methods to build the Transaction object (code https://github.com/web3j/web3j/blob/master/core/src/main/java/org/web3j/protocol/core/methods/request/Transaction.java), as we can re-use the same Transaction object to estimate and send. Having the error from Besu means that we need to build the transaction twice.
Would it make sense for Besu to do the same behaviour as Get/GoQuorum? ofc, other option is also create a change on Web3j to force the nonce as optional and/or allow to easily deep copy a transaction object. Thanks!
Has joined the channel.
What is it and how do I do that?
--Xdata-storage-format=
the feature is in early access so expect that functionality could change in future releases
Great, thanks! Is it in the latest release?
It's been in since 21.1.0 so any release since then should contain it, the latest release is always best for tweaks to the experimental flag features
Awesome, thanks a lot!
No problem!
Here's more about the feature https://wiki.hyperledger.org/display/BESU/Bonsai+Tries+Design+Overview
i use besu xluncher to start besu network
Clipboard - April 6, 2021 4:28 PM
now it is in this state
Clipboard - April 6, 2021 4:29 PM
what should i do next?
my os promt dont come back and it is in a state that i have sent the image.
Besu at the end of the configuration starts on its own and start synchronization. Your Besu is started with the configuration you gave it. so there is nothing left to do normally
You launched a node in dev without mining. So I guess it is looking to connect to another peer to start the fastsync. Maybe you should add your peers in the static-nodes.json file to speed up the discovery of your other dev peers
Has joined the channel.
Hi there - after upgrading a 3 node clique/poa private network node running in Kaleido to 21.1.3 from 1.5.0, I executed a protocol upgrade by adding `istanbulBlock` and `muirGlacierBlock`. I see the following exception when the node is attempting to mine what I think is the milestone block for `istanbul/muirGlacier`
```
2021-04-06 16:24:38.165+00:00 | EthScheduler-Workers-0 | INFO | PersistBlockTask | Imported #17,619 / 0 tx / 0 om / 0 (0.0%) gas / (0x33f23515d643f6f63c61eb1fc556bf212e04de2fc8b27ddb841ab62d9e9dd65e) in 0.082s. Peers: 3
2021-04-06 16:24:43.182+00:00 | pool-7-thread-2 | ERROR | BlockMiner | Block mining threw an unhandled exception.
java.lang.NullPointerException
at com.google.common.net.InetAddresses.ipStringToBytes(InetAddresses.java:169)
at com.google.common.net.InetAddresses.forString(InetAddresses.java:142)
at org.hyperledger.besu.ethereum.p2p.discovery.PeerDiscoveryAgent.updateNodeRecord(PeerDiscoveryAgent.java:189)
at org.hyperledger.besu.ethereum.p2p.network.DefaultP2PNetwork.updateNodeRecord(DefaultP2PNetwork.java:435)
at org.hyperledger.besu.RunnerBuilder.lambda$build$6(RunnerBuilder.java:459)
at org.hyperledger.besu.RunnerBuilder$$Lambda$516/000000006A0FDFF0.onBlockAdded(Unknown Source)
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain.lambda$appendBlock$8(DefaultBlockchain.java:242)
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain$$Lambda$858/00000000C089F6F0.accept(Unknown Source)
at org.hyperledger.besu.util.Subscribers.lambda$forEach$0(Subscribers.java:112)
at org.hyperledger.besu.util.Subscribers$$Lambda$384/0000000069FC9DD0.accept(Unknown Source)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.hyperledger.besu.util.Subscribers.forEach(Subscribers.java:109)
at org.hyperledger.besu.ethereum.chain.DefaultBlockchain.appendBlock(DefaultBlockchain.java:242)
at org.hyperledger.besu.ethereum.mainnet.MainnetBlockImporter.lambda$importBlock$0(MainnetBlockImporter.java:50)
at org.hyperledger.besu.ethereum.mainnet.MainnetBlockImporter$$Lambda$850/00000000C0876EC0.accept(Unknown Source)
at java.base/java.util.Optional.ifPresent(Optional.java:183)
at org.hyperledger.besu.ethereum.mainnet.MainnetBlockImporter.importBlock(MainnetBlockImporter.java:48)
at org.hyperledger.besu.ethereum.core.BlockImporter.importBlock(BlockImporter.java:44)
at org.hyperledger.besu.ethereum.blockcreation.BlockMiner.mineBlock(BlockMiner.java:131)
at org.hyperledger.besu.consensus.clique.blockcreation.CliqueBlockMiner.mineBlock(CliqueBlockMiner.java:49)
at org.hyperledger.besu.ethereum.blockcreation.BlockMiner.run(BlockMiner.java:82)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
```
The genesis config is as follows:
```
> admin.nodeInfo
{
enode: "enode://95fbe5135415caf11e56fb75950db7ebbc3acbe9e604d5b81b9e644e3906aa955adb0400af8cf48bb81c18fe20320cedc4a27d2e56a784075640e2fff91c4305@0.0.0.0:30303?discport=0",
id: "95fbe5135415caf11e56fb75950db7ebbc3acbe9e604d5b81b9e644e3906aa955adb0400af8cf48bb81c18fe20320cedc4a27d2e56a784075640e2fff91c4305",
ip: "0.0.0.0",
listenAddr: "0.0.0.0:30303",
name: "besu/v21.1.3/linux-x86_64/openj9-java-11",
ports: {
listener: 30303
},
protocols: {
eth: {
config: {
byzantiumBlock: 0,
chainId: 644457192,
clique: {...},
eip150Block: 0,
eip158Block: 0,
homesteadBlock: 0,
istanbulBlock: 17620,
muirGlacierBlock: 17620,
petersburgBlock: 0
},
```
Ok, looks like what i've got isn't playing nice with what was introduced in : https://github.com/hyperledger/besu/pull/1998
To be clear, the chain is stuck at the milestone block and is not mining blocks after that
[ ](https://chat.hyperledger.org/channel/besu?msg=BZK6f5LywjPt2Couj) Here is eth_chainId returns with curl command line:
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : "0x7e2"
}
Here is the eth_networkId returns:
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -32601,
"message" : "Method not found"
}
}
I feel like this is a question for the besu-contributors channel :)
0x7e2 is 2018
Is the above response with or without auth enabled?
const provider = new ethers.providers.JsonRpcProvider(connection, 2018); //<<==connection.headers.Bearer is the JWT token. connection.url is the http://my-ip
all with auth enabled
The error is the same for wallet saying that noNetwork
The problem may be with `connection` which is currently constructed as object. From ethersjs doc, connection is a ConnectionInfo which seems to be a class. But I could not find how to init an instance.
I can't think of a reason for this not working. Either this is a hidden problem in Besu or EthersJS is doing something wrong.
I suggest that you do two things:
1. Open a ticket on GitHub and add all the information about the issue. Including the configuration file and other required files. Everything that we need to reproduce this issue ourselves and identify if it is a problem with Besu or EthersJS.
2. Try finding out if EthersJS has had any similar issues when using JWT or custom headers on the connection. It is possible that this has been identified by someone else and they might have a workaround for it.
I will add more info to the ethers github ticket which was opened a couple of days ago. There is no reply or comment yet.
please send me the link to I can take a look as well
I tried to init wallet with only url which won't work as we know. it returns same error of no network detected. It may be something related to authentication.
[ ](https://chat.hyperledger.org/channel/besu?msg=6aFNJnZvNgfBpFJMa) https://github.com/ethers-io/ethers.js/issues/1430
Is there any document or github on the subject of how can I deploy Besu as a service? for example a script that ask the user question about network configuration and then deploy in a kubernetes cluster and then the user can import smart contract on it?
Hi, we have several documentations and tools to ease the creation of a Besu config.
You may find something that suits your need on https://besu.hyperledger.org/en/stable/HowTo/Deploy/Kubernetes/ and look at the Helm files that are designed to deploy a Besu node and some tooling around it. For instance for a PoW Node, you can look at one of the charts at https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ethash/besu
Let me know if this is the kind of thing that you need, otherwise don't hesitate to tell me more about your needs.
Post a bug.
Has joined the channel.
hi
Thanks for bringing our attention to this reddevil! I'll make an issue for this and include it in our sprint planning. Also, I'll go find out if I can give you a workaround right now.
Can you reply with the full logs of that mining node here: https://github.com/hyperledger/besu/issues/2115
thanks for taking a look @rai , I had the node running at `INFO` level. do you want me to re-sync the node with `DEBUG` level log?
because the logs don't show much before/after the stacktrace
I'm mostly interested in the INFO level logging that happens at the beginning. So if you just want to provide up until the point you start getting sync messages, that works too.
will attach it to the github issue shortly.
@lucassaldanha yes. I will move there.
@shemnon not sure if should be a bug, as this might be a question also if the RPC should be clarified if nonce is accepted or not (or ignored).
logs added with some context
We have a strict/non-strict option for estimate gas. IMHO ignoring nonce ordering is a valid non-strict estimate request. (we already ignore balances for non-strict checks) So a bug would make sure it gets addressed.
Hi team, I configure a 4 nodes network on a single server and create service under systemd for auto restart. Among 4 nodes, only one node1 is boot node. Must the node1 (boot node) be started first?
Hi team, I configure a 4 nodes network on a single server and create service under systemd for auto restart. Among 4 nodes, only one node1 is boot node. Must the node1 (boot node) be started first? I used to reboot the whole server and let the nodes sync. However I noticed a couple of times that there were only 1 or 2 peers synced (shall be 3). Then I tried to manually start node1 and then all other 3 nodes and the network was working fine. I am wondering if the boot node has to be started first.
orion.png
I have added web3j (v 4.8.4) as a dependency in my maven project but I am not getting these files (marked in red). Any ideas?
Has joined the channel.
Hi, I'm trying to setup Token Bridge with Hyperledger Besu and I'm stuck at trying to deploy the TokenBridge Contracts on the Home & Foreign EVM's.
Essentially after running the Deploy script I was able to get the Contracts to deploy on my home EVM but when the script tries to deploy to the Foreign network I run into an error saying I don't have enough (gas * price + value)
I'm using the Ropsten test network
With the Infura API endpoint
I believe I don't understand the formula for the gas when it comes to setting up the environment variables for the token bridge contract deployment script
HOME_RPC_URL=***
HOME_BRIDGE_OWNER=0x627306090abaB3A6e1400e9345bC60c78a8BEf57
HOME_VALIDATORS_OWNER=0x627306090abaB3A6e1400e9345bC60c78a8BEf57
HOME_UPGRADEABLE_ADMIN=0x627306090abaB3A6e1400e9345bC60c78a8BEf57
HOME_DAILY_LIMIT=30000000000000000000000000
HOME_MAX_AMOUNT_PER_TX=1500000000000000000000000
HOME_MIN_AMOUNT_PER_TX=1
HOME_REQUIRED_BLOCK_CONFIRMATIONS=1
HOME_GAS_PRICE=1
BLOCK_REWARD_ADDRESS=0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73
FOREIGN_RPC_URL=https://ropsten.infura.io/v3/**********
FOREIGN_BRIDGE_OWNER=0xB28Fde56b5127801875a0Fb403403f03cA98B400
FOREIGN_VALIDATORS_OWNER=0xB28Fde56b5127801875a0Fb403403f03cA98B400
FOREIGN_UPGRADEABLE_ADMIN=0xB28Fde56b5127801875a0Fb403403f03cA98B400
FOREIGN_DAILY_LIMIT=15000000000000000000000000
FOREIGN_MAX_AMOUNT_PER_TX=1000000000
FOREIGN_MIN_AMOUNT_PER_TX=1
FOREIGN_REQUIRED_BLOCK_CONFIRMATIONS=1
FOREIGN_GAS_PRICE=1
I used this link https://faucet.ropsten.be/ to get 1 ETH for my Ropsten address
I don't understand how to set theses environment variables
[ ](https://chat.hyperledger.org/channel/besu?msg=6aFNJnZvNgfBpFJMa) here is a issue post on ethersjs. https://github.com/ethers-io/ethers.js/issues/1201. headers seems solved sometime ago.
[ ](https://chat.hyperledger.org/channel/besu?msg=LmvmvA5SHWzdHEYz4) Hi there, could you share the documentation or tutorial you're following? I'm not familiar with TokenBridge, as it is not something developed by the Besu team- those are not environment variables for Besu.
Hi there, could you share the documentation or tutorial you're following? I'm not familiar with TokenBridge, as it is not something developed by the Besu team- those are not environment variables for Besu
I've had a look and would suggest following along with the documentation on the tokenbridge site, these are indicated as environment variables for the tokenbridge application. They also have a discord community you may be able to get answers in. Hope that helps!
Has joined the channel.
Has left the channel.
`lucassaldanha`, the problem solved by calling new ehters.StaticJsonRpcProvider(connection, chainId). This StaticJsonRpcProvider bypasses the fallback to call getChainId which throws error no network
Has joined the channel.
Hello, i deployed Besu node from scratch to our account and i am getting some strange error like below:
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Received conflicting pivot blocks for 9993668.
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | WARN | PivotBlockRetriever | 250 attempts have failed to find a fast sync pivot block
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Move pivot block back to 9993618 and retry.
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockConfirmer | Confirm pivot block 9993618 with at least 5 peers.
2021-04-09 16:24:08.501+00:00 | nioEventLoopGroup-3-5 | INFO | PivotBlockConfirmer | Received 1 confirmation(s) for pivot block header 9993618
2021-04-09 16:24:08.579+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockConfirmer | Failed to confirm pivot block 9993618. Received conflicting headers
2021-04-09 16:24:08.579+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Received conflicting pivot blocks for 9993618.
2021-04-09 16:24:08.579+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Max retries reached, cancel pivot block download.
2021-04-09 16:24:08.583+00:00 | nioEventLoopGroup-3-2 | ERROR | DefaultSynchronizer | Fast sync failed (PIVOT_BLOCK_HEADER_MISMATCH), please try again.
2021-04-09 16:24:08.583+00:00 | nioEventLoopGroup-3-2 | WARN | DefaultSynchronizer | Exiting FastSync process
2021-04-09 16:24:08.590+00:00 | Thread-1 | INFO | DefaultSynchronizer | Stopping synchronizer
2021-04-09 16:24:08.595+00:00 | Thread-1 | INFO | EthProtocolManager | Stopping eth Subprotocol.
2021-04-09 16:24:08.695+00:00 | Thread-1 | INFO | NetworkRunner | Network stopped.
2021-04-09 16:24:08.695+00:00 | Thread-1 | INFO | AutoTransactionLogBloomCachingService | Shutting down Auto transaction logs caching service.
2021-04-09 16:24:08.696+00:00 | Thread-1 | INFO | DockerNatManager | Stopping docker NAT manager.
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8
Hello, i deployed Besu node from scratch to our account and i am getting some strange error like below:
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Received conflicting pivot blocks for 9993668.
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | WARN | PivotBlockRetriever | 250 attempts have failed to find a fast sync pivot block
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Move pivot block back to 9993618 and retry.
2021-04-09 16:24:08.483+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockConfirmer | Confirm pivot block 9993618 with at least 5 peers.
2021-04-09 16:24:08.501+00:00 | nioEventLoopGroup-3-5 | INFO | PivotBlockConfirmer | Received 1 confirmation(s) for pivot block header 9993618
2021-04-09 16:24:08.579+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockConfirmer | Failed to confirm pivot block 9993618. Received conflicting headers
2021-04-09 16:24:08.579+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Received conflicting pivot blocks for 9993618.
2021-04-09 16:24:08.579+00:00 | nioEventLoopGroup-3-2 | INFO | PivotBlockRetriever | Max retries reached, cancel pivot block download.
2021-04-09 16:24:08.583+00:00 | nioEventLoopGroup-3-2 | ERROR | DefaultSynchronizer | Fast sync failed (PIVOT_BLOCK_HEADER_MISMATCH), please try again.
2021-04-09 16:24:08.583+00:00 | nioEventLoopGroup-3-2 | WARN | DefaultSynchronizer | Exiting FastSync process
2021-04-09 16:24:08.590+00:00 | Thread-1 | INFO | DefaultSynchronizer | Stopping synchronizer
2021-04-09 16:24:08.595+00:00 | Thread-1 | INFO | EthProtocolManager | Stopping eth Subprotocol.
2021-04-09 16:24:08.695+00:00 | Thread-1 | INFO | NetworkRunner | Network stopped.
2021-04-09 16:24:08.695+00:00 | Thread-1 | INFO | AutoTransactionLogBloomCachingService | Shutting down Auto transaction logs caching service.
2021-04-09 16:24:08.696+00:00 | Thread-1 | INFO | DockerNatManager | Stopping docker NAT manager.
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8 I request you to let me know the solution and i dont know whats wrong here, i saw this error first time. Thanks :)
I have setup orion nodes following the guide here: https://docs.orion.consensys.net/en/stable/HowTo/Quickstart/ however when I send a payload I get this error:
```
{"error":"NodeMissingPeerUrl"}
```
Any thoughts?
the solution was to define othernodes property. If we have multiple orion nodes then we have to define this property I think.
adding this got rid of the error and I was able to send and receive payload
Has joined the channel.
`lucassaldanha`, the following way to add a token didn't work:
connection.headers = {}
connection.headers = {"Bearer": tokenBesu}
Tried connection.headers = {"Authentication" : {"Bearer": tokenBesu}} and it didn't work as well. What is the right way to add tokenBesu to JsonRpcProvider?
I have deploy this part of repository but only 2 boot nodes deployed
I have deployed this part of repository but only 2 boot nodes deployed
https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ethash/besu
Clipboard - April 10, 2021 9:29 PM
I have created 3 boot nodes private and public key and copy them in values.yaml config
after helm install command only 2 boot nodes deployed not 3
I don't understand the highlighted step:
Clipboard - April 10, 2021 9:33 PM
what else changes I must do after creation of private/public key and updating values.yaml file? (may be in genesis.json)
this information in missing in the docs. We should add this to the official docs.
this information in missing in the docs. Maybe we should add this to the official docs?
This is besu-genesis-configmap.yaml for clique config map
Clipboard - April 11, 2021 8:00 AM
what are pointed values?
These are the pre-existing account balances for the dev chain at block zero. The first key is the account address (20 bytes of the hash of the public key). The second pointed value is the private key assocaited with them.
You would never want to put a real private key in a genesis file, but these are well known private keys commonly used for testing accounts. Often derived from bad password derived keys such as "cow".
what is the perpuse of installing helm-diff plugin in this repo: https://github.com/ConsenSys/quorum-kubernetes
what is the perpuse of installing helm-diff plugin in this repo: https://github.com/ConsenSys/quorum-kubernetes?
what is the purpose of installing helm-diff plugin in this repo: https://github.com/ConsenSys/quorum-kubernetes?
thanx, why there are 3 accounts?
how can I add them and how can I create them (private and public that are used for account balance)?
according to this doc:
https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ethash/besu
what exactly should i do for this step:
Update the configmap/configmap.yml with the public keys & genesis file
for example I have created 3 boot nodes public and private key and add them in values.yaml file. what should I do next step?
according to this doc:
https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ethash/besu
what exactly should i do for this step:
*Update the configmap/configmap.yml with the public keys & genesis file*
for example I have created 3 boot nodes public and private key and add them in values.yaml file. what should I do next step? the default boot nodes are 2.
Are you using two different public keys? You will get "NodeMissingPeerUrl" if you try to send a payload to an orion node that your node can't find. You can definitely start orion without "otherNodes" property and send to yourself.
yes, I have 4 besu nodes and 3 of them have their own orion nodes.
and I am trying to s end a priv trans from one orion to another
A generic ethereum question rather than a besu one. Can one view (externally) the contents of a private variable defined in a contract? Or, the only way one can view (externally) is by declaring the variable `public`?
Asking because I know that even if a variable is declared `private` it still resides on the public blockchain so wanted to confirm if there are any other ways to read the variable like via eth.getStorageAt API or something.
it is here in the docs https://docs.orion.consensys.net/en/stable/Reference/Configuration-File/ just not in the "how to"
Yes you can view it if you know where it lands in the storage, or if you are running it via a debugger. the `private` keyword in solidity only applies to the data visibility within the context of the compiler, and does not speak to actual privacy or confidentially of data with regard tot he world at large.
You have to use the private keys to import it to any wallet.
fortunately I find kubernetes operator to deploy hyperledger besu on kubernetes cluster
https://github.com/hyperledger-labs/besu-operator/blob/main/guide.md
besunodespec
I wan to edit the number of bootnodes or validators base on this:
I want to edit the number of bootnodes or validators base on this:
Clipboard - April 12, 2021 1:25 PM
but it doesn't work
Clipboard - April 12, 2021 1:26 PM
what is wrong in my command
?
thanks for your reply. I have some other noob questions if you dont mind. How does one know where it lands in storage?
So, if I understand you correctly, it is possible to read the value of a private variable outside the context of the compiler? So, can I read it via etherscan then?
Asking because I tried reading it on etherscan and couldn't see it. Thanks again for helping me out here.
only the property and a short description is mentioned on the page you shared but how does one know that he needs to define a bootnode when there are multiple orion nodes?
In short, I want to test it out. I want to read a private variable externally directly from the blockchain.
I saw a default explorer - **Alethio** provided with the containerized Besu implementation for private network. Now that I've successfully created and deployed contracts on the network, I want to have an explorer, with the functionality of paginated list of transactions and may be blocks as well (similar to ropsten).
But I couldn't find any APIs for the listing of txns. How could we do that?
2021-04-11 19:07:41.081+00:00 | nioEventLoopGroup-3-3 | INFO | PivotBlockRetriever | Max retries reached, cancel pivot block download.
2021-04-11 19:07:41.085+00:00 | nioEventLoopGroup-3-3 | ERROR | DefaultSynchronizer | Fast sync failed (PIVOT_BLOCK_HEADER_MISMATCH), please try again.
2021-04-11 19:07:41.086+00:00 | nioEventLoopGroup-3-3 | WARN | DefaultSynchronizer | Exiting FastSync process
2021-04-11 19:07:41.093+00:00 | Thread-1 | INFO | DefaultSynchronizer | Stopping synchronizer
2021-04-11 19:07:41.094+00:00 | Thread-1 | INFO | NetworkRunner | Stopping Network.
2021-04-11 19:07:41.097+00:00 | Thread-1 | INFO | EthProtocolManager | Stopping eth Subprotocol.
2021-04-11 19:07:41.099+00:00 | Thread-1 | INFO | EthProtocolManager | eth Subprotocol stopped.
2021-04-11 19:07:41.099+00:00 | Thread-1 | INFO | NetworkRunner | Network stopped.
2021-04-11 19:07:41.099+00:00 | Thread-1 | INFO | AutoTransactionLogBloomCachingService | Shutting down Auto transaction logs caching service.
2021-04-11 19:07:41.099+00:00 | Thread-1 | INFO | DockerNatManager | Stopping docker NAT manager.
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match thecurrent runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8
Can anyone help me with this error . thnks :)
Can anyone please kindly shed some light here?
I solved it by editing yaml file for besunodespec.
my new problem is that when I increase the number of bootndes it is applied but when I decrease the number of bootnodes it doesn't take affect.
for example I increase the number of bootnodes to 4 and it is applied but when I decrease the number of bootnodes it is not applied.
Clipboard - April 12, 2021 6:57 PM
another problem is that when I define the member number to 3 and apply the yaml file it is applied and the number os replica for member pod become 3 but if later I want to change the number of member it is not applied and the number of member remain 3.
another problem is that when I define the member number to 3 and apply the yaml file it is applied and the number of replica for member pod become 3 but if later I want to change the number of member it is not applied and the number of member remain 3.
Clipboard - April 12, 2021 7:01 PM
I have deployed a hyperledger besu based on kubernetes operator for besu.
4 validators 4 bootnodes 3 members
how can i get my json rpc address?
all 4 validators and bootnodes expose port 8545
Clipboard - April 12, 2021 7:52 PM
according to quorum-dev-quickstart doc: https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/README.md
there is one rpc node
and that node gice json rpc url
all my boot and validator node expose these ports:
Clipboard - April 12, 2021 8:01 PM
Hey, thanks for flagging @mohjam2004 I'll take a look and get back to you!
What are you looking for exactly? An explorer to use with Besu or the way to use the JSON-RPC API to list transactions?
This kubernetes operator to deploy hyperledger besu on kubernetes: https://github.com/Sumaid/besu-kubernetes/tree/besuoperator/besu-operator
this repo deploy besu network based on ibft2, how can I use it to deploy other protocol: clique. ibft, ethash ...?
This is kubernetes operator to deploy hyperledger besu on kubernetes: https://github.com/Sumaid/besu-kubernetes/tree/besuoperator/besu-operator
this repo deploy besu network based on ibft2, how can I use it to deploy other protocol: clique. ibft, ethash ...?
https://github.com/Sumaid/besu-kubernetes/tree/besuoperator/besu-operator
:pray:
another question is that how can I use this kubernetes operator to deploy ibft2-with-privacy?
The default is for 2 bootnodes. If you need more, you will have to update the templates.
my next question is that, I used this operator but my deployed Prometheus has no targets and so the grafana has no graph
That? https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ibft2-with-privacy/besu
yes
but with kubernetes operator
I see. my question is that I have defined 3 boot nodes private and public keys:
Clipboard - April 12, 2021 11:57 PM
now what changes I must do in genesis.json file?
and my next question is that when I wan to add a new boot node, I must only add bootnode3 private and public key in values.yaml? or other changes is required?
and my next question is that when I want to add a new boot node, I must only add bootnode3 private and public key in values.yaml? or other changes is required?
Got the answer here: https://ethereum.stackexchange.com/a/44897/68050
Can anyone pl help me with a sample code or reference to create a `flexible privacy group` via JSON-RPC?
I don't know how EthersJS does it. You might need to check their docs.
Besu expects is like this: `Authorization: Bearer
Here is a cURL example:
`curl -X POST -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJwZXJtaXNzaW9ucyI6WyIqOioiXSwidXNlcm5hbWUiOiJ1c2VyMiIsImlhdCI6MTU1MDQ2MTQxNiwiZXhwIjoxNTUwNDYxNzE2fQ.WQ1mqpqzRLHaoL8gOSEZPvnRs_qf6j__7A3Sg8vf9RKvWdNTww_vRJF1gjcVy-FFh96AchVnQyXVx0aNUz9O0txt8VN3jqABVWbGMfSk2T_CFdSw5aDjuriCsves9BQpP70Vhj-tseaudg-XU5hCokX0tChbAqd9fB2138zYm5M' -d '{"jsonrpc":"2.0","method":"net_listening","params":[],"id":1}' http://localhost:8545`
Creating a flexible privacy group via JSON-RPC can be tricky, because you'll be sending transactions to the node (eea_sendRawTransaction).
It can be done, it is just harder. I'd recommend using web3js-eea to deal with the complexity of building, encoding and signing the tx.
It can be done, it is just harder. I'd recommend using web3js-eea (javascript) or Web3j (java) to deal with the complexity of building, encoding and signing the tx.
Flexible privacy groups are created using smart contract logic, that's why you interact with them (and create them) using transactions.
Web3js-eea example: https://github.com/ConsenSys/web3js-eea/blob/master/example/onChainPrivacy/simpleExample.js
And here is the source where Web3js-eea is creating the tx that creates the privacy group:
https://github.com/ConsenSys/web3js-eea/blob/075dec06b20568ca4f7a8b7e9dfcd440a7a461f4/src/index.js#L487
thanks for helping out. Our application is in java so I am using the web3j sample code but can't get it to work. This is the problem I'm seeing: https://github.com/web3j/web3j/discussions/1401
so thought of doing it directly via json-rpc but seems like that's harder
Thanks for raising this. Hopefully someone from Web3labs will take a look at it soon.
If I have some time I'll try to take a look myself (although they might be able to find the issue faster than me).
However, the `privCreatePrivacyGroup` method in web3j library works fine.
do you know the difference between `privCreatePrivacyGroup` and `privCreateOnChainPrivacyGroup`
is one flexible and the other normal?
Sure, privCreatePrivacyGroup is used for "offchain" privacy groups, where the membership information is kept in Orion.
privCreateOnChainPrivacyGroup is used for flexible privacy groups. Membership information is kept in smart contracts.
So depending on the privacy mode that you are using, you should use one or the other.
oh ok
so, the orion one is working so far with web3j
but the onchain one is not
I can see in your issue that you have the flag `--privacy-onchain-groups-enabled=true` enabled. So `privCreateOnChainPrivacyGroup` is the one that you should use.
Your code in the ticket looks alright. Hopefully we can find what is happening and help you out.
Sure, that would be great. In the meanwhile, I will continue with the off chain privacy groups.
Could you please update the ticket with the web3j, Besu and Orion version that you are using?
That should make it easier for reproducing the problem locally
sure
and, just fyi, some of the sample code in web3j docs is outdated for sure. as I am using the latest web3j and some overloaded methods arent there
Would being able to use the Besu API to return a transaction object work for you in this case? I'm not sure that this is the direction you are thinking, but my thought is that you could use the Besu API method eth_getTransactionByBlockNumberAndIndex and write a script in order to get a transaction object back, which you could transform into a list of transactions. I may be overcomplicating what you are trying to do, but in case this is useful, here is the reference to the API method: https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_gettransactionbyblocknumberandindex and the transaction object that would be returned: https://besu.hyperledger.org/en/stable/Reference/API-Objects/#transaction-object
Ok, I've got some extra info.
This bug has been fixed on Web3j a few weeks ago, but the latest released version of Web3j doesn't have the fix.
You should either wait for a release or maybe use a development version to get it working.
I've added some extra info on the ticket. Do let me know if there is anything else that I can help you with.
I have another issue. I have defined a default storage class but no volume is created.
Is the member node the same as rpc node with which the developer can connect to besu network and run their codes?
Clipboard - April 13, 2021 9:05 AM
vert.x-eventloop-thread-1 | ERROR | VertxPeerDiscoveryAgent | Encountered error while handling packet
java.lang.IllegalArgumentException: Could not recover public key
at org.hyperledger.besu.crypto.SECP256K1.recoverFromSignatureNative(SECP256K1.java:495)
at org.hyperledger.besu.crypto.SECP256K1.recoverPublicKeyFromSignature(SECP256K1.java:370)
at org.hyperledger.besu.ethereum.p2p.discovery.internal.Packet.
vert.x-eventloop-thread-1 | ERROR | VertxPeerDiscoveryAgent | Encountered error while handling packet
java.lang.IllegalArgumentException: Could not recover public key
at org.hyperledger.besu.crypto.SECP256K1.recoverFromSignatureNative(SECP256K1.java:495)
at org.hyperledger.besu.crypto.SECP256K1.recoverPublicKeyFromSignature(SECP256K1.java:370)
at org.hyperledger.besu.ethereum.p2p.discovery.internal.Packet.
this doc is not available: https://besu.hyperledger.org/en/stable/Tutorials/Privacy/eeajs-Multinode-example/
[ ](https://chat.hyperledger.org/channel/besu?msg=rmG9Y9QfHaNuT8sDr) @NicolasMassart It would be great if I can find an explorer to use with Besu.
But if not, then I think there is no other option than saving the transactions in a database using the API that @tomhay pointed out (or may be any other).
Any type of node that has enabled their RPC, is a RPC node. That can be a member node or a miner or even a validator.
If you have enabled RPC on your member node, you can run your codes their.
It seems to be an old link.
Here it is what you may be looking for -https://besu.hyperledger.org/en/stable/Tutorials/Privacy/web3js-eea-Multinode-example/
I also got this syncing an ethereum archive node. I would be interested to know why it happens.
Thanks for noticing that. There should be a redirect to prevent the 404.
I created https://github.com/hyperledger/besu-docs/issues/672 , thanks for the report.
Well if you want an explorer, any Ethereum compatible explorer will work, but if you want one that we tested, you can use the one described on this doc page https://besu.hyperledger.org/en/stable/HowTo/Deploy/Lite-Block-Explorer/
You don't need to change anything in the genesis. The genesis config describes what your network will be, what the first block will be (genesis block). But all nodes uses the same genesis. The only reason to modify a genesis is to add validators in the genesis block. But with the Besu IBFT2 setup that we provide , you already have enough validators to be bale to add new ones after the genesis by making them vote for the new nodes. So in your case, I think probably nothing to change on the genesis.
You don't need to change anything in the genesis. The genesis config describes what your network will be, what the first block will be (genesis block). But all nodes uses the same genesis. The only reason to modify a genesis is to add validators in the genesis block for PoA consensus. But you seem to use PoW Ethash. So in your case, I think probably nothing to change on the genesis.
Then yes you may ahve to change the values to add you additionnal boodnode key, change the other keys to your own.
Then yes you may have to change the values to add you additional bootnode key, change the other keys to your own.
About what else you need to change, it's going to be the templates used to generate the network config files.
The best is probably to start looking at the Helm tool before trying to make changes to the templates. https://helm.sh/docs/intro/quickstart/ will help you to get tarted.
@joshuafernandes ?
I could also suggest checking out https://tryethernal.com/ — just FYI it's not an official repo/project of ours. Have not tested myself, but feel free to check out their Github to see if there is anything useful there.
Hi @mohjam2004 in the quickstart the RPCnode is the equivalent of a member that you have in the operator - if you've spun up 3 members, then you can pick any of them
To the best of my knowledge the operator doesn't have that functionality added yet and it will be added this year. There are helm charts that are available here https://github.com/ConsenSys/quorum-azure that you can use to spin up nodes with a privacy manager attached - these do IBFT2 only though, not ethash. But you can change that in the genesis jobs
@sumaids ^
https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ethash/besu/templates There are only 2 bootnodes in the templates, hence only 2 are deployed
Any charts in the https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm are intended for learning, and are quite 'fixed' ie the entire chart deploys a full network, rather than one node for example
The helmfile setup here https://github.com/ConsenSys/quorum-kubernetes/tree/master/helmfile/quorum-besu/ibft2 should do what you want when you configure things. Or alternatively https://github.com/ConsenSys/quorum-azure/tree/master/helm/dev
Are you able to tell us what you are trying to achieve and what your intended network topology is please so that we can better assist?
To use helmfile https://github.com/roboll/helmfile - its a dependency
Has joined the channel.
hi..need help connecting one set of nodes to the orignal set of nodes created, on same chain
using modified npx docker setup, have 4 validator nodes on original setup, with RPCnode as well..and another machine on a seperate network with same setup...copied the genesis file, and added the RPC enode top static files list of second machine, as well as adding the RPC node and validator1 node to the second machine static nodes list as well
maybe i am confused..but I thought the second machine would see the first machine enode and pick up the details and sync..
but...anyway..its not working...so I am a bit lost now
# bootnodes
bootnodes=["enode://dde8ad840a28fadfb01f275c709d78a5215b5c1794330d6112e69c74893776382b967e60b400ac5e5ad60ce48248dc7f40d272c47926343491c3de92e8a4c49a@18.211.191.88:30303","enode://04da4855af0dcb2a13388c354b4275e6bf48e12cc70ff5408d2e302efeb1468bb7fa24acc31450ffa58baa0822f7170baadba529fd5f36319bcc5605a30deae3bb@172.16.239.11:30303","enode"//04e1bbb3ac8d27d944ff872c1f32dc4cafadcc6d7a0f3152e3358dd494f0b30adbe2e95050f081c32339d8369ab3b465b26334f6642c0ef41ae0c9bfa127e304dc@172.16.239.15:30303"]
# static nodes
static-nodes-file="/config/static-nodes.json"
discovery-enabled=true
cat static-nodes.json
[
"enode://dde8ad840a28fadfb01f275c709d78a5215b5c1794330d6112e69c74893776382b967e60b400ac5e5ad60ce48248dc7f40d272c47926343491c3de92e8a4c49a@18.211.191.88:30303",
"enode://04e1bbb3ac8d27d944ff872c1f32dc4cafadcc6d7a0f3152e3358dd494f0b30adbe2e95050f081c32339d8369ab3b465b26334f6642c0ef41ae0c9bfa127e304dc@172.16.239.15:30303",
"enode://04da4855af0dcb2a13388c354b4275e6bf48e12cc70ff5408d2e302efeb1468bb7fa24acc31450ffa58baa0822f7170baadba529fd5f36319bcc5605a30deae3bb@172.16.239.11:30303"
]
the 18.211.191.88 is the IP address of the original machine, where the RPC node is one of the enodes
the 30303 port of this IP is open
I am getting the Besu docker image to operate as an IBFT2 enterprise ethereum network node. For the moment, there is only one node on the network. I received this warning:
`besu40 | 2021-04-13 07:07:22.098+00:00 | main | WARN | Besu | --miner-extra-data has been ignored because --miner-enabled was not defined on the command line.
besu40 | 2021-04-13 07:07:22.100+00:00 | main | WARN | Besu | --min-gas-price ignored because none of --miner-enabled or --goquorum-compatibility-enabled was defined.
miner-enabled means PoW mining.
goquorum-compatibility-enabled is a recent addition (Nov 2020), but is undocumented here: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/
If I don’t want to use Gas, and I don’t want to have a GoQuorum compatibility mode on, what should I do?
I am getting the Besu docker image to operate as an IBFT2 enterprise ethereum network node. For the moment, there is only one node on the network. I received this warning:
``besu40 | 2021-04-13 07:07:22.098+00:00 | main | WARN | Besu | --miner-extra-data has been ignored because --miner-enabled was not defined on the command line.
besu40 | 2021-04-13 07:07:22.100+00:00 | main | WARN | Besu | --min-gas-price ignored because none of --miner-enabled or --goquorum-compatibility-enabled was defined.`
miner-enabled means PoW mining.
goquorum-compatibility-enabled is a recent addition (Nov 2020), but is undocumented here: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/
If I don’t want to use Gas, and I don’t want to have a GoQuorum compatibility mode on, what should I do?
I am getting the Besu docker image to operate as an IBFT2 enterprise ethereum network node. For the moment, there is only one node on the network. I received this warning:
\texttt{besu40 | 2021-04-13 07:07:22.098+00:00 | main | WARN | Besu | --miner-extra-data has been ignored because --miner-enabled was not defined on the command line.
besu40 | 2021-04-13 07:07:22.100+00:00 | main | WARN | Besu | --min-gas-price ignored because none of --miner-enabled or --goquorum-compatibility-enabled was defined.}
miner-enabled means PoW mining.
goquorum-compatibility-enabled is a recent addition (Nov 2020), but is undocumented here: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/
If I don’t want to use Gas, and I don’t want to have a GoQuorum compatibility mode on, what should I do?
I am getting the Besu docker image to operate as an IBFT2 enterprise ethereum network node. For the moment, there is only one node on the network. I received this warning:
besu40 | 2021-04-13 07:07:22.098+00:00 | main | WARN | Besu | --miner-extra-data has been ignored because --miner-enabled was not defined on the command line.
besu40 | 2021-04-13 07:07:22.100+00:00 | main | WARN | Besu | --min-gas-price ignored because none of --miner-enabled or --goquorum-compatibility-enabled was defined.
miner-enabled means PoW mining.
goquorum-compatibility-enabled is a recent addition (Nov 2020), but is undocumented here: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/
If I don’t want to use Gas, and I don’t want to have a GoQuorum compatibility mode on, what should I do?
If Hyperledger Besu docker container is started with
--p2p-enabled=false
The following exception gets thrown:
besu40 | 2021-04-13 06:50:38.408+00:00 | Timer-0 | ERROR | Besu | Uncaught exception in thread "Timer-0"
besu40 | java.io.EOFException
besu40 | at org.xbill.DNS.NioTcpClient$ChannelState.processRead(NioTcpClient.java:168)
besu40 | at org.xbill.DNS.NioTcpClient$ChannelState.processReadyKey(NioTcpClient.java:126)
besu40 | at org.xbill.DNS.Client.processReadyKeys(Client.java:97)
besu40 | at org.xbill.DNS.Client.runSelector(Client.java:72)
besu40 | at java.base/java.lang.Thread.run(Unknown Source)
No, this exception is not related. This exception has to do with your DNS server being unable to serve large records over TCP. This is fixed in Apache Tuweni, but we need a release out to patch Besu.
I have deployed besu based on this repository: https://github.com/hyperledger-labs/besu-operator but my prometheus has no targets and so the grafana has no graph data. what is the problem?
Has joined the channel.
Hi all. I started syncing a Besu node in Ethereum testnet, and while I am seeing increasing `Estimated World State completion`'s, I see a ton of `java.lang.IllegalArgumentException: Could not recover public key at org.hyperledger.besu.crypto.SECP256K1.recoverFromSignatureNative(SECP256K1.java:495) at org.hyperledger.besu.crypto.SECP256K1.recoverPublicKeyFromSignature(SECP256K1.java:370)` followed by `2021-04-14 05:44:53.265+00:00 | vert.x-eventloop-thread-2 | ERROR | VertxPeerDiscoveryAgent | Encountered error while handling packet`. Is this normal?
Hi all. I started syncing a Besu node in Ethereum testnet, and while I am seeing increasing `Estimated World State completion`'s, I see a ton of `java.lang.IllegalArgumentException: Could not recover public key at org.hyperledger.besu.crypto.SECP256K1.recoverFromSignatureNative(SECP256K1.java:495) at org.hyperledger.besu.crypto.SECP256K1.recoverPublicKeyFromSignature(SECP256K1.java:370)` followed by `2021-04-14 05:44:53.265+00:00 | vert.x-eventloop-thread-2 | ERROR | VertxPeerDiscoveryAgent | Encountered error while handling packet`. Is this normal?
Besu 21.1.3, openjdk:11-jre-slim-buster
@joshuafernandes
you mean that If I change genesis I can have ethash support?
There are a couple of things you need to do to get Ethash working:
- update the genesis file to use the POA - you can use this as an example https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Network/
There are a couple of things you need to do to get Ethash working:
- update the genesis file to use POW consensus - you can use this as an example https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Network/
then add the `--miner--enabled` and `--miner-coinbase` parameters to some nodes that will serve as miners. Basically with the POA (IBFT) algorithms the validators create the blocks, with POW(ethash) you need to replace the validators with miners
Have a look at the templates in here https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ethash/besu/templates For the miner specifically, check the miner-statefulset.yml
hi, what is the problem that I can't decrease the number of nodes? @joshuafernandes
hi, what is your idea that I can't decrease the number of nodes? @joshuafernandes
I actually need kubernetes operator for all consensus protocol. Only for ibft2 is available. with the help of kubernets operator for besu only by asking a few questions from user the besu network is deployed into kubernetes cluster. I mean the config file that need to be ready is simple.
I have the same for ethereum archive node. The node has already synced over 10M blocks without any issue
```Apr 14 12:56:47 Ubuntu-2004-focal-64-minimal besu[2352535]: java.lang.IllegalArgumentException: Could not recover public key
Apr 14 12:56:47 Ubuntu-2004-focal-64-minimal besu[2352535]: at org.hyperledger.besu.crypto.SECP256K1.recoverFromSignatureNative(SECP256K1.java:495)
Apr 14 12:56:47 Ubuntu-2004-focal-64-minimal besu[2352535]: at org.hyperledger.besu.crypto.SECP256K1.recoverPublicKeyFromSignature(SECP256K1.java:370)
Apr 14 12:56:47 Ubuntu-2004-focal-64-minimal besu[2352535]: at org.hyperledger.besu.ethereum.p2p.discovery.internal.Packet.
I have deployed besu on a kubernetes cluster and I want to run a smart contract on it to check the deployed besu, Is there any sample smart contract that I can test in my deployed besu on kubernetes? (I have 2 boot nodes, 2 validator and 1 member node).
I have deployed besu on a kubernetes cluster and I want to run a smart contract on it to check the deployed besu, Is there any sample smart contract that I can test in my deployed besu on kubernetes? (I have 2 boot nodes, 2 validators and 1 member node).
@IonutS @vbhalerao The stack trace is being traced by this bug: https://github.com/hyperledger/besu/issues/2142
tl;dr Not a besu error, ignore it and it will be fixed in the next release.
@mdwright88 this seems to have a nice UI and easy to use, but be careful because it requires a 3rd party: this is a service that you have to feed with your chain data using their CLI tool but you can't have the explorer running on your own architecture and it opens a breach to the outside if you want your network to be isolated from the outside. May be interesting though, but be careful about this aspect of the tool.
s. +
I see, will that happen soon? I guess our nodes won't continue to sync unti lthe new release, right?
I see, will that happen soon? I guess our nodes won't continue to sync until the new release, right?
Nodes are syncing fine. The error statement is noise and occurring at too high a level.
If your node has stopped syncing, it's likely because of a different problem.
I can confirm that it still syncs, I got confused by the noisy logs. I thought it keeps trying to go beyond that error.
Any plans to improve syncing? Currently it is super slow compared to Open Ethereum client. I have like 2 months of syncing and still at block a bit over 10600000
The plan is to finish bonsai tries.
But full archival is not our primary use case.
https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm is probably the best learning tool re all consensus algorithms - they are however in helm and not an operator. So you'd need to look through the templates and customize to suit your requirements
Not sure tbh, what do the logs say. If I get the chance I will look into it and see if I can replicate what you're seeing
Has joined the channel.
Hello! First of all my compliments for having this really interesting project! I'm currently looking into Besu and I wonder if there are some guidelines about when to use which consensus protocol. It's especially the difference between Clique and IBFT that's not clear to me. Also I wonder about scalability, how large could IBFT or Clique based networks scale?
And just out of curiosity: Quorum was made in Go (for as far as I know), why the change to Java? Usually I see people moving from Java to Go for performance reasons, but from Go to Java I have not seen before.
So it seems that although Besu now supports DNS names via Xdns-enabled but the admin_addPeer function does not accept a DNS name in place of the IP address (it is throwing parse error). Where can this issue be raised?
This is a bit more complex and only brand related. Let me explain:
- Before August 2020, Quorum was a JP Morgan project written in Go and forked from Geth.
- Besu is the Hyperledger ethereum client written in Java.
ConsenSys acquired the Quorum project and decided to use the name as an umbrella for a suite of products related to Ethereum enterprise offering.
They then renamed the Go client to GoQuorum. Besu, the Java client, is still Besu. But now both are shipped by ConsenSys under the Quorum brand alongside other tools like EthSigner, Tesssera, Orion,...
So there was no migration from Go to Java, Quorum is just a name for an ecosystem composed of the Go and Java client. You can choose which one to use.
See more about Quorum, the umbrella brand, at https://consensys.net/quorum/faq
The biggest difference is Clique doesn't have immediate finality compared to IBFT2. Read more about these PoA protocols on Besu doc https://besu.hyperledger.org/en/stable/Concepts/Consensus-Protocols/Comparing-PoA/
This is very likely a network issue between your two machines. Did you open 30303 ports on both UDP and TCP? Are you sure the interface used to expose your node are not localhost only?
Are the routes between your two networks correctly configured (can you telnet on port 30303 between the nodes?)
We would need the command line and toml configuration file used on both nodes to investigate more.
This is a different problem than the zero gas price one right?
That would be great feature though! I think currently Besu is the only real alternative to Open Ethereum with trace api and EIP 1898 included. We now see again the OE has issues during the Berlin Hard Fork and a lot of services are relying on that.
you can raise issues on github.
Hi everyone, I'm looking into privacy groups. One of the functions web3-eea offers is 'findPrivacyGroup()'. I can see cases where u want to use this, but in my case I'd rather have that users can't search for privacygroups. I'll explain further, when company A and company B make a privacygroup, I don't want company C to try to guess with findPrivacyGroup() if A and B have done private transactions. Is there a way to configer my network so findPrivacyGroup is not allowed? Or is my consern flawed?
yes. this is a separate issue
Has joined the channel.
Hello Everyone. Is it a good idea to setup besu code on Windows 10 with intellij. I am looking forward to contributing to the code so just curious if MacOS or linux would be a better choices.
MacOS or Linux would be better choices. Right now the besu-native libraries are only available on mac and linux (patches welcome!) and while we do have pure java fallbacks they are very slow.
it will also require some special CLI flags to work out of the box on windows.
That is kind of you if you also check why the prometheus and grafana have no data after deployment.
hi, can I run this dapp (quorum-dev-quickstart: https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/README.md#poa-network-dapps) in my deployed besu network? If yes, what changes I must do to run this dapp in my deployed besu network?
hi, can I run this dapp (quorum-dev-quickstart: https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/README.md#poa-network-dapps) in my deployed besu network? If yes, what changes I must do to run this dapp in my deployed besu network? I dont want to run it in its deployed test network I have my own deployed besu network
I mean what changes i must do in these destinations?
Clipboard - April 17, 2021 12:42 PM
Hi, beginner here. I'm trying to follow the Create a Permissioned Network tutorial (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network), but I want to use a different device for each node. I'm a bit confused about where to place the Genesis file, and how to change the node starting commands to correctly use the genesis file. What should I do? Is this possible?
Is there any block explorer for besu that can be installed through helm command?
I have deployed besu based on besu kubernetes operator: (2 validators, 1 member and 2 boot nodes). I have deployed an Ethereum block explorer and set an environment variable to connect to member node. but when I open block explorer nothing is shown as target.
I use this repo to deploy besu on kubernets cluster: https://github.com/ConsenSys/quorum-azure
which configuration files must I change to use longhorn storage class instead of azure?
i have deployed longhorn as default storage class in the kubernetes cluster
I changed some setting in node-statefulset.yaml and the problem is resolved and pv is created on longhorn storage calss.
my new problem is this: the boot node become active but restart constantly and this is its log:
Setting logging level to INFO
2021-04-18 08:28:04.871+00:00 | main | INFO | AbstractAltBnPrecompiledContract | Using LibEthPairings native alt bn128
2021-04-18 08:28:07.675+00:00 | main | INFO | SECP256K1 | Using native secp256k1
2021-04-18 08:28:07.680+00:00 | main | INFO | Besu | Starting Besu version: besu/v21.1.4/linux-x86_64/oracle_openjdk-java-11
2021-04-18 08:28:08.577+00:00 | main | WARN | Besu | --min-gas-price ignored because none of --miner-enabled or --goquorum-compatibility-enabled was defined.
2021-04-18 08:28:08.779+00:00 | main | INFO | Besu | Static Nodes file = /data/static-nodes.json
2021-04-18 08:28:08.780+00:00 | main | INFO | StaticNodesParser | StaticNodes file /data/static-nodes.json does not exist, no static connections will be created.
2021-04-18 08:28:08.780+00:00 | main | INFO | Besu | Connecting to 0 static nodes.
2021-04-18 08:28:08.782+00:00 | main | INFO | Besu | Security Module: localfile
2021-04-18 08:28:08.884+00:00 | main | INFO | RocksDBKeyValueStorageFactory | No existing database detected at /data. Using version 1
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8/data/DATABASE_METADATA.json (Permission denied)
2021-04-18 08:28:08.886+00:00 | main | ERROR | RocksDBKeyValueStorageFactory | Failed to retrieve the RocksDB database meta version: /data/DATABASE_METADATA.json (Permission denied)
To display full help:
besu [COMMAND] --help
Has joined the channel.
Greetings, is it possible to make people pay for gas on IBFT2 network?
Also is it possible to add a native token?
Or would it be better to fork Binance SC and make modifications there to allow third-party participants to network?
Alright I figured out that IBFT2 besu also supports third-party participants to transact on the network
You can only find privacy groups that you are a member of. So if C calls findPrivacyGroup(A,B) no results will be found
Hello. I'm trying to setup a permissioned network through the documentation (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/) and this demo: https://www.youtube.com/watch?v=MhOJKOoEZQQ. I understand, thanks to the demo, when creating my genesis file, from where to get the bytecode for the ingress contracts. I don't uinderstand from where I can get the storage values. I am talking about the first, initial launch of my network.
Hello. I'm trying to setup a permissioned network through the documentation (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/) and this demo: https://www.youtube.com/watch?v=MhOJKOoEZQQ. I understand, thanks to the demo, when creating my genesis file, from where to get the bytecode for the ingress contracts. I don't uinderstand from where I can get the storage values. I am talking about the first, initial launch of my network. Could anyone explain me what to do?
Hello. I'm trying to setup a permissioned network with onchain permissioning through the documentation (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/) and this demo: https://www.youtube.com/watch?v=MhOJKOoEZQQ. I understand, thanks to the demo, when creating my genesis file, from where to get the bytecode for the ingress contracts. I don't uinderstand from where I can get the storage values. I am talking about the first, initial launch of my network. Could anyone explain me what to do?
Thank you, that makes sense!
Has joined the channel.
Hey guys running into an error with besu and hoping someone can help. What Public key is besu referring too? Is there any other reason i may be getting this error?
```
2021-04-17 22:39:34.091+00:00 | vert.x-eventloop-thread-1 | ERROR | VertxPeerDiscoveryAgent | Encountered error while handling packet
java.lang.IllegalArgumentException: Could not recover public key
at org.hyperledger.besu.crypto.SECP256K1.recoverFromSignatureNative(SECP256K1.java:495)
at org.hyperledger.besu.crypto.SECP256K1.recoverPublicKeyFromSignature(SECP256K1.java:370)
at org.hyperledger.besu.ethereum.p2p.discovery.internal.Packet.
I get that error over and over again until besu just dies. This was happening before i updated the besu client but am now on version besu/v21.1.1/linux-x86_64/openjdk-java-11
Hi @A1forETH, we have a fix for that being worked on right now: https://github.com/hyperledger/besu/pull/2143
However, I wasn't aware that it was causing the node to fall over. I was under the impression that it was just spamming a lot of logs. Could you provide your full besu logs?
And all configuration including the command line args and the config-file you're using
Yea i can but I think I found the real issue. It was just buried in the other errors that 2143 fixes.
My drive is full thought it was 2T but its only 1T.
If I enable pruning will besu start pruning the database right away to start making more space?
Ok, that makes much more sense. With pruning, it takes some space to makes some space unfortunately! We have to store metadata (namely which nodes to keep when we start sweeping the database). Try resizing and starting pruning
Ok, that makes much more sense. With pruning, it takes some space to make some space unfortunately! We have to store metadata (namely which nodes to keep when we start sweeping the database). Try resizing and starting pruning
Ill have to move to a new drive. Im currently remote form my system so i may just have to remove the chain data and start with pruning enabled.
Has joined the channel.
Hello 👋
I have a question regarding ibft 2.0
I notices that blocks are created every 2 seconds
Is there any way to make it being created only ehen there are transactions
@clzola That is an interesting question indeed. I'd like to know the answer to that too.
Suppressing empty blocks is not part of IBFT2 right now. IIRC only Aura on OpenEthereum supports that feature.
it's also a good idea to have blocks, even if empty, as they help the chain keep secure. Otherwise the tip of the chain can be forked more easily.
With a BFT protocol you can keep increasing the round counter instead of issuing a block. But BFTs are different from Clique and PoW in that a quorum must approve the block, so there is no forking. (that's how they get their finality). I think it was discussed as a possibility for QBFT but I'm not sure how far the discussion went.
Has joined the channel.
Hi everyone, I am running Besu client in Ethereum network, is there any way to disable the local transaction feature (transactions sent through RPC)? Thank you!
Has joined the channel.
Hi everyone,
we are working on adding a new signature algorithm (secp256r1) to Besu. The Java implementation is finished, but for performance reasons we need to select a native library implementation as well. I reviewed many different libraries and I think two of them would be suitable. I have created a Google Doc with an overview. Please let me know what you think about them:
https://docs.google.com/document/d/1NFmh0Z2Qs7HjtMKsdwQaeQXoBIR5Lbh3O3lKXSyVs_s/edit?usp=sharing
I know that I can configure a zero gas network, but is there also a way to configure a network with a fixed gas price?
I have deployed a private besu network on kubernetes. now I want to monitor ethstat. I must run alethio ethstat client. Is specifying these options mandatory? --register --account-email
and what is this option ? --net host
the whole command is this:
docker run -d --rm --name ethstats-client --net host alethio/ethstats-cli --register --account-email
Has joined the channel.
Enterprise blockchain jumps 40% in 2020. Get early access to the original report on Enterprise Blockchain Protocols Evolution Index 2021. https://chainstack.com/download/enterprise-blockchain-protocols-evolution-index-2021/
The report provides detailed qualitative and quantitative on publicly available developer data of the 6 most popular enterprise blockchain protocols being used today - Autonity, Baseline, Besu, Corda, Fabric, Quorum.
Clipboard - April 21, 2021 6:05 PM
Clipboard - April 21, 2021 6:05 PM
[ ](https://chat.hyperledger.org/channel/besu?msg=jaLFJMrxzAmcbacxs) as @shemnon mentioned, IBFT2 requires blocks being mined even if they are empty at the current state. However, instead of not mining empty blocks, maybe there could be an algorithm which groups the empty blocks together as a chain re-org and registers as one block only.
So if your 1st block is mined and from 2 to 8th blocks are empty and there is data on only 9th and later blocks, maybe the daemon can pack the blocks from 2th to 8th, and record as single block.
Though again this approach has to be tested against malicious nodes (if there are untrusted participants in the PoA)
Do you guys think it is a good idea to remove the PoW and Clique related things if we want to deploy IBFT2 chain? Besu currently supports different consensus algorithms but I wonder how that effects the performance & storage of the client.
[ ](https://chat.hyperledger.org/channel/besu?msg=TwuyJkS84nTAKewix) Why would you want to do that? In case you want everyone to pay the same gas price for executing things, what happens when there are more TXs coming than your network can handle per second?
I mean, assume that you handle 5 tx per second, each 10 gwei/gas. If you start receiving 10 tx per second and you won't allow people to outbid each other, it's gonna be like rolling the dice to have a tx get recorded.
If you don't think you'll reach the block limit, then simply set min gas variable when running node, so that node rejects any tx sent with lower gas than that. And that would be the minimum limit, so kinda like fixed but if network activity grows, can increase etc.
Hi everyone, I'm trying to add a member to a privacy group. web3.priv doesn't have the addToPrivacyGroup function, am I supposed to use web3.privx? And what is the difference between web3.priv and web3.privx?
Not right now. It would be difficult because a gas free network is actually a network that accepts a zero gas price. TXes are always free to set the gas price to whatever they want. The problem with a fixed cost network is you would disregard the gas price in the TX. Doable, but that's not how Besu is currently written.
Removing the clique and PoW code from Besu in general is a non-starter. Mainnet compatability is one of its pillars.
If your code is only configured to use IBFT then clique and PoW specific code won't be used.
I'm using this genesis file -
```
{
"config": {
"constantinoplefixblock": 0,
"ethash": {},
"chainID": xxxx
},
"difficulty": "0x1",
"mixhash": "0x000000000000000000000000000000000000000000000000000000000000000",
"nonce": "0x42",
"gasLimit": "0x1000000",
"timestamp": "0x0",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": {
"fe3b557e8fb62b89f4916b721be55ceb828dbd73": {
"balance": "10000"
},
"627306090abaB3A6e1400e9345bC60c78a8BEf57": {
"balance": "10000"
},
"f17f52151EbEF6C7334FAD080c5704D77216b732": {
"balance": "10000"
},
"0x0000000000000000000000000000000000008888": {
"comment": "Account Ingress smart contract",
"balance": "0",
"code": "6080604052348015..................12a5d64736f6c63430005090032",
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000000": "0x72756c6573000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000001": "0x61646d696e697374726174696f6e000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000004": "0x0f4240"
}
}
}
}
```
But the difficulty of a block is showing as - `0x20000`. Also, it is taking very long for block creation, something like more than 15 mins. And even the difficulty is not changing with blocks. I only have 2 miners in the network for now.
Please guide me on this, to how to have a network with 12sec latency in block creation, and dynamic difficulty; similar to Ethereum blockchain.
I'm using this genesis file -
```
{
"config": {
"constantinoplefixblock": 0,
"ethash": {},
"chainID": xxxx
},
"difficulty": "0x1",
"mixhash": "0x000000000000000000000000000000000000000000000000000000000000000",
"nonce": "0x42",
"gasLimit": "0x1000000",
"timestamp": "0x0",
"coinbase": "0x0000000000000000000000000000000000000000",
"alloc": {
"fe3b557e8fb62b89f4916b721be55ceb828dbd73": {
"balance": "10000"
},
"627306090abaB3A6e1400e9345bC60c78a8BEf57": {
"balance": "10000"
},
"f17f52151EbEF6C7334FAD080c5704D77216b732": {
"balance": "10000"
},
"0x0000000000000000000000000000000000008888": {
"comment": "Account Ingress smart contract",
"balance": "0",
"code": "6080604052348015..................12a5d64736f6c63430005090032",
"storage": {
"0x0000000000000000000000000000000000000000000000000000000000000000": "0x72756c6573000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000001": "0x61646d696e697374726174696f6e000000000000000000000000000000000000",
"0x0000000000000000000000000000000000000000000000000000000000000004": "0x0f4240"
}
}
}
}
```
But the difficulty of a block is showing as - `0x20000`. Also, it is taking very long for block creation, something like more than 15 mins. And even the difficulty is not changing with blocks. I only have 2 miners in the network for now.
Please guide me on this, to how to have a network with 12sec latency in block creation, and dynamic difficulty; similar to Ethereum blockchain. Currently, the permissioning contracts have not been deployed on the network, as I was just checking that the node connects and the block creation time is correct.
`0x20000` is the protocol defined minimum difficulty for a floating difficulty. Try playing with `fixeddifficulty` - that will provide the irregular block times you don't get with clique - https://besu.hyperledger.org/en/stable/Reference/Config-Items/#fixed-difficulty
But wouldn't that fix the difficulty in the future too? I mean when there will be many miners with high computation resources, the blocks could be mined in very few seconds, and that create inconsistency within the network.
P.S - This Ethash network will be public.
```
Using fixeddifficulty is not recommended for use with Ethash outside of test environments. For production networks using Ethash, we recommend setting a low difficulty value in the genesis file instead. Ethash will adjust the difficulty of the network based on hashrate to produce blocks at the targeted frequency.
```
Quoting this line from the link you provided and the statement that you made `fixeddifficulty` is static and the minimum difficulty would be `0x20000` only when using `difficulty` parameter. But as the miners increase and the difficulty should exceed the above number, will then the difficulty becomes dynamic and works similar to Ethereum?
Second question is - can we decrease/increase the block creation time than the one in Ethereum? If yes, how?
AFAIK fixed difficulty is, well, fixed. You use it during development. And you switch to difficulty on deployment.
If you can't find enough hashpower to mine even 0x20000 on the beginning, you might want to reconsider your choices for the network security because anyone renting hashrate from Nicehash would be able to takeover your network.
Okay. @Nithronium, thanks for verifying this.
If we take care of the hash power, will the `difficulty` be dynamic after that. And secondly, can we change the block creation time?
on the config, for the IBFT2 (i am trying that one), I have options inside the ibft2 object, that can specify `blockperiodseconds` so maybe for ethash there's that too.
hi @joshuafernandes
how can I deploy Alethio Ethstat on kubernetes (server-client-dashboard) when I deploy besu on kubernetes?
hi @joshuafernandes , after deploying besu on kubernetes based on this doc: https://github.com/ConsenSys/quorum-kubernetes
how can I deploy Alethio Ethstat on kubernetes (server-client-dashboard)?
I have trouble deploying Alethio Ethstat client
I deploy Alethio block explorer
I could deploy Alethio block explorer
Is it possible to have example file for Alethio block explorer and Ethstat on this repo: https://github.com/ConsenSys/quorum-kubernetes
Hi everyone. When creating a free-gas permissioned Clique network, transactions aren't always sent. I have tried this a few times and on some tries it works, on others doesn't. I have followed the documentation, what might I be doing wrong?
Blocks are created correctly, and the nodes connect properly as peers
What error/message do you get when you submit a transaction? How do you submit your transaction?
ethash cannot fix blocks per second. Difficulty floats or difficulty is fixed. Perhaps we need to expose a knob to make the floor difficulty configurable. But I think a better approach would be to use GPU mining via stratum.
The thing is, Ethereum has a fixed 13 second block-interval. So depending on the average difficulty increases or decreases to hit the 13s average target.
Now one might want to have a PoW network with ethash where block interval is, say, 30 seconds, or 5 seconds.
I think this could be an option for ethash too, so on private PoW networks using besu one can configure block interval.
If one wants to create their own chain, and not planning to use mainnet ever, this still would be a no?
Or perhaps adjust the build + somehow embed the genesis file in it? So once node is built, release could be shared with other peers and they can run a peer node without specifying any flags.
Or would it be better to build a docker container for the peer node?
Ethereum 1.0 does not have a fixed 13 second block interal, there is a floating difficulty algorithm that averages down to 13 seconds in the long run. Minimum difficulty is part of that algorithm
Why fork the client?
If you can configure a genesis that accommodates your chain definition forking the client adds risk, you then have to keep the fork up to date.
That's my point. Sorry for phrasing it wrongly (english is not my native). What I meant was what you said, on average it finds blocks every 13s. Changing that shouldn't be that hard, no? Simply on the algo multiply the diff target by 1/13 to get value for 1s interval, then multiply with whatever number you want to adjust the average block interval.
Couldn't that be an option on besu for private networks?
If I configure a genesis, I still need a way to make people download besu + download genesis + run with the flags. In order to have something that takes just one command with no flags + automatically connect to the chain would be a better user experience.
Right, that's just a distribution not a fork.
Proof of work for private networks is a very bad idea. It's only useful for really one top dog network per algorithm, otherwise you can be 51% attacked very easily. That's why Besu has Proof of Authority algos like BFT and Clique.
If you can enumerate who should be using the network (hence the private moniker) then you can enumerate who should be validating.
Has joined the channel.
Hello guys one question api of ADMIN includes IBFT methods ?
I have resolved it. and client can connect to besu node. but the alethio ethstat server don't show any data
Clipboard - April 23, 2021 3:42 PM
this is ethstat client log
Clipboard - April 23, 2021 3:42 PM
Clipboard - April 23, 2021 3:57 PM
the data is sent to ethstat server but nothing is shown
Has joined the channel.
newbe here. trying to update to besu-21.1.5. Downloaded binary but it does not have a /bin. (Following documentation) So how to start Besu?
Have you tried `.../besu-21.1.5/bin`?
yea... there is not a bin
yea... there is not a bin. lol not that much of a newbe
Is there any command by which I can see the *"network name"* my besu nodes are running on it?
hello again @joshuafernandes
I have opened an issue in Alethio.
If you can help on this, I'll be glad to.
https://github.com/Alethio/ethstats-network-server/issues/23
But this network is supposed to be public. So what I can understand is that the Besu PoW network would try to have a average of 13s interval by default and the minimum floating difficulty is `0x20000`.
Can we change these values and if yes, then how?
Code would need to be written to allow the minimum to be configured.
I would first recommend trying to get a local stratum instance setup, with GPU mining. A typical GPU should be able to pull the minimum by itself. CPU mining in Besu is quite inefficient.
But your public network will also be trivially subject to 51% attacks.
Will do that @shemnon . Thanks for the advice.
I suppose the 13s interval is also not configurable, even in the source code, right?
Will do that @shemnon . Thanks for the advice.
I suppose the 13s interval is also not configurable, even from the source code, right?
I try to contact Alethio for an issue the email specified here doesn't exist: https://besu.hyperledger.org/en/1.2.0/Monitoring/Alethio/Overview/
I try to contact Alethio for an support issue, the email specified here doesn't exist: https://besu.hyperledger.org/en/1.2.0/Monitoring/Alethio/Overview/
the aleth.io is down
I'm a bit confused about the documentation regarding implementing TLS. My goal is to use TLS for the communication between metamask and my besu network. However I don't get how I can configure this. Should metamask get registered as a known client? If so, how can I get Metamask's details to do so?
Hey here's another question, has anyone here ever encountered a startup error where Besu won't run?
I ran the besu a couple times, no problem, and now after restarting, it gets stuck at first message shown "Using libethpairings native alt bn128".
When I use `--logging ALL` flag, I see that it finds secp256k1 library, and then stuck there. Cpu usage goes to 1% and ram usage goes to 300 MB and node is just stuck
Hello Nithroium, I'm running a Besu node in a `t2.micro` AWS instance and from going to that message to the next one, it took ~7 minutes. Here are the relevant parts of log (INFO level):
```
2021-04-26 02:16:50.681+00:00 | main | INFO | AbstractAltBnPrecompiledContract | Using LibEthPairings native alt bn128
2021-04-26 02:23:45.838+00:00 | main | INFO | SECP256K1 | Using native secp256k1
2021-04-26 02:23:45.845+00:00 | main | INFO | Besu | Starting Besu version: besu/v21.1.5/linux-x86_64/openjdk-java-11
```
How long are you waiting before cancelling the process?
It really changes for me. I have multiple droplets of same spec, generated them together by creating multiple instance at once.
Some of them directly starts the node, some of them does that and it sometimes takes 5 seconds, sometimes 30 minutes. What's weird is that once a node starts and I abort with CTRL + C on the terminal, and restart with same command, it sometimes takes 10-15 minutes for it to load the library.
Eventually the node starts. Maximum time period I saw was 30 minutes.
Also another question, I couldn't get to make `coinbase`parameter work on the IBFT. The mining node claims the reward apparently.
I am trying to configure a clique network. When running the network locally as stipulated in the tutorial in the documentation everything works fine. However when I deploy to AWS the initial signer node isn't producing any blocks.
My config.toml file:
`data-path="s1data"
genesis-file="genesis.json"
network-id="123"
rpc-http-enabled=true
rpc-http-cors-origins=["*"]
rpc-http-api=["ETH","NET","CLIQUE"]
#rpc-http-api=["ADMIN","ETH","NET","PERM","CLIQUE","EEA","PRIV"]
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
rpc-ws-api=["ETH","NET","CLIQUE"]
#rpc-ws-api=["ADMIN","ETH","NET","PERM","CLIQUE","EEA","PRIV"]
host-allowlist=["*"]
p2p-port=30303`
My genesis file:
`{
"config":{
"chainId":2021,
"constantinoplefixblock": 0,
"clique":{
"blockperiodseconds":15,
"epochlength":30000
}
},
"coinbase":"0x0000000000000000000000000000000000000000",
"difficulty":"0x1",
"extraData":"0x0000000000000000000000000000000000000000000000000000000000000000860dd0cc99142b5ebc39a6ceb99ce05348851d4f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"gasLimit":"0xa00000",
"mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"nonce":"0x0",
"timestamp":"0x5c51a607",
"alloc": {
"53138C880D8E68020499E04C3c86EECcCaD5aD45": {
"balance": "90000000000000000000000000000000000000000"
}
},
"number":"0x0",
"gasUsed":"0x0",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000"
}`
Other nodes can connect without a problem: `EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 4`.
Also the log shows no errors, just this warning, but the node does boot: `ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTL Runtime version 4.7.1 used for parser compilation does not match the current runtime...`
The signer's node address is: 0x860dd0cc99142b5ebc39a6ceb99ce05348851d4f. That's included in the extradata part of the genesis file.
Anyone having a clue what I'm doing wrong, causing that the node isn't producing blocks?
I have seen the antlr warning too, I think it's benign but I understand how it's distracting. Feel free to open an issue for it.
The log says it's waiting for 4 other peers to sync. You can change the minimum number of peers needed to sync in your configuration.
The secure entropy is causing problems, especially on a t3.micro - https://github.com/hyperledger/besu/issues/1464#issuecomment-710027687
[ ](https://chat.hyperledger.org/channel/besu?msg=AjCBQLEniwv2iTgqs) I think the log says "No sync parget, waiting for peers, connected peers: 4" no? Because as new nodes connect, the number increases.
I think IBFT re-uses the coinbase field to mean something else. @lucassaldanha would have more insight,.
I think IBFT re-uses the coinbase field to mean something else. @lucassaldanha would have more insight.
And that might be the reason there are no blocks being produced? I thought that the number indicates the amount of nodes connected, as it starts at 0 and increases when other nodes get connected.
Has joined the channel.
Hi everyone
Can I ask you a question
?
Also I wonder whether I should activate the miner on Clique?
I'm building a netowrk with besu and orion, with two machines in aws, each machine has group of 3 nodes with orion, under a Dicker network. When two of the nodes of the same machine send a private transaction between them, all goes right, when sending a private transaction between a node in a machine and a node from the other, seems like everything goes ok, but an event that should be emiited, is skipped, but there is no error log anywhere
you're right. I should not talk before coffee.
Has joined the channel.
Hi guys, may I ask you whether it is possible to get the current list of validators from the smart contract, please? Sometimes it might be very useful - e.g., governance. This info should be presented in extraData header field but even this one seems not accessible from the smart contract.
Currently, no. My take is that this would require a new precompiled contract since it's interacting basically across layers. However there are bytecodes to support PoW consensus (COINBASE, DIFFICULTY) so its addition woudln't be without precedent.
I'm trying to create a permissioned network with 3 nodes on different locations (hosted on different devices). I'm having problems connecting those nodes. I'm using the bootnodes option, but I don't have a clear idea of the process I should follow. Overall, what are the steps I should take?
I'm using local permissioning; until now, I have copied the genesis file and the permissions file on the three devices, and have tried to start the nodes (all of them are connected to the same network)
Hi @mohjam2004 Im not sure if this helps or is close to your setup https://medium.com/alethio/a-guide-to-deploying-alethios-free-open-source-products-18216617722e. The main repos https://github.com/Alethio/ethstats-network-server doesn't look like its maintained anymore though so you may need to fork and customise to suit your reqs?
where did you download from? I just downloaded the zip file here https://github.com/hyperledger/besu/releases and unzipped there is a /bin
what do you mean by "network name"?
Have you tried the updated docs https://besu.hyperledger.org/en/stable/HowTo/Deploy/Lite-Block-Explorer/
I would recommend first verifying that the nodes can connect with permissioning disabled if you can.
have you verified that the nodes can connect otherwise when on different machines?
with clique you do not need to enable mining
Have you verified that the nodes can connect to each other otherwise? What versions of Besu and Orion are you running?
are you starting from block 0? Can you share your Besu logs?
arjanvaneersel - Wed Apr 28 2021 10:43:21 GMT+0300 (Eastern European Summer Time).txt
As I said before: When I run things locally it works fine and blocks are being created, but as soon as I deploy to AWS the nodes aren't creating blocks.
Here is the current config.toml:
`data-path="s1data"
genesis-file="genesis.json"
network-id=123
rpc-http-enabled=true
rpc-http-api=["ETH","NET","CLIQUE"]
host-allowlist=["*"]
rpc-http-cors-origins=["all"]
#bootnodes=["enode://d97bbb975c07ab48ea7332221662e5b8b3ee63e85c349f129001cc4a676cf531cef5b87992d96d265bc726af752af2e8e788c58edef3ec0e06e7db7910b2ae18@127.0.0.1:30303"]
bootnodes=["enode://d97bbb975c07ab48ea7332221662e5b8b3ee63e85c349f129001cc4a676cf531cef5b87992d96d265bc726af752af2e8e788c58edef3ec0e06e7db7910b2ae18@13.51.155.9:30303"]`
and the genesis file:
`{
"config":{
"chainId":2021,
"constantinoplefixblock": 0,
"clique":{
"blockperiodseconds":15,
"epochlength":30000
}
},
"coinbase":"0x0000000000000000000000000000000000000000",
"difficulty":"0x1",
"extraData":"0x0000000000000000000000000000000000000000000000000000000000000000860dd0cc99142b5ebc39a6ceb99ce05348851d4f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"gasLimit":"0xa00000",
"mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000",
"nonce":"0x0",
"timestamp":"0x5c51a607",
"alloc": {
"627306090abaB3A6e1400e9345bC60c78a8BEf57": {
"balance": "90000000000000000000000"
}
},
"number":"0x0",
"gasUsed":"0x0",
"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000"
}`
arjanvaneersel - Wed Apr 28 2021 11:01:24 GMT+0300 (Eastern European Summer Time).txt
The local log to show that when I run it locally, the signer node starts producing blocks immediately.
Sorry if this is too much of a newbie question, but how would I do that too?
I found the issue. Something went wrong in with deploying via terraform and the keys weren't saved on the AWS node. This caused that the node got a different address than what was mentioned in the genesis file, hence it not being a signer.
My previous issue is solved. The only thing I don't get yet is how I can add additional signers. In total I have 4 nodes. So as stipulated in the documentation I sent the request to add node1 as a signer to node0. That went fine.
To make node2 a signer I sent the request to both node0 and node1, however that didn't work. I do wonder whether I should change the value of ID in the rpc request?
I see. Thank you for answer. Would be nice to have something like that.
The smart contract, as well as the EVM works deterministic. So adding the extra data field to the contract wouldn't be something "inside" the EVM but someting inside the node.
What you can do is that write a contract that holds an array of IP addresses, and each time you run your contract from one of the machines, let the machine first get network state, then embed it to the call and write to the contract. This way, just like oracles, you would be writing node state TO THE CHAIN.
That's the outside approach. The downside is that you need to keep the observer service up, so if the observer goes down data goes out of sync. The upside, which should not be overlooked, is that you can do this without changing node software.
Are there any ways to make IBFT2 mining profits to go to one wallet address instead of the verifying node? I tried `coinbase` parameter on Genesis but seems like it doesn't work.
You can add hooks so that contracts can detect a downed observer by adding "heartbeat" checks that will always update some value at fixed intervals even if nothing changes.
More devops work, but zero node changes.
Adding node list as a extradata has no benefits in terms of networking because each node will be producing different extradata depending on peers they are connected to. This would break the deterministic approach of EVM.
On the other hand, if one node periodically writes that extra data to the chain, it means there's trust involved. And since there's trust involved, the node's peer activity can be tracked with an external software.
Even better, if all nodes have their RPC exposed, a single app can fetch that data periodically from each node and record.
Have you tried using --miner-coinbase when you start a node?
The --miner-coinbase is related to node's mining setting. I require something that is in the genesis.json so if more nodes (independent ones) start up, their validated income also paid to the miner address in the genesis.
Since using privacy groups I'm getting the error: Error: Returned error: InvalidPayload. My transaction looks like this:
`// Build Increment Tx
const documentTx = document.methods.setKey(receiverAddress, key);
// Sign Tx with PK
const createTransaction = await this.web3.eth.accounts.signTransaction(
{
to: documentAddress,
data: documentTx.encodeABI(),
gas: 23064,
privateFrom: enclaveKey,
privacyGroupId: privacyId,
privateKey: this.account.privateKey.substring(2),
},
this.account.privateKey
);
// Send Tx and Wait for Receipt
const createReceipt = await this.web3.eth.sendSignedTransaction(
createTransaction.rawTransaction
);`
Can anyone see the problem?
I am able to make privacygroups and add members to it. I'm also able to deploy contracts
Hi! What version of Besu, Orion and Web3js-eea are you using?
Also, could you please share the script that you are using (not just a fragment)?
We have a page in our docs about setting up a permissioned network. I believe it is a good start to understand how it works.
https://besu.hyperledger.org/en/latest/Tutorials/Permissioning/Create-Permissioned-Network/
@IvanHomoliak it would be interesting to hear what is the use case for having access to validators from the EVM scope.
At the moment, Besu has a JSON-RPC method that you can use to retrieve the list of validators on any point in the chain (https://besu.hyperledger.org/en/latest/Reference/API-Methods/#ibft_getvalidatorsbyblockhash).
Hi team.
Looking for some support please. To set up Besu, I went in the direction starting with besu-sample-networks project. Well since then I have successfully used besu locally with my dapp and it worked well for my initial tests. I could query, and send txs to the blockchain.
Then I handed this off to the devops in my org and after a few weeks he had it in Argo CD setup. Now I am in the following situation
* I can connect to this remote besu instance in meta mask
* I can see that I have a balance in metamask on this network
* I can run migration scripts from truffle to my network
* I can load code into Remix and interact with the contract.
* But in remix, I cannot read from the contract
Now my problem is although I can see native eth balance and execute transactions with my account ( it has balance on genesis file) -->
I still cannot "Get" from the blockchain, I cannot read anything. I cannot read values with remix, I cannot read values from my ethers.js project.
When checking documentation someone mentioned this https://github.com/adetante/explorer-besu-plugin , is that my best bet to resolve this issue?
When using https://github.com/ConsenSys/besu-sample-networks how to configure allow list if using on the cloud?t
It should make no difference running Besu locally or on a hosted server (considering all the networking configuration is correct).
Do you get any errors from Remix when trying to "read" from the contract? Anything on Besu logs that could indicate an issue?
Remix interacts with the node through JSON-RPC (so does MetaMask). You could try sending an eth_call cURL request to the node to check if you can get an insight on why it isn't working.
This docs page steps through the process https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/Clique/#adding-and-removing-signers
There is also this API call to check the status of current proposals. https://besu.hyperledger.org/en/stable/Reference/API-Methods/#clique_proposals
awesome!
Hey thanks for the response
I only get errors when I try to "read" something from the contract
Hmmm, now that I have checked this issue with my own instance, I've seen the same.
The node must be reporting correctly because I have an EXTERNAL block explorer installed and there I can see the total supply, token holders etc. on my custom ERC-20. But for some reason Remix can't parse that data.
JUST as I was writing this, I thought "wait a minute, did I choose correct environment??" and realized that it was JavascriptVM.
Changing that to Injected Web3 solved my problem.
I'm using the latest besu and orion docker images, version of web3-eea = ^0.10.0.
Here is the full method:
`share = async (documentAddress, receiverAddress, key, enclaveKey, privacyId) => {
console.log(
`Attempting to share from account ${this.account.address}, to account: ${receiverAddress}`
);
const document = new this.web3.eth.Contract(
this.Document.abi,
documentAddress
);
// Build Increment Tx
const documentTx = document.methods.setKey(receiverAddress, key);
// Sign Tx with PK
const createTransaction = await this.web3.eth.accounts.signTransaction(
{
to: documentAddress,
data: documentTx.encodeABI(),
gas: 23064,
privateFrom: enclaveKey,
privacyGroupId: privacyId,
privateKey: this.account.privateKey.substring(2),
},
this.account.privateKey
);
// Send Tx and Wait for Receipt
const createReceipt = await this.web3.eth.sendSignedTransaction(
createTransaction.rawTransaction
);
console.log(
`Document shared successfully with hash: ${createReceipt.transactionHash}\n`
);
};
`
Quick question, is it possible to deploy a permissioned besu network on Azure?
It costs extra to save data to the blockchain itself as it consumes gas. As @lucassaldanha stated, locally the information can be stored without costing gas. @IvanHomoliak
Yes it is possible.
https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Create-Permissioned-Network/
Hello, I am creating a Besu network involving some institutions. Is there a problem if one institution install many Besu nodes reusing the same IP with different ports?
Hello, I am creating a Besu network involving some institutions. Is there a problem if one institution installs many Besu nodes reusing the same IP with different ports?
Another question. In order to enable WebSocketProvider, I configured config.toml (rpc-ws-enabled + rpc-ws-port). Is it enough?
There's no problem there. However, keep in mind that if they deploy the nodes on one machine like the examples on documentation, if machine goes down, your network might stall.
Also if internet goes down, since they all have same network, all nodes will go down.
Has joined the channel.
Has joined the channel.
should be. if the default host is right and the default APIs are what you need. https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-ws-api
Try it, does it work?
add rpc-ws-host and set it to 0.0.0.0 if you want to connect from external resource
Has joined the channel.
Hello, quick question, using Besu on public Ethereum Network, can i add a layer of privacy (permissions) over my tx or is it juste meant to be done on a private Eth network ?
It is meant to be on a private network. It doesn't work on ETH Mainnet
thank you very much for your answer!
Almost completed syncing with Goerli Wednesday then it stopped. Rebooted but now not finding peers. Have trace on. How to debug?
Do I need to include rpc-ws-api if I already have rpc-http-api, rpc-ws-enabled and rpc-ws-port? @macfarla?
Thank you for these answers
Has joined the channel.
Does Besu have any plans to enable interoperability between different private Besu networks? Cosmos, Polkadot, etc. have their approaches and I'm wondering if there's an existing effort with Besu.
Has joined the channel.
howdy
Architecture.png
Hello, when dealing with a permissioned network for many institutions, is it possible to have a topology that the validators talk to each other using nodes that are not validators? I heard it was not possible a few years ago (not sure if it was a bug). Does Besu supports that? I can see it may offer some protection to the validators but it maybe introduce workload issues in some nodes, right?
Hello, when dealing with a permissioned network for many institutions, is it possible to have a topology that the validators talk to each other using nodes that are not validators? I heard it was not possible a few years ago (not sure if it was a bug). Does Besu support that? I understand it may offer some protection to the validators but it maybe (a) introduces workload issues in some nodes and (b) increase the risk of connectivity since validators are achieved only by a "brigde-node", right?
The topology you posted is valid. However what you are asking is not valid afaik.
The reason would be the Byzantine Attack because if you put a bridge node, that node might interrupt messages (even though can't change). That might cause network to stop producing blocks.
Also would cause extra workload.
Has joined the channel.
Hi @rai I'm also getting the same error. I'm running v21.1.5, is the fix in this version already?
I agree with your concerns, @Nithronium. The bridge node may be attacked in this architecture and could stop the communication with validators anyway.
I think there are pros and cons in creating this "bridge" node that protect validators.
Anyway, I heard that this option was not even possible 1-2 years ago. It seems that there was a strict requirement to validators talk directly among them.
I agree with your concerns, @Nithronium. The bridge node may be attacked in this architecture and could stop the communication with validators anyway.
I think there are pros and cons in creating this "bridge" node that protects validators.
Anyway, I heard that this option was not even possible 1-2 years ago. It seems that there was a strict requirement to validators talk directly among them.
Hey everyone. If I want to configure my Besu node to be accesible from outside my home network, do I have to set my public IP in the --p2p-host option?
If so, what should I do if my IP is not static and I use a dynamic DNS?
Feel free to check out the roadmap. Our focus right now is interoperability with GoQuorum private/permissioned fork of geth.
https://wiki.hyperledger.org/display/BESU/Roadmap
if you are using a home network and your IP changes, you will have to restart the outside nodes because they'll have to find your new IP.
OR you can configure an outside node as the bootnode, and your local node as the secondary nodes so even if your IP changes, your node will connect to bootnode.
Also if you want other nodes to access your node, you might want to open your 30303 port from the router
You can go through our entire docs on Privacy, privacy groups and extended privacy https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Overview/
Okay, thanks
@mdwright88 is the interoperability designed specifically for GoQuorum or with other permissioned blockchains in mind?
Specifically for GoQuorum
ConsenSys Software R&D is working on crosschain function calls across any blockchain (permissioned, permissionless, EVM based and non-EVM based). Have a look at https://arxiv.org/pdf/2011.12783.pdf and https://www.youtube.com/watch?v=ixK0_ltjr8k
@SuzanaMaranhao you are correct. All validators must be able to connect to each other. There is no relaying of IBFT messages.
@SuzanaMaranhao could you please explain what would be the pros of such approach?
Besu node doesn't store any private key except the one for the node. So the worst case scenario for direct communication with a node is that you leave some ports open and people SSH and steal your key for your node. And what they can do with that is being a byzantine node and broadcasting false messages. Which actually has the same attack surface with your bridge node.
Are there any pros that I am missing?
Yes thank you ! I went through it and things appears clearer now!
Regarding my last question about dynamic IP: if I'm running a node at a home network for a permissioned network, is there any way I can take advantage of a website like No-IP to set up a dynamic DNS IP? Or must I stick to the solution provided by @Nithronium about using an outside node as a bootnode?
The Linux Foundation and Hyperledger are planning a Hyperledger Besu certification program and we need your help.
If you have 2 minutes to complete a short survey, your feedback will be used in the creation of this certification. You can fill out the survey at:
https://www.surveymonkey.com/r/Q2DXHWZ
Hi everyone, does anyone have any experience using Hyperledger Caliper with Besu, or maybe know a good tutorial?
Hey @RobbeV 1, the Besu team improved Caliper support for Besu last year and have been testing against Caliper for a good while now - these instructions should work to configure everything I believe https://hyperledger.github.io/caliper/v0.4.2/ethereum-config/
I haven't tried such service myself. However, if the mentioned service makes you install an app on your device, and every time your IP changes, updates their DNS records to resolve the domain always to your device, then this might do it.
Clipboard - May 6, 2021 1:17 PM
I keep getting two messages while syncing Besu: Red-"java.lang.IllegalArgumentException: Could not recover public key" and Yellow "Unexpected error while calculating ECDH Key Agreement: Invalid point coordinates". Almost caught up syncing mainnet and a testnet but have to restart multiple times a day. How do I fix these?
Any security suggestion for communicating with EthSigner? Nginx reverse proxy with basic auth?
https://www.jsonrpc.org/specification
The next two week release should eliminate those logs. Some other client on the network (not besu) is sending a bad key in p2p stuff.
The fix is to move the notification from error to debug.
thank you!
Has anyone benchmarked Besu for gas cap? For example, if set with 4 nodes and 50M gas with 2 sec block interval, if we have like 32 GB RAM, 16vCPU, load balancing system, would it handle?
50MM gas is no enough, you will saturate the chain at that level.
Try 70-100MM.
300 tps. And the constraint was how fast we can serve the transaction receipts to the test harness. If the harness checked receipts later and did more sensible querying it could ho higher.
Probably only need 8-16 Gib and 4-8 cores to achieve that. You will also need one or more RPC only nodes. with beefier specs.
50MM gas is no enough, you will saturate the chain at that level.
Try 70-100MM.
300 tps. And the constraint was how fast we can serve the transaction receipts to the test harness. If the harness checked receipts later and did more sensible querying it could go higher.
Probably only need 8-16 Gib and 4-8 cores to achieve that. You will also need one or more RPC only nodes. with beefier specs.
A more useful metric would be how much gas per second is used because not all Ethereum transactions are the same. I don't think we could do 300 uniswaps per second, for example.
What about regular 21K gas transactions?
and also what is the bottleneck in sending 300 uniswaps per second for example? the cpu or the memory? or simply read-write ratio of the storage?
BSC can handle 150tps as of now, I think
Is there any way to reduce maximum allowed gas after deploying the chain?
Two approaches, either restart each node with `--target-gas-limit` or call https://besu.hyperledger.org/en/stable/Reference/API-Methods/#miner_changetargetgaslimit on each node.
It will take time to ratchet down.
Hi everyone, private transactions are not added to the transaction pool, Does this mean that there needs to be trust between the participants of a private transaction, because its not validated by the network?
Thanks alot!
No problem!
How have you configured your network for privacy and consensus?
Anyone else having problems fining peers? My config has nat-method="upnp" and the NAT is working. Also have fast-sync-min-peers=1. I check with etherscan to see that its not making progress so I restart Besu. It starts up, eventually finds a peer and syncs a few blocks only to get stuck again. I have two machines one on mainnet and one on goerli both are almost caught up but both have to be restarted to find peers.
Anyone else having problems finding peers? My config has nat-method="upnp" and the NAT is working. Also have fast-sync-min-peers=1. I check with etherscan to see that its not making progress so I restart Besu. It starts up, eventually finds a peer and syncs a few blocks only to get stuck again. I have two machines one on mainnet and one on goerli both are almost caught up but both have to be restarted to find peers.
thanks a lot!
I totally missed that API
Hey everyone. I'm trying to benchmark my network using Caliper, and I'm getting really confused. Is there any guide on how to do it specifically for Besu?
Has joined the channel.
trying to connect to besu with prometheus from a different host, and am getting a 403 - Host not authorized
is that not a supported configuration? I see the default bind address for the /metrics endpoint is on the loopback
i'm running besu in the provided docker though
I noticed the ansible role has `besu_host_whitelist` for allowing RPC connections from other hosts. can that be set via an environment var, and will it affect the prometheus /metrics endpoint as well?
_realizes this is what prometheus push gateways are for. slinks away silently._
you can also use the otel collector to scrape metrics
Is there a way (an api) to view all the private transactions that happened via orion?
Hey everyone. Can I deploy a contract into a permissioned Besu network using web3.py? If so, how? I'm having problems doing it.
[ ](https://chat.hyperledger.org/channel/besu?msg=6e2FGMaSN2uGYJpfw) You can iterate over all transactions to the privacy marker transaction address. But that has it's own issues ...
thanks for replying. Any reference link you might have?
Asking because I didnt fully get you.
I don't see a reason why not. What error are you getting?
In besu when you create a private transactions you end up with a public marker transaction and a private one distributed with orion.
In besu when you create a private transaction you end up with a public marker transaction and a private one distributed with orion.
To get a list of all private transactions in a network you can iterate over all blocks and transactions using json-rpc and then filter out the ones that are addressed to the marker transaction.
It's the same question as get me a list of all transaction to an address. The answer is, it's a pain because you need to iterate over every block.
sorry, I actually mean how to read the contents of the private transaction after knowing the public marker transaction?
I understand that I have to iterate all the blocks and filter out the marker transactions and there's no direct way to get all marker transactions yet.
Also, is this the same with tessera?
Once you have the transaction key it's easy. You can just hit `/receive` with the transaction key and the enclave key.
https://github.com/hyperledger/besu/blob/master/acceptance-tests/tests/src/test/java/org/hyperledger/besu/tests/web3j/privacy/PrivacyClusterAcceptanceTest.java#L169
shows you how it was done in besu.
The other option is to hit the db directly. Setup orion to use postgres https://docs.orion.consensys.net/en/stable/Tutorials/Using-PostgreSQL/ then just query that like normal!
This is useful info. Thank you.
When calling w3.eth.contract(), I get the error `ValueError: {'code': -32604, 'message': 'The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu.'}`
I guess eth_sendTransaction gets called inside w3.eth.contract(), which is not supported
yep so to use eth_sendTransaction in besu, you have to put EthSigner in front. or use web3js-eea https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/
Thanks! I suppose I can use web3.py later on for other operations, right?
Hi! Can anyone point me to how the validator seals are formed for IBFT2? in IBFT1 it is something like keccak256(blockHash, COMMIT_MSG_CODE), but that doesn't seem to work for IBFT2
So, if I go with the postgres route, would I still need to traverse the blocks to get the marker transaction?
In other words, would I need the key (used to receive the orion payload) from the marker transaction?
If I have access to the entire db then I can just read it from there without this key. Am I right?
just looking into this for you!
The code is somewhere around here but I can't find it exactly - the team is in the process of pulling out some common BFT code to this part of the repo. hopefully I can get you a more direct answer in a few hours. https://github.com/hyperledger/besu/blob/master/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/BftBlockHashing.java
Quick question. As it says in here: https://besu.hyperledger.org/en/stable/HowTo/Interact/Client-Libraries/web3js-eea/#deploying-a-contract-with-sendrawtransaction I can deploy a contract using this snippet:
`const contractOptions = {
data: `0x123`, // contract binary
privateFrom: "orionNode1PublicKey",
privateFor: ["orionNode3PublicKey"],
privateKey: "besuNode1PrivateKey"
};
return web3.eea.sendRawTransaction(contractOptions);`
Do I need to use a orion node? How would I use this for a local besu node?
Quick question. As it says in here: https://besu.hyperledger.org/en/stable/HowTo/Interact/Client-Libraries/web3js-eea/#deploying-a-contract-with-sendrawtransaction I can deploy a contract using this snippet:
`const contractOptions = {
data: "0x123", // contract binary
privateFrom: "orionNode1PublicKey",
privateFor: ["orionNode3PublicKey"],
privateKey: "besuNode1PrivateKey"
};
return web3.eea.sendRawTransaction(contractOptions);`
Do I need to use a orion node? How would I use this for a local besu node?
Quick question. As it says in here: https://besu.hyperledger.org/en/stable/HowTo/Interact/Client-Libraries/web3js-eea/#deploying-a-contract-with-sendrawtransaction I can deploy a contract using this snippet:
`const contractOptions = {
data: "0x123", // contract binary
privateFrom: "orionNode1PublicKey",
privateFor: ["orionNode3PublicKey"],
privateKey: "besuNode1PrivateKey"
};`
return web3.eea.sendRawTransaction(contractOptions);`
Do I need to use a orion node? How would I use this for a local besu node?
Quick question. As it says in here: https://besu.hyperledger.org/en/stable/HowTo/Interact/Client-Libraries/web3js-eea/#deploying-a-contract-with-sendrawtransaction I can deploy a contract using this snippet:
`const contractOptions = {`
`data: "0x123", // contract binary`
privateFrom: "orionNode1PublicKey",
privateFor: ["orionNode3PublicKey"],
privateKey: "besuNode1PrivateKey"
};
return web3.eea.sendRawTransaction(contractOptions);`
Do I need to use a orion node? How would I use this for a local besu node?
Quick question. As it says in here: https://besu.hyperledger.org/en/stable/HowTo/Interact/Client-Libraries/web3js-eea/#deploying-a-contract-with-sendrawtransaction I can deploy a contract using this snippet:
const contractOptions = {
data: "0x123", // contract binary
privateFrom: "orionNode1PublicKey",
privateFor: ["orionNode3PublicKey"],
privateKey: "besuNode1PrivateKey"
};
return web3.eea.sendRawTransaction(contractOptions);`
Do I need to use a orion node? How would I use this for a local besu node?
Quick question. As it says in here: https://besu.hyperledger.org/en/stable/HowTo/Interact/Client-Libraries/web3js-eea/#deploying-a-contract-with-sendrawtransaction I can deploy a contract using this snippet:
`const contractOptions = {
data: "0x123", // contract binary
privateFrom: "orionNode1PublicKey",
privateFor: ["orionNode3PublicKey"],
privateKey: "besuNode1PrivateKey"
};
return web3.eea.sendRawTransaction(contractOptions);`
Do I need to use a orion node? How would I use this for a local besu node?
That snippet is deploying a private contract, and for that you need a private transaction manager (Orion). If you're not using privacy, you can just use web3j https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Client-Libraries/
That snippet is deploying a private contract, and for that you need a private transaction manager (Orion). If you're not using privacy, you can just use web3j https://besu.hyperledger.org/en/stable/HowTo/Develop-Dapps/Client-Libraries/
Sorry I don't know your use case - but to sent a tx to besu it needs to be signed outside of besu
EthSigner is nice for this and it's what I use when developing
Not sure entirely what you mean. But the commit seals that are included in the extra data for the finalised block are created using IbftRound.createCommitSeal which does a keccak256(commitHash) where the commit hash is the hash of the proposed block header with the extra data changed to exclude the commit seals.
The hash that is signed and included as part of the IBFT2 messages does a keccak256(messageCode, rlp(payload)) which is done in IbftPayload.
Has joined the channel.
Hi all, I'm on my first steps with Ethereum and Besu, and I'm struggling with a Metamask problem since it isn't loading the account balance after I've reloaded the sample network. I understand It must be a very basic issue, but I'd really appreciate any hints to solve it. Thanks in advance!
[ ](https://chat.hyperledger.org/channel/besu?msg=yQJLhks8a44wbTgND) Just in case, to be clear, I've already tried reinstalling Metamask, also switch networks, and reload accounts, and, when I look up the imported account in the block explorer, it shows the right balances.
Has left the channel.
Hi Giorgio, welcome to Besu! Can you let me know which sample network tutorial you're following? Are you getting any errors in your logs?
yes, you could just read them from the db.
Hi Vijay, thank you very much for your reply. I've downloaded the https://github.com/ConsenSys/quorum-dev-quickstart samples and I'm following the Hyperledger Besu path. I've successfully launched the test network with privacy enabled and my next step would be the pet-shop dapp deployment. This deployment is currently failing due to a lack of funds in the owner account I'm using, but I've realized the genesis file includes three accounts with plenty of balance. The problem is when I import any of those accounts in metamask, it is showing a zero/empty balance, though, the account's balance on the block explorer shows the opposite, that's why I'm pretty sure there is a problem with metamask. Then, to workaround this issue, I'd like to find a way to manually create accounts, in this manner I'll be able to include them in the genesis file and finally, recreate the network and use those accounts to deploy the dapp. I'm trying to build something based on web3 to do that, so, as I've told, any help will be very appreciated.
Screen Shot 2021-05-12 at 11.20.19.png
Screen Shot 2021-05-12 at 11.19.53.png
Hey @gortaire it looks like your Metamask is not connecting to your Besu node. Can you perhaps screenshot the address and port in your Metamask network selection? Are there any errors in your Besu logs when you try to connect?
Can you guide me on which logs should i look to check errors?
there are many nodes, in which of them should i find relevant logs?
in the rpcnode?
yep! the rpcnode logs would be the correct ones to check
Fixed!. I've recreated again all the installation and also the rpc connection on metamask with a different name and now all is working fine. What a shame, obviously I was stuck in a very beginners issue, however, I'm glad to join the community and I hope to collaborate with valuable topics in the future. Thank you very much for the consideration given and the goodwill to help!
No problem at all, anytime! Hope to see you join our community calls in the future - let us know if you want to share what you're working on!
I’ll be aware, than you!
Can anyone here help me with this please: https://github.com/web3j/web3j/issues/1411 ?
i'm having a hard time understanding the initial sync process of my Besu client.... here's what I think i know so far. I'm running fast sync, so it shouldn't be trying to execute any contracts older than my pivot block, which is top block as of startup time, minus 64. My blockchain is synced up till the time I started it, but it hasn't pulled in any new blocks. It continues to pull down world state too. How can I tell if I did anything wrong, or how much of the state tries remain to be pulled in?
i'm currently almost 6K blocks behind, and not sure when that will start coming down. I'm not sure how much world state remains or what it's actually doing right now.
Blocks after the pivot block can't be imported until the whole world state has downloaded, because those do need to have their transactions processed and that requires the world state.
Unfortunately with the way that the protocols work for fast sync there isn't any way to get a clear indication of how many trie nodes are left to download because it keeps changing. Last I heard I think was about 700 million but my memory may be off on that.
Also, it's common for the process to need to move up to a more recent pivot block because all peers have pruned the world state at the original pivot block. In that case Besu has to walk the whole world state trie again and download any nodes that have changed which significantly increases the total number of trie nodes that wind up being downloaded.
thanks! that explains a lot. I assume when i get to a case where state has aged out, i can just bounce my client, and it'll choose a new pivot 64 blocks from head of chain
Definitely don't bounce your client. Besu will handle the case where it can't get the state from peers automatically. You'll see it log a message about selecting a new pivot block - not sure what the actual wording is though.
is increasing --max-peers worth a bounce though? I have plenty of bandwidth (gig fiber)
Maybe but usually the sync is limited by your disk speed. The problem with restarting is that you guarantee Besu will have to start walking the trie from scratch again when you do it.
right because it's a wholy new intermediate state starting point
thanks for the help!
You can _read_ public state from private tx but you can't write to the public state from a private transaction. We have a web3js-eea example here which reads from the public state https://github.com/ConsenSys/web3js-eea/tree/master/example/accessPublicState
oh I see
Then what will be the work around for this? What if one wants to update the public state in a private transaction?
you can't it's basically impossible to do it in a single transaction.
You could have something like an atomic swap between public and private state to achieve what you want but it's a multistage process.
Hey everyone. How can I interact with a smart contract deployed in Besu, if can't use eth_sendTransaction?
I'm unable to use myContract.methods.method(param).send({ from: account }). How would I do it with eth_sendRawTransaction?
Hey everyone. How can I interact with a smart contract deployed in Besu, if can't use eth_sendTransaction?
I'm unable to use myContract.methods.method(param).send({ from: account }). How would I do it with eth_sendRawTransaction?
Edit: nevermind, I found a way to do it
I'm using web3js
Has joined the channel.
Hi! Everyone.
Has joined the channel.
What is the SNAPSHOT version of besu? Shall we use it in production?
Hey @EmcLab, SNAPSHOT versions are under active development, and therefore the actual code could change daily. We recommend only using the full releases in production.
Hi @joshuafernandes
I have deployed besu on my kubernetes cluster based on this doc: https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy
I have error on my node1-privacy and node2-privacy pods.
this is the failed log on them:
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8Not a free gas network. --privacy-marker-transaction-signing-key-file must be specified and must be a funded account. Private transactions cannot be signed by random (non-funded) accounts in paid gas networks
Note: I haven't change anything in all files in your repository for "ibft2-with-privacy" and just deploy it to test 1st deployment.
what does cause this problem?
Clipboard - May 17, 2021 6:45 PM
In ibftConfigFile.json file in doc, there is alloc block which contains some account# and private key. Can I use empty alloc when setup the private network? Here is the doc link https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
Hi, sorry for only getting to this now. What I want to do is be able to recover the ethereum address that created the seal. I'm able to get to the correct block hash (or commitHash above), but the recovered addresses doesn't match the validator addresses. It should be as simple as ecrecover(keccak256(keccak256(rlp encoded blockheader)), validator seal), right ?
Hi, sorry for only getting to this now. What I want to do is be able to recover the ethereum address that created the seal. I'm able to get to the correct block hash (or commitHash above), but the recovered addresses doesn't match the validator addresses. As per your message, it should be as simple as ecrecover(keccak256(keccak256(rlp encoded blockheader)), validator seal), right ?
Has joined the channel.
Hello everyone, I just wanted to ask a quick question, are there any works related to the Avalanche consensus on BESU?
Not the actual UTXO implementation as simply it's not an EVM chain. However, the communication protocol could be implemented as an alternative, I think
It basically deals on the communication aspect of the nodes and scalability.
Hi @EmcLab, you can totally have an empty alloc. Here are all the fields explained - you should customize them for your project. https://besu.hyperledger.org/en/stable/Reference/Config-Items/
Hi @EmcLab, you can totally have an empty alloc. Here are all the fields explained - you should customize them for your project as you're developing your project. https://besu.hyperledger.org/en/stable/Reference/Config-Items/
Hi coenie, We are actually do a recover to verify the seals are from known validators in the BftCommitSealsValidationRule which uses the BftInterface so you can see how to recover the validator address that created seal in this code https://github.com/hyperledger/besu/blob/master/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/BftBlockInterface.java#L98.
Basically you need to do a ecrecover of the block hash and the validator seal then convert that public key to an ethereum address. So basically publicKeyToAddress(ecrecover(keccak256(rlp encoded blockheader), validator seal))
Hi coenie, We are do a recover to verify the seals are from known validators in the BftCommitSealsValidationRule which uses the BftInterface so you can see how to recover the validator address that created seal in this code https://github.com/hyperledger/besu/blob/master/consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/BftBlockInterface.java#L98.
Basically you need to do a ecrecover of the block hash and the validator seal then convert that public key to an ethereum address. So basically publicKeyToAddress(ecrecover(keccak256(rlp encoded blockheader), validator seal))
Hi eveyone, I wanted to see how scalable Besu is. I'm using the test-network and the included grafana to look how everything is performing. Now is there an easy way to double the amount of nodes of the besu test network?
Hey Robbe, what dimension of scalability are you interested in, is it TPS? Or total nodes? Or perhaps number of validators?
Hi @Nithronium, Besu is designed to be extensible and we are always interested to explore new topics. We haven't had anyone approach with a concrete proposal or request to include Avalanche consensus yet, but would be interested to see one if you wanted to put it forward.
Has joined the channel.
Hi all, encountered a bit of a problem. Currently trying to deploy a contract and send a private transaction using the node EEAClient, the first time it works without a hitch, the second time I try to run the exact same code, I receive the error "Unable to decode the private signed raw transaction". Has anyone seen this before or have an idea about what might be doing wrong? Cheers
Let me work on that then. Are there any previous feature suggestion/proposal templates I can take a look at, so that I know what I should prepare & how to propose, or even if I need to provide a PoC etc.
Let me work on that then. Are there any previous feature suggestion/proposal templates I can take a look at? so that I know what I should prepare & how to propose, or even if I need to provide a PoC etc.
NVM, found it :) https://wiki.hyperledger.org/display/BESU/Suggesting+Enhancements
Has joined the channel.
Dear Besu People! I head the Media and Entertainment SIG (Special Interest Group) at Hyperledger, and am currently booking speakers to match the wish-list of our members. One member asks: “I'd like to hear from someone at Consensys about this, connecting Ethereum with enterprise via Hyperledger.” Does anybody have a good contact––or suggested contact? We'd like somebody to come and be a speaker at one of our get-togethers. Thanks! David
I'm curious to see when Besu will support secp256r1. I believe this is the only thing preventing Besu from being NIST compliant at the moment, given POA and using Java libraries?
Hi David, interesting topic indeed. I will ask at Consensys and get back to you shortly.
A general question: how does ethereum prevent double spend of erc20 tokens? The code for the transfer is this:
```
function transfer(address to, uint256 value) public returns (bool) {
require(value <= _balances[msg.sender]);
require(to != address(0));
_balances[msg.sender] = _balances[msg.sender].sub(value);
_balances[to] = _balances[to].add(value);
emit Transfer(msg.sender, to, value);
return true;
}
```
I was now wondering how does ethereum prevent double spend in this case? Is it with the help of account level nonce or something else?
Because ERC-20s are account based there are no double spends. Double spends are an aspect of UTXO based systems, where you in effect have a sort of a digital bearer bond. Account level nonce ensures that an account's transactions are not replayed.
Fantastic: thank you!
Hi @bradmcbrayer, what command are you using? Which version of Besu are you running? If you can send logs as well, that would be useful.
There is some work underway on this, it's still in the "experimental feature" phase. If you search PRs for "elliptic curve" and "SECP256R1" you can view the code changes - but keep in mind it's still under active development so things could change.
I have seen that error a lot... it can mean a number of things. What mode of privacy are you using? Are you running a particular EEAClient example or running your own code? Either way, can you share the code or a reference to it?
Thanks @Nithronium! If you want to chat it over after you've drafted it, definitely come along to one of the contributor calls (and let us know which one!)
Hey, I'm using the web3-eea client on npm, and using the private network example nodes: https://besu.hyperledger.org/en/stable/Tutorials/Examples/Privacy-Example/
I believe these nodes are built using the --privacy-enabled flag, so quite confused as to how this error is happening.
Thanks!!
This is how the EEA client is being used in my code:
` const txPoolReceipt = this.web3EEA?.eea.sendRawTransaction({
data: request.transactionConfig.rawTransaction as string,
privateFrom: request.privateTransactionConfig?.privateFrom,
privateFor: request.privateTransactionConfig?.privateFor,
privateKey: secret,
to: request.transactionConfig.to
});`
This is how the EEA client is being used in my code:
` `` const txPoolReceipt = this.web3EEA?.eea.sendRawTransaction({
data: request.transactionConfig.rawTransaction as string,
privateFrom: request.privateTransactionConfig?.privateFrom,
privateFor: request.privateTransactionConfig?.privateFor,
privateKey: secret,
to: request.transactionConfig.to
});```
This is how the EEA client is being used in my code:
``` const txPoolReceipt = this.web3EEA?.eea.sendRawTransaction({
data: request.transactionConfig.rawTransaction as string,
privateFrom: request.privateTransactionConfig?.privateFrom,
privateFor: request.privateTransactionConfig?.privateFor,
privateKey: secret,
to: request.transactionConfig.to
}); ```
One more question on this. I think this account level also comes in play in Private Transactions involving Orion/Tessera. Am i right?
In other words, besu maintains/checks the account nonce even for private TXOs?
One more question on this. I think this account level nonce also comes in play in Private Transactions involving Orion/Tessera. Am i right?
In other words, besu maintains/checks the account nonce even for private TXOs?
Another general question, does besu maintains/checks the account nonce even for private TXOs? That is, would besu prevent double-spend by maintaining/checking the account nonce for Private Transactions?
Another general question, does besu maintains/checks the account nonce even for private TXOs? That is, would besu prevent double-spend by maintaining/checking the account nonce for Private Transactions?
Asking because the nonce for account A for privacy group ABC is different to the nonce for account A for privacy group AB.
So, how does besu prevent double spend in this case? Does it use the nonce for the marker transaction to prevent double-spends?
Another general question, does besu maintains/checks the account nonce even for private TXOs? That is, would besu prevent double-spend by maintaining/checking the account nonce for Private Transactions?
Asking because the nonce for account A for privacy group ABC is different to the nonce for account A for privacy group AB.
So, how does besu prevent double spend in this case? Does it use the nonce of the marker transaction to prevent double-spends?
Just Transactions, not TXOs, Ethereum does not have a TXO/UTXO model.
Besu checks/maintains account nonces because the more generalized ethereum protocol does.
sorry my bad, I meant to write Txns.
User User_1 added by grace.hartley.
Is there a way where a participant (one of the receiver) in a privacy group prevent a private transaction from happening?
When I start boot node with 21.1.5 first time, there is an warning about logging. The config.toml file was moved from a running node. Is it problem? How to fix this warning?
2021-05-21 01:47:37.631+08:00 | main | INFO | LogBloomCacheMetadata | Lookup cache metadata file in data directory: /home/besu_network/node1/data/caches
2021-05-21 01:47:37,637 pool-8-thread-1 WARN org.apache.logging.log4j.spi.AbstractLogger caught java.lang.IllegalArgumentException logging MessageFormatMessage: Using the APIs optimized for: {} java.lang.IllegalArgumentException: can't parse argument number:
at java.base/java.text.MessageFormat.makeFormat(MessageFormat.java:1454)
at java.base/java.text.MessageFormat.applyPattern(MessageFormat.java:492)
at java.base/java.text.MessageFormat.
@atoulme looks like a splunk issue? In the java version check static iniailizers?
https://github.com/open-telemetry/opentelemetry-java/issues/2455
looks like it is was fixed in January
I have noticed the error, but it hasn't affected the client's normal operations after it occurs.
I will bump the version of opentelemetry to at least 0.14.1. There is a long list of breaking changes between lates and our current rev (despite being only 5 months old!)
I will bump the version of opentelemetry to at least 0.14.1. There is a long list of breaking changes between latest and our current rev (despite being only 5 months old!)
Here is the java --version
# java --version
openjdk 14.0.2 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-Ubuntu-120.04)
OpenJDK 64-Bit Server VM (build 14.0.2+12-Ubuntu-120.04, mixed mode, sharing)
thanks for looking into it folks. Yes, the format changed a lot, but should be nicer going forward (API freeze with 1.0). @EmcLab feel free to open an issue and give me reference
even the bump to 0.14.1 causes interface changes/deprecations that are not immediately obvious how to rectify - I will defer to @atoulme on this since it seems like it is in his wheelhouse
Hi David, you can reach to Matt Wright @mdwright88
Hi @DavidMacFadyen , you can reach to Matt Wright @mdwright88
Hi @DavidMacFadyen, you can reach to Matt Wright @mdwright88
Hi @DavidMacFadyen, you can reach out to Matt Wright @mdwright88
@atoulme , new issue open on github. here is the link https://github.com/hyperledger/besu/issues/2312
Thanks Gary for taking a look
Didn't find anything on this yet: https://chat.hyperledger.org/channel/besu?msg=2HiFG2cP7sdC3JS5m. Any help would be really appreciated.
THANK YOU ))
Hi all, for non-boot nodes, the config still is similar to boot node, which requires rpc enabled, rpc-http-api, rpc-http-hosts and rpc-http-cors-origin. My question is that since non-boot nodes does not take rpc call directly from clients, why the rpc is still enabled for them?
What is wrong with the message below? The same config (with different port) works on other node.
2021-05-22 12:33:48.645+08:00 | Thread-2 | INFO | AutoTransactionLogBloomCachingService | Shutting down Auto transaction logs caching service.
2021-05-22 12:33:48.646+08:00 | Thread-2 | INFO | NatService | No NAT environment detected so no service could be stopped
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.82021-05-22 12:33:50.809+08:00 | main | INFO | AbstractAltBnPrecompiledContract | Using LibEthPairings native alt bn128
Hey everyone, would it be possible to run a small permissioned Besu network with 3 nodes on Raspberry Pis with 1gb of ram?
The idea would be to have a block time of around 15 seconds and have a low transaction amount of around 30 transactions/hour.
Clipboard - May 22, 2021 2:25 PM
Another question, in the information of block validation, in which unit is the gas represented (like in this image)
For non-boot node with service enabled, sometime it is synced and sometimes it is not. Here is the message when it was not:
2021-05-23 01:31:30.060+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-05-23 01:31:35.060+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-05-23 01:31:40.061+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
What is wrong here?
Manually start the server work with $sudo systemctl restart node4.service. The boot node shows 4 peers and all other 3 non-boot nodes showing 3 peers. Is it right? I am a little confused with the peer count for boot and non-boot nodes.
Manually start the service works with $sudo systemctl restart node4.service. The boot node shows 4 peers and all other 3 non-boot nodes showing 3 peers. Is it right? I am a little confused with the peer count for boot and non-boot nodes.
For a 4 nodes Besu network with one boot node, what is the right number of peers showing on boot and non-boot nodes assuming all 4 nodes are up and running?
There is no unit for gas.
The unit for gas price is `wei`.
So the transaction fee is calculated as -
`gas used` * `gas price` wei.
And `wei` can be converted to `Ether`.
Hi guys, is there a way to show the currency symbol as something other than `ETH` by default?
My main motive is to start a chain for which the currency symbol - 'DDR'. I don't know the logic behind it. Is it just to tell others that the mined coins for this network is `DDR` and not `ETH`? But connecting to the chain, shows currency symbol as `ETH` by default. How to go forward with it?
Hi guys, is there a way to show the currency symbol as something other than `ETH` by default?
My main motive is to start a chain for which the currency symbol - 'DDR'. I don't know the logic behind it. Is it just to tell others that the mined coins for this network is `DDR` and not `ETH`? But connecting to the chain, shows currency symbol as `ETH` by default. How to go forward with it?
Simply put how to create my own cryptocurrency?
Hi guys, is there a way to show the currency symbol as something other than `ETH` by default?
My main motive is to start a chain for which suppose that the currency symbol - `DDR`. I don't know the logic behind it. Is it just to tell others that the mined coins for this network is `DDR` and not `ETH`? But connecting to the chain, shows currency symbol as `ETH` by default. How to go forward with it?
Simply put how to create my own cryptocurrency?
Hi guys, is there a way to show the currency symbol as something other than `ETH` by default?
My main motive is to start a chain for which suppose that the currency symbol is `DDR`. I don't know the logic behind it. Is it just to tell others that the mined coins for this network is `DDR` and not `ETH`? But connecting to the chain, shows currency symbol as `ETH` by default. How to go forward with it?
Simply put how to create my own cryptocurrency?
Hi there, I just setup a 4 nodes network. The peer count on boot node is 4. However it is 3 peers on all other non-boot node. What could be wrong here?
2021-05-24 12:50:33.065+08:00 | pool-8-thread-1 | DEBUG | BaseBftController | New chain head detected (block number=106392), currently mining on top of 106391.
2021-05-24 12:50:34.862+08:00 | EthScheduler-Timer-0 | DEBUG | FullSyncTargetManager | Caught up to best peer: 106391, Peers: 4
2021-05-24 12:50:34.862+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 4 peers currently connected.
2021-05-24 12:50:35.000+08:00 | pool-8-thread-1 | DEBUG | IbftRound | Creating proposed block. round=ConsensusRoundIdentifier{Sequence=106393, Round=0}
2021-05-24 12:50:35.024+08:00 | pool-8-thread-1 | DEBUG | IbftRound | Received a prepare message. round=ConsensusRoundIdentifier{Sequence=106393, Round=0}
3ef461d284abfecb72be4a2cdaa6a271) in 0.000s. Peers: 3
2021-05-24 12:40:17.057+08:00 | EthScheduler-Workers-2 | INFO | PersistBlockTask | Imported #106,084 / 0 tx / 0 om / 0 (0.0%) gas / (0x2b91d68407a7d67dee2209fd3ee6af967ac49870be363117019929f070f326a3) in 0.000s. Peers: 3
2021-05-24 12:40:17.058+08:00 | pool-8-thread-1 | INFO | IbftBesuControllerBuilder | Produced #106,084 / 0 tx / 0 pending / 0 (0.0%) gas / (0x2b91d68407a7d67dee2209fd3ee6af967ac49870be363117019929f070f326a3)
2021-05-24 12:40:19.059+08:00 | pool-8-thread-1 | INFO | IbftBesuControllerBuilder | Imported #106,085 / 0 tx / 0 pending / 0 (0.0%) gas / (0x2c99e49ea401105514369d507c87f22d91efa2b2e94fdfdd5f31e1780d484d3a)
2021-05-24 12:40:19.059+08:00 | EthScheduler-Workers-0 | INFO | PersistBlockTask | Imported #106,085 / 0 tx / 0 om / 0 (0.0%) gas / (0x2c99e49ea401105514369d507c87f22d91efa2b2e94fdfdd5f31e1780d484d3a) in 0.000s. Peers: 3
I have deployed besu with privacy on my kubernetes cluster based on this:
https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy
*my validator and node(n)-privacy nodes have this error*:
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8Unable to read genesis file for GoQuorum options
for step 4, I have created orionSetup/orion1 and orionSetup/orion2 folder
and inside them I have created oriion1.password and orion2.password
and inside them I have created orion1.password and orion2.password
and inside these two files I have written password (as text file)
then I run this command
docker run -it --volume $PWD/orionSetup/orion1:/opt/orion/data --entrypoint "/bin/sh" pegasyseng/orion:latest -c 'cd /opt/orion/data && cat orion1.password | /opt/orion/bin/orion --generatekeys nodeKey'
docker run -it --volume $PWD/orionSetup/orion2:/opt/orion/data --entrypoint "/bin/sh" pegasyseng/orion:latest -c 'cd /opt/orion/data && cat orion2.password | /opt/orion/bin/orion --generatekeys nodeKey'
sudo chown -R $USER:$USER ./orionSetup
docker run -it --volume $PWD/orionSetup/orion1:/opt/orion/data --entrypoint "/bin/sh" pegasyseng/orion:latest -c 'cd /opt/orion/data && cat orion1.password | /opt/orion/bin/orion --generatekeys nodeKey'
docker run -it --volume $PWD/orionSetup/orion2:/opt/orion/data --entrypoint "/bin/sh" pegasyseng/orion:latest -c 'cd /opt/orion/data && cat orion2.password | /opt/orion/bin/orion --generatekeys nodeKey'
Hey @mohjam2004 I added this issue here: https://github.com/ConsenSys/quorum-kubernetes/issues/80
thanks for flagging!
and use the public and private key generated into secrets/orion(n)-key-secret.yaml and configmap/orion-configmap.yaml
the pegasyseng orion dockerhub repo references have been deprecated as of 12/2020, it can now be found at consensys/quorum-orion
I should not use pegasyseng/orion?
It works me and keys are generated
It works for me and keys are generated
Clipboard - May 24, 2021 4:31 PM
please check the notices at the top of this page - you'll still be able to get older versions of Orion there but not the latest https://hub.docker.com/r/pegasyseng/orion
Thanx,
I had done another test.
based on my 1st test I updated the issue.
Clipboard - May 24, 2021 4:49 PM
Is this correct in:
https://github.com/ConsenSys/quorum-kubernetes/blob/master/kubectl/quorum-besu/ibft2-with-privacy/statefulsets/node2privacy-statefulset.yaml
this is node2privacy-stateful but orion1-pubkey is written
Hi @HiteshSharma, is it metamask you're seeing this currency symbol in? It may be that you need to discuss this with that team. Depending on your use case you may instead want to use an ERC20 token https://docs.openzeppelin.com/contracts/2.x/erc20
It may be possible, but I would generally expect to need 2-4x more RAM than that depending on load - I would check out the Ethereum on ARM project who have been testing this. Unfortunately we do not have any standard tested minimum specs as this is not a common request. https://twitter.com/EthereumOnARM/status/1374646640242475013
if you take your private transaction manager offline, the transaction can
can't be executed
currently there are no native features to allow synchronization of private state between two different groups
this is something we're looking into but is a hard research problem
okay but still the nonce of the private marker transaction are executed serially. am i right? And, this nonce is the account nonce of the caller?
In other words, if one account makes 2 different requests (private transactions) in 2 different privacy groups then these 2 requests would be executed one after the other and not in parallel. Am I right?
let me check
privacy group nonces are separate to the private marker transaction nonces. you have a separate account nonce for the private marker transaction and also each privacy group
yes, that I am aware of. I am concerned about the order of execution of privacy marker transaction nonces.
More specifically this:
> In other words, if one account makes 2 different requests (private transactions) in 2 different privacy groups then these 2 requests would be executed one after the other and not in parallel. Am I right?
understood - will come back with an answer in a few hours
I think the answer is yes after reading the docs as the marker nonces are nothing but normal account nonces for public transactions. But it's good to be doubly sure. Maybe I am missed something.
checking in on this - will hopefully have an answer this evening (the k8s example repo probably needs some updating)
Has joined the channel.
Just to clarify, a PMT is a regular public ethereum tx. The nonce for a PMT has to meet all criteria for a valid tx.
And remember that the sender of a PMT is not necessarily the same sender of the Private TX associated with the PMT. So there is zero association between the two nonces.
Interesting, in a 4 node network, all nodes should have 3 peers. Maybe the bootnode is counting itself?
Have you tried admin_peers to see who is in the bootnode's peer list?
https://besu.hyperledger.org/en/latest/Reference/API-Methods/#admin_peers
This is an interesting point. How can I guarantee that the sender of PMT is the sender of PT?
In what cases are they different?
No, I mean an api or something.
As I mentioned, the PMT is a regular Ethereum tx. The two "special" things about it is that its data will be used by Besu as a key to the private tx in Orion/Tessera, and that the 'to' address is the address of the privacy pre-compiled contract.
If you want the same sender for the PMT and the Private TX, you can do it by creating the private tx and the PMT manually (see https://besu.hyperledger.org/en/latest/HowTo/Send-Transactions/Creating-Sending-Private-Transactions/#priv_distributerawtransaction)
However, I would discourage use cases that rely on the same account sending the PMT and the private tx. The privacy group is a world state completely independent from the public world state. So the account "x" in the public world state is not the same account "x' in a privacy group.
What I'm trying to say is that the PMT sender account doesn't matter for the logic inside the private group.
In its "default" configuration, the PMTs are sent with a random account.
What I want is, the sender in one PG shouldnt use the same token (double spend) in another privacy group.
and, one way I was thinking to check this is via account nonce of PMT. This way I didnt have to do anything and leverage ethereum to do it for me
and, one way I was thinking to check this is via account nonce of PMT. This way I didnt have to do anything and leverage ethereum to do it for me.
How would you use the nonce to check?
no, I won't do anything. ethereum doesnt execute a bigger nonce from the same account until all smaller nonces are executed. So, this means all requests from a single account are executed one after the other. So, no chance of double-spend. So, I was thinking to leverage this for my purpose.
Hello @mohjam2004 , thats a typo and should be orion2. I've fixed that up now, so do a pull and should be good to go
I'm sorry but I don't see how this would prevent double spending between privacy groups.
But give it a shot and see how it goes
let me give an example, if sender A did a PT with nonce 1 and did another PT (in another group) with nonce 2 then these two requests will be executed one after the other (serially) right?
Don't worry about state here. Assume the sender is maintaining the same state in both privacy group.
let me give an example, if sender A did a PT with PMT nonce 1 and did another PT (in another privacy group) with PMT nonce 2 then these two requests will be executed one after the other (serially) right?
Don't worry about state here. Assume the sender is maintaining the same state in both privacy group.
In this case, the sender is playing by the rules. What happens if they send PT with nonce 1 on group A, and PT with nonce 1 on group B? Only members of each group know what the nonce of the private tx is.
There is no way of verifying it outside of the privacy group.
I am talking about the PMT nonce. Can they control the PMT nonce?
They can.
The sender can choose the nonce for the PMT, but they are subject to the nonce rules.
If sender A sends two PMTs with the same nonce, whichever is processed second will be invalid.
okay, then that will solve my problem. Even if they change the PMT nonce and play dirty they wont be able to succeed.
So, only thing I need to take care is the sender of the PT should be the sender of the PMT.
Am I correct?
To use the same sender for the PMT and the Private TX you can use https://besu.hyperledger.org/en/latest/HowTo/Send-Transactions/Creating-Sending-Private-Transactions/#priv_distributerawtransaction
I am using web3j fopr my requests, I need to check what are they using underneath.
They'll be calling Besu APIs. So even if they don't have support for distribute private tx, it should be easy to extend it.
makes sense. Btw, do you agree with this:
> okay, then that will solve my problem. Even if they change the PMT nonce and play dirty they wont be able to succeed.
So, only thing I need to take care is the sender of the PT should be the sender of the PMT.
Am I correct?
makes sense. Btw, do you agree with this:
> okay, then that will solve my problem. Even if they change the PMT nonce and play dirty they wont be able to succeed.
> So, only thing I need to take care is the sender of the PT should be the sender of the PMT.
Am I correct?
makes sense. Btw, do you agree with this:
> okay, then that will solve my problem. Even if they change the PMT nonce and play dirty they wont be able to succeed.
> So, only thing I need to take care is the sender of the PT should be the sender of the PMT.
> Am I correct?
I can't agree because I don't see how this will solve the double spending problem between privacy groups :)
But if you think it is possible you should try it
even after assuming the state is same?
How do you know the state is the same?
okay, do you agree whether the requests would be executed one after the other and not both at the same time?
For two PMTs with the same sender, if one has nonce 1 and the other nonce 2, they won't execute at the same time.
now that you're here :) I would like to ask another question to you. Can a participant (other than the sender) in a privacy group prevent a PT from happening?
In a general sense no. However, if that private tx is calling a contract for example, the contract code might have rules that make the tx invalid (e.g. a require or assert)
The transaction will happen, but it won't modify the contract state
One option (and this is deep in the weeds of private tx processing) would be modifying the privacy precompile to deal with the private tx in a different way.
But then all nodes in the network will need to run your custom Besu build.
ok. got you.
Thanks a mil for all the help so far. It's been invaluable.
Good luck with your project!!
hey @lucassaldanha, sorry it's me again. Is there a way a private SC make state change in a public SC?
hey @lucassaldanha, sorry it's me again. Is there a way a private SC make a state change in a public SC? Or, can it only read from a public SC?
Only read
No workarounds for this? 🤔
Will oracles be a good practice to use if I want SC in different PGs to access a common datastore?
> No workarounds for this?
No. Ultimately, it doesn't make sense to let a private tx (that not everyone will be able to see) affect the public state that is visible to everyone.
> Will oracles be a good practice to use if I want SC in different PGs to access a common datastore?
I'm not sure. I haven't seen this being done before.
our project is a bit different. we want certain transactions to be private but the fund pool is common.
Hi, guys!
How do you manage your nonce?
Quorum and Geth use that account management feature, and I didn't need to manage nonce on the client side, but in case of Besu, I need to manage nonce by myself. I am using Besu to develop a system that has the ability to send tx continuously from one account, and I am having trouble with nonce management: even if I can get the nonce count of the pending tx from the tx pool and put the incremented value in the tx and send it, it does not necessarily mean that the previously sent Even if I can get the pending nonce count from the tx pool and put the incremented value in the tx, it doesn't necessarily mean that the tx sent before will arrive before the last tx sent.
If you have a good solution or an example that might be helpful, please let me know.
Translated with www.DeepL.com/Translator (free version)
Hi, guys!
How do you manage your nonce?
Quorum and Geth use that account management feature, and I didn't need to manage nonce on the client side, but in case of Besu, I need to manage nonce by myself. I am using Besu to develop a system that has the ability to send tx continuously from one account, and I am having trouble with nonce management: even if I can get the nonce count of the pending tx from the tx pool and put the incremented value in the tx and send it, it does not necessarily mean that the previously sent Even if I can get the pending nonce count from the tx pool and put the incremented value in the tx, it doesn't necessarily mean that the tx sent before will arrive before the last tx sent.
If you have a good solution or an example that might be helpful, please let me know.
Has joined the channel.
hi @VijayMichalik @joshuafernandes
another issue is that the ibftConfigFile.json in this path: https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy/ibftSetup can not be used to generate keys for validators. It doesn't start with genesis and It has extradata.
Clipboard - May 25, 2021 8:38 AM
I have pulled the updated repository in this link: https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy and deploy all resources with no changes in all yaml files.
all workloads are up and running except node1-privacy and node2-privacy.
this is the failed log in node1-privacy and node2-privacy:
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8Not a free gas network. --privacy-marker-transaction-signing-key-file must be specified and must be a funded account. Private transactions cannot be signed by random (non-funded) accounts in paid gas networks
Clipboard - May 25, 2021 8:44 AM
and it doesn't have this part to generate validator keys:
"blockchain": {
"nodes": {
"generate": true,
"count": 4
}
Hi @mohjam2004 this isn't an issue and is by design. The charts in quorum-kubernetes are to get users familiar with how things work. https://github.com/ConsenSys/quorum-kubernetes/tree/master/helmfile
Hi @mohjam2004 this isn't an issue and is by design. The charts in quorum-kubernetes are to get users familiar with how things work.
The helmfile setup in the repo will spin up everything including genesis creation and such https://github.com/ConsenSys/quorum-kubernetes/tree/master/helmfile
When you are familiar with things in quorum-kubernetes we have an Azure ready repo that has dev and prod charts - both of which do things automatically as well as use Azure native services
When you are familiar with things in quorum-kubernetes we have an Azure ready repo https://github.com/ConsenSys/quorum-azure that has dev and prod charts - both of which do things automatically as well as use Azure native services
Thanx alot, can you help me on this error:
https://chat.hyperledger.org/channel/besu?msg=ZvvPRsE2DDWqAjprK
I have manage to deploy besu on kubernetes cluster with ibft2 consensus (kubectl part of this repo). Now I can't deploy ibft2-with-privacy
I have managed to deploy besu on kubernetes cluster with ibft2 consensus (kubectl part of this repo). Now I can't deploy ibft2-with-privacy (kubectl resources)
Hey @jkcomment, we recommend the use of EthSigner https://docs.ethsigner.consensys.net/en/stable/ for transaction signing, which includes nonce management
Yes on metamask.
So basically what I want is a name for my currency, just like Bitcoin has `BTC` and Ethereum hsa `ETH`.
You have to fill in that detail when you are connecting to a new network with MetaMask or it defaults to ETH. Here is the FAQ https://metamask.zendesk.com/hc/en-us/articles/360043227612-How-to-add-custom-Network-RPC-and-or-Block-Explorer
Has joined the channel.
I have deployed ibft2-with-privacy based on helm chart and I have got the same error as when I use kubectl resources. I have these logs on node1and2-privacy:
Setting logging level to INFO
2021-05-25 09:28:35.838+00:00 | main | INFO | AbstractAltBnPrecompiledContract | Using LibEthPairings native alt bn128
2021-05-25 09:28:36.050+00:00 | main | INFO | SECP256K1 | Using native secp256k1
2021-05-25 09:28:36.143+00:00 | main | INFO | Besu | Starting Besu version: besu/v21.1.6/linux-x86_64/oracle_openjdk-java-11
2021-05-25 09:28:38.249+00:00 | main | INFO | Besu | Static Nodes file = /data/static-nodes.json
2021-05-25 09:28:38.253+00:00 | main | INFO | StaticNodesParser | StaticNodes file /data/static-nodes.json does not exist, no static connections will be created.
2021-05-25 09:28:38.254+00:00 | main | INFO | Besu | Connecting to 0 static nodes.
2021-05-25 09:28:38.336+00:00 | main | INFO | Besu | Security Module: localfile
2021-05-25 09:28:38.470+00:00 | main | INFO | DatabaseMetadata | Lookup database metadata file in data directory: /data
2021-05-25 09:28:39.440+00:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /data. Version 1
2021-05-25 09:28:44.053+00:00 | main | INFO | KeyPairUtil | Loaded public key 0x62f13f45b78061c46841c44e90a1863033729ede420fbe22b2e184f791bdcb889362ca9a061b9d3c4a090ac29ee36eab7de835f5d11a3e252ce3e9152565b273 from /data/key
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8Not a free gas network. --privacy-marker-transaction-signing-key-file must be specified and must be a funded account. Private transactions cannot be signed by random (non-funded) accounts in paid gas networks
To display full help:
besu [COMMAND] --help
Clipboard - May 25, 2021 2:17 PM
Hi in this repo: https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy
Node2Privacy is correct in read me.
Clipboard - May 25, 2021 5:20 PM
So, a coin name is not hard coded anywhere in a network. Its just a convention for some value used on a network.
So you mention your network to the public and say that this is the name of the coin we use on this network.
And you use your network id and chain id, to give it a specific name. And then you give a specific coin.
So, a coin name is not hard coded anywhere in a network. Its just a convention for some value used on a network.
So you mention your network to the public and say that this is the name of the coin we use on this network.
And you use your network id and chain id, to give it a specific name. And then you give a specific coin name to it.
So, a coin name is not hard coded anywhere in a network. Its just a convention for some value used on a network.
So you mention your network to the public and say that this is the name of the coin we use on this network.
And what you are actually doing is - you use your network id and chain id, to give it a specific name. And then you give a specific coin name to it.
Then you contact some 3rd party service to show your coin to the public users with a specific symbol that you decide upon.
Am I thinking correct?
So, if I'm using Besu to create my own network and I've a explorer. I just need to mention my coin name, e.g. `DDR` on the explorer. Is that the correct approach?
@lucassaldanha , Here is a log from the besu doc for setup a 4nodes private ibft2 private network. The peer count is 4. But the doc doesn't specify if the log is from boot node or non boot node.
2020-12-21 07:22:17.883+10:00 | EthScheduler-Workers-0 | INFO | PersistBlockTask | Imported #1 / 0 tx / 0 om / 0 (0.0%) gas / (0xde088192f27ca376eea969cb7a4a1de445bd923fde0444194c88e630f7705584) in 0.010s. Peers: 4
2020-12-21 07:22:19.057+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=2, Round=0}, hash=0x2ca2652fa79ae2b3b6aadcfb13d5d362ffd6207c3b5ae47971e04eb9d05deaa9
2020-12-21 07:22:21.044+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=3, Round=0}, hash=0x5d9a06cd17127712cfae7d1c25f705f302e146f4b64a73de3c814e1b5a3f9a16
2020-12-21 07:22:23.049+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=4, Round=0}, hash=0x843981375f4cb2bb0f33a09b647ac27da5df2c539d940d8344c907eede57829c
2020-12-21 07:22:25.060+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=5, Round=0}, hash=0x82b2069961d9185f7857cad1123de72d715729e122441335db486ea436834d6e
Here is the besu do link 2020-12-21 07:22:17.883+10:00 | EthScheduler-Workers-0 | INFO | PersistBlockTask | Imported #1 / 0 tx / 0 om / 0 (0.0%) gas / (0xde088192f27ca376eea969cb7a4a1de445bd923fde0444194c88e630f7705584) in 0.010s. Peers: 4
2020-12-21 07:22:19.057+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=2, Round=0}, hash=0x2ca2652fa79ae2b3b6aadcfb13d5d362ffd6207c3b5ae47971e04eb9d05deaa9
2020-12-21 07:22:21.044+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=3, Round=0}, hash=0x5d9a06cd17127712cfae7d1c25f705f302e146f4b64a73de3c814e1b5a3f9a16
2020-12-21 07:22:23.049+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=4, Round=0}, hash=0x843981375f4cb2bb0f33a09b647ac27da5df2c539d940d8344c907eede57829c
2020-12-21 07:22:25.060+10:00 | pool-8-thread-1 | INFO | IbftRound | Importing block to chain. round=ConsensusRoundIdentifier{Sequence=5, Round=0}, hash=0x82b2069961d9185f7857cad1123de72d715729e122441335db486ea436834d6e
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/#10-confirm-the-private-network-is-working
# curl -X POST --data '{"jsonrpc":"2.0","method":"admin_peers","params":[],"id":1}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : 1,
"result" : [ {
"version" : "0x5",
"name" : "besu/v21.1.5/linux-x86_64/openjdk-java-14",
"caps" : [ "eth/62", "eth/63", "eth/64", "eth/65", "IBF/1" ],
"network" : {
"localAddress" : "127.0.0.1:30303",
"remoteAddress" : "127.0.0.1:59574"
},
"port" : "0x7662",
"id" : "0x217f52722c6f5f2df98c68fe91295368e7806b44a6b2b1fb8b598d3b27e047ddfb6f1c62f3a9ac7df3205c52d6a4c21c08e13cd34d696d7a5832981056ed1b11",
"protocols" : {
"eth" : {
"difficulty" : "0x2aa48",
"head" : "0xaa6701c99dcfd3ccd90a2478d9d9a3a4d2e96560dac21f0f6627b7ac638c6f80",
"version" : 65
}
},
"enode" : "enode://217f52722c6f5f2df98c68fe91295368e7806b44a6b2b1fb8b598d3b27e047ddfb6f1c62f3a9ac7df3205c52d6a4c21c08e13cd34d696d7a5832981056ed1b11@127.0.0.1:30306?discport=0"
}, {
"version" : "0x5",
"name" : "besu/v21.1.5/linux-x86_64/openjdk-java-14",
"caps" : [ "eth/62", "eth/63", "eth/64", "eth/65", "IBF/1" ],
"network" : {
"localAddress" : "127.0.0.1:55536",
"remoteAddress" : "127.0.0.1:30304"
},
"port" : "0x7660",
"id" : "0x95f74f8a85d1d2338968ca54b2587803ef8ff3d9695d0d14bf41c96c03123ba5555f108449aa6b77e19856ef46e311b521baf06872e9beff717468591e6bbe3e",
"protocols" : {
"eth" : {
"difficulty" : "0x2aa48",
"head" : "0xaa6701c99dcfd3ccd90a2478d9d9a3a4d2e96560dac21f0f6627b7ac638c6f80",
"version" : 65
}
},
"enode" : "enode://95f74f8a85d1d2338968ca54b2587803ef8ff3d9695d0d14bf41c96c03123ba5555f108449aa6b77e19856ef46e311b521baf06872e9beff717468591e6bbe3e@127.0.0.1:30304"
}, {
"version" : "0x5",
"name" : "besu/v21.1.5/linux-x86_64/openjdk-java-14",
"caps" : [ "eth/62", "eth/63", "eth/64", "eth/65", "IBF/1" ],
"network" : {
"localAddress" : "127.0.0.1:33408",
"remoteAddress" : "127.0.0.1:30305"
},
"port" : "0x7661",
"id" : "0xc15fddf28d10ca21133b27c8aab5d92ffa39f40d52b0a022c4bdb0c640912085335d37099ed0f8052f65a63b8d0081fe4d375168f668c2293e15b99fd7d30226",
"protocols" : {
"eth" : {
"difficulty" : "0x2aa48",
"head" : "0xaa6701c99dcfd3ccd90a2478d9d9a3a4d2e96560dac21f0f6627b7ac638c6f80",
"version" : 65
}
},
"enode" : "enode://c15fddf28d10ca21133b27c8aab5d92ffa39f40d52b0a022c4bdb0c640912085335d37099ed0f8052f65a63b8d0081fe4d375168f668c2293e15b99fd7d30226@127.0.0.1:30305"
} ]
Hi, I'd like to ask a question related to Besu. On the /data/database directory there are files with ending .log, what are those? Simply logs of the console? Can I delete them?
Those are rocksdb files. IIRC that's the write-ahead-log. Don't delete them, RocksDB should delete them when they are merged in. Generally speaking deleting or editing anything in .../database could cause data corruption.
Thanks a lot. I am trying to forecast the required storage data for running a node with 2s block interval in the long run.
An empty block seems to be around 800bytes, lets call it 1KB to ease the calculations.
That is roughly 16M blocks a year and 15GB storage. This is only assuming blocks are empty.
Assuming a little network utilization, this could be around 25GB a year.
However, currently I am at 1M blocks and already storage is around 2GB (which is double the amount I estimate by calculations)
That's why I wondered if they were just scrap logs
@lucassaldanha , only 3 peers listed, including boot node itself. The node4 which has port 30306 is not listed here.
Well spotted @mohjam2004 - would you like to file a PR to update it?
This is the problem here
```
Not a free gas network. --privacy-marker-transaction-signing-key-file must be specified and must be a funded account. Private transactions cannot be signed by random (non-funded) accounts in paid gas
```
Could it be that the `--privacy-marker-transaction-signing-key-file` does not exist?
yes
:rocket:
I don't know what should I write for this parameter (what value I must assign for this option):
--privacy-marker-transaction-signing-key-file = ?
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#privacy-marker-transaction-signing-key-file
You either need to specify a key file, or use zero gas for your network
https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Sign-Privacy-Marker-Transactions/
may I know why I didn't have error when I deployed ibft2 consensus?
I had gas not zero value and my besu network deployed successfully.
may I know why I didn't have this error when I deployed ibft2 consensus?
I had gas not zero value and my besu network deployed successfully.
may I know why I didn't have this error when I deployed ibft2 consensus?
I had gas not zero value and my besu network deployed successfully.
I have this problem with "ibft2-with-privacy"
This is only relevant when using privacy
thanx alot
On your current setup, give it the same path as your existing nodekey for the --privacy-marker-transaction-signing-key-file and you should be fine - that about right @StefanPingel ?
Or optionally set the network to be free gas https://besu.hyperledger.org/en/latest/HowTo/Configure/FreeGas/
I don't think there's a way to do this unless it's built into the contract - eg an action requires so many votes for it to be committed
Hi, Do you mean orion1.passwod and orion2.password files from nodekey?
In your setup I should set --min-gas-price=0 in only nod1-privacy.yaml and node2-privacy.yaml?
or I should set it on all statefulsets folder yaml files?
Its the network ie all nodes
or set ```--privacy-marker-transaction-signing-key=/opt/besu/data/key``` ie the same value as the `--nodekey` parameter
this should be set on all yaml files in statefulsets? right?
--privacy-marker-transaction-signing-key=/opt/besu/data/key
https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Sign-Privacy-Marker-Transactions/ the parameter requires a key. The orion.password files are passwords used to encrypt the privacy managers keypair files
[ ](https://chat.hyperledger.org/channel/besu?msg=hWG4MbnhZe8Qi4fiS) Nope, the privacy marker transaction key deals with privacy and is set on only the nodes that have an orion/tessera pair, ie you are intending to send private transactions fron node1privacy to node2privacy for example. The validators do not have a privacy transaction manager (orion/tessera) and do not need it. When you set the value, you need to provide it with a key - this can be the nodekey itself or something else you'd like to use to identify who signed the marker tx.
thanx alot. I try them.
hi @joshuafernandes
great. it works now.
Clipboard - May 26, 2021 12:05 PM
this option is set in orion1-privacy and orion2-privacy:
--privacy-marker-transaction-signing-key-file=/data/key
now all deployments are up and running
the correct path in our deployment is: /data/key
hi - are you referring to a specific tutorial?
RPC calls are independent from the type of node.
But in actually, the non-boot nodes are the one's for which the RPC is usually enabled. Eg. infura spawns a node for you that connects to the Ethereum chain. And then you use that infura node to read blockchain data.
you can run non-boot nodes without http-rpc-api parameters
bin/besu --data-path=data --genesis-file=genesis.json --bootnodes=enode://PATH@IP:PORT --p2p-port=30303
`bin/besu --data-path=data --genesis-file=genesis.json --bootnodes=enode://PATH@IP:PORT --p2p-port=30303`
Setting correct `bootnodes` parameter will run your second node, it will just be a node and won't reply to any HTTP calls.
I generally use;
`bin/besu --data-path=data --genesis-file=genesis.json --p2p-port=30303` on the first node, then run the command I shared above on secondary nodes. Only on one of them I enable the http-api so I can perform tasks.
nice, happy for you to submit a PR with any updates. I do need to update the repo but haven't had the chance to yet
Hi @EmcLab this can vary depending on conditions. So for example you may want to add/remove peers or make permissioning calls or the like you would do that on all nodes. Hitesh and Nithronium are right, it really depends on how you configure your nodes
In a private network a common pattern with separation of concerns is bootnodes (for other nodes to join the network), validators (to just create blocks) and RPC nodes for API calls/transactions etc. All nodes will have the rpc options set, but the bootnodes and validators may be restricted to only trusted CIDR blocks.
Rocks DB has "write amplification" to speed up reads and writes, so it may store that 1kb several times. Level style DBs are mostly optimized for speed and not storage size, so they will leave junk around and periodically garbage collect it. If you put it in a graph you will see a nice sawtooth.
Alright, thanks a lot for the information.
Check what's in the "data" field - not sure why you need to do `as string` there - it should be the data field as for a normal public tx. Also check if there is anything in Besu logs.
Anyone else having problems adding a node to the "node allow list" on an ibft2-with-permissioning network using: perm_addNodesToAllowlist API method?
I'm trying to add a node but I'm receiving the following message: Unable to persist changes to allowlist configuration file. Changes reverted
Anyone else having problems adding a node to the "allow list" on an ibft2-with-permissioning network using: perm_addNodesToAllowlist API method?
I'm trying to add a node but I'm receiving the following message: Unable to persist changes to allowlist configuration file. Changes reverted
Anyone else having problems adding a node to the "allow list" on an ibft2-with-permissioning network using: perm_addNodesToAllowlist API method?
Example:
I'm trying to add a node but I'm receiving the following message: Unable to persist changes to allowlist configuration file. Changes reverted
Anyone else having problems adding a node to the "allow list" on an ibft2-with-permissioning network using: perm_addNodesToAllowlist API method?
Example:
curl -X POST --data '{"jsonrpc":"2.0","method":"perm_addNodesToAllowlist","params":[["enode://7e4ef30e9ec683f26ad76ffca5b5148fa7a6575f4cfad4eb0f52f9c3d8335f4a9b6f9e66fcc73ef95ed7a2a52784d4f372e7750ac8ae0b544309a5b391a23dd7@127.0.0.1:30303"]],
"id":1}' http://127.0.0.1:8545
I'm trying to add a node but I'm receiving the following message: Unable to persist changes to allowlist configuration file. Changes reverted
Has joined the channel.
Hi All,
I'm new in besu development and I am trying to create a private network running on k8s.
As first step I have to create configuration files so I am running:
docker run --rm --volume $PWD/ibftSetup/:/opt/besu/data hyperledger/besu:latest operator generate-blockchain-config --config-file=/opt/besu/data/ibftConfigFile.json --to=/opt/besu/data/networkFiles --private-key-file-name=key
as per indicated in: https://github.com/ConsenSys/quorum-kubernetes/tree/master/helm/quorum-besu/ibft2/besu
Immediately I got this error (I am showing the whole output)
2021-05-28 02:23:07.763+00:00 | main | ERROR | GenerateBlockchainConfig | An error occurred while trying to generate network configuration.
java.nio.file.AccessDeniedException: /opt/besu/data/networkFiles
at java.base/sun.nio.fs.UnixException.translateToIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(Unknown Source)
at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(Unknown Source)
at java.base/java.nio.file.Files.createDirectory(Unknown Source)
at org.hyperledger.besu.cli.subcommands.operator.GenerateBlockchainConfig.handleOutputDirectory(GenerateBlockchainConfig.java:319)
at org.hyperledger.besu.cli.subcommands.operator.GenerateBlockchainConfig.generateBlockchainConfig(GenerateBlockchainConfig.java:139)
at org.hyperledger.besu.cli.subcommands.operator.GenerateBlockchainConfig.run(GenerateBlockchainConfig.java:125)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1344)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1182)
at org.hyperledger.besu.Besu.main(Besu.java:50)
Does somebody have some idea of what is happening?
Your help will be most than appreciated.
thanks for replying but I am not sure I completely understood you. How can participants in a privacy group vote? Any samples or reference you can point me to?
@macfarla
Hi Vijay, im writing a paper on besu. Ans im interested in all 3. Most importantly TPS, but also how the network is affected when there are more or less nodes. IBFT2 gets slowwer when nodes are added. Im curious how much this is really affecrted
Docker needs to be able to write to the host `$PWD/ibftSetup` - check your file permissions
there's no mechanism in privacy groups to vote, I meant it would need to be built into the logic of the smart contract. It would increase the complexity of your contracts so depends on your use case whether this is worth pursuing. https://docs.soliditylang.org/en/v0.4.24/solidity-by-example.html
Hi, thanks for reply.
Reading the logs is clear that is a permission issue. However, what happened is that I was running the command outside the directory structure of the chart.
How I solved, I downloaded the chart and inside the directory I ran the commands.
[ ](https://chat.hyperledger.org/channel/besu?msg=hmzJRq5ZpmZd2AAmk) https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/#7-start-node-2
This signals a problem with reading/writing the allowlist file used by local (file-based) permissioning. Check file permissions.
@joshuafernandes what would you recommend here?
Hi all, just a note here for users of the EEA privacy capabilities in Besu: ConsenSys has merged all Orion functionality into Tessera, so Orion is being deprecated.
We recommend the use of Tessera as a drop-in replacement private transaction manager in place of Orion. Tessera supports the same endpoints and functionality, nothing needs to be changed in your Besu deployment to migrate.
ConsenSys will continue to support Orion users until 30th November 2021. You can find out more here: https://consensys.net/blog/quorum/tessera-the-privacy-manager-of-choice-for-consensys-quorum-networks/
Hi all, just a note here for users of the EEA privacy capabilities in Besu: ConsenSys has merged all Orion functionality into Tessera, so Orion is being deprecated.
We recommend the use of Tessera as a drop-in replacement private transaction manager in place of Orion. Tessera supports the same endpoints and functionality, nothing needs to be changed in your Besu deployment to migrate.
ConsenSys will continue to support Orion users until 30th November 2021. You can find out more here: https://consensys.net/blog/quorum/tessera-the-privacy-manager-of-choice-for-consensys-quorum-networks/
Has joined the channel.
Hi, I have created 3 besu+orion nodes, I am able to do private transaction also but problem is that how to get all inserted records from ledger by each participated node.
I am using web3-eea sendRawTransaction method to created private transaction for node1 and node2, so it's not visibel to node3
here is my code to insert record using contract insertrecord method
const functionAbi = contract._jsonInterface.find(e => {
return e.name === "insertrecord";
});
const functionArgs = web3.eth.abi
.encodeParameters(functionAbi.inputs, [arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11])
.slice(2);
const functionCall = {
to: address,
data: functionAbi.signature + functionArgs,
privateFrom: orion.node1.publicKey,
privateFor: [orion.node2.publicKey],
privateKey: besu.node1.privateKey
};
return web3.eea
.sendRawTransaction(functionCall)
.then(transactionHash => {
console.log("Transaction Hash:", transactionHash);
return web3.priv.getTransactionReceipt(
transactionHash,
orion.node1.publicKey
);
})
.then(result => {
console.log("Event Emitted:", result);
return result;
});
here is my code to retreive all inserted record using contract allrecords method ---------Problem how to get all inserted records , which method to call and I am transaction id
to get transaction details, please tell me the method to get all the records or some sample
const functionAbi = contract._jsonInterface.find(e => {
return e.name === "allrecords";
});
const functionCall = {
to: address,
data: functionAbi.signature,
privateFrom,
privateFor,
privateKey
};
return web3.eea
.sendRawTransaction(functionCall)
.then(transactionHash => {
return web3.priv.getTransactionReceipt(
transactionHash,
orion.node1.publicKey
);
})
.then(result => {
console.log(`Get Value from ${url}:`, result.output);
console.log("" + url + " value from deployed contract is: " + Web3.utils.toAscii(result.output));
return result;
});
Hi, I have created 3 besu+orion nodes, I am able to do private transaction also but problem is that how to get all inserted records from ledger by each participated node.
I am using web3-eea sendRawTransaction method to created private transaction for node1 and node2, so it's not visibel to node3
here is my code to insert record using contract insertrecord method
const functionAbi = contract._jsonInterface.find(e => {
return e.name === "insertrecord";
});
const functionArgs = web3.eth.abi
.encodeParameters(functionAbi.inputs, [arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11])
.slice(2);
const functionCall = {
to: address,
data: functionAbi.signature + functionArgs,
privateFrom: orion.node1.publicKey,
privateFor: [orion.node2.publicKey],
privateKey: besu.node1.privateKey
};
return web3.eea
.sendRawTransaction(functionCall)
.then(transactionHash => {
console.log("Transaction Hash:", transactionHash);
return web3.priv.getTransactionReceipt(
transactionHash,
orion.node1.publicKey
);
})
.then(result => {
console.log("Event Emitted:", result);
return result;
});
here is my code to retreive all inserted record using contract allrecords method ---------Problem how to get all inserted records , which method to call and I am transaction id
to get transaction details, please tell me the method to get all the records or some sample. If I checked in remix and call allrecords method, it returns all the records which is fine
const functionAbi = contract._jsonInterface.find(e => {
return e.name === "allrecords";
});
const functionCall = {
to: address,
data: functionAbi.signature,
privateFrom,
privateFor,
privateKey
};
return web3.eea
.sendRawTransaction(functionCall)
.then(transactionHash => {
return web3.priv.getTransactionReceipt(
transactionHash,
orion.node1.publicKey
);
})
.then(result => {
console.log(`Get Value from ${url}:`, result.output);
console.log("" + url + " value from deployed contract is: " + Web3.utils.toAscii(result.output));
return result;
});
You should be able to call the same method "allrecords" using web3-eea if that method exists on your smart contract. If it's a read-only method, priv_call works the same as eth_call but for private txs. That might be what you're looking for. https://besu.hyperledger.org/en/stable/Reference/API-Methods/#priv_call
Has joined the channel.
Hey, I'm writing a blockchain project as a homework assignment and was wondering if I could use besu as my transaction part of the chain. Kind of new to smart contracts, but noticed that EVM was lacking some functionality. Is there a github available?
[ ](https://chat.hyperledger.org/channel/besu?msg=N2kmyZAiEdkcT2s9b) https://github.com/hyperledger/besu patches welcome!
@VijayMichalik is that the right approach? Please confirm.
Thanks macfarla. It is working but always returns latest record. When I run same smart contract in remix. It returns all the records but here by using below code-const contract = new web3.eth.Contract(abi);
// eslint-disable-next-line no-underscore-dangle
const functionAbi = contract._jsonInterface.find(e => {
return e.name === "allrecords";
});
const functionCall = {
to: address,
data: functionAbi.signature,
privacyGroupId
};
return web3.priv.call(functionCall).then(result => {
console.log(Get Value from ${url}:, result);
return result;
});
it returns only the latest record and I want all the records
Has joined the channel.
test
Hi all, I have successfully deployed besu on kubernetes cluster. I would like to add a new validator by curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_proposeValidatorVote","params":["0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73", true], "id":1}'
Hi all, I have successfully deployed a besu network with 4 validators in kubernetes network. I would like to try out the add validator rpc function by curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_proposeValidatorVote","params":["0xFE3B557E8Fb62b89F4916B721be55cEb828dBd73", true], "id":1}' http://jsonrpc.besu.svc.cluster.local:8545. Do I need to go inside every validator pod to execute the curl function?
Yes
Finding peers to sync. Very frustrating. It seems the only way my system can find peers is for me to restart besu alternating with a static file and without. Besu will run for a few hours and stop syncing. So I will restart with 10 or so static nodes and it will find peers and sync for a few hours. Then I restart without the static nodes... How do I debug this?
I have deployed a private besu network and run/migrate "pet shop" dapp on it. I also deployed block explorer and alethio ethstat for my besu network and through witch I could see the transaction on block explorer and alethio ethstat dashboard. Is there any dapp or scenario by which I can check the privacy on besu network?
thanks for the confirmation.
Majority of validators.
Look here - https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#adding-and-removing-validators
You have to do it with majority of validators.
Look here - https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#adding-and-removing-validators
I would like to change the minimum difficulty of `0x20000` set for the PoW network. My network is very small for now and doesn't have any external nodes, neither I'm allowing.
For this reason, I was looking for a cost effective machine on AWS. But the problem is the difficulty . So from where can I change this difficulty in the source code?
Secondly, for the same PoW network, I spawned a mining machine with 8 cores. But I saw that only 1 or 2 cores are being used for the computation. Why not all the cores are being used? And is there any way to do so?
Besu CPU mining is unfit for production use (this is the same for all eth clients). You should be using custom GPU mining software managed by Besu's stratum support. Because GPUs outclass CPUs for ethash no serious work has gone into making it multi-core efficient.
And unless you can dominate the hashrate for a particular asic (of which the whole of GPUs is one class of ASIC) I would not recommend PoW in any production setting.
Oh! I got it.
Can you suggest me some tutorials and what do you mean by - `managed by Besu's stratum support`. Do you mean a pool? And if it is, are all the miners in same pool?
Oh! I got it.
Can you explain what do you mean by - `custom GPU mining software managed by Besu's stratum support`. I don't wuite understood it. Do you mean a pool? And if it is, are all the miners in same pool?
And please suggest some tutorials for help.
Oh! I got it.
Can you explain what do you mean by - `managed by Besu's stratum support`. I don't fully understand it. Do you mean a pool? And if it is, are all the miners in same pool?
And please suggest some tutorials for help.
Oh! I got your point for this one.
Can you explain what do you mean by - `managed by Besu's stratum support`. I don't fully understand it. Do you mean a pool? And if it is, are all the miners in same pool?
And please suggest some tutorials for help.
Oh! got your point for this one.
Can you explain what do you mean by - `managed by Besu's stratum support`. I don't fully understand it. Do you mean a pool? And if it is, are all the miners in same pool?
And please suggest some tutorials for help.
And what about changing the minimum difficulty that is hard coded for PoW network? Is it possible to change it by any means?
https://besu.hyperledger.org/en/stable/HowTo/Configure/Configure-Mining/#configure-gpu-mining
Has joined the channel.
Hi. I'm sorry as I'm quite confused here. I have sort of successfully run the Hyperledger Besu in my Terminal (Mac - Big Sur) but there is this error comes up
Screenshot 2021-06-04 at 6.24.34 PM.png
If the above screenshot has no effect, then may I know what's next? I mean how to mined a newly created transaction?
If the above screenshot has no effect, then may I know what's next? I mean how to mined a newly created transaction? To be open in the localhost? Sorry, I need guidance. Understand that this is a Test but if everything works well, how can I change it to Mainnet?
Does this mean that all the miners are in one pool only?
Based on the logs CoDeFi and Orchestrate are sending the errors, possibly based on configuration mismatches. The ConsenSys discord should have better insight: https://discord.gg/hYpHRjK
Each besu node would run basically one pool. So each new besu node generates it's own proposed block. There's no payout management, just block production.
Hi all, do any of you know any pattern or solution to schedule execution of smart contracts tasks in a private besu network???
@shemnon Thanks
Has joined the channel.
I am thinking that besu is unfit as a client period. Giving up trying to find why Besu stops syncing after a few hours. Existing solution of swapping out a static node file on alternating reboots is a waste of time. Was hoping to find an alternative to geth to promote decentralizing clients.
When using IBFT2, does Besu generate fixe-length blocks (without considering the number of transactions in it) or a variable one (like PoW)?
When using IBFT2, does Besu generate fixed-length blocks (without considering the number of transactions in it) or a variable one (like PoW)?
Fixed duration blocks typically. All available transactions, subject to block gas limit, are typically included.
Hi all, is there any documents about how to upgrade the besu node in kubernetes?
Hi all, is there any documents about how to upgrade the private besu node in kubernetes?
Hi all, is there any documents about how to upgrade a private besu node (docker image) in kubernetes without losing the blockchain data?
[ ](https://chat.hyperledger.org/channel/besu?msg=qCcv6pxB9h8zTksWZ) Assuming your talking about a private network with multiple participants and enclaves.
The node upgrade should 'just work' - but treat it like a db upgrade, take a backup of your volumes etc. As far as the data on the blockchain it shouldn't be an issue it will re-propagate from other nodes. The thing you need to be concerned about is data in orion/tessera data that will not be re-propagated. So definitely take a back up of your enclave data before you upgrade your node.
If the node re-syncs then the data must be in your enclave before hand (technically before your node processes that block).
[ ](https://chat.hyperledger.org/channel/besu?msg=qCcv6pxB9h8zTksWZ) Assuming you're talking about a private network with multiple participants and enclaves.
The node upgrade should 'just work' - but treat it like a db upgrade, take a backup of your volumes etc. As far as the data on the blockchain it shouldn't be an issue it will re-propagate from other nodes. The thing you need to be concerned about is data in orion/tessera data that will not be re-propagated. So definitely take a back up of your enclave data before you upgrade your node.
If the node re-syncs then the data must be in your enclave beforehand (technically before your node processes that block).
[ ](https://chat.hyperledger.org/channel/besu?msg=qCcv6pxB9h8zTksWZ) Assuming you're talking about a private network with multiple participants and enclaves.
The node upgrade should 'just work' - but treat it like a db upgrade, take a backup of your volumes etc. As far as the data on the blockchain it shouldn't be an issue it will re-propagate from other nodes. The thing you need to be concerned about is data in your orion/tessera enclave that will not be re-propagated. So definitely take a back up of your enclave data before you upgrade your node.
If the node re-syncs then the data must be in your enclave beforehand (technically before your node processes that block).
Hi @bradmcbrayer, I'm sorry you're having a bad experience trying out Besu. Can you share your logs or the errors that are coming up? There are a bunch of mainnet nodes running Besu and are constantly testing against mainnet so I'm confident we can help solve your problem with a bit more guidance on what's going wrong!
Hi @bradmcbrayer, I'm sorry you're having a bad experience trying out Besu. Can you share your logs or the errors that are coming up? There are a bunch of mainnet nodes running Besu and we are constantly testing against mainnet so I'm confident we can help solve your problem with a bit more guidance on what's going wrong!
If you can share your config that would also be great
I have deployed a besu private network (ibft2 with privacy) based on this doc:
https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy
Is there any dapp that I can investigate privacy in this deployed network? or how can I customize "pet shop dapp" to investigate privacy in my deployed network?
As my previous investigation, I have deployed a private besu network (ibft2) base on this:
https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2
and I had deployed "pet shop dapp" through changing truffle-config.js and setting host, port and networkid of my besu node and through which I can buy pets and watch transaction in block explorer.
is this correct that I set json-rpc address and port of my besu-node1privacy in truffle-config.js of pet shop dapp and buy pets to watch transactions in block explorer?
based on this doc: https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2 the number of besu nodes are changed through replica.
and based on this doc: https://github.com/ConsenSys/quorum-kubernetes/tree/master/kubectl/quorum-besu/ibft2-with-privacy each besu-privacy node has different worklods
I need help in this scenario how can I investigate privacy?
in this scenario, I need help to know how I can investigate privacy?
in this scenario(ibft2 with privacy), I need help to know how I can investigate privacy?
Hello Vijay. Thank you for looking into my problem. Using Besu-21.1.7. My config is: # node name
identity="tinyEth"
# The path to the Besu data directory
data-path="/media/brad/Ether/mainnet"
# The predefined network configuration. The default is mainnet
network="mainnet"
# Enables or disables P2P discovery. The default is true
discovery-enabled=true
# when using static nodes disable discovery
#discovery-enabled=false
#Enables or disables automatic log bloom caching. APIs such as eth_getLogs and eth_getFilterLogs use the cache for improved performance. The default is true.
#auto-log-bloom-caching-enabled=false
#JSON-RPC is a remote procedure call protocol encoded in JSON. It is similar to the XML-RPC protocol, defining only a few data types and commands. JSON-RPC allows for notifications (data sent to the server that does not require a response) and for multiple calls to be sent to the server which may be answered asynchronously.
#rpc-ws-host="127.0.0.1"
rpc-http-host="127.0.0.1"
rpc-http-port="8545"
rpc-http-enabled=true
rpc-http-api=["ETH", "NET", "WEB3"]
#what is this.. conflict at 8545 and fails
#rpc-ws-enabled=false
#Listed domains can access the node using JSON-RPC. If your client interacts with Besu using a browser app (such as Remix or a block explorer), add the client domain to the list.
#For testing and development purposes, use "all" or "*" to accept requests from any domain. We don’t recommend accepting requests from any domain for production environments.
#rpc-http-cors-origins=["all"]
#JSON-RPC service on 127.0.0.1
# Enables the GraphQL HTTP service. The default is false.
#graphql-http-enabled=false
# The synchronization mode. The options are FAST and FULL.
sync-mode="FAST"
#sync-mode="FULL"
fast-sync-min-peers=1
# Network Address Translation (NAT) is the process where a network device, usually a firewall, assigns a public address to a computer (or group of computers) inside a private network.
# UPnP support is often disabled by default in networking firmware. If disabled by default, explicitly enable UPnP support.
nat-method="UPnP"
#nat-method="NONE"
#nat-method="AUTO"
# To enable communication you must expose Hyperledger Besu ports appropriately.
# To enable peer discovery, the P2P UDP port must be open for inbound connections. Specify the P2P port using the --p2p-port option. The default is 30303
# p2p-enabled default is true
# p2p-enabled=true
#p2p-host default is 0.0.0.0 or all IP
p2p-host="0.0.0.0"
p2p-port="30303"
#p2p-host="127.0.0.1"
p2p-interface="0.0.0.0"
#p2p-ports 30303 is default
# The maximum number of P2P connections you can establish
max-peers="40"
# Enables pruning to reduce storage required for the world state.
#pruning-enabled=false
# Enables the metrics exporter.
#metrics-enabled=false
#metrics-enabled=true
#metrics-host="0.0.0.0"
#metrics-port=9545
# Use the --logging command line option to specify logging verbosity. The --logging option changes the volume of events displayed in the log. Valid log levels are OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, ALL. The default level is INFO.
logging="DEBUG"
#logging="info"
#logging="TRACE"
#privacy-public-key-file= "/media/brad/Ether/goerli/key"
#host-allowlist=["*"]
#LOG4J_CONFIGURATION_FILE=./debug.xml besu --network=goerli
No real error messages. Will sync for 60 to 120 minutes then stop finding peers. I will turn on a static node file with 20 nodes and reboot Besu. It will sync for 60 to 120 minutes then stop finding peers. I will turn off the static node file, reboot Besu and it will sync for 60 to 120 minutes. I current thought is my ISP is blocking some of my traffic after some time.
Sync indeed involve some heavy trafic. Who is your ISP? Also make sure your modem/router that you use doesn't have any limits or spam prevention activated.
ATT Fiber. No enables on router filter but disabled as a test.
No change. Stopped in less than 45 min.
Thank you. So suppose each block has 2 seconds duration and the same gas limit. Will a block without transaction and a block full of transaction have the same size in bytes?
@shemnon
No, the full block will have more bytes.
Could it be the way you're logging result.output - if your function returns an array you will need to iterate through the results
Device service description failed: (RemoteDevice) Identity: (RemoteDeviceIdentity)
2021-06-09 06:50:49.538-04:00 | main | WARN | NatService | Unable to query NAT external IP address. Using the fallback value : 0.0.0.0
Hi Brad, thanks for the updates, we’re looking into this
thank you!
2021-06-09 07:04:04.936-04:00 | nioEventLoopGroup-3-2 | WARN | ChannelInitializer | Failed to initialize a channel. Closing: [id: 0xe44bbb69]
Hi could you try to start with debug (logging="DEBUG") . and tell me if you have more log (e.g. a log starting with that ' Caught exception while trying to query NAT external IP address`
ok
yep: 2021-06-09 07:58:06.873-04:00 | main | DEBUG | NatService | Caught exception while trying to query NAT external IP address (ignoring)
do you have have a stacktrace close to this message ?
will have to restart
The symptoms make me think that perhaps uPNP is not activated on your router and you are using NAT mode auto (default NAT method, see https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Specifying-NAT/#auto) but port is not forwarded on the inbound routing so your node P2P port can't be reached from the outside. Then other peers probably reject the connection after some time because they can’t join the node directly and the advertised ip in the enode is not the right one (P2P host defaults to localhost if NAT fails or host not configured: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#p2p-host). Just my 2c but checking this could help to eliminate NAT misconfiguration as a cause.
don't see a stacktrace. here is the debug line prior to Unable to query NAT
2021-06-09 08:58:20.064-04:00 | main | DEBUG | NatService | Caught exception while trying to query NAT external IP address (ignoring)
java.util.concurrent.TimeoutException
at java.base/java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1886)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2021)
at org.hyperledger.besu.nat.NatService.queryExternalIPAddress(NatService.java:143)
at org.hyperledger.besu.ethereum.p2p.discovery.PeerDiscoveryAgent.start(PeerDiscoveryAgent.java:156)
at org.hyperledger.besu.ethereum.p2p.network.DefaultP2PNetwork.start(DefaultP2PNetwork.java:233)
at org.hyperledger.besu.ethereum.p2p.network.NetworkRunner.start(NetworkRunner.java:80)
at org.hyperledger.besu.Runner.start(Runner.java:111)
at org.hyperledger.besu.cli.BesuCommand.synchronize(BesuCommand.java:2314)
at org.hyperledger.besu.cli.BesuCommand.startSynchronization(BesuCommand.java:1353)
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1201)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1344)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1182)
at org.hyperledger.besu.Besu.main(Besu.java:50)
Yes timeout goes in the same direction as my suggestion. Nat setup times out as no uPNP service is enabled on your network.
Nicolas in config I have uPNP selected. Here is a few lines from startup: 2021-06-09 08:57:18.673-04:00 | main | DEBUG | BesuPluginContextImpl | Plugin startup complete.
2021-06-09 08:57:18.693-04:00 | main | INFO | RunnerBuilder | Detecting NAT service.
2021-06-09 08:57:19.153-04:00 | main | INFO | Runner | Starting Ethereum main loop ...
2021-06-09 08:57:19.154-04:00 | main | INFO | UpnpNatManager | Starting UPnP Service
2021-06-09 08:57:19.154-04:00 | main | INFO | UpnpServiceImpl | Starting UPnP service...
Yes but is uPNP activated on your router?
well... likely not. let me check.
well I do have TCP/UDP: 30303 in NAT/gaming. still looking
In the logs, when starting Besu you should have a line with the enode address of your node. Could you send it to me as a DM?
2021-06-09 09:19:39.166-04:00 | main | INFO | DefaultP2PNetwork | Enode URL enode://42771978b6b65ee2c30c9c3b1fd4e7c650968b4a6e981a333e60f8c8bf574c3d7aed30359bcdc93aae0bb3bb50101c1b198c4601cf88259b52f7cbd837fecdf1@0.0.0.0:30303
the 0.0.0.0 is the issue. It should be your external IP
oh ok. cool.
Your setting in config shows `p2p-host="0.0.0.0"` Try not to configure it and let NAT find the right one as you have uPNP activated.
Or if you know you external IP (the one visible to anyone on the internet), try to set this one manually.
And then disable NAT (set to none)
will do! I have public IP.
ok wait. i can disable NAT. then change p2p-host = my IP?
yes
k
still get: 2021-06-09 09:28:39.449-04:00 | main | WARN | NatService | Unable to query NAT external IP address. Using the fallback value :family_mmgb: MY.IP
oh I didn't disable NAT!
Did you set `--nat-method=NONE`?
ok looking good so far. didn't see any NAT related messages. will run for a few hours and see. THANK you Nicolas. I am in Atlanta where are you?
I'm in France :D
again thank you for helping me. really i have struggled with this off/on for weeks.
I'm sorry you suffered on this. Hopefully it will end well. Let me know!
has been very flustrating but I am new to this and have learned a lot. will update you!
thank you
:besu: Hey everyone! We launched a *free *Hyperledger Besu Essentials Training Course. If you are new to Besu or want to brush up on your skills setting up a private network, this training will help you through getting started. https://training.linuxfoundation.org/training/hyperledger-besu-essentials-creating-a-private-blockchain-network-lfs176x/
Some time ago, I hear that Besu has a way to blacklist some smart contracts. Where can I find information about it?
Some time ago, I heard that Besu has a way to blacklist some smart contracts. Where can I find information about it?
Also, is there any kind of whitelist? I mean a way to have an approval before enable the creation of a smart contract?
Also, is there any kind of whitelist? I mean a way to have an approval before enabling the creation of a smart contract? (perhaps after having the code of the smart contract in order to determine the hash)
Hi @bradmcbrayer, no news from you so I assume did not stop and the issue is solved. Can you confirm?
Hi @bradmcbrayer, no news from you so I assume your node did not stop and the issue is solved. Can you confirm?
Nicolas I assumed you were asleep. You do get some sleep? No real improvement. I have rebooted Besu all day. Would work for 30 -60 minutes and stop. I would use a static node file one time and not the next. I am a few hours behind mainnet sync.
getting a lot of these: 2021-06-09 20:35:55.194-04:00 | vert.x-eventloop-thread-1 | DEBUG | VertxPeerDiscoveryAgent | Discarding invalid peer discovery packet: Failed decoding packet of type: PING
a lot of these: 2021-06-09 20:48:29.610-04:00 | nioEventLoopGroup-3-3 | DEBUG | ApiHandler | Received Wire PONG
I will let run all night and will not sync a block. In morning I will reboot without a static file and sync for 30 -60 minutes. Reboot with a static file and sync for 30 - 60 minutes... repeat all day. this is not what I had in mind for a production ready ethereum client.
You could alter the dapp to send private transactions instead of public transactions but it won't work by default because the method calls are different. I recommend starting with the web3js-eea examples https://besu.hyperledger.org/en/stable/Tutorials/Privacy/web3js-eea-Multinode-example/
I have been looking into this and I get the voting part, however, I am not able to find the info that explains how a node would get notified somehow that there has been a private transaction and it needs to vote.
The web3j doc only shows how to create a privacy group and how to call a method in a private smart contract.
@macfarla I have been looking into this and I get the voting part, however, I am not able to find the info that explains how a node would get notified somehow that there has been a private transaction and it needs to vote.
The web3j doc only shows how to create a privacy group and how to call a method in a private smart contract.
2021-06-10 06:48:45.571-04:00 | nioEventLoopGroup-3-4 | WARN | ChannelInitializer | Failed to initialize a channel. Closing: [id: 0xf4dae093]
org.hyperledger.besu.plugin.services.securitymodule.SecurityModuleException: Unexpected error while calculating ECDH Key Agreement: Invalid point coordinates
Or, do I need to add a scheduler or something that would read all the proposals in the contract at regular intervals and vote & execute the ones that got the vote?
Another way would be to fire events but are events 100% reliable? What if a node misses an event or if an event isnt fired by besu? Does besu keep track of missed events and fires them again later?
Has joined the channel.
hey hi..would it be possible to intertwingle 3 installs of the besu sample to create a persistent network? if so.. is there somewhere i can understand how the config files work? cheers
hey hi..would it be possible to intertwingle 3 installs of the besu sample on 3 different machines to create a persistent network? if so.. is there somewhere i can understand how the config files work? cheers
hey hi..would it be possible to intertwingle 3 installs of the besu sample on 3 different machines to create a persistent network? if so.. is there somewhere i can understand how the config files work and have them pointing to each other? cheers
Maybe this documentation can help you ? https://besu.hyperledger.org/en/stable/Tutorials/Examples/Privacy-Example/
Maybe this documentation can help you ? https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
Maybe this documentation can help you ? https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-Private-Clique-Network/
> You do get some sleep?
Not enough, thanks for caring :sweat_smile:
I don't really have more ideas on your issue to be very honest. I'm going to try to get more expert devs involved in this thread.
There's clearly something specific to your setup here as we have mainnet nodes running for months, but I'm not really able to dig deeper here. Sorry.
Could you provide us all the logs (hiding the data you consider sensitive : IP , enode)? This may allow us to investigate
Do you have this kind of message in your logs AbstractRetryingPeerTask | Retrying after recoverable failure from peer task CompleteBlocksTask: Timeout after 5000 MILLISECONDS ?
Do you have this kind of message in your logs AbstractRetryingPeerTask | Retrying after recoverable failure from peer task CompleteBlocksTask: Timeout after 5000 MILLISECONDS ? (only available in DEBUG)
if you have this logs maybe you can try with this parameters `--Xsynchronizer-downloader-chain-segment-size=5
--Xsynchronizer-downloader-header-request-size=5` even if you don't have it can be interesting to test if it can help
if you have this logs maybe you can try with this parameters `--Xsynchronizer-downloader-chain-segment-size=5
--Xsynchronizer-downloader-header-request-size=5` even if you don't have it can be interesting to test if you are still loosing peers with this flags
hello matkt. TY. Don't recall seeing above message. Glad to send logs of sync. I assume your interested when web3.eth.syncing = false. Its running now will wait until stops in another 20 min or so.
well on second thought. Lets let it run for a few hours. Last night it ran all night adding zero blocks.
Why I ask this because one of the reasons that can cause the loss of peers is that you have timeouts (when you communicate with a peer) and the list of peers goes down to 0 after several timeouts . This may come from a connection issue. In general a good way to test if this is the problem is to increase the timeout or decrease the size of the data transmitted between peers "--Xsynchronizer-downloader-chain-segment-size = 1
-- Xsynchronizer-downloader-header-request-size=1". But if you don't have these messages this shouldn't be the reason
i understand. will look for these timeouts.
here is a bonding round timeout: 2021-06-11 08:42:48.370-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Bonding round timed out
2021-06-11 08:42:48.370-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Initiating neighbours round with 3 candidates from 570 tracked nodes
2021-06-11 08:42:48.399-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Received neighbours packet with 12 neighbours
2021-06-11 08:42:48.460-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Received neighbours packet with 12 neighbours
2021-06-11 08:42:48.487-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Received neighbours packet with 12 neighbours
2021-06-11 08:42:48.487-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Initiating bonding round with 7 candidates
2021-06-11 08:42:48.716-04:00 | nioEventLoopGroup-3-8 | DEBUG | HandshakeHandlerOutbound | Wrote initial crypto handshake message to /173.249.19.100:30303.
2021-06-11 08:42:48.832-04:00 | nioEventLoopGroup-3-8 | DEBUG | DeFramer | Peer disconnected before sending HELLO. Reason: 0x04 TOO_MANY_PEERS
2021-06-11 08:42:48.832-04:00 | nioEventLoopGroup-3-8 | DEBUG | RlpxAgent | Failed to connect to peer 0x396f982d84a858713c042b8c74d5f1627f4feccd509f70bc27bbd1cdd1bb0cbfb0540cf0411e3eaa06e1b7cd0c97347223a67749d7fe06a4e72d1cf844bf01dc: org.hyperledger.besu.ethereum.p2p.network.exceptions.PeerDisconnectedException: Peer disconnected for reason: 0x04 TOO_MANY_PEERS
2021-06-11 08:42:48.918-04:00 | nioEventLoopGroup-3-6 | DEBUG | HandshakeHandlerOutbound | Wrote initial crypto handshake message to /206.189.150.96:30303.
2021-06-11 08:42:49.152-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:42:49.265-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:42:49.886-04:00 | vert.x-eventloop-thread-5 | DEBUG | JsonRpcHttpService | Opened connection from 127.0.0.1:47440. Total of active connections: 1/80
2021-06-11 08:42:49.887-04:00 | vert.x-eventloop-thread-5 | DEBUG | B3PropagatorExtractorMultipleHeaders | Invalid TraceId in B3 header: null'. Returning INVALID span context.
2021-06-11 08:42:49.887-04:00 | vert.x-worker-thread-14 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eth_syncing
2021-06-11 08:42:50.019-04:00 | nioEventLoopGroup-3-5 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:42:50.245-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:42:50.272-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:42:50.543-04:00 | vert.x-eventloop-thread-5 | DEBUG | JsonRpcHttpService | Opened connection from 127.0.0.1:47442. Total of active connections: 2/80
2021-06-11 08:42:50.543-04:00 | vert.x-eventloop-thread-5 | DEBUG | B3PropagatorExtractorMultipleHeaders | Invalid TraceId in B3 header: null'. Returning INVALID span context.
2021-06-11 08:42:50.544-04:00 | vert.x-worker-thread-2 | DEBUG | JsonRpcHttpService | JSON-RPC request -> net_version
2021-06-11 08:42:50.550-04:00 | vert.x-eventloop-thread-5 | DEBUG | JsonRpcHttpService | Connection closed from 127.0.0.1:47442. Total of active connections: 1/80
2021-06-11 08:42:50.550-04:00 | vert.x-eventloop-thread-5 | DEBUG | JsonRpcHttpService | Opened connection from 127.0.0.1:47444. Total of active connections: 2/80
2021-06-11 08:42:50.550-04:00 | vert.x-eventloop-thread-5 | DEBUG | B3PropagatorExtractorMultipleHeaders | Invalid TraceId in B3 header: null'. Returning INVALID span context.
2021-06-11 08:42:50.550-04:00 | vert.x-worker-thread-10 | DEBUG | JsonRpcHttpService | JSON-RPC request -> net_version
2021-06-11 08:42:50.551-04:00 | vert.x-eventloop-thread-5 | DEBUG | JsonRpcHttpService | Connection closed from 127.0.0.1:47444. Total of active connections: 1/80
2021-06-11 08:42:50.716-04:00 | nioEventLoopGroup-3-9 | DEBUG | HandshakeHandlerOutbound | Wrote initial crypto handshake message to /116.202.51.160:30311.
2021-06-11 08:42:50.828-04:00 | nioEventLoopGroup-3-9 | DEBUG | DeFramer | Peer disconnected before sending HELLO. Reason: 0x04 TOO_MANY_PEERS
2021-06-11 08:42:50.828-04:00 | nioEventLoopGroup-3-9 | DEBUG | RlpxAgent | Failed to connect to peer 0x7682572e8995abf6573b6b8f4de2e91c7641d748484b00c4cda078a078c5b4ddd6279242ce6cf31781e93e6ad06e38bdf038689a08644eaa29021d17e5d5e17f: org.hyperledger.besu.ethereum.p2p.network.exceptions.PeerDisconnectedException: Peer disconnected for reason: 0x04 TOO_MANY_PEERS
2021-06-11 08:42:50.955-04:00 | nioEventLoopGroup-3-10 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:42:51.266-04:00 | ni
Neighbours round time out: 2021-06-11 08:42:58.490-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Neighbours round timed out
2021-06-11 08:42:58.490-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Initiating bonding round with 3 candidates
2021-06-11 08:42:58.515-04:00 | nioEventLoopGroup-3-4 | DEBUG | DeFramer | Received HELLO message: PeerInfo{version=5, clientId='Geth/v1.0.0-stable-db755430/linux-amd64/go1.15.1', capabilities=[eth/63, eth/64, eth/65], port=0, nodeId=0x443b227bcde9623fe9fd0de5ec04651f9cc9129e069b12fc137968c81537ad9befbeceae142d374efa9f696be7c90c175b4f630681447d23b0da67d4baf0648d}
2021-06-11 08:42:58.515-04:00 | nioEventLoopGroup-3-4 | DEBUG | RlpxAgent | Outbound connection established to peer: 0x443b227bcde9623fe9fd0de5ec04651f9cc9129e069b12fc137968c81537ad9befbeceae142d374efa9f696be7c90c175b4f630681447d23b0da67d4baf0648d
2021-06-11 08:42:58.515-04:00 | nioEventLoopGroup-3-4 | DEBUG | EthProtocolManager | Sending status message to Peer 0x443b227bcde9623fe9....
2021-06-11 08:42:58.688-04:00 | nioEventLoopGroup-3-4 | DEBUG | EthProtocolManager | Peer 0x443b227bcde9623fe9... has mismatched network id: 128
2021-06-11 08:42:58.688-04:00 | nioEventLoopGroup-3-4 | DEBUG | EthProtocolManager | Disconnect - Outbound - 0x10 SUBPROTOCOL_TRIGGERED - PeerInfo{version=5, clientId='Geth/v1.0.0-stable-db755430/linux-amd64/go1.15.1', capabilities=[eth/63, eth/64, eth/65], port=0, nodeId=0x443b227bcde9623fe9fd0de5ec04651f9cc9129e069b12fc137968c81537ad9befbeceae142d374efa9f696be7c90c175b4f630681447d23b0da67d4baf0648d} - 22 peers left
2021-06-11 08:42:59.268-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:43:00.268-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:43:00.736-04:00 | nioEventLoopGroup-3-5 | DEBUG | HandshakeHandlerOutbound | Wrote initial crypto handshake message to /159.100.246.191:30303.
2021-06-11 08:43:00.870-04:00 | nioEventLoopGroup-3-5 | DEBUG | DeFramer | Peer disconnected before sending HELLO. Reason: 0x04 TOO_MANY_PEERS
2021-06-11 08:43:00.870-04:00 | nioEventLoopGroup-3-5 | DEBUG | RlpxAgent | Failed to connect to peer 0x47523b8907c70997f1e5eaa210729ab86b4f0bea5cfe97c4cef3c58038f358a5a81d43bea7a8fcc11bd7914c7915bbcc23a421800e4e9f16be38c8a91394c4bb: org.hyperledger.besu.ethereum.p2p.network.exceptions.PeerDisconnectedException: Peer disconnected for reason: 0x04 TOO_MANY_PEERS
2021-06-11 08:43:00.896-04:00 | nioEventLoopGroup-3-6 | DEBUG | HandshakeHandlerOutbound | Wrote initial crypto handshake message to /211.75.159.144:30311.
2021-06-11 08:43:01.096-04:00 | nioEventLoopGroup-3-6 | DEBUG | DeFramer | Received HELLO message: PeerInfo{version=5, clientId='Geth/v1.9.12-stable-b6f1c8dc/linux-amd64/go1.13.8', capabilities=[eth/63, eth/64, eth/65], port=0, nodeId=0x88561c1ab5f107c356c77a6e4a6c76c04fdb9636da997b8857ff80a94f823e95be2b3f942389d948fb94818ad107da8d2062327d2e86b7d0c1a0c78a8e29e0ad}
2021-06-11 08:43:01.096-04:00 | nioEventLoopGroup-3-6 | DEBUG | RlpxAgent | Outbound connection established to peer: 0x88561c1ab5f107c356c77a6e4a6c76c04fdb9636da997b8857ff80a94f823e95be2b3f942389d948fb94818ad107da8d2062327d2e86b7d0c1a0c78a8e29e0ad
2021-06-11 08:43:01.096-04:00 | nioEventLoopGroup-3-6 | DEBUG | EthProtocolManager | Sending status message to Peer 0x88561c1ab5f107c356....
2021-06-11 08:43:01.268-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:43:01.305-04:00 | nioEventLoopGroup-3-6 | DEBUG | EthProtocolManager | Disconnect - Inbound - 0x10 SUBPROTOCOL_TRIGGERED - PeerInfo{version=5, clientId='Geth/v1.9.12-stable-b6f1c8dc/linux-amd64/go1.13.8', capabilities=[eth/63, eth/64, eth/65], port=0, nodeId=0x88561c1ab5f107c356c77a6e4a6c76c04fdb9636da997b8857ff80a94f823e95be2b3f942389d948fb94818ad107da8d2062327d2e86b7d0c1a0c78a8e29e0ad} - 22 peers left
2021-06-11 08:43:01.333-04:00 | nioEventLoopGroup-3-3 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:43:02.283-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:43:03.283-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 08:43:03.491-04:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Bonding round timed out
No it's not the timeout I'm looking for. let's wait and see if you have any other messages
k
Besu synced from 7:30 to 8:30am then no blocks all day. Here are a few logs:
2021-06-11 17:07:08.778-04:00 | EthScheduler-Services-2 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 1400000 world state nodes. At least 13489142 nodes remaining.
2021-06-11 17:07:09.179-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:09.414-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:09.440-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:10.040-04:00 | nioEventLoopGroup-3-7 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:10.334-04:00 | nioEventLoopGroup-3-1 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:10.413-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:10.490-04:00 | nioEventLoopGroup-3-9 | DEBUG | WireKeepAlive | Idle connection detected, sending Wire PING to peer.
2021-06-11 17:07:10.492-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:10.660-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PONG
2021-06-11 17:07:11.243-04:00 | vert.x-eventloop-thread-1 | DEBUG | VertxPeerDiscoveryAgent | Discarding invalid peer discovery packet: Malformed packet of type: PING
2021-06-11 17:07:11.413-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:12.415-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:12.463-04:00 | nioEventLoopGroup-3-5 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:12.668-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:13.409-04:00 | nioEventLoopGroup-3-3 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:13.413-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:13.569-04:00 | nioEventLoopGroup-3-10 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:14.094-04:00 | nioEventLoopGroup-3-9 | DEBUG | WireKeepAlive | Idle connection detected, sending Wire PING to peer.
2021-06-11 17:07:14.103-04:00 | nioEventLoopGroup-3-8 | DEBUG | WireKeepAlive | Idle connection detected, sending Wire PING to peer.
2021-06-11 17:07:14.105-04:00 | nioEventLoopGroup-3-8 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:14.141-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:14.141-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PONG
2021-06-11 17:07:14.210-04:00 | nioEventLoopGroup-3-8 | DEBUG | ApiHandler | Received Wire PONG
2021-06-11 17:07:14.284-04:00 | nioEventLoopGroup-3-8 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:14.415-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:14.757-04:00 | nioEventLoopGroup-3-3 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:14.839-04:00 | ni
2021-06-11 17:07:24.180-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:24.284-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.66:38918 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:24.285-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:24.285-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.66:33543 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:24.285-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:24.423-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:24.444-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:25.063-04:00 | nioEventLoopGroup-3-7 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:25.339-04:00 | nioEventLoopGroup-3-1 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:25.422-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:25.491-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:26.288-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.66:47505 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:26.288-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:26.288-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.66:49046 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:26.288-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:26.424-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:26.576-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.120:52544 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:26.576-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:27.424-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:27.500-04:00 | nioEventLoopGroup-3-5 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:27.578-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.120:52544 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:27.578-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:27.890-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:28.280-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.66:42301 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:28.280-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:28.280-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.66:38343 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:28.280-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:28.409-04:00 | nioEventLoopGroup-3-3 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:28.425-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:28.568-04:00 | nioEventLoopGroup-3-10 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:28.579-04:00 | jupnp-2 | DEBUG | MulticastReceiver | UDP datagram received from: 192.168.1.120:52544 on local interface: eno1 and address: 192.168.1.239
2021-06-11 17:07:28.579-04:00 | jupnp-2 | DEBUG | Router | Received asynchronous message: (IncomingDatagramMessage) M-SEARCH
2021-06-11 17:07:37.957-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 384 node data entries from peer Peer 0x5a02fbaad2b0f58272....
2021-06-11 17:07:37.958-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 146 node data entries from peer Peer 0x4dc4c753511548ae85....
2021-06-11 17:07:37.989-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x5b19536bef29e0bc4c....
2021-06-11 17:07:38.136-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x1a8e61fe928755537a....
2021-06-11 17:07:38.229-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x3f9fdac4b1963c863c....
2021-06-11 17:07:38.300-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x4ac7a279cf0787a92a....
2021-06-11 17:07:38.316-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x5c1afffa934d99d635....
2021-06-11 17:07:38.357-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x264d342b7c734e907a....
2021-06-11 17:07:38.428-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:38.465-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:38.503-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0xf2ec77366a50b19acd....
2021-06-11 17:07:38.553-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x1a5dd165d196646d60....
2021-06-11 17:07:38.560-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x691419988b6b8832e1....
2021-06-11 17:07:38.584-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0xce6cc07f00a73150bc....
2021-06-11 17:07:38.603-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x81b6f41d93cf7b9292....
2021-06-11 17:07:38.645-04:00 | nioEventLoopGroup-3-10 | DEBUG | WireKeepAlive | Idle connection detected, sending Wire PING to peer.
2021-06-11 17:07:38.646-04:00 | nioEventLoopGroup-3-10 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:39.084-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 5 node data entries from peer Peer 0xcc39f01de41da1470c....
2021-06-11 17:07:39.092-04:00 | nioEventLoopGroup-3-10 | DEBUG | ApiHandler | Received Wire PONG
2021-06-11 17:07:39.126-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x9ac6cc04580881f70a....
2021-06-11 17:07:39.140-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 1 node data entries from peer Peer 0x07556de1553ff62529....
2021-06-11 17:07:39.181-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:39.212-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 2 node data entries from peer Peer 0x4e8ec21181917158ce....
2021-06-11 17:07:39.428-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:39.558-04:00 | EthScheduler-Services-5 (batchDownloadData) | DEBUG | GetNodeDataFromPeerTask | Requesting 10 node data entries from peer Peer 0x544e2349d783d6db81....
2021-06-11 17:07:39.572-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:39.678-04:00 | Timer-0 | DEBUG | SimpleResolver | Sending all.mainnet.ethdisco.net./TXT, id=27093 to tcp/10.46.0.1:53
2021-06-11 17:07:39.682-04:00 | Timer-0 | DEBUG | DNSResolver | ENR tree root seq enrtree-root:v1 e=2NO7WNEOACPPRAKSTICHTGCE7M l=FDXN3SN67NA5DKA4J2GOK7BVQI seq=2261 sig=QrJt6s0AD1IuEUGT_efp8oaRLjwj-L5D-lV4P8Zqsbo3_nIrYHwuI8tYSRtM9yO5DhQ2dA04ly0U2NekPJjIhgE=.seq is not higher than 2261, aborting
Warnings: 2021-06-11 17:07:42.662-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PONG
2021-06-11 17:07:42.668-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:42.891-04:00 | nioEventLoopGroup-3-9 | WARN | ChannelInitializer | Failed to initialize a channel. Closing: [id: 0x47820538]
org.hyperledger.besu.plugin.services.securitymodule.SecurityModuleException: Unexpected error while calculating ECDH Key Agreement: Invalid point coordinates
at org.hyperledger.besu.crypto.KeyPairSecurityModule.calculateECDHKeyAgreement(KeyPairSecurityModule.java:79)
at org.hyperledger.besu.crypto.NodeKey.calculateECDHKeyAgreement(NodeKey.java:44)
at org.hyperledger.besu.ethereum.p2p.rlpx.handshake.ecies.ECIESHandshaker.firstMessage(ECIESHandshaker.java:132)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.HandshakeHandlerOutbound.
These are warnings: 2021-06-11 17:07:42.662-04:00 | nioEventLoopGroup-3-4 | DEBUG | ApiHandler | Received Wire PONG
2021-06-11 17:07:42.668-04:00 | nioEventLoopGroup-3-9 | DEBUG | ApiHandler | Received Wire PING
2021-06-11 17:07:42.891-04:00 | nioEventLoopGroup-3-9 | WARN | ChannelInitializer | Failed to initialize a channel. Closing: [id: 0x47820538]
org.hyperledger.besu.plugin.services.securitymodule.SecurityModuleException: Unexpected error while calculating ECDH Key Agreement: Invalid point coordinates
at org.hyperledger.besu.crypto.KeyPairSecurityModule.calculateECDHKeyAgreement(KeyPairSecurityModule.java:79)
at org.hyperledger.besu.crypto.NodeKey.calculateECDHKeyAgreement(NodeKey.java:44)
at org.hyperledger.besu.ethereum.p2p.rlpx.handshake.ecies.ECIESHandshaker.firstMessage(ECIESHandshaker.java:132)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.HandshakeHandlerOutbound.
Caused by: java.lang.IllegalArgumentException: Invalid point coordinates
at org.bouncycastle.math.ec.ECCurve.validatePoint(ECCurve.java:125)
at org.bouncycastle.math.ec.ECCurve.decodePoint(ECCurve.java:420)
at org.hyperledger.besu.crypto.SECPPublicKey.asEcPoint(SECPPublicKey.java:96)
at org.hyperledger.besu.crypto.AbstractSECP256.publicKeyAsEcPoint(AbstractSECP256.java:174)
at org.hyperledger.besu.crypto.NodeKey.lambda$calculateECDHKeyAgreement$0(NodeKey.java:45)
at org.hyperledger.besu.crypto.KeyPairSecurityModule.calculateECDHKeyAgreement(KeyPairSecurityModule.java:73)
... 23 more
2021-06-11 17:07:42.893-04:00 | nioEventLoopGroup-3-3 | DEBUG | RlpxAgent | Failed to connect to peer 0x86b6798ac5c26199d427979c20ee2dd8ac73dede22d610da0af4ee0293c4ec84375737317a7b2ed4552f92144981490fbf0223b6f394d4fc1dae8425dceb3fbb: io.netty.channel.StacklessClosedChannelException
2021-06-11 17:07:42.893-04:00 | nioEventLoopGroup-3-3 | DEBUG | RlpxAgent | Failed to connect to peer 0xc59dba19a3fb904564f319efc279a682b70617eafa56b5b3eee14069981f75b7030ef92c2ca52823d66a59c044ef3694c17624ebca306d9a79acb5bcdf55eda2: io.netty.channel.StacklessClosedChannelException
2021-06-11 17:07:42.893-04:00 | nioEventLoopGroup-3-4 | WARN | ChannelInitializer | Failed to initialize a channel. Closing: [id: 0xe4f480ba]
org.hyperledger.besu.plugin.services.securitymodule.SecurityModuleException: Unexpected error while calculating ECDH Key Agreement: Invalid point coordinates
at org.hyperledger.besu.crypto.KeyPairSecurityModule.calculateECDHKeyAgreement(KeyPairSecurityModule.java:79)
at org.hyperledger.besu.crypto.NodeKey.calculateECDHKeyAgreement(NodeKey.java:44)
at org.hyperledger.besu.ethereum.p2p.rlpx.handshake.ecies.ECIESHandshaker.firstMessage(ECIESHandshaker.java:132)
at org.hyperledger.besu.ethereum.p2p.rlpx.connections.netty.HandshakeHandlerOutbound.
thank you very much.. I saw that but I wanted to accelerate, I think that the quorum dev should provide clear instructions on how to use own private keys, provide ssl certificate and sync external nodes under the ibft2 consensus.
Clipboard - June 12, 2021 12:38 PM
Thanx, I executed this example in my network and I got the above error.
how can set --rpc-http-api?
Clipboard - June 12, 2021 12:40 PM
the chain id in my genesis is 2018. must I change chain id from 1337 in keys.js to 2018?
I use private key by which the transactions are signed. is it corret?
for this part
Clipboard - June 12, 2021 1:24 PM
Chain download complete but its not complete then starts downloading nodes rather than blocks. 2021-06-11 21:45:37.403-04:00 | EthScheduler-Services-22 (importBlock) | INFO | PipelineChainDownloader | Chain download complete
2021-06-11 21:56:14.837-04:00 | EthScheduler-Services-2 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 100000 world state nodes. At least 1496551 nodes remaining.
2021-06-11 22:04:06.995-04:00 | jupnp-1190 | WARN | RetrieveRemoteDescriptors | Service descriptor retrieval failed: http://192.168.1.64:8060/dial/ecp_SCPD.xml, 404 Not Found
2021-06-11 22:04:07.003-04:00 | jupnp-1190 | WARN | RetrieveRemoteDescriptors | Service descriptor retrieval failed: http://192.168.1.64:8060/dial/dial_SCPD.xml, 404 Not Found
2021-06-11 22:04:07.004-04:00 | jupnp-1190 | WARN | RetrieveRemoteDescriptors | Device service description failed: (RemoteDevice) Identity: (RemoteDeviceIdentity) UDN: uuid:296c0004-6004-10ac-8055-7880382a63d7, Descriptor: http://192.168.1.64:8060/dial/dd.xml, Root: true
2021-06-11 22:25:50.804-04:00 | EthScheduler-Services-2 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 200000 world state nodes. At least 2996128 nodes remaining.
Hi, I'm using fast sync mode syncing besu for 1 day. It's downloading state nodes and the pending state nodes are varying. The number of blocks behind is increasing. Why is it not syncing the blocks? And is there a max limit to the state nodes it has to download?
Which network? For mainnet 3 days is not unexpected, possibly mode depending on how fast your storage is. While fast syncing the blocks behind will increase because the fast sync pivot block is fixed. Once the fast sync completes the blocks behind will decrease as it catches up.
Ah ok. It's on mainnet yes. Storage is a nvme m2. I'll let it sync then. Thanks for ur repsonse
local or AWS? For AWS the more IOPS the better.
I haven't watched a fast sync in a while, but I expect the state nodes to be in the 700MM range, maybe more. The ConsenSys devs should be able to quote a number from the last two weeks.
@macfarla
I think I have set it correctly
Clipboard - June 13, 2021 9:04 AM
these are my besu privacy nodes and their ralated orion nodes
Clipboard - June 13, 2021 9:34 AM
I used my orion public key instead of tessera public key
I'm just testing based on this doc:
https://besu.hyperledger.org/en/21.1.6/Tutorials/Privacy/web3js-eea-Multinode-example/
but I get this error:
Clipboard - June 13, 2021 10:34 AM
I have change chain id in keys.js from 1337 to 2018(my chain id)
I have changed chain id in keys.js from 1337 to 2018(my chain id)
in my privacy node web3 is enabled for rpc and ws
Clipboard - June 13, 2021 10:35 AM
what's wrong in my configuration?
Clipboard - June 13, 2021 10:38 AM
Has joined the channel.
Hello Team
I am working on one POC. My project is on private network .we found the 3 node are provide by besu kit and they are syc with each other . but when i try too connect with different node it's not sycn . please guide me how to sync and also need help to increase the block time or difficulty level.i don't understand i had more than 2 Cr. block in span of 4 months and don't know how to stop it form increasing.
I have found the problem:
The rpc-http-api method PRIV was not set on config.toml of privacy nodes. Now I don't get the previous error:
rpc-http-api=["DEBUG","ETH", "ADMIN", "WEB3", "IBFT", "NET", "EEA", "PRIV"]
rpc-ws-api=["DEBUG","ETH", "ADMIN", "WEB3", "IBFT", "NET", "EEA", "PRIV"]
My new issue is that the transaction is got stuck in mining and I get this error:
image
I have found the problem:
The rpc-http-api method PRIV was not set on config.toml of privacy nodes. Now I don't get the previous error:
rpc-http-api=["DEBUG","ETH", "ADMIN", "WEB3", "IBFT", "NET", "EEA", "PRIV"]
rpc-ws-api=["DEBUG","ETH", "ADMIN", "WEB3", "IBFT", "NET", "EEA", "PRIV"]
My new issue is that the transaction is got stuck in mining and I get this error:
Clipboard - June 13, 2021 3:13 PM
the problem has been resolved
https://github.com/ConsenSys/web3js-eea/issues/164
Has joined the channel.
glad you found the issue with the privacy mode
Was your other problem solved by setting min-gas-price=0 ?
Exploring privacy with the web3js-eea examples is a good place to start https://github.com/ConsenSys/web3js-eea
You could do this with your own custom permissioning solution. There is no built-in way to do this.
good to hear!
Did you get your setup to work with the above?
Re events the consumer can query or subscribe to events. You're right in that if your node is offline it could miss events (but in this case you would lose your subscription and have to reconnect, so you would know) but sending a query will give the complete history.
yes. the problem is resolved
yes. exactly. but I don't know why?
Just upgraded to 21.1.7 from 21.1.5. But there is no sync. What can be wrong with the network? Here is the log file
2021-06-14 14:30:52.525+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:30:52.525+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:30:57.526+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:30:57.526+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:02.527+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:02.527+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:07.528+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:07.528+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:12.446+08:00 | vert.x-eventloop-thread-1 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2021-06-14 14:31:12.447+08:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Start peer search.
2021-06-14 14:31:12.447+08:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2021-06-14 14:31:12.447+08:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
2021-06-14 14:31:12.528+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:12.528+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:17.529+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:17.529+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:22.529+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:22.529+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:27.530+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:27.530+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:32.531+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:32.531+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:37.532+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:37.532+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:42.448+08:00 | vert.x-eventloop-thread-1 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2021-06-14 14:31:42.449+08:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Start peer search.
2021-06-14 14:31:42.449+08:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2021-06-14 14:31:42.449+08:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 0 peers processed over 1 rounds.
2021-06-14 14:31:42.533+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:42.533+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:47.533+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:47.533+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:52.534+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:52.534+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
2021-06-14 14:31:57.535+08:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
2021-06-14 14:31:57.535+08:00 | EthScheduler-Timer-0 | DEBUG | WaitForPeerTask | Waiting for new peer connection. 0 peers currently connected.
you need to wait for the end of this step before the node starts downloading the new blocks
Hi @chileanguy, thanks for the feedback. The quickstart is really only for private network demonstration and testing purposes, follow-on information about using your own private keys, SSL/TLS and connecting to other nodes is contained elsewhere in the docs.
e.g.https://besu.hyperledger.org/en/stable/HowTo/Configure/Configure-TLS/
Hi @chileanguy, thanks for the feedback. The quickstart is really only for private network demonstration and testing purposes, follow-on information about using your own private keys, SSL/TLS and connecting to other nodes is contained elsewhere in the docs.
e.g. https://besu.hyperledger.org/en/stable/HowTo/Configure/Configure-TLS/
please let us know if you have a question that isn't clear or covered in the documentation!
this page walks you through all the files which you need to configure when starting Besu or a Besu network https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
I believe it's because private marker transactions are sent at 0 gas price, but I will check this for you
Hey, if you wouldn't mind threading your long posts that would be super useful!
In this case it looks like you don't have any peers - how many are you expecting? Are they all running as far as you're aware?
this is something I'm interested to understand more about - what kinds of things are you looking for in a demo solution for privacy?
hello, could you share your logs and config files? Information on configuring block time is here https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#block-time although difficulty is not relevant in the case of proof-of-authority
Blocks will continue to be produced even without transactions in IBFT
Blocks will continue to be produced even without transactions in IBFT though we're looking into some possible options for this
Do I need to do something extra (like enable some flags when starting besu nodes) in order to subscribe to events? I am getting a connection timeout when I try to subscribe to an event.
Code snippet looks like:
```
EthFilter ethFilter = new EthFilter(DefaultBlockParameterName.EARLIEST, DefaultBlockParameterName.LATEST, contract.getContractAddress());
ethFilter.addSingleTopic(EventEncoder.encode(TransactionDemo3Contract.TRANSFERREQUEST_EVENT));
node.privLogFlowable(privacyGroupId, ethFilter)
.map((eventLog) -> {
final EventValues eventValues = Contract.staticExtractEventParameters(TransactionDemo3Contract.TRANSFERREQUEST_EVENT, eventLog);
TransferRequestEventResponse response = new TransferRequestEventResponse();
response.log = eventLog;
response.id = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
response.amount = (BigInteger) eventValues.getNonIndexedValues().get(1).getValue();
response.sender = (String) eventValues.getNonIndexedValues().get(2).getValue();
response.receiver = (String) eventValues.getNonIndexedValues().get(3).getValue();
return response;
})
.doOnError(Throwable::printStackTrace)
.subscribe(r -> {
contract.confirmTransfer(r.id).send();
System.out.println("Transfer completed.");
});
```
Code snippet looks like:
```
EthFilter ethFilter = new EthFilter(DefaultBlockParameterName.EARLIEST, DefaultBlockParameterName.LATEST, contract.getContractAddress());
ethFilter.addSingleTopic(EventEncoder.encode(TransactionDemo3Contract.TRANSFERREQUEST_EVENT));
node.privLogFlowable(privacyGroupId, ethFilter)
.map((eventLog) -> {
final EventValues eventValues = Contract.staticExtractEventParameters(TransactionDemo3Contract.TRANSFERREQUEST_EVENT, eventLog);
TransferRequestEventResponse response = new TransferRequestEventResponse();
response.log = eventLog;
response.id = (BigInteger) eventValues.getNonIndexedValues().get(0).getValue();
return response;
})
.doOnError(Throwable::printStackTrace)
.subscribe(r -> {
contract.confirmTransfer(r.id).send();
System.out.println("Transfer completed.");
});
```
@VijayMichalik, this is 4 nodes network and shall have 3 peers. I just check the log and they all synced up. It seems that it took sometime for all 4 nodes get synced. Usually how long it takes for 4 nodes network to be synced?
I think so, But it needs more investigation as you mention.
What I need was exactly provided in this example.
But I'm also looking for a DAPP like pet shop example and a scenario based on this DAPPto examine privacy.
What I need was exactly provided in this example.
But I'm also looking for a DAPP like pet shop example and a scenario based on this DAPP to examine privacy.
What I was looking for 1st demo was a smart contract that shows privacy in besu private network, for example we have 3 besu nodes and we only want only node 1 and node 2 be aware of transaction payload and this is what I exactly need.
I am using the besu quick start guide and I start the nodes like:
```
besu --data-path=data --genesis-file=../genesis.json --rpc-http-enabled --rpc-http-api=ETH,NET,IBFT,WEB3,EEA,PRIV,PERM --host-allowlist="*" --rpc-http-cors-origins="all" --min-gas-price=0 --privacy-enabled --privacy-url=http://127.0.0.1:8888 --privacy-public-key-file=Orion/nodeKey.pub
```
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance.
I also installed the required driver using this link - `https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver`. And it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```.
What should I do?
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance.
I also installed the required driver using this link - `https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver`. And it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```.
What should I do or what am I doing wrong?
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance.
I also installed the required driver using this link - `https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver`. And it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```.
What should I do or what am I doing wrong?
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance.
I also installed the required driver using this link - `https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver`. And it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```
What should I do or what am I doing wrong?
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance with Ubuntu 20.
I also installed the required driver using this link - `https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver`. And it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```
What should I do or what am I doing wrong?
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance with Ubuntu 20.
I also installed the required driver using this link - https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver. And it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```
What should I do or what am I doing wrong?
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance with Ubuntu 20.
I also installed the required driver using this link - https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driverAnd it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```
What should I do or what am I doing wrong?
I want to use a GPU for a PoW network. For this I'm using AWS `g4dn.xlarge` instance with Ubuntu 20.
I also installed the required driver using this link - https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver
And it's installed properly.
Now, when I'm starting the node using the following command, it's not mining -
```
tiluf/bin/tiluf --config-file=config.toml --node-private-key-file=network-files/node/keys/key --miner-enabled --miner-stratum-enabled --miner-coinbase=627306090abaB3A6e1400e9345bC60c78a8BEf57 --rpc-http-enabled=true --rpc-ws-enabled=true
```
What should I do or what am I doing wrong?
Clipboard - June 16, 2021 11:38 AM
Clipboard - June 16, 2021 11:39 AM
Clipboard - June 16, 2021 11:39 AM
Clipboard - June 16, 2021 11:39 AM
So, I got a AWS `G4dn` instance, that has `NVIDIA T4 Tensor Core` GPUs.
I installed the GRID driver using this guide -
https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver
But the mining is not happening.
Should I install the `Gaming driver` or install `Ethminer`? Will this work and would there by anything to do after this?
So, I got a AWS `G4dn` instance with Ubuntu 20 OS and has `NVIDIA T4 Tensor Core` GPUs.
I installed the GRID driver using this guide -
https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver
But the mining is not happening.
Should I install the `Gaming driver` or install `Ethminer`? Will this work and would there by anything to do after this?
So, I got a AWS `G4dn` instance with Ubuntu 20 OS and has `NVIDIA T4 Tensor Core` GPUs.
I installed the GRID driver using this guide -
https://docs.amazonaws.cn/en_us/AWSEC2/latest/UserGuide/install-nvidia-driver.html#nvidia-GRID-driver
But the mining is not happening.
Should I install the `Gaming driver` instead or install `Ethminer`? Will this work and would there by anything to do after this?
Any thoughts or ideas regarding this would be really helpful.
I think that the GPU mining is not well described in the documentation. It only says how it was tested, but not how we can use it. It arises the question whether we need to do it the way it's tested or not.
https://besu.hyperledger.org/en/stable/HowTo/Configure/Conafigure-Mining/#configure-gpu-mining
Should there not be something like this - https://github.com/hyperledger/besu/blob/c8ad41945ed1f59abbe3fc23cf52b312492ba774/GPU-MINING.md
Has joined the channel.
Hi guys.. how to run caliper on besu? I'm have a error: Worker [1] encountered an error during prepare test phase for round 0: Error: You must provide the json interface of the contract when instantiating a contract object.
Clipboard - 16 de Junho de 2021 às 20:24
Has joined the channel.
Hello every one, I start private hyperledger besu (v21.1.7) and try to call to smart contract with remix it got rpc error but on web3.js or ethers.js call from nodeJS nothing error. I use remix to deploy my contract too. My besu use config same as Tutorials.
Error {
"jsonrpc": "2.0",
"id": 897754889,
"error": {
"code": -32602,
"message": "Invalid params"
}
}
Has joined the channel.
Hello All,
Can someone please highlight me major differences between Sawtooth and Besu?
Also mention which kind of project are these platforms used for.
Yep, understood - we're looking into building this but a general PSA that we'd love contributions on this too!
PSA: The EEA are looking for companies to help describe use cases that require privacy https://entethalliance.github.io/client-spec/usecases.html if you would like to contribute to it, let me know!
https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Sign-Privacy-Marker-Transactions/ has the answers I was looking for
Hey, do anyone know if there a way to limit GPU(Nvidia Tesla T4) hashrate? I'm using Ethminer.
Has joined the channel.
invalid params indicates that something is incorrect or missing in your rpc request. Check carefully - sometimes it can be hard to spot! or provide your rpc here for public review :)
If you want to use websockets you need to enable that separately but over http nothing extra is required. Does everything else work - is it just the subscribe() bit that times out?
For private Logs, you need to use the priv equivalent methods https://besu.hyperledger.org/en/stable/HowTo/Interact/Filters/Accessing-Logs-Using-JSON-RPC/#filters-for-private-contracts
Well using Ethminer and starting it with pointing to the RPC URL of the node worked.
```
./ethminer -U --cu-block-size 32 --cu-grid-size 1 --cu-streams 1 -M 1
```
Using the above command I successfully decreased the hash rate.
From the original 25 MH/s, it limited to a min. of 220 KH/s.
Has joined the channel.
Hello everyone!
I found this page on the interwebs: https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/RPC-PubSub/
And it contains something amazing:
```
{"id": 1, "method": "eth_subscribe", "params": ["newPendingTransactions", {"includeTransactions":false}]}
```
It's that `includeTransactions` toggle.
It's a terrible omission from the websocket provider I'm using to inspect realtime swaps on PanCakeSwap.
Is it possible to use your tech for a PanCakeSwap feed?
i.e. on BSC blockchain...
I'm very new to this, so I'm aware this may be a dumb question.
I can't see if your technology is providing an alternative way to interact with an existing Ethereum-based blockchain, or if you're making a CUSTOM blockchain that supports such streams.
Besu is a fully Ethereum compatible client but also allows to create private chains. If the chain you want to connect to follows Ethereum specs, it will work.
Wow!
What are the moves I need to make?
Is there a wss endpoint I can use?
Do I have to pay a subscription fee?
What are the moves I need to make?
Is there a wss endpoint I can use?
Do I have to pay a subscription fee?
Hyperledger Besu is totally free and it's open source (Apache 2.0 lisence) so feel free to do whatever you want with it ;)
Sorry, just realized it's better to reply in-thread
Can you help me find my feet here?
What do I need to setup?
Is there a wss URL I can conect to?
Not wanting to help-vampire, but most grateful if you can help me align focus.
Or do I have to create my own local node?
Or do there exist providers?
You have to run the node first. Have a look at the tutorials on the doc you already found. Then connect to the websocket endpoint provided by the node you will run.
Are you aware of any node providers, that would save me having to run my own node?
For Ethereum mainnet and testnets yes, you have https://infura.io/ for instance.
I can't tell for other networks using Ethereum technology that are not official mainnet and testneta.
I'm using QuikNode to stream PanCakeSwap swaps realtime.
But it doesn't support that `includeTransactions` flag.
I suspect Infura won't either, it's do makes no mention of it.
How come Besu is providing this?
It seems to offer a superset of the standard Etherrum websockets I see everywhere.
I'd need to find a provider running Besu nodes for BSC chain.
And Infura doesn't support BSC chain, I don't think...
For some reason I can't use Infura to do what I want.
includeTransaction is part of the JSON-RPC Pub/Sub spec https://geth.ethereum.org/docs/rpc/pubsub so it should be included in all clients and api providers.
I already tried:
```
await self.streamer.send(
json.dumps({
'id': WS_BSC.ID_PENDING_TX,
'method': 'eth_subscribe',
'params': [
'newPendingTransactions',
{
'includeTransactions': True
}
]
})
)
```
But it has no effect
I already tried:
```
await self.streamer.send(
json.dumps({
'id': WS_BSC.ID_PENDING_TX,
'method': 'eth_subscribe',
'params': [
'newPendingTransactions',
{
'includeTransactions': True
}
]
})
)
```
But it has no effect
You are right, maybe it's not implemented on all clients. I see some conversations about this in https://github.com/ethereum/go-ethereum/issues/15804
By 'client' do you mean wss-provider?
Or would this be generic to all PanCakeSwap wss providers?
Ah yes, I found that issue yesterday.
The best I can do is monitor logs:
```
'jsonrpc': '2.0',
'id': WS_BSC.ID_LOGS,
'method': 'eth_subscribe',
'params': [
'logs', {
'address': [ self.pair_token, ],
'topics': [ HASH_FOR_SWAP, ] # HASH_FOR_SYNC
}
]
})
```
I don't even know was a pancakesawp provider is, it's application level and I'm not working on this, but only at L1 protocol level. I can only tell you that Besu as an Ethereum client probably implement this option. Then you can use it to connect to an Ethereum network. Sorry, that's all I know.
I'm probably using the wrong words. Trying to fit a lot of new technology into an old brain.
Thanks so much for your help!
No worries, I hope you will fond what you are looking for.
Has joined the channel.
Has joined the channel.
Hi all,
We are using Hyperledger Besu (1.5.5) in out project and we tried to specify configuration file via `BESU_CONFIG_FILE` environment variable, but to no avail.
Specifying same file via command line parameter (`--config-file`) works well.
Does anyone had same issue?
Judging by the code, `BESU_CONFIG_FILE` env variable is not taken into consideration when parsing at all.
https://github.com/hyperledger/besu/blob/1.5.5/besu/src/main/java/org/hyperledger/besu/cli/util/ConfigOptionSearchAndRunHandler.java#L64
But it should be, if I read the docs.
https://besu.hyperledger.org/en/1.5.5/Reference/CLI/CLI-Syntax/#config-file
Am I doing something wrong?
Created issue https://github.com/hyperledger/besu/issues/2455
When I load a private smart contract in web3j via `SmartContract.load()` method supplying the node and its private transaction manager, won't the `msg.sender` (for later interactions with the contract) have the address of node that I supplied initially in the load() method?
I am using web3j library (and have a smart contract named Contract) and was wondering whether the node supplied to the `Contract.deploy()` method should match the `msg.sender`? I understand that the msg.sender resembles the caller of the contract but in web3j, I deploy passing the node and then load the contract by passing the same node. So, I assumed the `msg.sender` should be the same as the node that I passed. But it doesn't look it. Can anyone pl tell me what I am missing here?
Also, how do you get the address of the node using web3j? Is the `getAddress()` method in `Credentials` the right way?
I am using web3j library (and have a smart contract named Contract) and was wondering whether the node supplied to the `Contract.deploy()` method should match the `msg.sender`? I understand that the msg.sender resembles the caller of the contract but in web3j, I deploy passing the node and then load the contract by passing the same node. So, I assumed the `msg.sender` should be the same as the node that I passed. But it doesn't look like it. Can anyone pl tell me what I am missing here?
Also, how do you get the address of the node using web3j? Is the `getAddress()` method in `Credentials` the right way?
Hi, you may have more chances asking on Web3j community https://community.web3labs.com/c/web3j/6
Thanks Nicolas. I didn't know about this. Last I saw was a bitter chat which wasn't very active.
I hope this new community is as active as this besu channel.
Thanks Nicolas. I didn't know about this. Last I saw was a gitter chat which wasn't very active.
I hope this new community is as active as this besu channel.
Join our Besu contributor call today @ 6pm PST!
*Here's the updated Wiki*
https://wiki.hyperledger.org/display/BESU/2021-06-21+Besu+Contributor+Call
We're going to cover:
- QBFT Update
- PKI Update
- London Hard Fork + Besu Release Update
Does anyone have anything to add?
I remember to read that Besu support the action of blacklist some smart contracts. Where can I read more about it? Is it a governance to support that?
I remember reading that Besu supports the action of blacklist some smart contracts. Where can I read more about it? Is it governance to support that?
I believe this information is wrong. Let me know if you found this info in our offical documentation so we can make it clearer.
Hi All, there is requirement for Besu corporate training for 4 weeks India time zone. Its customer requirement ,here anybody can provide corporate training on Hyperledger Besu ? Please DM me.
Has joined the channel.
Hey, Guys, please help me out, i'm stuck on an issue where,
I want to run a besu node on rinkeby testnet using docker.
I'm entering up this command as mentioned in the official doc
`sudo docker run -p 30303:30303 --mount type=bind,source=/home/ubuntu/rinkbeyvol/besu/rinkeby,target=/var/lib/besu \
hyperledger/besu:latest \
--network=rinkeby \
--data-path=/var/lib/besu`
On running this, I'm getting this error
Clipboard - June 22, 2021 3:24 PM
crispcosine
3:24 PM
Hey, Guys, please help me out, i'm stuck on an issue where,
I want to run a besu node on rinkeby testnet using docker.
I'm entering up this command as mentioned in the official doc
`sudo docker run -p 30303:30303 --mount type=bind,source=/home/ubuntu/rinkbeyvol/besu/rinkeby,target=/var/lib/besu \
hyperledger/besu:latest \
--network=rinkeby \
--data-path=/var/lib/besu`
On running this, I'm getting this error
Clipboard - June 22, 2021 3:25 PM
Please someone help me resolve it
Clipboard - 22 de Junho de 2021 às 11:03
I was looking where I saw that. It was in the presentation.
I understand that I can code the permissioning contract to keep a CRUD of blacklist contracts and check for that. But I imagined there was a native support for that.
Has joined the channel.
What happens when one machine needs to change the IP in a Besu network?
I imagined that:
- All institutions need to review firewall rules
- It is necessary to update the permissioning config
Condering that the IP is part of the e-node, is there any impact on the nodes peers? I imagined that they automatically connect with the new enode and ignore the old one. Is it the case?
What happens when one machine needs to change the IP in a Besu network?
I imagined that:
- All institutions need to review firewall rules
- It is necessary to update the permissioning config
Considering that the IP is part of the e-node, is there any impact on the nodes peers? I imagined that they automatically connect with the new enode and ignore the old one. Is it the case?
Ah I'm sorry. Now I understand what you meant with your question.
With account permissioning, you can have rules around what addresses (EOA or contracts) are allowed to perform some actions.
The rules are implemented in smart contracts, so they can be customized.
Our standard implementation does the opposite, a whitelist of addresses allowed to create transactions.
Here is the link to the docs page: https://besu.hyperledger.org/en/latest/Concepts/Permissioning/Onchain-Permissioning/
And here is where you can find our reference implementation of the permissioning smart contract: https://github.com/ConsenSys/permissioning-smart-contracts
Let me know if you have more questions!
Has joined the channel.
I had a problem creating a private transaction.
Clipboard - 2021年6月23日下午2点34分
Here's the code I ran:
Clipboard - 2021年6月23日下午2点36分
Great, thank you, @lucassaldanha
Hi all. I have deployed a besu private network. I would like to enable the revert reason flag inside config.toml. May i know is it possible to edit this config file after the network is started?
Hi guys, I deployed a besu private network. I am wondering how do you guys handle smart contract revert reason? My use case is to log down the reason of a failed transaction e.g. you are not the owner, not enough token balance.... It seems that the offical document said that it is not recommend to set the revert-reason flag to true due to memory issue. https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#revert-reason-enabled . I found a way to handle it (https://blog.8bitzen.com/posts/12-12-2019-hyperledger-besu-web3j-where-is-my-revert-reason), i would like to know is it the only and the best way to handle the revert reason from smart contract?
If using discovery, the nodes should find each other. If using static nodes, you would have to update the static nodes file.
Hi does the Blockchain Automation Framework Besu clique consensus available yet
Hi is the Blockchain Automation Framework Besu clique consensus available yet??
Has joined the channel.
hello guys, is there any example of Besu with tessera TLS enabled? I have checked the Besu-kubernetes repo and the examples are only without TLS.
there is no other way to handle the revert reasons as far as I know. this is for me the best solution
If one VALIDATOR needs to change the IP in a Besu network and
- there is no static nodes
- the private/public key/node account is not changed
What need to be done? I imagined that I need to regenerate the e-node using the new IP.
Since the validator account is not going to change, I imagined that there is no need to start a voting session, right?
Hi All, are there any bug reporting programs for Besu Ethereum client?
For normal issues there is GithubIssues - https://github.com/hyperledger/besu/issues
For issues with a security impact here's the protocol - https://github.com/hyperledger/besu/blob/master/SECURITY.md
I don't think anyone has a bug bounty that has Besu in scope.
For normal issues there is Github Issues - https://github.com/hyperledger/besu/issues
For issues with a security impact here's the protocol - https://github.com/hyperledger/besu/blob/master/SECURITY.md
I don't think anyone has a bug bounty that has Besu in scope.
Can you share the besu config you're using?
Are you talking IBFT2?
Hi guys, did anyone have set a persistent volume on private besu network on kubernetes? I encounter some problem on it. Below are some screenshots.
Clipboard - June 28, 2021 2:41 PM
Clipboard - June 28, 2021 2:42 PM
It seems to be fixed by adding securitycontext magically, but dunno what has happened lol https://github.com/prometheus-operator/prometheus-operator/issues/541
Hi @raychan11111, I'll defer to someone with expertise in this to look deeper for you, but have you tried following our the templates here https://github.com/ConsenSys/quorum-kubernetes?
Hi @raychan11111, I'll defer to someone with expertise in this to look deeper for you, but have you tried following the templates here? https://github.com/ConsenSys/quorum-kubernetes
nevermind, figured it out. Let me know if anyone else needs to understand it.
Because adding the securitycontext correctly updated the user which is running the container and that user now has access to the volume which was mounted at /data
Yes
@VijayMichalik Yes my kubernetes cluster use their templates. @sownak Thanks The problem is solved. I can use the pv for my cluster
Hello, I'm setting up a private network, using RocksDB as the key-value storage.
Right now, RocksDB is creating a lot of log files. Is there any way I can configure their "DBOptions", namely the "keep_log_file_num" parameter?
If your ip address changes then your enode address will also change. Any node connected to the old node will loose the peer connection when the ip changes, this might take awhile though. Node discovery will also the new node to added as peer again with the new ip to the existing nodes.
IBFT2 only considers the address derived from the node account or public key in determining which nodes are validators. It doesn't care about the enode or ip address. So if the node key hasn't changed then IBFT2 will treat node with new ip same as the old node as far as being a validator. There is no need to vote in the new validator if the ip address has changed.
For IBFT2 to function correctly it is important that the old peer is not still a peer for the other validator nodes after the ip changes and that the new nodes have a new peer connection with your validator with the new ip. The reason for this is that we will gossip IBFT2 messages to the peers that match validator addresses and if there is more than one peer with the same validator address we will choose the first one, which might not be node you expect. You can use the https://besu.hyperledger.org/en/latest/Reference/API-Methods/#admin_peers to see what peers the nodes have.
If your ip address changes then your enode address will also change. Any node connected to the old node will loose the peer connection when the ip changes, this might take awhile though. Node discovery will also add the new node as peer again with the new ip for the existing nodes.
IBFT2 only considers the address derived from the node account or public key in determining which nodes are validators. It doesn't care about the enode or ip address. So if the node key hasn't changed then IBFT2 will treat node with new ip same as the old node as far as being a validator. There is no need to vote in the new validator if the ip address has changed.
For IBFT2 to function correctly it is important that the old peer is not still a peer for the other validator nodes after the ip changes and that the new nodes have a new peer connection with your validator with the new ip. The reason for this is that we will gossip IBFT2 messages to the peers that match validator addresses and if there is more than one peer with the same validator address we will choose the first one, which might not be node you expect. You can use the https://besu.hyperledger.org/en/latest/Reference/API-Methods/#admin_peers to see what peers the nodes have.
If your ip address changes then your enode address will also change. Any node connected to the old node will loose the peer connection when the ip changes, this might take awhile though. Node discovery will also add the new node as peer again with the new ip for the existing nodes.
IBFT2 only considers the address derived from the node account or public key in determining which nodes are validators. It doesn't care about the enode or ip address. So if the node key hasn't changed then IBFT2 will treat node with new ip same as the old node as far as being a validator. There is no need to vote in the validator again if the ip address has changed.
For IBFT2 to function correctly it is important that the old peer is not still a peer for the other validator nodes after the ip changes and that the new nodes have a new peer connection with your validator with the new ip. The reason for this is that we will gossip IBFT2 messages to the peers that match validator addresses and if there is more than one peer with the same validator address we will choose the first one, which might not be node you expect. You can use the https://besu.hyperledger.org/en/latest/Reference/API-Methods/#admin_peers to see what peers the nodes have.
Copying from a previous answer here:
That's the write-ahead-log, so you shouldn't delete them, RocksDB should delete them when they are merged in. Generally speaking deleting or editing anything in .../database could cause data corruption.
Let me know how you get on with the rest of your setup, always interested in feedback!
always interested in feedback! was the documentation unclear? do you have any other suggestions?
There are no examples for TLS (besu-kubernetes only has examples of TLS OFF). Incidentally, I found more details in one of your open issues https://github.com/hyperledger/besu/issues/2045
ah yes, you're absolutely right. we have some docs improvements in progress over here, hopefully they'll get looked at soon: https://github.com/ConsenSys/doc.tessera/issues/88
Has joined the channel.
Has joined the channel.
Has joined the channel.
Screenshot from 2021-07-03 07-40-15.png
Has joined the channel.
Hi All, I would like to retrieve transactions for an address during period of time. I was told that the transactions need to be indexed first Is there any example or document for such type of application? Many thanks.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi all, I have a kubernetes private network. I am trying to add validator.
I ssh to the node, go inside the besu docker container, install curl, then run curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_proposeValidatorVote","params":["0xf9d1b75f43193fc237b6f0a09167ef9407fc1c82", true], "id":1}' http://jsonrpc.besu.svc.cluster.local:8545 to propose adding a validator
I repeated the above steps for all 4 validators which are separated in different nodes and docker containers.
But, it seems that the proposed validator is not added when i run curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' http://jsonrpc.besu.svc.cluster.local:8545 which just returns the original 4 validators.
add validatorproblem2.PNG
I am wondering did i do something wrong? Is there any way to debug this problem?
Has joined the channel.
Has joined the channel.
Can we get Enterprise Support for Hyperledger Besu and its RocksDB
Can we use any other Enterprise DB instead of RocksDB for Hyperledger Besu
[ ](https://chat.hyperledger.org/channel/besu?msg=Kiu7ZncRWqFgM7E6u) You can write a plugin to wire it up to whatever db you want. e.g https://github.com/abdelhamidbakhta/besu-storage-redis it's just a key value store. I guess it depends why you want to use something else.
Hey there! I was following the quickstart tutorial and I found out the docker-compose file is broken. I create a question on StackOverflow. Can someone help me?
https://stackoverflow.com/q/68235488/11411571
Has joined the channel.
Thanks Natalie! I'll get someone to check this out for you- not sure we've seen this issue before. What sort of machine are you running on?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
I've got a same problem. I use macOs(catalina).
Has joined the channel.
hello,
I have deployed yesterday a besu node with the version 21.7.0-RC2 with syncing mode FAST and the network is MAINNET but since yesterday the node is stuck at this error
2021-07-05 16:54:48.447+00:00 | Timer-0 | ERROR | Besu | Uncaught exception in thread "Timer-0"
java.nio.channels.ClosedChannelException
at java.base/java.nio.channels.spi.AbstractSelectableChannel.register(Unknown Source)
at org.xbill.DNS.NioTcpClient.processPendingRegistrations(NioTcpClient.java:42)
at java.base/java.util.concurrent.CopyOnWriteArrayList.forEach(Unknown Source)
at org.xbill.DNS.Client.runSelector(Client.java:68)
at java.base/java.lang.Thread.run(Unknown Source)
Could someone help pliz it's urgent and i must resolved ASAP.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hey @yujinpark are you using an M1 Mac by any chance?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
no I'm using intel chip. and Catalina 10.15.7
i fixed the problem, using quorum-dev-quickstart@0.0.27.
Has joined the channel.
Hi, please could you tell me on what environment launched you besu and with what parameters
Has joined the channel.
how do I read the log file created by besu code ?
thanks yeah, we found the problem and resolved it in the latest version!
https://github.com/ConsenSys/quorum-dev-quickstart/pull/82 for reference
Hi @mkm 14, we recommend use of Elastic Stack (ELK) https://besu.hyperledger.org/en/stable/HowTo/Monitor/Elastic-Stack/
https://markets.businessinsider.com/currencies/news/ethereum-upgrade-ether-eth-destory-coins-eip1559-eth2-developers-2021-7 - is this code available for download ?
Yes, it's the current main branch. A formal release (v21.7.0) is happening later this week or next.
but I do not see that change on latest besu code I have which is "version=21.7.0-SNAPSHOT"
The flag was flipped here: https://github.com/hyperledger/besu/pull/2504
Has joined the channel.
hello
Quick question, so I installed Dev quick-start & I can't seem to send any transactions via the web 3 wallet.
and idea on why my transactions aren't going through?
Im connected to localhost properly; the transaction stalls at pending.
in was lunched on Preprod with :
- network : ropsten
- deployed from backup
- version : 21.7.0-RC2
- sync-mode="FAST"
- rpc-http-host="0.0.0.0"
- rpc-http-enabled=true
- data-path="/var/lib/besu"
quorum-test-network_—_-zsh_—_152×39_and_Besu_Overview_-_Grafana.png
I am trying to implement some logic for burning coins for transfer. I am trying to understand the in-built logic for this. can you point me to the correct place ? I am running besu
is the log written anywhere on a file? Where do I parametrize this ?
1559 only burns eth. It doesn't burn tokens. And it only burns it per the basefee as part of the transaction fees. And by burns the deducted amounts "burnt" are not sent to the miner. So I'm not sure what you are looking for. @matkt and @abdelhamidbakhta are the experts on that section of code.
Has joined the channel.
nvm, I got it. Thanks
I deployed a besu network with gasprice:0 in the truffle-config.js file. when the user make a transfer thru metamask, will there be any gas fee charged?
Has joined the channel.
Has joined the channel.
hi, you also need to configure the genesis.json as in this documentation https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/
let us know if you run into issues
Hey, which version are you using?
MetaMask Version
9.7.1
Thanks. Actually we did not deploy using truffle. Deployed a besu privte network using https://besu.hyperledger.org/en/1.3.0/Tutorials/Private-Network/Create-Private-Network/ and use --min-gas-price=0 in the command line. Is that enough to keep the gas price to zero in all cases ? What happens if a user adds gas price greater than zero while doing a transfer thru metamask ? will the gas fee still be zero ?
sorry! I mean which version of the quorum developer quickstart. also what operating system and docker version are you using? thanks!
ok yeah, I believe the user must also ensure gas price is 0 in their transaction. I'll confirm this one
Has joined the channel.
Hi everyone, how many transactions per second can a PoA/Clique Besu network achieve?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Topology is the main limiter at the moment. 300tps has been done with caliper with 4 signers and 1 large RPC node with IBFT2. RPC and test harness overhead was the bottleneck (No need to query every receipt individally 1s after completion).
I expect lower numbers with clique because of the non-deterministic setup.
I expect lower numbers with clique because of the non-deterministic protocol and lack of finalization.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
@matkt , is this basefee configurable thru genesis file ? can you please point me to documentation/example ?
Has joined the channel.
Has joined the channel.
@shemnon , can you show me an example how to set this base fee ?
Has joined the channel.
You don't set the basefee. It floats as a function of the block size.
I see a param "baseFeePerGas" in GenesisConfigFile.java . so I assumed it is a configurable thru genesid file
I see a param "baseFeePerGas" in GenesisConfigFile.java . so I assumed it is a configurable thru genesis file
if not, can you get me the documentation on this ?
@shemnon , Is there any documentation on how this base fee is implemented ?
@VijayMichalik , do you know whether I can add a base fee in genesis file like "baseFeePerGas":"2", ?
https://eips.ethereum.org/EIPS/eip-1559
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
let me look into this
:wave: Just want to say welcome to all the recent new joiners in this channel! We are excited to have you here! We're here to answer questions you have. Feel free to check out our contributor guide or check out good first issues on Besu. :besu:
https://wiki.hyperledger.org/display/BESU/How+to+Contribute
https://github.com/hyperledger/besu/labels/good%20first%20issue
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has left the channel.
Has joined the channel.
@shemnon , Cant we set an an initial base fee?. If yes, I would like to know how
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
it looks like if you add a non-zero gasPrice in the metamask, it charges a gasFee.
Does anyone know how to test new 1599 ETH burn? does it be triggered if I do a transfer between accounts ? Can I add a base fee in genesis file like "baseFeePerGas":"2", ?
yep, I think the requirement is still there for the user to correctly specify 0 gas in their transaction
Has joined the channel.
Has joined the channel.
Hi Team, How can i see rocksdb .sst files contents? I tried with sst_dump tool. But not able to see the payloads. Any suggestions ?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
How to deploy DAML smart contract on Besu?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi any more information on which transaction was used for this test? How much gas did the tx use?
Hi, anyone here that can help with creating a qbft network with both quorum and besu nodes on it?
Has joined the channel.
Has joined the channel.
This repo using caliper: https://github.com/ConsenSys/quorum-benchmarks with mostly this contract one run for register one run for verify - https://github.com/ConsenSys/quorum-benchmarks/blob/main/besu/terraform/aws/ibftScale/files/caliperProject/src/besu/covid/CovidCredentialRegistry.sol
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Thanks for the info!
Can caliper hit different RPC nodes to simulate typical blockchain network usage? Or would one need to put a load balancer before multiple RPC nodes to be able to do that?
Caliper supports that, although we didn't configure it for that test. Add more RPC nodes and more caliper workers and point each worker to a different node. Once the bottleneck becomes block production you've scaled rpc enough.
Block production being the bottleneck will manifest as block time increasing.
Welcome new chat members! You can find our documentation here https://besu.hyperledger.org/en/stable/ and our updated roadmap here https://wiki.hyperledger.org/display/BESU/Roadmap
@VijayMichalik, is there any documentation available on how to set up the base fee?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
if you want to 'test drive' 1559, I would suggest setting up a local besu clique network with a london fork block in the genesis file. If you do not specify an initial base fee, it will default to 1 gwei
here is an example genesis I have been using for a local clique testnet, with the london transition block set to block 10:
https://gist.github.com/garyschulte/fab7ff07cfcff78eefdf3f1b1b75ee94
Has joined the channel.
Has joined the channel.
Has joined the channel.
This won't be possible until the 21.7.0 release of quorum that has qbft support. You get started with a Besu qbft network though using Besu qbft docs https://besu.hyperledger.org/en/latest/HowTo/Configure/Consensus-Protocols/QBFT/
Has joined the channel.
Has joined the channel.
Is the Private Network Example current? A warning is reported in start-up of one of the besu nodes and the blockchain does not appear to generate any blocks.
The example is here: https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
The error message is: {"timestamp":"2021-07-23T07:04:22,084","container":"87fe09767ea2","level":"WARN","thread":"main","class":"Besu","message":"--min-gas-price ignored because none of --miner-enabled or isQuorum (in genesis file) was defined.","throwable":""}
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello all, how to clean besu database? that is to wipe out all the data and start from clean again.
[ ](https://chat.hyperledger.org/channel/besu?msg=efg2XRc5CeiCzk2cw) The not generating blocks was my fault: a networking issue on my laptop. The misleading error message has been reported as an issue: https://github.com/hyperledger/besu/issues/2579
Has joined the channel.
hey you can use this flag to set a initial baseFee -Xeip1559-initial-base-fee
hey sorry for the delay you can use this flag to set a initial baseFee -Xeip1559-initial-base-fee
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi @jframe. I was on vacation and that is why I took so long to than you for the so complete answer! Great!!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
What is the updating frequency of the node discovery? I mean if a new node enter in the network or if a old node is removed, how long does it take to this info start to be spread?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi everyone!
I'm experimenting a bit with BESU and I'm encountering an issue when trying to follow the "deploy smart contract" guide (https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Deploying-Contracts/).
When sending the transaction with `sendSignedTransaction`, the following error is raised:
`var err = new Error('Returned error: ' + message);
^
Error: Returned error: Wrong chainId`
I've searched where that `chainId` could/should be specified and tried to add it within the Tx, unsuccessfully so far.
Interesting point though, when deploying the contract with Truffle it seems to work well.
Did anyone experience a similar issue and could help me with it?
Thanks in advance :)
Hi everyone!
I'm experimenting a bit with BESU and I'm encountering an issue when trying to follow the "deploy smart contract" guide (https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Deploying-Contracts/).
When sending the transaction with `sendSignedTransaction`, the following error is raised:
`Error: Returned error: Wrong chainId`
I've searched where that `chainId` could/should be specified and tried to add it within the Tx, unsuccessfully so far.
Interesting point though, when deploying the contract with Truffle it seems to work well.
Did anyone experience a similar issue and could help me with it?
Thanks in advance :)
Hi everyone!
I'm experimenting a bit with BESU and I'm encountering an issue when trying to follow the "deploy smart contract" guide (https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Deploying-Contracts/).
When sending the transaction containing the contract to deploy with `sendSignedTransaction`, the following error is raised:
`Error: Returned error: Wrong chainId`
I've searched where that `chainId` could/should be specified and tried to add it within the Tx, unsuccessfully so far.
Interesting point though, when deploying the contract with Truffle it seems to work well.
Did anyone experience a similar issue and could help me with it?
Thanks in advance :)
ChainId is set when signing the transaction. It is the sigining library that set it. Look in the log for `Invalid transaction` and it should tell you what the proper chainid should be and what the provided chainid was.
Yep I actually figured that out and started reading through @ethereumjs/tx package as ethereumjs-tx mentioned in Besu's guide seems deprecated 😅
At this stage I can specify my chainId within the transaction signature process like:`const common = Common.custom({ chainId: 1337 });`
`const tx = new Tx(rawTxOptions, { common });`
Yep I actually figured that out and started reading through @ethereumjs/tx package as ethereumjs-tx mentioned in Besu's guide seems deprecated 😅
At this stage I can specify my chainId within the transaction signature process like:
`const common = Common.custom({ chainId: 1337 });`
`const tx = new Tx(rawTxOptions, { common });`
`tx.sign(Buffer.from(account.privateKey.substring(2), "hex"));`
`...``
Yep I actually figured that out and started reading through @ethereumjs/tx package as ethereumjs-tx mentioned in Besu's guide seems deprecated 😅
At this stage I can specify my chainId within the transaction signature process like:
`const common = Common.custom({ chainId: 1337 });`
`const tx = new Tx(rawTxOptions, { common });`
`tx.sign(Buffer.from(account.privateKey.substring(2), "hex"));`
`...`
I'm know facing an Internal Error of the JSON-RPC API that I'm trying to resolve: `Error processing JSON-RPC requestBody - java.lang.RuntimeException: An unsupported encoded `v` value of 0 was found`
I'm know facing an Internal Error of the JSON-RPC API that I'm trying to resolve: `Error processing JSON-RPC requestBody - java.lang.RuntimeException: An unsupported encoded 'v' value of 0 was found`
Definitely related to the request body that's created by @ethereumjs/tx
EthreumJS is outside of my body of knowledge. I don't know where they have chat rooms or email
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hallo following the Quorum quick start tutorial. However my machine cannot run all the nodes at the same time. How can I start one node at a time ?
you need to run all nodes to achieve consensus. You cannot just run one node at a time.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi when trying to launch the dev quickstart I got thi error : yaml.composer.ComposerError: found undefined alias 'docker-logging' in "./docker-compose.yml", line 302. Does anyine know what could be the reason of this error ?
Question here: Step 1. Create a private network using the IBFT 2.0 consensus protocol.
Am a little lost trying to deploy my smart contract using Web3js-quorum following this tutorial: https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Deploying-Contracts/ So I create a file named compile.js, save the first code block on that page then run npm compile.js . Where do I save the second code block starting with const web3 = new Web3(host); ? I cannot see the connection between the se 2 'files' ?
Am a little lost trying to deploy my smart contract using Web3js-quorum following this tutorial: https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Deploying-Contracts/ So I create a file named compile.js, save the first code block on that page then run npm compile.js . Where do I save the second code block starting with const web3 = new Web3(host); ? I cannot see the connection between these 2 'files' and web3js-quorum ?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello everyone, I do ask to you, reader of this question a bit of patience, but I need your help and knwoledge.
Here It is my simple question, I need to update the configuration of the cliqueGenesis.json (changeing the blockperiodSeconds, from 15 to 3) in my Hyperledger Besu BlockChain (private and gas free).
My BlockChain is already up and running with few block in it, so to make use of those new configurations should I delete everything (blocks, nodes, vloumes etc...) and start rebuilding all over again? Or simply update the file and restart???
Thank for the help :D :)
same story here... I used Hyperledger Fabric for a while (just for studying purposes), on Fabric if I had the need to do it I used to simply stop and erase all the containers and running the new images... but didn't have any transaction on. Do not know in this case what should be the proper thing to do...
Thanks @AlessandraC I don't know if It is the same procedure here on Besu, but I whould like to be sure before delete evrything and not beacuse I don't want to, but beacuse i would like to know what is the correct path to follow in this scenario.
Thanks @AlessandraC I don't know if It is the same procedure here on Besu, but I whould like to be sure before delete evrything and not beacuse I don't want to, but because i would like to know what is the correct path to follow in this scenario.
Has joined the channel.
Has joined the channel.
Has joined the channel.
some genesis file changes require you to do this - if so you would get this error when restarting https://besu.hyperledger.org/en/stable/HowTo/Troubleshoot/Troubleshooting/#supplied-genesis-block-does-not-match-stored-chain-data
That change for clique block period though - I think you can change that without having to delete everything.
Thanks for raising this @NgugsJohn - that tutorial is missing some info. I've raised a docs ticket to update it. https://github.com/hyperledger/besu-docs/issues/760
As for your questions: 1. you can save the second code block as a new .js file and name it anything you like eg deploy.js and run it the same way as the first `node deploy.js`
2. the first few examples on that page (public contract deployment) don't use web3js-quorum, that's only required for private contracts https://besu.hyperledger.org/en/latest/Tutorials/Contracts/Deploying-Contracts/#using-eea_sendrawtransaction-for-private-contracts
Also note that we are in a period of transition from web3js-eea (deprecated) to web3js-quorum. So some of the examples in the docs still point to web3js-eea - but advise using web3js-quorum if you're starting out.
I believe this is fixed in the latest version of the quickstart >= 0.0.26. - can you update and try again?
Has joined the channel.
Has joined the channel.
Has joined the channel.
someone please help me
I am getting this error on windows 10 and the command I am using is "./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-javascript/ -ccl javascript" and the error I am getting is :
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image inspection failed: cannot connect to Docker endpoint Chaincode installation on peer0.org1 has failed Deploying chaincode failed
Docker version 20.10.7, build f0df350 docker-compose version 1.29.2, build 5becea4c
I am new to hyledger-fabric
Has joined the channel.
Has joined the channel.
Has joined the channel.
Try #fabric-questions, this room is for Hyplerledger Besu.
Hey guys, recent mainnet transactions through besu are flagged as private txs?
https://github.com/hyperledger/besu/commit/fa2d53859c45c26e40a9265092308bcdba5b7b8f#diff-8f3af0f8da1b352c31d41501c14cf92a66947bc3dc2a2f0d617c1691c380c70fR500
ECDSA (r,s,v) ; shouldn't v == 37 or 38 for regular mainnet txs are defined here? https://eips.ethereum.org/EIPS/eip-155
( v = CHAIN_ID * 2 + 35 or v = CHAIN_ID * 2 + 36 )
Has joined the channel.
Note; 21.1.7 version was working fine
Has joined the channel.
Hi. Am trying to understand the concept of private transactions in Besu. When you send a private transaction is it directed to a specific user identified with a public key or a node eg besu1 ?
Hi. Am trying to understand the concept of private transactions in Besu. When you send a private transaction is it directed to a specific user identified with a public key or a node eg besu1 ? Similarly is a public transaction visible to the open world like cryptocurrency transactions ?
Has joined the channel.
The `besu`, `besu-docs`, and `besu-native` repos have all flipped from using the `master` branch as the default branch to using the `main` branch as the default branch. To keep up with these changes
(a) rename the default branch in your forked repositories to `main`. Github will provide reminders when you navigate to your repos.
(b) update your working copies to use `main`. This script will work for remotes named `origin`
```
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a
```
If you have a homebrew installation simply run `brew tap --repair`
Has joined the channel.
Hi! I suggest your read the documentation about how private transactions work in Besu. It should help you understand how to use them.
To answer your questions:
1. To send a private tx, you define a list of ids that correspond to other participants. This list is set on the `privateFor` field. These IDs are public keys corresponding to the participants' Tessera nodes.
2. A public tx is visible to any node in the network. If you network is public, everyone has access to the public tx. If you network is private, all nodes connected to the network will have access to the txs.
I forgot to post the link to the docs: https://besu.hyperledger.org/en/latest/Concepts/Privacy/Privacy-Overview/
Thanks for raising this. We will take a look at it.
Can you elaborate on how you observed this breakage? Was it on mainnet, a private tx? Was it using a running instance or using the code as a library?
Has joined the channel.
When a new node enters a network, it should be discovered immediately assuming UDP is working even close to correctly. UDP isn't a guarantee though, but in reality this always works. Leaving is a little different- if a peer hasn't heard from another peer in 12 hours it will check on it to see if it is there. If it doesn't respond, it's dropped as a peer.
You can read more about it here: https://github.com/ethereum/devp2p/blob/master/discv4.md
and if you're feeling ambitious, I found this paper very useful:
https://joshm.web.engr.illinois.edu/imc18_ethereum.pdf
This error message has been changed to make it clearer https://github.com/hyperledger/besu/pull/2582
@drinkcoffee I believe you resolved this issue, right?
Hi @BrunoMartins3 thanks for raising this. We've raised a PR which should be merged shortly https://github.com/hyperledger/besu/pull/2609 and a release will be forthcoming.
More details in this issue https://github.com/hyperledger/besu/issues/2606
It looks like it probably does. I use Besu via the Docker container. I will be able to see the change once it is in the "latest" container .
Has joined the channel.
Has joined the channel.
Has joined the channel.
ok
Has joined the channel.
Since Besu keeps private key in plain text, we need to be very concerned about "perimeter security". In a paid version of Besu, is it possible to not using the private key as plain text but only cryptographic file?
Also, if we delete the file containing the plain text key, will the node work with this info only in memory? I mean, is the file necessary only to start the node or during its operation too?
FYI, late yesterday we discovered a defect in besu which affected value transfer transactions. It isn't a consensus critical bug, but we are highly recommending folks to upgrade to 21.7.2 to fix this issue that is present in the prior 21.7.x release line:
https://github.com/hyperledger/besu/issues/2606
https://github.com/hyperledger/besu/releases/tag/21.7.2
this needs to be heavily qualified. You are referring to this option, correct? https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#node-private-key-file
This file stores the node private key which is used to identify the node on the network. This identity is not important on mainnet and public networks, but has special importance in private networks.
There is no such thing as a paid version of Besu. Hyperledger Besu is an open source project trademarked by the Hyperledger Foundation, a commercial product would be named differently and would require you to address the vendor. Just clarifying this bit.
The file is read at startup and can be unmounted, discarded afterwards.
Now on to your actual concerns:
* Ideally, you'd store the file in an encrypted volume. If you'd like the file itself to be encrypted and unlocked via a password, then we didn't achieve enough since the password needs to be provided.
* It could be possible to provide the private key via an env var that can then be provided as a secret. If this interests you, I recommend you file an issue on the repository asking for this functionality.
I'm not familiar with this CLI flag but it might address your concerns nicely: https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#security-module
Has joined the channel.
ok let us know if you have any further problems!
Has joined the channel.
Hello @NgugsJohn the first section shows you how to compile a solidity contract - in this case the contract is https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/common/smart_contracts/contracts/SimpleStorage.sol and to compile that contract we use https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/common/smart_contracts/scripts/compile.js. The part that is in the docs is a simplifed version of the compile.js file above ^
Hello @NgugsJohn thanks for raising that :) The first section shows you how to compile a solidity contract - in this case the contract is https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/common/smart_contracts/contracts/SimpleStorage.sol and to compile that contract we use https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/common/smart_contracts/scripts/compile.js. The part that is in the docs is a simplifed version of the compile.js file above ^
Once you have your compiled artifacts you use the ABI and the bytecode of the compile step (which we've precompiled and saved here https://github.com/ConsenSys/quorum-dev-quickstart/tree/master/files/common/smart_contracts/contracts ) and then deploy that as a transaction which is the second section of code. An example of this is https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/smart_contracts/scripts/public_tx.js
All of the examples and snippets in this section have the code, contracts etc in the quickstart in the smart_contracts folder
All of the examples and snippets in this section have the code, contracts etc in the quickstart in the smart_contracts folder. As @macfarla has mentioned above they use web3eea atm and we're transitioning to web3js-quorum and we'll update both soon!
Has joined the channel.
Has joined the channel.
Has joined the channel.
hello, i want to sync besu with ropsten network in fast sync mode and starting from x block number is possible ?
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#sync-mode
for sync mode fast i found the command but not for starting sync in X block number
anyone can help me with this question ?
Has joined the channel.
Has joined the channel.
Hi everyone. I want to ask about TPS in besu. Right now I am using a genesis file with blockperiodseconds is 2. And when I try to send transaction using loopback explorer API, it will give response every 2 seconds. Does this related because it wait (asynchronously) for the block to be created? I wonder how to make the TPS go higher.
In that case, my questions are :
1. How do I config number of transactions per block?
2. How do I config the transaction to be submitted synchronously?
3. Is there any drawback with what I'm approaching above?
Thank you!
maybe @shemnon can help with this ?
Has joined the channel.
We don't have flags to set the pivot block for fast sync outside of what the protocol settles on.
hm... ok maybe i will try GETH with light mode
thank you
number of transactions per block should be determined mainly by block Gas Limit. We've tested Besu with gasLimit=20e6 and blockTime=2s - Besu processed 952 tx per block without any problem (txs were sent by web3.js)
Is eth_gasPrice meant to be returning a constant value block after block?
Great @JfloConsensys, thanks
@atoulme, first thank you very much for your answer.
Yes, I was refering to the private key file and I am really creating a permissioned network. This is the node key and is used in IBFT and in our metatransactions.
I knew Besu is a Hyperledger project. I was trying to refer to other paid version of Besu. Isn't Pagasys offering a premium solution with some additional features?
The file is read at startup and can be unmounted, discarded afterwards. -- I didn't know this. Thank you for clarifying.
I actually looked at this CLI flag some time ago. I was told that I need to set up a security module to deal with that and it does not seem a simple thing to implement. That is actually I asked if there is a paid version including this.
Has joined the channel.
Has joined the channel.
Has joined the channel.
That would be a good question for the PegaSys/ConsenSys folks. @grace.hartley is a good resource to start that conversation, please understand that is separate from this open source project.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
What explorer do you use for Besu?
I see Alethio Lite Explorer is the only explorer mentioned in Besu documentation.
We've tried Blockscout, which added Besu support app. one year ago https://github.com/blockscout/blockscout/pull/3154. Unfortunately, there were no Besu-related changes to Blockscout since then and we are facing some issues when connecting Blockscout to the up-to-date version of Besu. A communication with the Blockscout team is a far cry from what we need for our production purposes.
What explorer do you use for Besu?
I see Alethio Lite Explorer is the only explorer mentioned in Besu documentation.
We've tried Blockscout, which added Besu support app. one year ago https://github.com/blockscout/blockscout/pull/3154. Unfortunately, there were no Besu-related changes to Blockscout since then and we are facing some issues when connecting Blockscout to the up-to-date version of Besu. Communication with the Blockscout team is a far cry from what we need for our production purposes.
Has joined the channel.
Ethereum Classic has worked a lot with BlockScout. @atoulme can probably point you to whoever stood up their explorers.
Hi, I believe the value can vary.
https://besu.hyperledger.org/en/latest/Reference/API-Methods/#eth_gasprice
hey, there was another block explorer that was mentioned https://www.quicknode.com/guides/infrastructure/how-to-run-expedition-block-explorer
Has joined the channel.
thank you for the infromation. It seems to me it could help Besu a lot, if Blockscout would be kept compatible with Besu.
Has joined the channel.
Hey @jlochman, are there missing features or bugs when using the Alethio light explorer?
If you could write a github issue with the problems you're seeing using Blockscout too, I'd be interested to take a look!
were there any missing features or bugs when trying to use the lite explorer?
We were thinking to use offchain privacy groups extensively and were wondering if there would be any scalability issues with it. Any documentation or research done on this topic?
For example, let's say we have 1000+ besu nodes and we create 2^1000 privacy groups (i.e., for all combinations). Would this be a problem?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, got this error suddenly from besu, does anyone know where this error might come from? Im running version 21.7.1
```
besu[1577959]: 2021-08-11 09:39:42.585+02:00 | Timer-0 | ERROR | Besu | Uncaught exception in thread "Timer-0"
besu[1577959]: java.net.SocketTimeoutException
besu[1577959]: at org.xbill.DNS.Resolver.send(Resolver.java:157)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.resolveRecordRaw(DNSResolver.kt:149)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.resolveRecord(DNSResolver.kt:72)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.internalVisit(DNSResolver.kt:166)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.internalVisit(DNSResolver.kt:175)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.internalVisit(DNSResolver.kt:175)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.internalVisit(DNSResolver.kt:175)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.visitTree(DNSResolver.kt:129)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.visitTree(DNSResolver.kt:105)
besu[1577959]: at org.apache.tuweni.discovery.DNSResolver.collectAll(DNSResolver.kt:94)
besu[1577959]: at org.apache.tuweni.discovery.DNSTimerTask.run(DNSDaemon.kt:70)
besu[1577959]: at java.base/java.util.TimerThread.mainLoop(Timer.java:556)
besu[1577959]: at java.base/java.util.TimerThread.run(Timer.java:506)
```
Restarted the service and it's importing blocks again.
I've opened a github issue several days ago
https://github.com/blockscout/blockscout/issues/4474
lite explorer - do you mean Alethio? I've tried this explorer months ago but compared to Blockscout, it offers very little :( maybe I'm wrong, but I haven't found any integration of smart contracts in Alethio, nor any display for ERC20 tokens, which both are the crux of the matter for us.
Hi All I would like to know how to generate extradata for IBFT1.0 version? I tried same extradata as IBFT2 but it didnt work
Has joined the channel.
Any help or tips on this would be really helpful.
Has joined the channel.
Hey guys, I have a MacBook M1 and Im trying to try out quorum and when I followed the tutorial(documentation) for *npx quorum-dev-quickstart* eveything is fine, but it happens to be that a few containers keep exiting on their own. Is it some M1 chip specific or anything else? How can I solve this issue?
Oh sorry, I see that M1 is not supported yet.
The exception is from a non-critical part of code, the DNS resolution for initial peer discovery. If this is occurring after the node has been running a while, I'd consider it a symptom that the whole process lost network connectivity and hence all peers. Which is why a restart fixed things.
run the tasks it with `arch -x86_64` to enable rosetta. There are also some general docker issues with resolutions here https://docs.docker.com/docker-for-mac/apple-silicon/
run the non-docker tasks with `arch -x86_64` to enable rosetta. There are also some general docker issues with resolutions here https://docs.docker.com/docker-for-mac/apple-silicon/
just thought this one exists too https://www.web3labs.com/epirus-explorer
Has joined the channel.
Has joined the channel.
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as * --- eg: host-whitelist=["*"]; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as * --- eg: host-whitelist=["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as * --- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --**- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --* *- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --* *- eg: host-whitelist= ["*star"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --*/ *- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --*- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :)
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --*- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :) Note: In the square brackets we have given star * --> as start is not printing in this chat, making this note point for understanding.
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --*- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our locals ips. Appreciate any help :) Note: In the square brackets we have given star --> as start is not printing in this chat, making this note point for understanding.
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --*- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our ocals ips. Appreciate any help :) Note: In the square brackets we have given star --> as start is not printing in this chat, making this note point for understanding.
we have deployed besu in ec2 instance, we are able to deploy the smart contract from our local machine. Problem statement - we are able to deploy contract only if we are whitelisting ips as --*- eg: host-whitelist= ["*"] ; rpc-http-host="0.0.0.0"; rpc-http-cors-origins = ["*"] . But this is open to public, we want to restrict only to our ocals ips. Appreciate any help :) Note: In the square brackets we have given star --> as star is not printing in this chat, making this note point for understanding.
Has joined the channel.
Hey Charlie, the pattern we often follow is we open up an ssh tunnel for the rpc port, that way we do not have to expose rpc to the wider internet, e.g.:
```ssh ec2-user@host -L 8545:localhost:8545```
and then when interacting with RPC from our local machines we just use localhost:8545
Another option is to try to whitelist just the IP address or subnet that you are planning to deploy from
Besu nodes can participate in an IBFT 1 network but can't be validators. So I think you would be connecting to an IBFT 1.0 network of GoQuorum nodes. I believe you want to use the istanbul commands in GoQuorum. Does this tutorial help? https://docs.goquorum.consensys.net/en/stable/Tutorials/Create-IBFT-Network/
Has joined the channel.
Has joined the channel.
Has joined the channel.
Dears, we have a Besu permissioned network where all nodes are using the node https://dl.bintray.com/hyperledger-org/besu-repo/besu-1.5.2.zip. A new node will enter in the network. However, this link is now unavailable. I know we need to upgrade Besu, but we are minimizing these activities since we are still on testnet. What can I do?
* Is there any other link to download this version?
* are there issues to this new node be the only one in a much advanced version?
Has joined the channel.
Bintray went out of service, we had to migrate off of bintray.
Look here: https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/ and for that version it is here: https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/1.5.2/besu-1.5.2.zip
This artifactory service is paid for by Hyperledger (your company's membership fees at work!) so I expect this location to be more permanent that the last permanent home.
Thank you, by the way, I think it is important to understand how close different versions should be. Is there a site where you list the non-backward compatible versions of besu nodes? For example, is besu-1.5.2 compatible with the current version?
We've moved to a calendar versioning basis. The ethereum mainnet hard-forks we follow make semver particularly problematic. I would recommend using the most recent major release as they come out. As far as chain defeinitions they will remain backwards compatible, you may see CLI changes and new features with each major release.
Hi @rampatra we don't have data on your specific scenario. Our testing and that of community members does show there is some processing and memory overhead with using privacy but it's still on our list to do benchmarking with the different types of privacy and different sized networks. You would need to consider the CPU and memory requirements for the nodes. We would definitely be interested to know what you find out, if you're willing to share. Make sure you use latest Besu because we did fix a memory related bug in privacy recently https://github.com/hyperledger/besu/issues/2387
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi there, I'm using a Quickstart installation from Azure Marketplace. The peers were running well but they suddenly stopped. I suppose that could be an out of memory issue and resized the VM RAM. Now is working, but when looking at the node status I see "Up (unhealthy)", what does "unhealthy" means ? Can I repair them ? Thanks in advance
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello @sebaleoperez yes I expect the OOM issue is due to size of the VM. What VM size did you pick and what options did you select for the quickstart please? They should all be healthy, did they go unhealthy after the restart? If so what do the logs report back? The logs are located in the `logs/besu/` dir of the quickstart
Thanks for answering. I was using 4 Gb and expanded to 8 Gb. The nodes are currently running and for the moment is going well. If I run the list.sh script all the nodes still are "unhealthy" but working
I don't have any "logs" folder, 'm using the quickstart from the azure marketplace
Alright, there are a couple of them - the one that you run has 4 nodes? bootnode, rpcnode, node3 & node4?
If so that appears to be logging to console. So to get those logs run:
```docker ps | grep rpcnode```
then use the containerId it returns in
```docker logs
In the list the are 4 nodes: node1, node3, node4 and rpcnode
something is a bit off there, could you send me a link to this one in marketplace please?
This is the more upto date version we recommend for use https://azuremarketplace.microsoft.com/en-us/marketplace/apps/consensys.quorum-dev-quickstart?tab=Overview
I was able to get the logs with the command you sent
this one:
https://azuremarketplace.microsoft.com/en-us/marketplace/apps/consensys.hyperledger-besu-quickstart?tab=Overview
What do the logs say? If the chain head is progressing (blocks are being created, there isnt a reason for the nodes to be unhealthy ie their RPC endpoints are not accessible
ah ok, so quorum and besu are going to be the same soon ?
I'm able to see new blocks in the explorer so it's working
{"timestamp":"2021-08-15T23:49:45,085","level":"INFO","thread":"pool-11-thread-1","class":"IbftRound","message":"Importing block to chain. round=ConsensusRoundIdentifier{Sequence=664870, Round=0}, hash=0x2afa1debb33fda1ec91f582326021a18ef57462edce9331ccdf452e0b0a53cb3","short_message":""}
{"timestamp":"2021-08-15T23:49:47,098","level":"INFO","thread":"pool-11-thread-1","class":"IbftRound","message":"Importing block to chain. round=ConsensusRoundIdentifier{Sequence=664871, Round=0}, hash=0xf6baee632e99085db04be55409d60ae0bcb55780ca87392956987e1204dc2075","short_message":""}
{"timestamp":"2021-08-15T23:49:47,100","level":"INFO","thread":"EthScheduler-Workers-2","class":"BlockPropagationManager","message":"Imported #664,871 / 0 tx / 0 om / 0 (0.0%) gas / (0xf6baee632e99085db04be55409d60ae0bcb55780ca87392956987e1204dc2075) in 0.005s.","short_message":""}
{"timestamp":"2021-08-15T23:49:49,081","level":"INFO","thread":"pool-11-thread-1","class":"IbftRound","message":"Importing block to chain. round=ConsensusRoundIdentifier{Sequence=664872, Round=0}, hash=0xda9c11e3cbd9f3b25e214d64a9e8e29f0008f329f66c6ffe055b4d51e1512ec7","short_message":""}
{"timestamp":"2021-08-15T23:49:51,075","level":"INFO","thread":"pool-11-thread-1","class":"IbftRound","message":"Importing block to chain. round=ConsensusRoundIdentifier{Sequence=664873, Round=0}, hash=0x88503edbda817975d7828c8d0995582a7d9588454af86d64ebbd93bee2301996","short_message":""}
{"timestamp":"2021-08-15T23:49:51,101","level":"INFO","thread":"EthScheduler-Workers-0","class":"BlockPropagationManager","message":"Imported #664,873 / 0 tx / 0 om / 0 (0.0%) gas / (0x88503edbda817975d7828c8d0995582a7d9588454af86d64ebbd93bee2301996) in 0.016s.","short_message":""}
{"timestamp":"2021-08-15T23:49:53,096","level":"INFO","thread":"EthScheduler-Workers-3","class":"BlockPropagationManager","message":"Imported #664,874 / 0 tx / 0 om / 0 (0.0%) gas / (0x3fe4bea1b4c6dc8d23800685e641545e1919a3fd885dc86106710837cc8c94f4) in 0.002s.","short_message":""}
{"timestamp":"2021-08-15T23:49:53,102","level":"INFO","thread":"pool-11-thread-1","class":"IbftRound","message":"Importing block to chain. round=ConsensusRoundIdentifier{Sequence=664874, Round=0}, hash=0x3fe4bea1b4c6dc8d23800685e641545e1919a3fd885dc86106710837cc8c94f4","short_message":""}
{"timestamp":"2021-08-15T23:49:55,089","level":"INFO","thread":"pool-11-thread-1","class":"IbftRound","message":"Importing block to chain. round=ConsensusRoundIdentifier{Sequence=664875, Round=0}, hash=0x16f873ded602a8a7b6780944c31e7235559e3118c527de1398b0243fd6449922","short_message":""}
{"timestamp":"2021-08-15T23:49:55,118","level":"INFO","thread":"EthScheduler-Workers-1","class":"BlockPropagationManager","message":"Imported #664,875 / 0 tx / 0 om / 0 (0.0%) gas / (0x16f873ded602a8a7b6780944c31e7235559e3118c527de1398b0243fd6449922) in 0.000s.","short_message":""}
these are the last lines
Not quite - consensys offer both besu and goQuorum options in a quickstart and you can use either option to spin up a full chain. This marketplace offering is maintained and has docs and examples. The besu quickstart was based off it but isn't as easy to keep up to date due to some azure restrictions
I see, so do you recommend to use quorum instead of besu ?
I'd recommend using this one https://azuremarketplace.microsoft.com/en-us/marketplace/apps/consensys.quorum-dev-quickstart?tab=Overview on a fresh VM and you have the options of privacy as well using Tessera as well as permissioning that you can explore. Doco for it is here https://besu.hyperledger.org/en/latest/Tutorials/Examples/Private-Network-Example/
Ok great to know, thanks for that. And 8 Gb RAM seems to work well, right ?
No no, you still use Besu, just a different marketplace offering that is more uptodate. When you fire that one up, select Besu which is the default (option1). I'll work on updating the other Besu quickstart to get it up to date (but this takes a while with Azure)
Besu nodes generally require a min of 4GB each, https://besu.hyperledger.org/en/latest/HowTo/Get-Started/System-Requirements/System-Requirements-Private/#java-virtual-machine-size For something that you test with a VM with 8 will run for a while until there are transactions etc until it'll need more RAM.
I understand. Thanks for your help. I'll try then a new instance
Using quorum quickstart
:thumbsup: sounds good, let us know if you run into issues
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi All, how to wipe out data with Besu database and have a refreshed start? There are some test data on chain and i would like to wipe them out and restart again. Thanks.
If you want to wipe everything, you can delete your data-path
https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#data-path
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=zn36wbqQinyjxRKGQ) Will delete path change the chain configuration? I would like to use the same configuration and just have a fresh start (like when the chain is up first time).
Has joined the channel.
Has joined the channel.
Hello everyone, I am trying to send some transactions to besu, however besu always returns 'Upfront cost exceeds account balance' error even if I have set the gas value reasonably low. What do you suggest to solve this?
The account you are signing with on that particular chain does not have enough ether balance to cover the gasLimit * gasCost.
Add ether to that account.
Your chain configuration is your genesis file, right? As long as the file is not in the data-path directory you should be fine.
If it is, make a copy of it first =)
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Thank you cor the response, I checked the account details in metamask and it has enough ether. In addition, I transferred some ether from other accounts to this account.
Has left the channel.
Does it have enough? What's the gas cost * gas limit?
Hi Team , Besu is production ready?
Absolutely! Besu is used in production by hundreds of companies in a variety of contexts.
Here's just one of many: https://www.hyperledger.org/learn/publications/posteitaliane-case-study
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, Team, Where can I find articles describing the structure of besu code
I don't think we have written articles about the code structure. We have blog posts and webinars about some of the feature that we have implemented.
Ok, I found it, thanks!
Ok, I found it, thanks!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Yes, the account has enough ether. gasPrice: "0x0", gasLimit: "0x24A22". These are the limits
Has joined the channel.
If you are using mainnet or a public testnet they have all gone to eip-1559, which has a mandatory 7 wei base fee. Zero gas costing will only work on pre-london networks.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi all, on iBFT2.0 network, tx submission returns an error about gas limit:
[Error: cannot estimate gas; transaction may fail or may require manual gas limit (error={"reason":"bad response","code":"SERVER_ERROR","status":400,"headers":{"date":"Tue, 24 Aug 2021 02:23:41 GMT","content-type":"application/json","content-length":"109","server":"nginx/1.19.10","connection":"keep-alive"},"body":"{\n \"jsonrpc\" : \"2.0\",\n \"id\" : 46,\n \"error\" : {\n \"code\" : -32602,\n \"message\" : \"Invalid params\"\n }\n}","requestBody":"{\"method\":\"eth_estimateGas\",\"params\":[{\"gasPrice\":\"0x0\",\"type\":\"0x0\",\"from\":\"0xbc9e093db95e6a2a4e8f413df5bf2a4b6dfac303\",\"data\":\"0x60806040526002
Since there is no mining on IBFT2.0 network , I am not sure why there is an error about gas.
that's not a transaction submission, you're calling `eth_estimageGas` ?
`atoulme`, no. the app is calling a constructor of a contract.
Has joined the channel.
Has joined the channel.
Has joined the channel.
@EmcLab `requestBody":"{\"method\":\"eth_estimateGas\"` from your message
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
When using IP address of the server, the 4th_blockNumber returns number. However when using domain name it return nothing. When ping to the domain, the same IP is returned. What can cause the failure of eth_blockNumber with domain name? Here is the message with IP address:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":51}' http://xxx.xxx.21.141
{
"jsonrpc" : "2.0",
"id" : 51,
"result" : "0xaead"
}%
`ping domain_name` resolves to the same IP address xxx.xxx.21.141
Has joined the channel.
Hello everyone, I'm new to hyperledger and blockchain technology itself and want to contribute to Besu as I have some prior experience with Java. Could anyone guide me where should I begin to understand blockchain and hyperledger? It would be really helpful!
what i did is to delete all files and subdir under data_path except 2 keys and restart the chain again. It worked
Has joined the channel.
Has joined the channel.
besu.hyperledger.org has great docs you can use to get started. Welcome!
Has joined the channel.
Yes, got it later.
One question I want to build native token on besu like Binance smart chain.
How I can create private network and create my native token so other dapp users can build on this network and use my native tokens
Has joined the channel.
Has joined the channel.
Has joined the channel.
Yep absolutely. You can do this with Besu out of the box. It has a native by default. You would also need to use a bridge like Chainstack's ChainBridge to enable cross-chain transactions though.
Has joined the channel.
Has joined the channel.
Has joined the channel.
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.82021-08-26 05:53:25.550+08:00 | main | INFO | AbstractAltBnPrecompiledContract | Using LibEthPairings native alt bn128
This is the error when the node just started. How to fix the error?
Feel free to open an issue, please.
Graphql and wiremock want different versions of ANTLR
GraphQL wants 4.8, wiremock 4.7.1.
How do you see these errors appear?
(Be sure to add those above to the github issue -> https://github.com/hyperledger/besu/issues)
@EmcLab check this issue - is it the same issue you're having? https://github.com/hyperledger/besu/issues/2548
@EmcLab it's the `type` parameter that besu is complaining about - what library are you using to send the transaction?
it's buried in there but it's an `Invalid params` error response
[ ](https://chat.hyperledger.org/channel/besu?msg=Hed3Borph4479jkXE) The app uses ethersjs 5.4
[ ](https://chat.hyperledger.org/channel/besu?msg=XyT7wrRQRxtYq8cSz) `macfaria`, it is similar issue posted by another developer. The issue is still open
After systemctl restart node1.service for boot node, the node only has a few minutes log and then stopped. Here is whole log after restart.
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8Setting logging level to DEBUG
2021-08-26 11:42:15.237+08:00 | main | DEBUG | Native | Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@5bc2b487 for /com/sun/jna/linux-x86-64/libjnidispatch.so
2021-08-26 11:42:15.241+08:00 | main | DEBUG | Native | Found library resource at jar:file:/home/besu/lib/jna-5.6.0.jar!/com/sun/jna/linux-x86-64/libjnidispatch.so
2021-08-26 11:42:15.242+08:00 | main | DEBUG | Native | Extracting library to /root/.cache/JNA/temp/jna5706150786603520446.tmp
2021-08-26 11:42:15.244+08:00 | main | DEBUG | Native | Trying /root/.cache/JNA/temp/jna5706150786603520446.tmp
2021-08-26 11:42:15.246+08:00 | main | DEBUG | Native | Found jnidispatch at /root/.cache/JNA/temp/jna5706150786603520446.tmp
2021-08-26 11:42:15.290+08:00 | main | DEBUG | NativeLibrary | Looking for library 'secp256k1'
2021-08-26 11:42:15.290+08:00 | main | DEBUG | NativeLibrary | Adding paths from jna.library.path: null
2021-08-26 11:42:15.290+08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-08-26 11:42:15.291+08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-08-26 11:42:15.291+08:00 | main | DEBUG | NativeLibrary | Adding system paths: [/usr/lib/x86_64-linux-gnu, /lib/x86_64-linux-gnu, /usr/lib64, /lib64, /usr/lib, /lib, /usr/lib/x86_64-linux-gnu/libfakeroot]
2021-08-26 11:42:15.291+08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-08-26 11:42:15.292+08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-08-26 11:42:15.292+08:00 | main | DEBUG | NativeLibrary | Looking for version variants
2021-08-26 11:42:15.295+08:00 | main | DEBUG | Native | Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@5bc2b487 for secp256k1
2021-08-26 11:42:15.296+08:00 | main | DEBUG | Native | Found library resource at jar:file:/home/besu/lib/secp256k1-0.3.0.jar!/linux-x86-64/libsecp256k1.so
2021-08-26 11:42:15.296+08:00 | main | DEBUG | Native | Extracting library to /root/.cache/JNA/temp/jna17620162308908906133.tmp
2021-08-26 11:42:15.302+08:00 | main | DEBUG | NativeLibrary | Found library 'secp256k1' at /root/.cache/JNA/temp/jna17620162308908906133.tmp
I tried to restart several times and the node stopped after a few minute run. Not sure what is the problem here.
BTW it is besu 21.7.2
openjdk 14.0.2 2020-07-14
Has joined the channel.
Has joined the channel.
Hi all ,usually how long it takes for a 4 nodes Besu network to sync up? After one hour, there is still 0 peer connected and one peer on boot node. Tried to restart several time
Besu 21.7.2
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=7QSSQmmwAsXWZRAXN) Besides to upgrading to 21.7.2, there is no change with configuration which was working before.
Which networks?
IBFT2.0
hey folks, when you look at the privateFor of a private transaction, can you tell which parties are part of the transaction, or is it obfuscated? I forget.
privateFor lists the Tessera public keys of the recipients. If you want obfuscation, you need privacy groups
excellent, so there is a solution
thanks!
Besu privacy groups :)
I admit I didn't have time to play with those.
So ethersjs must be sending through this `type` parameter. Is this new behavior? Can you share the json request you are sending to ethersjs?
We do already ignore certain fields to `eth_call` and `eth_estimateGas` because they are passed in by third-party libs eg https://github.com/hyperledger/besu/pull/2464 so it's possible we need to add an exception for this one too
If it makes sense to do this, it's a pretty easy change to make
the ANTLR version thing is just a warning, it shouldn't affect besu operation.
the native libs loading messages, similarly, shouldn't affect node operation - it's just telling you where it's looking for native libs and where it finally finds them
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello all, here is a piece of Besu boot node log (4 nodes IBFT2.0) showing invalid params. This invalid params is caused by a contract deploying tx which I am trying to debug. What is really going wrong here? can someone decipher the log? Many thanks.
2021-08-30 04:50:46.788+08:00 | vert.x-eventloop-thread-0 | DEBUG | B3PropagatorExtractorMultipleHeaders | Invalid TraceId in B3 header: null'. Returning INVALID span context.
2021-08-30 04:50:46.790+08:00 | vert.x-worker-thread-1 | DEBUG | JsonRpcHttpService | JSON-RPC request -> eth_estimateGas
2021-08-30 04:50:46.790+08:00 | vert.x-worker-thread-1 | DEBUG | JsonRpcHttpService | Invalid Params
org.hyperledger.besu.ethereum.api.jsonrpc.internal.exception.InvalidJsonRpcParameters: Invalid json rpc parameter at index 0
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.JsonRpcParameter.optional(JsonRpcParameter.java:74)
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.JsonRpcParameter.required(JsonRpcParameter.java:39)
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequest.getRequiredParameter(JsonRpcRequest.java:133)
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.JsonRpcRequestContext.getRequiredParameter(JsonRpcRequestContext.java:64)
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.validateAndGetCallParams(EthEstimateGas.java:168)
at org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.EthEstimateGas.response(EthEstimateGas.java:63)
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.process(JsonRpcHttpService.java:725)
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.lambda$handleJsonSingleRequest$13(JsonRpcHttpService.java:579)
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:313)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "type" (class org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.JsonCallParameter), not marked as ignorable (11 known properties: "gasPrice", "value", "gasLimit", "gas", "from", "to", "maxFeePerGas", "strict", "maxPriorityFeePerGas", "payload", "data"])
at [Source: (StringReader); line: 1, column: 42492] (through reference chain: org.hyperledger.besu.ethereum.api.jsonrpc.internal.parameters.JsonCallParameter["type"])
at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61)
> Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "type"
filed "type" is not a contract params. Is it a part of ethersjs used submitting the tx? It is ethersjs 5.4 used.
The contract deploy code is:
let overrides = {
gasPrice:100000,
}; contractFS = await factory.deploy(value, item.name, item.id, overrides);
value is an integer. item.name is a string. id is an integer.
@EmcLab this is the same problem as you're having here https://chat.hyperledger.org/channel/besu?msg=LH5ysDkqCXBL4NnoT
@EmcLab this is the same problem as you're having here https://chat.hyperledger.org/channel/besu/thread/LH5ysDkqCXBL4NnoT?jump=Hed3Borph4479jkXE
we have added ignores for other non-spec fields that are added by other third-party libs but this is a new one
I haven't investigated why ethersjs is adding this field but this change would get around it https://github.com/hyperledger/besu/pull/2690
Same problem. I just upgraded to ethers 5.4.6 and it solves the problem so far
The problem is quite annoying as I have spent days on it.
ok sounds like updating ethers.js is the fix then!
@macfarla perhaps we could consider ignoring unknown parameters and attempting the call with what is left? This smells like ethersjs was using a pre-final form of the London JSON-RPC changes.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello team!!
My company has an Alastria node with Besu deployed (besu/v20.10.2/linux-x86_64/oracle-java-16) where we are trying to integrate some dApps. The Smart Contracts have been deployed properly using truffle. The problem comes when we try to interact with them. I can't connect metamask with the besu node, it says: Could not fetch chain ID. Is your RPC URL correct?
Has joined the channel.
Has joined the channel.
Hi guys, I would like to know how to build besu on arm 64 if it is possible.
For me some tests keep failing
Which OS?
I am trying to do it on amazon linux
Trying to use t4g instances of AWS, but i can opt for ubuntu or any other production grade OS
Attempting in parallel to build on ubuntu.
We haven't added Linux arm64 to our supported list yet. We can get mac to build on M1 chips but native libraries we depend on are the longer poles, stuff like snappy compression.
ok, would it be possible that Mac M1 binary packed in docker image work on linux, this may be a stupid idea, just thinking out loud
Also any plan to support linux arm64 ?
no one's made commitments to linux arm yet. It hasn't been on anyone's radar.
Ok, are there huge fixes that need to be done, if the fixes are few I can make an attempt myself to make it work.
It's the native libraries. https://github.com/hyperledger/besu-native will need to be updated, a local arm64 version of libsodium for the privacy tests, as well as nss. Let me run some searches to see the other native libraries needd.
I have been able to setup libsodium on arm64
jars with libs - `jansi-2.3.4`, `jline-2.14.6.jar`, also these, but they look to have the needed arm libs already - `jffi-1.2.17-native.jar`,`jna-5.8.0.jar` `netty-all-4.1.66.Final.jar`, `netty-tcnative-boringssl-static-2.0.40.Final.jar`, `rocksdbjni-6.15.2.jar`, `snappy-java-1.1.8.4.jar`
so it looks like just the ansi support and native crypto are in needed.
so it looks like just the ansi support and native crypto are needed.
I am trying to build Besu Native as suggested.
I will look into ansi support too
Looks like all that may be needed is to major version update jline to the 3.x series. Besu will fall back to pure java crypto if the native libraries are absent.
@shemnon can you help me where to put these jar files. I am stuck in last stage (build jars) of building besu-native now
./gradlew publishToMavenLocal
Had to tweak few rust files to reach there (type of c_char is u8 in arm64, code was expecting i8)
then update versions.gradle to sue the -SNAPSHOT version published
Will try this, will also study a bit more in depth on how gradle commands work.
Thanks for the help :)
Hello.
I have a question about contract of flexible privacy group.
I need to get lock before addParticipants function.
but, i don't need get lock before removeParticipant function.
why different both addParticipants and removeParticipant funtions
I think also need to get lock before exec removeParticipant funtions.
I also think don't need to get lock before exec both functions.becouse transaction of blockchain is not conflict if get lock or not.
Agree @shemnon - this matches what geth does too. https://github.com/hyperledger/besu/pull/2690
This likely means that there's a problem with the URL you're entering into Metamask. Have you allowed MetaMask access to Besu (CLI option `--rpc-http-cors-origins`)
Could be something like localhost vs 127.0.0.1 https://ethereum.stackexchange.com/questions/91196/could-not-fetch-chain-id-is-your-rpc-url-correct
Hi all, here is the error when start boot node, saying missing a file or directory. How to fix it?
2021-08-31 12:18:15.893+08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-08-31 12:18:15.893+08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-08-31 12:18:15.894+08:00 | main | DEBUG | NativeLibrary | Adding system paths: [/usr/lib/x86_64-linux-gnu, /lib/x86_64-linux-gnu, /usr/lib64, /lib64, /usr/lib, /lib, /usr/lib/x86_64-linux-gnu/libfakeroot]
2021-08-31 12:18:15.894+08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-08-31 12:18:15.894+08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-08-31 12:18:15.894+08:00 | main | DEBUG | NativeLibrary | Looking for version variants
restart the boot node several times and it just does not kick in.
Has joined the channel.
Could you please share OS and Besu version being used?
You only need to lock when you are adding because the “adder” needs to prepare the blob of data that contains all the private transactions up to that point. The lock is to prevent private transactions between creating the blob and adding that member to make sure that the new member ends up having the same state as everybody else. This is not necessary when removing someone from the group. Does that make sense?
Thank you for kindly replying. I understand that why need lock mechanism.
Has joined the channel.
Has joined the channel.
Hi all, i'm new in the blockchain, my question: can I start a real blockchain with BESU?
Another question, can I use a Blockchain provider? (Because i connect whit web3 end rpc endpoint but if the node is down, how i connect to the blockchain?)
Has joined the channel.
Yep, you can either make a private network/sidechain or join the public Ethereum network! Any of which would be a real blockchain
You can use a blockchain-as-a-service provider or other managed service to access Besu networks, otherwise you have to ensure you are building a highly available endpoint for yourself
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=psegHmmWjZPLCdcTm) Sure. It is ubuntu 20.04 and Besu 21.7.2
Hi, when host-whitelist and host-allowlist enabled at the same time in config.toml for boot node, there is an error. It is on ubuntu 20.04 and Besu 21.7.2:
picocli.CommandLine$ParameterException: Values '*' or 'all' can't be used with other hostnames
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1223)
at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56)
at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31)
at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1367)
at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1190)
at org.hyperledger.besu.Besu.main(Besu.java:50)
Caused by: java.lang.IllegalArgumentException: Values '*' or 'all' can't be used with other hostnames
at org.hyperledger.besu.cli.custom.JsonRPCAllowlistHostsProperty.addAll(JsonRPCAllowlistHostsProperty.java:81)
at org.hyperledger.besu.cli.BesuCommand.configure(BesuCommand.java:1607)
at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1216)
... 14 more
To display full help:
besu [COMMAND] --help
The config.toml code is:
host-whitelist=["my domain"]
host-allowlist=["*"]
If I would like to use domain name in provider, how shall host-whitelist and host-allowlist be configured? What I find is that if host-allowlist is removed, then using IP address in provider does not work.
Has joined the channel.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=aW7vtHPPaofs7TBGu) `host-whitelist` and `host-allowlist` are synonyms. You should do something like `host-allowlist=["domain.com", "10.0.0.1", ....]`
Has joined the channel.
Has joined the channel.
sorry, when i connect to besu with web3 i use the local provider (127.0.0.1) if i want realize a real blockchain i can't use the IP address, what can i do??
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=e6tkpuLSRyLHmQ6oM) What params are you using to run besu?
besu --data-path=data --genesis-file=..\genesis.json --bootnodes=
and what network are you connecting to? ie what's in your genesis.json? Or are you running a private network?
the reason I ask is because there's nothing not real about having the --rpc-host running on localhost.
you could specify --rpc-host to be your external ip address. This would allow external client to connect to your node
you could specify --rpc-host to be your external ip address. This would allow anyone to connect to your node
can I use Azure for provider so i can connect web3(//link get by azure)??
Has joined the channel.
Hi team, i have an issue interacting with a deployed smart contract, i have created a smart contract in remix ide, i have spun up besu nodes (etc), deployed the contract and was able to successfully interact with it in the remix ide. I was able to see confirmation blocks.
Now the issue is, im using web3j in java and trying to interact with the contract with code. Im seeing an issue with `Error processing transaction request: Upfront cost exceeds account balance`
I have enough in my account , you can see the logs below
```
2021-09-01 16:28:54.940 INFO 27175 --- [ main] c.m.b.besu.core.service.StorageService : account balance 90000000000000000000000
2021-09-01 16:28:54.956 INFO 27175 --- [ main] c.m.b.besu.core.service.StorageService : nonce 0
2021-09-01 16:28:54.974 INFO 27175 --- [ main] c.m.b.besu.core.service.StorageService : signed message : 0xf901298084f46109008389544094b9a219631aed55ebc3d998f17c3840b7ec39c0cc80b8c434ea1b610000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000016300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000164000000000000000000000000000000000000000000000000000000000000001ba06baa17334977a6b31d84eadc762a1d5cbb24f6bb5cd8f08d6cc01db329490c3aa061dbb6d77073e94fefe598d59793d8e17cd7f6685390405848fe4857f76a92f5
2021-09-01 16:28:54.979 INFO 27175 --- [ main] c.m.b.besu.core.service.StorageService : transaction response null
```
SheharYar - Wed Sep 01 2021 16:54:53 GMT-0400 (Eastern Daylight Time).txt
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello all, I am trying to run a besu docker image with my custom genesis file and some other customized options, however, even after I provide the correct path to --genesis-file it always says that unable to load genesis file, no such file or directory
I also have some difficulty finding command line options for besu
Has joined the channel.
Hi, is there a guide for securing a permissioned network for production? I would appreciate any documentation / hints / links.
Has joined the channel.
Hi All, I wanted to bump the thread on this web3js-eea PR of mine that's been idling for some time: https://github.com/ConsenSys/web3js-eea/pull/166
(I know it's not an HL project, but I figured someone on the Besu team might know what's up)
Has joined the channel.
Has joined the channel.
why min-gas-price=0 require mining??
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
mining and gas prices are not related, mining relates to the security of the network. Gas prices are DDoS protections for transactions.
If you use PoW, you use mining. Try running Besu with a different consensus algorithm instead.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello guys, I have a question regarding using Flutter as the User interface tech. Do we have a lib that allows me to do that?
Try web3dart. Never used it but the repo receives semi-regular commits - https://github.com/simolus3/web3dart
Has joined the channel.
Has joined the channel.
Hey Besu users! I've just updated the release calendar with proposed release dates for the next year -> https://wiki.hyperledger.org/display/BESU/Future+Release+Dates
For a bit more context on our Calendar Versioning and what versioning really means for you, see this post -> https://wiki.hyperledger.org/display/BESU/Using+CalVer+for+Besu+Releases
Hey Peter - I can take a look, but hopefully you've seen the notice that we've moved to https://github.com/consensys/web3js-quorum now
I just remembered that the team had considered this and were supposed to get back to you about integrating the PR you made into the new repo. Apologies for the delay! It just came right in the middle of our migration of features.
I'll make sure it gets looked at this week :pray:
Has joined the channel.
Has joined the channel.
Has joined the channel.
Thank you Shemnon! :pray:
Has left the channel.
Has joined the channel.
Has joined the channel.
Hello guys, i would like to know if it possible to configure a network such that new blocks are added only when there is transactions in the pool using IBFT 2.0 consensus protocol?
Has joined the channel.
Has joined the channel.
Hey @ShaharinAhmed, we are actually looking into something like this right now and it will hopefully get on the roadmap soon. What's the primary motivation for you to want this?
Hi Vijay, no worries, thanks for taking the time to respond! The migration to web3js-quorum is fair enough, but it would be still good to merge this one and issue (at least) one last release IMO before the support period ends (Dec 31st 2021) for people who are on the old code still (web3js-eea)
Has joined the channel.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=5vTp3dCtFsYZC82PT) Thank you very much for replying, in private networks there may not be transactions every minute, there may not be a single transaction in hours, so it would be a waste if block generation in every few seconds can't be controlled.
ok, that's doable I think! will get back to you shortly
Has joined the channel.
Has joined the channel.
@VijayMichalik also it is to save storage as in private blockchain we will not have many transactions in every second like that of public blockchain network
@VijayMichalik as you have already stated you guys are looking into something like this right now on my previously asked question "Hello guys, i would like to know if it possible to configure a network such that new blocks are added only when there is transactions in the pool using IBFT 2.0 consensus protocol?" and you also wanted to know the motivation behind this.
The motivation is to save storage as in private blockchain we will not have many transactions in every seconds like that of public blockchain network and many empty blocks will be created in every few seconds which is a problem. Can you please provide me with any update about it?
Has left the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=WnXBXujNHkLsietey) where can i found them?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Yep, we are working on this, and will likely plan to push a change here later this year or early next. It requires some changes to the consensus protocol which are non-trivial. It will prevent nodes from being required to store empty blocks.
Has joined the channel.
Hi, for option host-allowlist, who is the host on a boot node? My understanding is that boot node serves rpc http calls from hosts (Ethereum clients) from internet.
Also here is an example in Besu doc example for host-allowlist, host-allowlist=["medomain.com", "meotherdomain.com"]. Here is "medomain.com" the domain name for boot node?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello there.
I have a question about Flexible Privacy Group.
In this case, I use Flexible Privacy Group.
At first. I create privacy group that include node1 and node2.
then, node1 deploy smart contract in privacy group and invoke some transaction at that smart contract.
if node2 is removed from the privacy group, but node2 can refer to data up to the time it was expelled from the group that using `web3.priv.call` function.
but if node2 use `web3.priv.generateAndSendRawTransaction` function, node2 can't read it.
I want to know the policy of `BESU`. which is true if node2 was removed from privacy group. node2 can or can not refer to data up to the time.
The implementation of one being readable and the other being unreadable seems inconsistent.
If it is a possible bug, I create an issue and steps to reproduce.
Hi Everyone!
I want to benchmark our ethereum private network and would like to use the caliper for this. I have the configuration file for it but it's giving me error "You must provide the json interface of the contract when instantiating a contract object" I have pasted my network configuration file code and command. Can you please help me out in solving this.
` {
"caliper": {
"blockchain": "ethereum",
"command" : {}
},
"ethereum": {
"url": "ws://localhost:7545",
"contractDeployerAddress": "0x5B14D7452573edB2ABe4941286618Fc09F1Ae085",
"contractDeployerAddressPassword": "a0969bdb33adfb905d0d94cf4d6b1f63ebee447a17b80972f16e178bd0b219df",
"fromAddress": "0x5B14D7452573edB2ABe4941286618Fc09F1Ae085",
"fromAddressPassword": "a0969bdb33adfb905d0d94cf4d6b1f63ebee447a17b80972f16e178bd0b219df",
"transactionConfirmationBlocks": 2,
"contracts": {
"simple": {
"path": "../../../src/ethereum/simple/simple.json",
"estimateGas": true,
"gas": {
"query": 100000,
"transfer": 70000
}
}
}
}
}
`
Command
caliper launch manager --caliper-workspace ./ --caliper-networkconfig ./networks/ethereum/1node-clique/networkconfig.json --caliper-benchconfig benchmarks/scenario/simple/config.yaml --caliper-flow-only-test --caliper-fabric-gateway-enabled
I think "ws://localhost:7545" is ganache's endpoint.
you should try 8545 port.
I'm using ganache right now.
Yes, I'm using ganache
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
@VijayMichalik i have two questions
1. I have created a private network on my local pc using IBFT and then when i send the first transaction from a account using metamask most of the time it's pending, then in order for the transaction to go through i need to reset the account and then send the transaction again which is not a solution and sometimes when i reset the account and send a new transaction both the transactions go through at the same time (previous pending one and the new one) so what's the solution behind it?
2. I have created another network with the same configuration and hosted in AWS in a single day after the network was up my RAM usage went to 1.3gb from 600mb! is it normal? cause if its then its not feasible as its kept on increasing little by little.. so what's the problem here?
And thanks in advance!!!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Here comes the boom ,
Gonna take a prod install crack at this
Has joined the channel.
Has joined the channel.
Hi experts,
Very new to Besu and having below error:
Not sure what I am doing wrong?
ERROR | PrivDistributeRawTransaction | org.hyperledger.besu.ethereum.rlp.RLPException: Expected current item to be a list, but it is: BYTE_ELEMENT (at bytes 0-1: [52]af69ec00...)
@hkiridera I am new to private transactions on besu. Would you guide me how to successfully achieve my first private transaction?
I have 4 EC2 nodes on Besu (Out 4, 1 is boot node, 2 are sealers / Validators and 4th one is the passive just importer node)
I have tessera installed and configured on all 4 nodes. And all normal (public) transactions / contract deployments and execution of functions are working fine.
However having no clue, how to achieve the private transaction on my this setup. Would you able to guide me please.
@hkiridera I am new to private transactions on besu. Would you guide me how to successfully achieve my first private transaction?
I have 4 Besu nodes on EC2 (Out 4, 1 is boot node, 2 are sealers / Validators and 4th one is the passive just importer node)
I have tessera installed and configured on all 4 nodes. And all normal (public) transactions / contract deployments and execution of functions are working fine.
However having no clue, how to achieve the private transaction on my this setup. Would you able to guide me please.
Has joined the channel.
Has joined the channel.
Has joined the channel.
This example using web3js-quorum client library is a good place to start. https://besu.hyperledger.org/en/latest/Tutorials/Privacy/web3js-quorum-Multinode-example/
Has joined the channel.
This message indicates a problem with the RLP decoding of what you're sending to PrivDistributeRawTransaction. Can you share more about how you're calling this method - and what client library you're using to generate the private transaction? Eg web3js-quorum
There is nothing special about bootnodes, they are just used for discovery. https://besu.hyperledger.org/en/stable/HowTo/Find-and-Connect/Bootnodes/
`host-allowlist` is where you list which other nodes can connect. This is just an example. https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/API/#host-allowlist
Has joined the channel.
Hello can anyone answer these two questions of mine? I would really appreciate it.
1. I have created a private network on my local pc using IBFT and then when i send the first transaction from a account using metamask most of the time it's pending, then in order for the transaction to go through i need to reset the account and then send the transaction again which is not a solution and sometimes when i reset the account and send a new transaction both the transactions go through at the same time (previous pending one and the new one) so what's the solution behind it?
2. I have created another network with the same configuration and hosted in AWS in a single day after the network was up my RAM usage went to 1.3gb from 600mb! is it normal? cause if its then its not feasible as its kept on increasing little by little.. so what's the problem here?
And thanks in advance!!!
Has joined the channel.
hello, dear altruists, can someone help me find companies using besu for their production? thank you.
Hi Everyone!
How can I setup hyperledger caliper for ethereum? Can anyone guide me?
if you get help, please do let us know. we are having some problems too.
Has joined the channel.
Has joined the channel.
Thanks a lot @macfarla , Thats what I am looking for and you hit the right point. Really thankful for this link, Its working for me after following the mentioned steps.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=4yTmE4fRJkEGDbCdK) on 4 node IBFT2.0 network, the rpc port for boot node is 8485 and rpm http request is directed to port 8485, is the boot node the only node serving the clients' http requests?
Has joined the channel.
You can send rpc requests (if rpc is enabled) to the boot node, it's just a regular node. Are you referring to a specific example?
if you're using caliper + ganache, you might be better off asking in the caliper channel?
sounds like there is an issue with the json file you're providing though
Re 1 - if you're using Metamask and switching networks (eg from besu to ganache, or restarting besu with different db, or deleting besu db and restarting it) - you nearly always need to reset the account in metamask - I would recommend doing it before sending any transactions. My understanding is that Metamask keeps track of the account nonce so if you change that in besu (eg delete besu db and restart so nonce is zero) then the nonce doesn't match. Resetting the account in Metamask resets the nonce to match besu.
2 I will leave for @VijayMichalik to respond to :)
are there specific bits you're having problems with? Have you asked in the caliper channel?
@macfarla Thank you very much for answering, now please help me out with the second one, i have no idea why is this happening, i can understand why disk space might decrease but memory usage!! i don't have a clue, right now its a major headache
I don't know the answer to this one - can ask the team - to help get answers can you provide some more info - what besu version are you running? are you connecting to mainnet or a testnet or just your own nodes?
The intention is that node2 would retain access to the info in the group up to the point in time when they were removed (via priv_call, and specifying a block prior to when they were removed). Once they are removed, they can't send any further transactions (sendRawTransaction). Does that answer your question?
Has joined the channel.
@macfarla we are using the version 21.7.2, using docker image. We are using consensus protocol IBFT2.0. , from twe are running our own nodes in a private network,
@macfarla we are using the version 21.7.2, using docker image. We are using consensus protocol IBFT2.0. It is a private network with 4 nodes, they are all validator and one of them is the bootnode. They are all hosted in separate EC2 instances. And the memory usage keeps on increasing
Hey folks - Hyperledger is participating in Grace Hopper's Open Source Day on October 1st from 9 AM - 5 PM PST. It is a great opportunity to showcase Hyperledger Besu and get new developers working on our codebase. We'd love to add a few more "good first issues" so - if you think of something that would make life easier as a dev or user of Besu, please create an issue for it. https://github.com/hyperledger/besu/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
Thank you for your answer. I understand that removed besu node can read old data in privacy group .
I thought it would be better to change the description to use'web3.priv.call' in each chapter of the tutorial.
@ShaharinAhmed How much memory have you allocated to Besu? Besu docs have some more details on the recommended memory https://besu.hyperledger.org/en/latest/HowTo/Get-Started/System-Requirements/System-Requirements-Private/.
ah ok so maybe the docs need updating - can you share the link to the tutorial you mean? Thanks!
@jframe yes i have already seen it, and allocated 8 GB for memory and hard disk of 2gb but both memory usage and disk usage keeps on growing, disk usage maybe understandable in some sense but i am not really understanding why memory usage keeps on increasing
@jframe yes i have already seen it, and allocated 8 GB for memory and hard disk of 20 GB but both memory usage and disk usage keeps on growing, disk usage maybe understandable in some sense but i am not really understanding why memory usage keeps on increasing
I read this tutorial.
This sample program attempts to read from a privacy group smart contract using `web3quorum.priv.generateAndSendRawTransaction`.
I thought it would be better to use `'web3quorum.priv.call'`.
https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Calling-Contract-Functions/#1-perform-a-read-operation_1
Hey @ShaharinAhmed, could you create an issue on Github? That way we can investigate. Memory should indeed not be increasing!
Has joined the channel.
1
I tried to migrate the contract Migrations by using Truffle migrate, it got hang and show error message as belows. Please help me if I configured anything wrong.
⠸ Saving migration to chain. { "jsonrpc": "2.0", "id": 1574154369501, "result": "0x" }
Error: Error: Error: Transaction was not mined within 750 seconds, please make sure your transaction was properly sent. Be aware that it might still be mined! at Object.run (/usr/local/lib/node_modules/truffle/build/webpack:/packages/migrate/index.js:92:1) at at process._tickCallback (internal/process/next_tick.js:188:7)
Has joined the channel.
Has joined the channel.
Has joined the channel.
hi, i need some help to find a issue. so to summarize i had a client IBFT with custom hardfork the blockchain as been work with version 1.4 for quite some time and recently i upgraded to version 21 of besu. all works fine if i sync with normal default parameters. if i do sync-mode FAST the client stop sync giving a "invalid block header and give the block number and transaction hash" i checked this block and not have transactions the parent block is ok as in the current network, what could be wrong here ? what are the files that in charge of checking the fast sync mode.
all lights are welcome :rolling_on_the_floor_laughing:
i put in debug mode in DownloadHeaderSequenceTask but maybe i not updated well some file... what dependencies of this flow
you have a point - however the difference is that tutorial uses `privateFor` values to send the transaction, whereas `priv_call` uses privacy group ID. So slightly different scenarios. The good news is, your understanding is correct!
thank for kindly answer. it is all clear.
Has joined the channel.
Has joined the channel.
Hello! I saw that this project is a part of the OSD of the vGHC. I would like to know if there are any plans or agenda for the day.
Has joined the channel.
Hey there! Thakns for asking! This is the program overview for the day. https://ghc.anitab.org/programs-and-awards/open-source-day/
Has joined the channel.
Has joined the channel.
One thing to check - is your node producing blocks? either mining (PoW) or correctly validating & producing blocks (PoA). If blocks aren't being produced, then the migration won't work.
There shouldn't be any difference in block validation between full/fast sync. Are you sure that the block is the correct one for your fork in both cases? You could try using `--required-block` parameter https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#required-block
Is Hyperledger doing anything specific @grace.hartley or just participating
I found the agenda https://ghc.anitab.org/attend/vghc-21-agenda/
Has joined the channel.
If blocks aren't being produced then what could be the reason , how we can fix it
we are using IBFT
Has joined the channel.
Has joined the channel.
I want to know whether there is interoperability between hyperledger Besu and Fabric?
I want to build hyperledger Besu application in already created hyperledger fabric application. Is that possible and how?
yes i have this flag
i have genesis smart contracts and the hardfork starts in 0 block
i have other hardfork but is blocknumber is gratear than the invalid block
the strange here is the block invalid has the right parent hash and etc... and both previous and next block are empty.
I don't believe so besides having our Hyperledger projects be included as projects in the Hackathon. If I hear of anything specific, I'll be sure to share here!
i got other issue before this, is this message 2021-09-16 11:35:41.821+00:00 | EthScheduler-Workers-3 | INFO | TimestampMoreRecentThanParent | Invalid block header: timestamp 1619660141 is only 3 seconds newer than parent timestamp 1619660138. Minimum 4 seconds
2021-09-16 11:35:41.821+00:00 | EthScheduler-Workers-3 | DEBUG | GetBlockFromPeerTask | Downloading block 0xadbe5ff60e90a91ddb4d5e7d3864954eb7eb54b6a04fe0e5d93e2567dde0a6a6 from peer 0x5e4dcaa4d15b2b386b....
2021-09-16 11:35:41.821+00:00 | EthScheduler-Workers-3 | DEBUG | GetHeadersFromPeerByHashTask | Requesting 1 headers from peer 0x5e4dcaa4d15b2b386b....
"Invalid block header: timestamp 1619660141 is only 3 seconds newer than parent timestamp 1619660138. Minimum 4 seconds"
\n "Invalid block header: timestamp 1619660141 is only 3 seconds newer than parent timestamp 1619660138. Minimum 4 seconds"
************************* "Invalid block header: timestamp 1619660141 is only 3 seconds newer than parent timestamp 1619660138. Minimum 4 seconds"
Has joined the channel.
I'm a newby here to hyperledger besu! I've been reading over the documentation, and I see that on boot nodes one can configure the chain ID to be main net, rinkeby, or a permissioned network, etc.
I also see that a genesis.json is used as well to configure an entire network's chain ID
What I'm struggling to wrap my head around is, when creating nodes in a network, can I have nodes that exist on main net and nodes that exist on a private network that can interact with each other?
For example, let's say I have a private smart contract sitting on the private network of course that handles transactions that require permissioning. Could this smart contract inform / interact with a public smart contract that sits on a node configured for main net ethereum?
Thank you so much in advance! I'm eager to learn this technology
Hey everyone. I'm trying to run a besu node from a Raspberry Pi 4B, and I'm getting the following error when using 'besu --config-file':
`Uncaught exception in thread "main"
java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni9404827920401695231.so: /tmp/librocksdbjni9404827920401695231.so: cannot open shared object file: No such file or directory (Possible cause: can't load IA 32-bit .so on a ARM-bit platform)`
Hey everyone. I'm trying to run a besu node from a Raspberry Pi 4B with 4GB of RAM, and I'm getting the following error when using 'besu --config-file':
`Uncaught exception in thread "main"
java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni9404827920401695231.so: /tmp/librocksdbjni9404827920401695231.so: cannot open shared object file: No such file or directory (Possible cause: can't load IA 32-bit .so on a ARM-bit platform)`
How can I fix this? What am I doing wrong?
Has left the channel.
@macfarla
[ ](https://chat.hyperledger.org/channel/besu?msg=za6dsHxt3HEQABPCj) Hello ? i found my problem described here is the newer than parent timestamp required is 4seconds and i get 3 seconds how i fix this ?
Clipboard - September 16, 2021 5:35 PM
also i tested with fast and full with same result. i don't know why previous import work.
also i tested with fast and full with same result. i don't know why previous import work. but now sync-mode fast and full not working
also i tested with fast and full with same result. i don't know why previous import work. but now sync-mode fast and full not is working
Has left the channel.
Has joined the channel.
Has joined the channel.
Hey everyone. Short question: Where is the Dockerfile located which is used to build besu docker images?
start here https://github.com/hyperledger/besu/tree/main/docker
there is more than one
Ah thx! No idea why I didn't see this...
Was there any discussion about multi architecture Docker images? Currently I want to run besu on a Raspberry Pi for an experiment, but the Docker images does not support arm
you're the same guy who was recompiling native libs for arm right?
we depend on besu-native - you need to port it to arm first
Ehm... not that I remember :D At least not for besu
well ok. So right, first off, we don't support arm because our native dependencies don't support arm
look here https://github.com/hyperledger/besu-native
we can do without native, but it's slow. You can try to create a besu docker image for arm
Ok, will try to compile. Actually I just need to run a single node clique network, so I guess speed is not that important for me.
Regarding native stuff: I just was involved a bit in improving dependency situation of web3 library regarding multi platform support / removing strange pre-compiled dependencies, but never with besu until now.
Has joined the channel.
Hello everyone ! Hope this question hasn't been posted 1000 times (if yes, I am genuinely sorry). Me and my team are doing some POC on VM instrumentation and we are looking forward to use besu as a library. Would it be possible to have a more recent artifact published to maven central ? The last one is from March 2021 (21.1.1) and we need the last opcode changes from the newest versions :)
Has joined the channel.
Hello everyone, can I run besu on an ARM system?
Has joined the channel.
We don't post to maven central at this time. We maintain a jfrog repository at https://hyperledger.jfrog.io/artifactory/besu-maven/
Thanks for your answer !
Has joined the channel.
Has joined the channel.
scroll up
looks like we should post to maven central
Has joined the channel.
Hi, that was me trying to port native library to arm. I got occupied with office work and couldn't complete it.
I am still stuck on that, issue is with rust code having C_CHAR type coming as u8 where its expected to be i8. Haven't been able to fix this.
ok
Has joined the channel.
do all this please:
* open a draft PR with your progress
* point the issue in a comment on it
* ask for help
I am not a rust dev, can't help you, but let's give this one a chance
Sounds good with me, will do in coming 1-2 days.
In the meantime if there is a way i can build besu for arm without native, that will help me a lot. I need to have it on arm64 on new AWS linux.
no idea, it's not been tried
If you want to see arm support, open an issue on the besu repo
Okey, will do thanks :)
You did mention it can be done without native, what did you mean by that ?
on startup, besu checks if it can load the native libs
if they're not present, it defaults to a java impl instead which is slower
Okey, so if I build without native it should work ?
not been tried
I can try that, i was able to build the docker images for arm, will let you know tomorrow around the same time if it works
I ... I don't care. Just trying to help you here.
Make sure you open issues and tell everyone about it
don't post on a thread in rocket.chat
oh okey, will definitely do as you suggested.
There is a key provinance issue that hasn't been addressed. Perhaps you could work with RyJones to get a propsal?
Has joined the channel.
sure
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
You could try fiddling with the `blockperiodseconds` value in the genesis https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/Clique/#genesis-file
The short answer is no. Nodes have to be on the same network, ie chain, to talk to each other. (There are "bridges" and sidechains that do tricky things but don't start there if you're just learning :)
we don't support arm because our native dependencies don't support arm
look here https://github.com/hyperledger/besu-native
This tutorial describes how to confirm your network is producing blocks https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/#10-confirm-the-private-network-is-working
Has joined the channel.
Welcome new chat members! You can find our documentation here https://besu.hyperledger.org/en/stable/ and roadmap here https://wiki.hyperledger.org/display/BESU/Roadmap
Hi @Minnu, Hyperledger Besu and Fabric are very different architectures, so I wouldn't expect it to be easy to get Besu and Fabric applications to work well together. In particular, I'm not familiar with any ways to port a Fabric application to Besu. You might be able to find a bridge technology between Fabric and Ethereum, and this should work for any Besu network as well.
Has joined the channel.
Has joined the channel.
Hi, i just want to know what is the best block explorer with smart contracts verifications (algo proxy implementation as well) like etherscan, i'm looking because i use blockscout but has a lot of issues about payloads and requests of besu and Geth is not same.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello all. What is the importance of having a separate RPC node (not a validator node in the network)
Hello all. What is the importance of having a separate RPC node (not a validator node in the network)?
Has joined the channel.
Has joined the channel.
How do I fix the following error?
:tears: This happens when I fail to login 20 times
failed to enroll user: enroll failed: enroll failed: Response from server: Error Code: 73 - Incorrect password entered 10 times, max incorrect password limit of 10 reached
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi team, with 21.7.4, my boot node really had hard time to start, here is the log and the boot node stops logging after one min
2021-09-23 04:15:23.318+08:00 | main | DEBUG | NativeLibrary | Adding paths from jna.library.path: null
2021-09-23 04:15:23.318+08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-09-23 04:15:23.318+08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-09-23 04:15:23.319+08:00 | main | DEBUG | NativeLibrary | Adding system paths: [/usr/lib/x86_64-linux-gnu, /lib/x86_64-linux-gnu, /usr/lib64, /lib64, /usr/lib, /lib, /usr/lib/x86_64-linux-gnu/libfakeroot]
2021-09-23 04:15:23.319+08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-09-23 04:15:23.320+08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-09-23 04:15:23.320+08:00 | main | DEBUG | NativeLibrary | Looking for version variants
2021-09-23 04:15:23.324+08:00 | main | DEBUG | Native | Looking in classpath from jdk.internal.loader.ClassLoaders$AppClassLoader@5bc2b487 for secp256k1
2021-09-23 04:15:23.325+08:00 | main | DEBUG | Native | Found library resource at jar:file:/home/besu/lib/secp256k1-0.4.2.jar!/linux-x86-64/libsecp256k1.so
2021-09-23 04:15:23.330+08:00 | main | DEBUG | Native | Extracting library to /root/.cache/JNA/temp/jna13717384428871170343.tmp
2021-09-23 04:15:23.336+08:00 | main | DEBUG | NativeLibrary | Found library 'secp256k1' at /root/.cache/JNA/temp/jna13717384428871170343.tmp
What is wrong with the boot node? There is loading failure and the service has been started several times with no avail.
Hi Here is complaining about gas price when deploying a contract on IBFT2.0 network. Is it possible by bad params passed in for deployment?
Error: cannot estimate gas; transaction may fail or may require manual gas limit (error={"reason":"processing response error","code":"SERVER_ERROR","body":"{\n \"jsonrpc\" : \"2.0\",\n \"id\" : 48,\n \"error\" : {\n \"code\" : -32603,\n \"message\" : \"Internal error\"\n }\n}","error":{"code":-32603},"requestBody":"{\"method\":\"eth_estimateGas\",\"params\":[{\"gasPrice\":\"0x0\",\"from\":\"0x66bb001da0ced5c4544a60094aba035ec5d0b556\",\"data\":\"...........
.........
,"from":"0x66bb001da0cED5C4544A60094aBA035Ec5d0b556","gasPrice":{"type":"BigNumber","hex":"0x00"},"type":0,"nonce":{"_U":2,"_V":1,"_W":1,"_X":null},"gasLimit":{"_U":1,"_V":0,"_W":null,"_X":{"onRejected":null,"promise":{"_U":1,"_V":0,"_W":null,"_X":{"promise":{"_U":0,"_V":0,"_W":null,"_X":null}}}}},"chainId":{"_U":1,"_V":1,"_W":2018,"_X":null}}, code=UNPREDICTABLE_GAS_LIMIT, version=abstract-signer/5.4.0)]
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
hello team... It's OK to use besu-1.4.4 ? where can I find besu-1.4.4.tar.gz ? I got 404 from this link -> https://bintray.com/api/ui/download/hyperledger-org/besu-repo/besu-1.4.4.tar.gz
bintray shut down their services. We have the binaries here - https://hyperledger.jfrog.io/ui/native/besu-binaries/besu/1.4.4/
thank you @shemnon
Has joined the channel.
@shemnon ... do you know about orion-1.3.2.tar.gz too ?
https://bintray.com/consensys/binaries/download_file?file_path=orion-1.3.2.tar.gz
Has joined the channel.
Consensys moved it to a new repo. I don't know offhand. @lucassaldanha ?
Has joined the channel.
Has joined the channel.
Hi just asking about a good explorer for Besu except blockscout but with a lot of issues. Exist any roadmap to implement a explorer for Besu with smart contracts verification like etherscan but opensource ?
Has joined the channel.
Has joined the channel.
Hi everyone! I am a Product developer at a software company and i would like to know if Hyperledger besu is a viable client for building our private blockchain to production for sharing certain type of data in a transparent and descentraliced way with different members of our company ecosystem.
This is because i can see some warnings about that tutorials are only for educational purpose only, and i am willing to spend some dev resources into Hyperledger besu so they can start building
Has joined the channel.
Has joined the channel.
It's secure. The warnings are to give pause to people who cut and paste from a tutorial to a billion dollar AMM contract.
Has joined the channel.
Thank you very much for answering, it is good news then!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has left the channel.
Has joined the channel.
Has joined the channel.
https://cloudsmith.io/~consensys/repos/orion/packages/
https://cloudsmith.io/~consensys/repos/orion/packages/detail/raw/orion.tar.gz/1.3.2/
Is there a specific reason you're using old versions though? We recommend to use the latest versions.
Also Orion will be deprecated in November, as per https://github.com/ConsenSys/orion
The loading warnings can be ignored, you can see it is eventually found ` Found library resource at jar:file:/home/besu/lib/secp256k1-0.4.2.jar!/linux-x86-64/libsecp256k1.so` - it's just telling you where it is looking for native libs
We recently changed besu to ignore all unknown fields to eth_estimateGas. https://github.com/hyperledger/besu/pull/2690 If you are using an older version of besu, can you update and try again?
Has joined the channel.
Hey @iffathossain, most networks like to separate responsibilities to reduce the risk of impacting consensus. So the RPC node accepts and broadcasts transactions and reads and the validator nodes are responsible for block creation.
Each node can be tuned to the performance requirements of the role as well.
Hey @hjpn we don't have a specific recommendation (the Alethio Lite Explorer is bundled with Besu but only serves basic information) but would love your feedback on what works and doesn't for you. We have an ongoing desire to support whatever you'd like to use!
Has joined the channel.
Has joined the channel.
I'm following the lacchain tutorial -> https://github.com/lacchain/besu-pro-testnet/blob/master/roles/lacchain-bootnode/tasks/install-orion.yaml , and trying to put UP my first node... But after my node goes UP I'll install with new versions. For now, I'm learning about eth and besu.
This lacchain tutorial is too old, I'll isntall new version and make a pool request to update.
Screenshot from 2021-09-27 09-35-44.png
This url points to empty content.
Has joined the channel.
Has joined the channel.
Has left the channel.
Has joined the channel.
You're right, that is an empty archive... I think updating the tutorial to use later versions is the best option there
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi
can Besu execute rawtransaction?
i get this error: error" : {
"code" : -32602,
"message" : "Invalid params"
}
but with ganache instead of besu same transaction is correct ...
Has joined the channel.
Has joined the channel.
We recently changed besu to ignore all unknown fields to eth_estimateGas. https://github.com/hyperledger/besu/pull/2690 If you are using an older version of besu, can you update and try again?
Clipboard - September 29, 2021 11:08 AM
Why does my screen turning red when doing make docker with cello ?
Clipboard - September 29, 2021 11:09 AM
and this part here is telling me maybe I am not accessing the complete code ?
I am running this with newest docker Ubuntu 20.04 x64
clean installs updated, git clone, docker make
E: Package 'python-pip' has no installation candidate
The command '/bin/sh -c apt-get update && apt-get install -y bash curl python-dev sudo python-pip build-essential openssh-client libffi-dev libssl-dev && pip install --upgrade pip ansible pyyaml && groupadd -g ${gid} ${user} && useradd -d /opt/agent -u ${uid} -g ${user} ${user} && usermod -a -G root ${user} && echo "${user} ALL=(ALL) NOPASSWD: ALL"|tee /etc/sudoers.d/${user} && mkdir -p /opt/agent/.ssh && cd /opt/agent/.ssh && echo "host *" > config && echo " StrictHostKeyChecking no" >> config && echo " UserKnownHostsFile /dev/null" >> config' returned a non-zero code: 100
make: *** [Makefile:119: build/docker/agent/ansible/.x86_64-0.9.0-snapshot-8bd36c0] Error 100
shit, wrong room , my apologues,
But I have a feeling when install besu software stack, I am going to be over here with the same screens lol
Has joined the channel.
Hello, I have created a private chain IBFT and i want do deploy a contract by remix to this blockchain. How can i do?
Besu supports eth_sendRawTransaction https://besu.hyperledger.org/en/stable/Reference/API-Methods/#eth_sendrawtransaction
Has joined the channel.
there shouldn't be anything special that you need to do here - it's just making sure remix can talk to your besu node over http. https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-cors-origins
whether DAML had any advantage over solidity smart contract on Besu network? which is better - DAML or Solidity ?
Has joined the channel.
Has joined the channel.
Hey everyone. I'm trying to build besu-native(https://github.com/hyperledger/besu-native), but I'm getting the following error when running 'git submodule update', as stated in the Building section:
`Cloning into 'myPath/besu-native/secp256r1/besu-native-ec'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of 'git@github.com:ConsenSys/besu-native-ec.git' into submodule path 'myPath/besu-native/secp256r1/besu-native-ec' failed
Failed to clone 'secp256r1/besu-native-ec'. Retry scheduled
Cloning into 'myPath/besu-native/secp256r1/besu-native-ec'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of 'git@github.com:ConsenSys/besu-native-ec.git' into submodule path 'myPath/besu-native/secp256r1/besu-native-ec' failed
Failed to clone 'secp256r1/besu-native-ec' a second time, aborting`
Hey everyone. I'm trying to build besu-native(https://github.com/hyperledger/besu-native), but I'm getting the following error when running 'git submodule update', as stated in the Building section:
`Cloning into 'myPath/besu-native/secp256r1/besu-native-ec'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of 'git@github.com:ConsenSys/besu-native-ec.git' into submodule path 'myPath/besu-native/secp256r1/besu-native-ec' failed
Failed to clone 'secp256r1/besu-native-ec'. Retry scheduled
Cloning into 'myPath/besu-native/secp256r1/besu-native-ec'...
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
fatal: clone of 'git@github.com:ConsenSys/besu-native-ec.git' into submodule path 'myPath/besu-native/secp256r1/besu-native-ec' failed
Failed to clone 'secp256r1/besu-native-ec' a second time, aborting`
What can I do to fix this?
do you access git via SSH key or console login? I think the submoduels are set up for SSH keys only.
do you access github via SSH key or console login? I think the submoduels are set up for SSH keys only.
SSH key. I can try to use https instead. I haven't thought about using https instead though
Has joined the channel.
Has joined the channel.
Hello to all. I am using besu-21.7.3 and am having a problem with the maximum number of connections accepted by a node. Many connections are opened and closed after a very long time. I would like to know if there is a way to set a timeout for the single connection. Thanks
Has left the channel.
Has joined the channel.
Has joined the channel.
Hi everybody, could somebody explain the differences between IBFT2 and QBFT? So far I've got to know that QBFT is improved IBFT2, but I couldn't find any in depth comparison.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Besu's P2P code manages a lot of this automatically, with peer connections prioritised and/or closed according to a number of factors. There is no setting for individual connection timeout. There are options to manage remote connections eg https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#remote-connections-limit-enabled
Depending on your use case, configuring additional bootnodes might help?
Has joined the channel.
Has joined the channel.
Hello, I have some nodes in a public permissioned network. They are all synchronizing. New blocks are created every 2 seconds, I can see that in eth_blockNumber. However, when I use eth_syncing, the answer is false. Any clue?
Command: curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":51}' http://127.0.0.1:8545
Has joined the channel.
Hi Suzana! Could you please confirm the Besu version that you are running and the configuration that you are using (config + genesis).
I'd also like to see the result of net_peerCount on the node that is returning false for eth_syncing (https://besu.hyperledger.org/en/stable/Reference/API-Methods/#net_peercount).
https://besu.hyperledger.org/en/stable/Reference/Resources/
I think `eth_syncing` only returns true when the node is actively syncing ie it has to get out of sync
There is a public presentation here with some in depth info https://docs.google.com/presentation/d/1i3HYD1GTyku2R7Lp-jZaPkNmSrBdB0Wra2pXdcKGpKI/edit#slide=id.p1
Has joined the channel.
Has joined the channel.
Hi, I am having a problem regarding the blocktime
I have set the block interval as 5 seconds on my Besu configuration, and I am running 4 nodes on the same machine for testing purposes
I am receiving errors regarding the block timestamps, it seems that the blocks are being produced between 4.5 - 5.5 seconds
the ones produced in 4.5 seconds get rejected automatically due to blocktimestamps
Which causes my average block interval to be 12 seconds (due to blocks being rejected)
Here: ` Invalid block header: timestamp 1633529637 is only 4 seconds newer than parent timestamp 1633529633. Minimum 5 seconds`
Has joined the channel.
Has joined the channel.
hi
i would install a SSI stack in Besu platform. can you suggest a module or a software for doing it?
Any good block explorer suggestions? Blockscout seems to be not working with their latest release. It has fetcher issues. Besu returns "method not enabled" errors on their block & internal transaction fetchers
Has joined the channel.
Has joined the channel.
Hi, I have issues syncing Ethereum Classic using Besu `21.10`. Sync is OK until block 13.461.984 but now I have no peers, ` FullSyncTargetManager | No sync target, waiting for peers: 25`
with `org.hyperledger.besu.ethereum.p2p` in DEBUG, I can see a lot of "Too many peers." error
with `org.hyperledger.besu.ethereum.p2p` in DEBUG, I can see a lot of "Too many peers." errors
and a lot of `org.hyperledger.besu.ethereum.p2p.rlpx.handshake.HandshakeException: Decrypting an incoming handshake message failed
caused by org.bouncycastle.crypto.InvalidCipherTextException: Invalid MAC.` exceptions
and a lot of `org.hyperledger.besu.ethereum.p2p.rlpx.handshake.HandshakeException: Decrypting an incoming handshake message failed caused by org.bouncycastle.crypto.InvalidCipherTextException: Invalid MAC.` exceptions
The version is still 1.5.2. I know... we need to upgrade it!
What info do you want from the genesis file?
Has joined the channel.
Has joined the channel.
Could you try with the latest release?
`21.10` hasn't been released yet, are trying `21.10.0-RC1`?
`21.10` hasn't been released yet, are you trying `21.10.0-RC1`?
That's https://github.com/hyperledger/besu/releases/tag/21.7.4
Has joined the channel.
Has joined the channel.
we don't have a specific recommendation (the Alethio Lite Explorer is bundled with Besu but only serves basic information) but would love your feedback on what works and doesn't for you. We have an ongoing desire to support whatever you'd like to use!
What version of Besu are you using? The behaviour of the block period timestamp has been improved in recent releases.
This happens due to variability with the Java timer. Sometimes the timer delay can be shorter or longer than the specified value
Also what OS are using as this might also be factor?
As much as possible so we can try to reproduce the issue locally.
yes, but same problem with 21.7
Has joined the channel.
I have somehow enabled Blockscout and it seems to be working fine (except the internal transactions part I think(
Let me share my env variables to make Blockscout usable for Besu
```
SECRET_KEY
NETWORK
SUBNETWORK
ETHEREUM_JSONRPC_VARIANT
ETHEREUM_JSONRPC_TRACE_URL
ETHEREUM_JSONRPC_HTTP_URL
ETHEREUM_JSONRPC_WS_URL
PORT
COIN
DATABASE_URL
CHAIN_ID
```
These compiled fine, I forgot the Chain_id env variable before I guess
Ubuntu 20.04 (LTS) x64
and I am using besu-21.7.4
previously I was using Besu-21.1.2 with 4 different nodes running on 4 different devices with block interval of 2 seconds, I had no problem so far there and the network is still running.
5 seconds block generation + 4 nodes on same devices seems to be the root cause of the issue. Though I haven't tried 21.7.4 on 4 different devices
Has joined the channel.
Hey Everyone,
Currently, I have run the default structure of BESU. Which have 4 peers and 1 bootnode.
But Blocks are created automatically without any external transaction and it also affects storage. after 1-2 days storage is fulled.
How I can stop this continuous Block generation in BESU?
Thanks.
Has joined the channel.
Has joined the channel.
Thanks @Nithronium - are you saying you needed all of those environment variables defined for blockscout to work with Besu?
I just tested this locally - started a node that's producing blocks, it's up to 11000 blocks, started another node with an empty db and it returns true for eth_syncing while it's catching up (but only for the 5 or so seconds it takes to get to chain head). But once it's in sync (ie only importing the 1 or 2 blocks it's behind), it always returns false.
```➜ ~ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":51}' http://127.0.0.1:8555
{
"jsonrpc" : "2.0",
"id" : 51,
"result" : {
"startingBlock" : "0x0",
"currentBlock" : "0x24fe",
"highestBlock" : "0x2cef"
}
}%
➜ ~ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":51}' http://127.0.0.1:8555
{
"jsonrpc" : "2.0",
"id" : 51,
"result" : false
}%
```
Thanks for checking this Sally. Maybe we should update the docs to clarify the behaviour of this method? Unless this isn't the expected behaviour?? :thinking:
I've checked the Ethereum API spec and this is the expected behaviour.
So yeah, it looks like a note on the docs is enough.
https://github.com/hyperledger/besu-docs/pull/822
Have seen this locally as well occasionally. Hopefully this doesn't happen too often. We have raised a ticket to look at increasing the accuracy of the block timer https://github.com/hyperledger/besu/issues/2798
Has joined the channel.
Hello Everyone,
I am following this tutorial for private network creation : https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/.
So, here i am trying to create one more validator but facing an issue inspite of getting result as true by all the running nodes.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=5dHK4LGcjfvYKbzj6) Same, I'm also facing! Please can anyone guide here ? What is wrong there?
Has joined the channel.
Has joined the channel.
hi
Hello everyone,
We have found a lot of files named “logBloom-??.cache” saved at data/cache in our Besu installation. Are these files used to optimize the search of events? Will we face slower queries if we delete them?
Thank you for your help
Has joined the channel.
If you delete them Besu will re-generate them, possibly as late as the next restart. The queries will be generally slower until the cache is re-generated.
when including a new validator in an IBFT2.0 permissioned network using voting (https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/Add-Validators/), I can use ibft_getPendingVotes to check if the vote of a validator was computed or not. Is there a way to know what is the state of voting for all validators? I mean, how to make sure that the votes are happening, remember who still not vote etc.
Is there a dashboard where I check all votes until now?
Has joined the channel.
Has joined the channel.
Thanks @SuzanaMaranhao for the feedback, we do appreciate it! And @lucassaldanha for making the docs better :rocket:
Can you give some more info - exactly what step fails and what error are you getting?
Unfortunately there is no dashboard that gives the overall state of the votes. Like you mentioned the best way is to check voting state for each the nodes using ibft_getPendingVotes.
https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
I am following this tutorial and want to add one more validator.
So, will you guide me how to do this?
Has joined the channel.
So the quickstart docker image is designed to be self-contained, and enable you to play around with the RPCs and so on. The quickstart docker image has 4 validators and one bootnode. Are you trying to add a validator outside of the quickstart docker image?
yes from outside
Can you please guide me how to do add validator on this.
And one more question in private network blocks are generated continously without any external transaction.
So, how can i stop the block generation?
Yes, these are required, I have set everything except the chain_id parameter, it didn't work
after setting chain_id, it was working perfectly fine
Is it possible to implement sidechain with besu?
is it possible to check if pruning is enabled in a already running besu network?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi Chris, yes it is possible.
This tutorial steps through how to add a validator. https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Adding-removing-IBFT-validators/
Thanks @macfarla :innocent:
Can you guide me in my one more issue, actually i have created private network but blocks are created continously without any external transaction and eating up the space of my system.
So, is there any way to stop generating blocks automatically?
Hey @ShaharinAhmed, Did you find any solution for the Same? As I also faced the same issue about storage space.
Hey @ShaharinAhmed, Did you find any solution for the Same? As I also faced the same issue. My 100Gb disk usage keeps on growing and after 2-3 days It stops running!
Has joined the channel.
hey @VijayMichalik, is there any update related same? As I also faced the same issue as @ShaharinAhmed.
I am working on production and my network was stopped because of a storage issue And I did restart the network then I lost all old DATA. Can you please guide me here? What I can do for that As I'm stuck between this.
hey @VijayMichalik, is there any update related same? As I also faced the same issue as @ShaharinAhmed
I am working on production and my network was stopped because of a storage issue And I did restart the network then I lost all old DATA. Can you please guide me here? What I can do for that As I'm stuck between this.
hey!
I'm also facing the same issue, any guide will be appreciated.
Hello,
I am trying to use elethio lite explorer by following this article : https://besu.hyperledger.org/en/stable/HowTo/Deploy/Lite-Block-Explorer/
but when i runs it with node js it shows nothing on my http://localhost:3000/ only blank screen.
Can anybody know, what may be the issue here?
Thanks.
Has joined the channel.
Can anyone share transaction lifecycle in besu ( Private Network - IBFT 2.0 ). I was trying to understand how the transaction will flow in a private network, I have searched everywhere but I didnt get it. Appreciate your help if any :)
Question 2: What are the best practices when we are deploying private network ( IBFT 2.0 ) in multiple data centers as active-active mode. Is it recommended to assign a node both boot node and validator node or we should keep them separate in production private network ?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi do you perhaps have access to the logs, perhaps you'll find something similar to:
`2021-10-13 19:38:51.870+00:00 | StatePruning-0 | INFO | Pruner | Starting Pruner.`
Alternatively if you have metrics enabled you should be able to see some metrics if pruning is enabled.
Here's a topic in the documentation that may help:
https://besu.hyperledger.org/en/stable/Concepts/Privacy/Private-Transaction-Processing/
Has joined the channel.
Has joined the channel.
Hi @charlie.dev could you clarify what you mean by active-active mode? Is that a validator in each DC?
By and large there are no hard and fast rules re nodes, but the general practise is to work with the governance model of your org. For example validators are often sealed off and only allowed to talk to other validators, bootnodes and selected rpc nodes, but you can have them open to all. The general rule of thumb is to have seperation of concerns ie validators only produce blocks, specific nodes for txns and others may be for read only operations/bootnodes etc
By and large there are no hard and fast rules re nodes, but the general practise is to work with the governance model of your org. For example validators are often sealed off and only allowed to talk to other validators, bootnodes and selected rpc nodes, but you can have them open to all. The general rule of thumb is to have seperation of concerns ie validators only produce blocks, specific nodes for txns and others may be for read only operations/bootnodes etc.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Lets see if we can get a fix on that. This wasn't an issue on 21.1.2, were there any changes related to the timers on the recent updates?
Hello, a query. I have been testing Hyperledger Besu on my local machine. And now I need to deploy it on AWS instances. Now, I'm going to need to use Metamask and I don't know if I can do it if I choose a VPC type architecture, since it would be a private network.
Can a VPC with a public gateway be used for these cases? I haven't found any guide.
thanks
Has joined the channel.
We want to remove all the old blocks in our Besu testnet and start the generation of blocks all again. What is the best way to do that?
@chris2222 In fact, Palm NFT Studio runs a sidechain on Hyperledger besu for their network
Has joined the channel.
Has joined the channel.
Hey guys I have a comment on the documentation / code provided for securing for JSON RPC connections
Here: https://besu.hyperledger.org/en/stable/HowTo/Interact/APIs/Authentication/
Is there any particular reason for why the mandated algorithm is RSA-2048?
Given the fact we're dealing with cryptocurrencies to begin with, the departure from ecdsa / edwards' curves struck me as a bit strange (I'm guessing ecdsa is out bc rsa provides encryption); but I have an issue with the weakness of the algorithm mandated (since the documentation is about securing JSON RPC).
Recently, the NSA published renewed guidance affirming that RSA-2048 keys should be deprecated in favor of ones that are at least 3096-bits. That aside though the JWT protocol allows for the use of much stronger algorithms that can be executed by virtually any major cryptographic library (OpenSSL, libgcrypt, NaCL, libsodium, Botan, etc.)
Has joined the channel.
AFAIK it is not mandated, it is mentioned; `The key must use an RSA private key of at least 2048 bits.` and the guide shows how to create one,
you can change the settings for 4096 too, it is up to you
Has joined the channel.
It is mandated.
Clipboard - October 15, 2021 12:11 AM
Verbatim, it states, "The key must use an RSA private key of at least 2048 bits"
Sorry I misspoke. It doesn't restrict it to that bit-size, but it does restrict the algo to RSA.
I don't want to be a dick, but that restriction honestly defeats the purpose of even provisioning any type of JWT-based API auth. for Besu. Using 3096+ bit keys in a world where smaller, more efficient, secure, and flexible algos are out there is a no-go for most if not all devs at this point.
Is there some drawback to allowing other key algos to be used for the generated JWT pubkey?
You can delete the data in Besu's data directory to restart generating from block zero. The data directory is configured in the `--data-path` CLI option
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#data-path
Hi @damianlluch you can put the instance in a VPC but preferable in a public subnet so metamask can connect to it. Enable the 'public_ip' option when you spin it up. If you are deploying the instance in a private subnet you need a VPN or tunnel or equivalent that will resolve and connect to your instance
It may also be a good practice to change the `chainId` and probably something from your genesis like the `timestamp` to make sure you start building a completely different chain
Hi everyone. Sorry if this is a beginner question, but how do I build myself the besu docker images?
Has joined the channel.
Hi everybody, I've been diving into Besu for the past couple days, trying to get an Ethereum chain setup on AWS.
I have one instance on HDD and one on SSD. One thing I noticed is that the eth_syncing return object is different between the two
On HDD it has 2 extra keys, "pulledStates" and "knownStates". My SSD blockchain doesn't have those two keys in its object
We wanted to make both nodes an archive node, but I am guessing we accidentally synced one of them in fast mode
The other thing I noticed is that the HDD version (the one with the additional key-value pairs in its eth_syncing return object) seems to be syncing a lot faster than the SSD version (the one with out "pulledStates" and "knownStates"). Any idea why this might be?
Also, it seems like the sync process times out sometimes. On my HDD node, it seems like it has gotten stuck on block 0x9d6fa0. I'm not sure if I should just let it continue or do something?
HDD is running in fast sync mode. Not useful as an archive node The block number is just the download over the p2p, no processing.
HDD won't be able to keep up with block processing at chain head. No client can on an HDD
Has joined the channel.
Thanks for the quick reply. Yeah that's unfortunately what I was suspecting. Do you think it's possible to do the original sync on SSD and then convert the disk to HDD when the initial sync is complete? That was my plan because HDD is like 1/10th of the cost of SSD on AWS
Has joined the channel.
Has joined the channel.
Hi
I am new to Quorum and wanted to try it out. I followed the instruction on the guide --> https://consensys.net/quorum/products/guides/getting-started-with-consensys-quorum/
Unfortunately, along the way I encountered a difference between the instruction on the guide vs the actual execution. The guide mentioned that I should answer "Y" when prompted this question "Do you wish to enable support for logging with ELK (Elasticsearch, Logstash & Kibana)? [y/N]", however what I saw when in the actual execution is
"Do you wish to enable support for logging with Splunk or ELK (Elasticsearch, Logstash & Kibana)? Default: [1]
1. None
2. Splunk
3. ELK
"
So I answer "3" since it is the closest to what the guide meant.
Subsequently, it continues to run and ended with this error "Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /Users/Thomas/work/quorum/quorum-test-network/logs/tessera"
My system config as follows:
- macOS Big Sur 11.6
- nodeJS v13.5.0
Hi
I am new to Quorum and wanted to try it out. I followed the instruction on the guide --> https://consensys.net/quorum/products/guides/getting-started-with-consensys-quorum/
Unfortunately, along the way I encountered a difference between the instruction on the guide vs the actual execution. The guide mentioned that I should answer "Y" when prompted this question "Do you wish to enable support for logging with ELK (Elasticsearch, Logstash & Kibana)? [y/N]", however what I saw when in the actual execution is
"Do you wish to enable support for logging with Splunk or ELK (Elasticsearch, Logstash & Kibana)? Default: [1]
1. None
2. Splunk
3. ELK
"
So I answer "3" since it is the closest to what the guide meant.
Subsequently, it continues to run and ended with this error "Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /Users/Thomas/work/quorum/quorum-test-network/logs/tessera"
My system config as follows:
- macOS Big Sur 11.6
- nodeJS v13.5.0
- Docker 20.10.8, build 3967b7d
Please help! thanks!
Has joined the channel.
Has joined the channel.
Has joined the channel.
So my HDD node had crawled to a halt around block 10,000,000. I killed the sync command and restarted it, and now it is syncing quickly again.
Has joined the channel.
Has joined the channel.
Hi @ThomasTeo what options did you select? Besu -> Privacy -> ELK ?
Hi, do you want to run a customised Besu docker image?
Otherwise, instructions to run Besu using Docker can be found here:
https://besu.hyperledger.org/en/latest/HowTo/Get-Started/Installation-Options/Run-Docker-Image/
You can also run the development version by replacing `latest` with `develop`
I'm able to replicate this behaviour. Are you able to run using the Docker image?
Alethio isn't currently under active maintenance.
You raise a good point @Librechain - I don't think there's a good reason for this restriction. In theory, we can support whatever algorithms the JWT spec and Vertx can support. Would you create a GitHub issue for this and we can see where it fits in terms of priorities!
Has joined the channel.
Has joined the channel.
yes, with docker i am running it successfully but not with node js
Screenshot 2021-10-18 at 11.00.43 AM.png
Screenshot 2021-10-18 at 11.00.43 AM.png
Screenshot 2021-10-18 at 11.00.43 AM.png
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello,
How to add a new node in besu ?
I followed exactly to the guide. I chose Besu and followed by
- "N" for Codefi Orchestrate
- "Y" for Private Transactions
- "3" for ELK
thanks
Hello!
Anyone who works with Hyperledger Besu? What is the best alternative to use as a block explorer?
I have 4 nodes on two AWS instances working perfectly, and I would like to add the block explorer, I have seen several on github. And I have also seen blockscout on AWS which is available to deploy on one instance. Now, reviewing the blockskout documentation for manual deployment, I see it complicated, I think the documentation is not clear.
Any other option? any clear blockskout tutorial?
thanks
Has joined the channel.
Hi @Bhawikchawda Have you sent any transactions to the network? If you use the privacy examples that will send a few across. An uncle /ommer is a block that is orphaned becuase its not on the same longest chain - in the above your network doesn't have any - this is a good thing
https://github.com/web3labs/epirus-free is an alternative. Blockscout is easy enough to deploy but is quite heavy on the RPC calls because of a lack of support for ws. Ultimately I think it depends on what would you like the blockexplorer to do - each has pros/cons
https://github.com/web3labs/epirus-free is an alternative. Blockscout is easy enough to deploy but is quite heavy on the RPC calls so use the ws. Ultimately I think it depends on what would you like the blockexplorer to do - each has pros/cons
Can you confirm you've raised memory for docker to cater for ELK please?
Clipboard - October 19, 2021 7:40 AM
Clipboard - October 19, 2021 7:41 AM
https://besu.hyperledger.org/en/latest/Tutorials/Private-Network/Create-IBFT-Network/#7-start-node-2 Hi @Bhawikchawda the new node just needs the same genesis file and access to the bootnodes
Clipboard - October 19, 2021 7:43 AM
The docker deployment is the easiest of the lot and you connect to a load balancer https://docs.blockscout.com/for-developers/information-and-settings/docker-integration-local-use-only
Has joined the channel.
Has joined the channel.
For IBFT2, QBFT, Clique and ethash, besu creates blocks even without transactions being submitted. You can increase the timing so that there's more time between blocks but you can't stop Besu from creating empty blocks.
Has joined the channel.
Has joined the channel.
Yes, I have done dozens of transaction but dont know why explorer is showing 0 transaction.
Thanks @macfarla,
I got my answer.
https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
I am following this tutorial.
So, can you guide me how to add new node in this ?
Thanks
https://besu.hyperledger.org/en/stable/Tutorials/Examples/Private-Network-Example/
I am following this tutorial.
So, can you guide me how to add new node in this ?
Thanks
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi @Bhawikchawda so how far have you got ie is your network up? In general to add a node you need :
1. the new node to have the same genesis file as the existing network
2. be able to connect to the bootnodes & as many other nodes as possible.
3. If you use permissions then you need to add the new node's enode to the permissions file of every existing node
So with the quickstart you have permissions being used and you have a couple of options to go:
- run another container standalone via `docker run -d network=quorum-dev-quickstart -p -v ./loca/path/to/genesis:/config/genesis.json hyperledger/besu:latest --genesis /config/genesis.json --rpc --bootnodes=
So with the quickstart you have permissions being used and you have a couple of options to go:
1. Run another container standalone via `docker run -d network=quorum-dev-quickstart -p -v ./loca/path/to/genesis:/config/genesis.json hyperledger/besu:latest --genesis /config/genesis.json --rpc --bootnodes=
In the logs for this node, you will get an enode which you now need to update all the existing nodes with either by adding it to the permissions file https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/config/besu/permissions_config.toml . This file should be in the config directory of where you do the ./run.sh command from. Once added you need to restart all the existing nodes
Alternatively instead of restarting make an API call to each node via https://besu.hyperledger.org/en/latest/Reference/API-Methods/#perm_addnodestoallowlist
2. Create another node similar to the rpcnode (https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/templates/besu/docker-compose.yml#L423) in the compose file itself and give it a known set of keys (https://github.com/ConsenSys/quorum-dev-quickstart/tree/master/files/common/config/nodes) and a known IP. Add the enode to the permissions file https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/besu/config/besu/permissions_config.toml and restart the docker-compose file
This is the simpler of the two. In real networks, the former is generally done
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
hi all, I was wondering if CODEFI Assets (https://github.com/ConsenSys/UniversalToken) runs on Hyperledger Besu
can anyone assist?
new to all this :)
hi
how can i integrate sovrin framework in besu ?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
You can definitely run the Codefi UniversalToken on Besu!
if it runs on ethereum it can run on besu :)
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi all, Is there a way to set the minimum number of transactions for a block in besu? I am using the IBFT 2.0 protocol and there are a lot of empty blocks that are created when are no transactions on the network!
They use too much space and I would like to make it more efficient
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi all, how do you allow metamask to interact with the network with the rpc-http-cors-origin option other than using "all" or "*". metamask was not able to connect to the network since i made rpc-http-cors-origins=["https://remix.ethereum.org"] instead of using "*"
Hi all, how do you allow metamask to interact with the network with the rpc-http-cors-origin option other than using "all" or "*". metamask was not able to connect to the network since i made rpc-http-cors-origins=["https://remix.ethereum.org"] instead of using "all"
Hi all, how do you allow metamask to interact with a private network with the rpc-http-cors-origin option other than using "all" or "*". metamask was not able to connect to the network since i made rpc-http-cors-origins=["https://remix.ethereum.org"] instead of using "all". i am now using the quorum quickstart network and changing the cors origin configuration in the configuration.toml
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
hi @NikunjPurohit - not at this stage. This is a possible future enhancement for QBFT.
Adding `https://remix.ethereum.org` would allow you to use remix with your besu node. Are you trying to use remix, or metamask? Or both? To allow a client to connect via metamask, you need to add the client domain https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-cors-origins
Right now I am trying to use both metamask and remix as I want to allow remix to interact to the network through metamask. the problem that i encounter is that im not sure for what the client domain is for metamask. I tried adding the url extension `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` however its still not working for me
Right now I am trying to use both metamask and remix as I want to allow remix to interact to the network through metamask. the problem that i encounter is that im not sure for what the client domain is for metamask. I tried adding the url extension
`chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` however its still not working for me
Hi @macfarla, right now I am trying to use both metamask and remix as I want to allow remix to interact to the network through metamask. the problem that i encounter is that im not sure for what the client domain is for metamask. I tried adding the url extension
`chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` however its still not working for me
Hi @macfarla, right now I am trying to use both metamask and remix as I want to allow remix to interact to the network through metamask. the problem that i encounter is that im not sure for what the client domain is for metamask. I tried adding the url extension
`chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` based on this https://metamask.zendesk.com/hc/en-us/articles/360015290012-Using-a-Local-Node however its still not working for me
Has joined the channel.
Has joined the channel.
Hello @NikunjPurohit
Have a look on this:
https://besu.hyperledger.org/en/1.3.5/HowTo/Configure/Consensus-Protocols/IBFT/
Hello @NikunjPurohit
Have a look on this:
https://besu.hyperledger.org/en/1.3.5/HowTo/Configure/Consensus-Protocols/IBFT/
There is one property in genesis file i.e blockperiodsecond.
Hello @NikunjPurohit
Have a look on this:
https://besu.hyperledger.org/en/1.3.5/HowTo/Configure/Consensus-Protocols/IBFT/
There is one property in genesis file i.e blockperiodseconds.
Has joined the channel.
hello @joshuafernandes,
docker run -d network=quorum-dev-quickstart -p -v ./loca/path/to/genesis:/config/genesis.json hyperledger/besu:latest --genesis /config/genesis.json --rpc --bootnodes=
Has joined the channel.
Hello, all...
I created 4 nodes on 2 servers.. First server is Bootnode and node2. The second server (2 nodes) connects to the bootnode smoothly.
But the "peers" count are: Bootnode: 3 peers, node2: 1 peer, node3: 2 peers, node4: 2 peers.
What am I doing incorrectly? Shouldn't it show 4 peers for all nodes?
Hi @Bhawikchawda can you confirm that you have a genesis file at `./local/path/to/genesis.json` - you need to provide the relative path to the genesis file here. https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#genesis-file Also `--bootnodes=
Have a look in the compose file how we configure the nodes. https://besu.hyperledger.org/en/latest/HowTo/Configure/Using-Configuration-File/ We use a config file `config.toml` and cli args are sometimes added depending on the type of node
They should show 3 for all of them if peered right ( total - self). Generally they will get to 3 in time after they gossip for a while. Sometimes its depends on how they've been started ie if they all come up at the same time node 3 may not see node 4 from the bootnodes, I'd suggest bringing up them up in sequence and waiting 30s in between for them to communicate and start. ie bootnode first -> node 1 -> node 2 and so on. With each successive node that joins the bootnode will report them as peers to the next joining node
Thanks for response.. OK, I will wait a while.
I started them as shown in the setup guide. Will update here in both cases.
How can I know which peers I am connected to?
Hello,
How can i run my config.toml file through docker?
Can i simply use config.toml file to run node in docker, if yes then how?
Thanks :innocent:
https://besu.hyperledger.org/en/latest/Reference/API-Methods/#admin_peers
You can mount it to a volume and then call besu an pass it the path. Its what we do for all the nodes in the quickstart. Please have a look at https://www.npmjs.com/package/quorum-dev-quickstart
https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/templates/besu/docker-compose.yml#L370
Yep, sure can https://chat.hyperledger.org/channel/besu?msg=ZrJPpCvyGSCtgH2tL
https://chat.hyperledger.org/channel/besu?msg=QmaNGHTDd8g3aHoRy
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
I've just created a ticket to clarify the requirements for this scenario since I'm not sure of the answer off the top of my head. https://github.com/hyperledger/besu/issues/2949
Has joined the channel.
Welcome to the new members :-) Let us know if you've got any questions about getting started with Hyperledger Besu.
:wave: The quickstart is a good place to start!
Hello @joshuafernandes ,
sudo docker run -p 8549:8549 hyperledger/besu:latest --config-file=/config/besu/myconfig.toml
I am executing above command but it always gives me an error that file not found, however i have checked thousand of time to ensure that file path is correct and its absolutely correct here.
can you guide what may be the issue here?
Thanks
Has joined the channel.
Has joined the channel.
Hi, to change the block generation time of a project that is already started, I should just stop the nodes and change the blockperiodseconds value in the genesis file and run the nodes again, right?
thanks
[ ](https://chat.hyperledger.org/channel/besu?msg=MopdsLmNxfdv4ut4F) You should resume the network if you dont want any data loss.
You should resume the network if you dont want any data loss.
Hello...
To start a boot node we start it like node-1 in the guide?
Would it recognize the other nodes in this way?
Else, how do we setup additional bootnodes? Because from I get, we do not provide the other enode id when we start a boot node ...
Hello...
To start a boot node we start it like node-1 in the guide?
Would it recognize the other nodes in this way?
Else, how do we setup additional bootnodes? Because from I get, we do not provide the other enode id when we start a boot node ...
Or what the answer to this:
Hello...
To start a boot node we start it like node-1 in the guide?
Would it recognize the other nodes in this way?
Else, how do we setup additional bootnodes? Because from I get, we do not provide the other enode id when we start a boot node ...
Or what's the answer to this: what defines a boot node.?
Thanks!!
I think it runs on port 25000 by default.
Thanks @joshuafernandes ...
I setup a vpc with a private and a public network, and put nodes in both.
Private nodes connect with just the public node, and the public is open to the Internet.
Aahh.. It's the bootnodes file..
Thanks, and please correct me if that's wrong.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Nice work @shadiayoub! on the public node would also recommend setting the CIDR to allow traffic to your IP only and not the world else you could get a bunch of unneeded reqs come through. ie open 8545 etc to your IP instead of 0.0.0.0/0
Yep @damianlluch , normally do one validator at a time in a rolling restart manner (what we do for updates to Besu versions). This keeps the network live and producing blocks and doesn't take it down.
Yep, that makes sense. How do you mount the genesis file in the above command? ie the file may exist locally on your machine but how does it get into the container. Refer to https://docs.docker.com/storage/volumes/ . In the command above I gave you ` -v ./loca/path/to/genesis.json:/config/genesis.json` did that and you need to edit the path as per your setup
Has joined the channel.
yeah you got it - there's nothing about the node itself that makes it a bootnode, it's that other nodes have it in their bootnodes file
Has joined the channel.
Thanks!
In fact, it says in the documentations that: blocktime is one of the attributes that cannot be changed after starting a network. So I believe you'll need to restart it as a new network after you change blocktime.
"The blockperiodseconds, blockreward, and miningbeneficiary properties cannot be updated once your network is started."
https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#genesis-file
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello
Is there a way to produce the accountkey file content from the public/private keys for a node?
I am referring to the files in /config/nodes folder in the quickstart after running the setup.
I want to use the quickstart to create a network what does not use the default keys for nodes.
Thanks @joshuafernandes :)
Yeah, on the public node's private interface, there has to be a rule to allow certain ports from specific ip's.
Thanks for the addition.
Yes I've added a script in the `extra` folder which you can use, docs should be up in a couple of days
Yes I've added a script in the `extra` folder which you can use, docs should be up in a couple of days https://github.com/ConsenSys/quorum-dev-quickstart/blob/master/files/common/extra/generate_node_details.js
You'll likely need to get the latest version of the quickstart 0.0.41 I think which has this functionality
The accountkey specifically is only needed for goQuorum - Besu doesn't do account management so you'll need to use something like ethsigner https://docs.ethsigner.consensys.net/en/latest/Tutorials/Start-EthSigner/ or QKM https://github.com/ConsenSys/quorum-key-manager
:thumbsup:
Thank you very much!
It shows the transactions for the block from memory, if you know the hash of the block enter that in the search bar and it'll pop open the block view which details all txns in there
Same for a txn - you can search by txn hash
Has joined the channel.
Has joined the channel.
What is a recommended approach to use Quickstart for setting up a network on two computers?
So the second setup should use the first node as a bootnode.
Has joined the channel.
Hello, is it possible to change the duration of block generation after starting the network? Will it work if all nodes update the genesis file?
I believe you will need to restart as a new network in case of changing blocktime.
This is a caution from Besu's website:
The blockperiodseconds, blockreward, and miningbeneficiary properties cannot be updated once your network is started.
https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#genesis-file
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello, a very basic question: How to do a backup in my Besu node?
I know one possibility would be to have another node in my institution. But, if I want to store this backup offline, together with other storages, should I only copy the block files? Is it common to do that?
It's basically the data-path dir - does this page help at all? https://besu.hyperledger.org/en/stable/HowTo/Backup/Backup/#data-backups
Has joined the channel.
yes, thank you
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi all, I am creating ibft2.0 based private besu network with 4 nodes, the network is working fine but am not able to access the node (neither from host machine nor from inside the same container) getting the error - 'Host not authorized' . I have already provided 'BESU_HOST_WHITELIST="*"' env variabel in all the containers, still the issue is same.
Can you share the command that you used to start the nodes?
What is the EVM version of besu?
I am using docker-compose, this is configuration of one of the node -
version: "3"
services:
Node-1:
image: 'hyperledger/besu:latest'
environment:
- BESU_DATA_PATH=data
- BESU_GENESIS_FILE=data/genesis/genesis.json
- BESU_RPC_HTTP_ENABLED=true
- BESU_RPC_HTTP_API=ETH,NET,IBFT,WEB3
- BESU_HOST_ALLOWLIST="*"
- BESU_RPC_HTTP_CORS_ORIGINS="all"
- BESU_P2P_PORT=30303
- BESU_HOST_WHITELIST="*"
ports:
- "8545:8545"
working_dir: /opt/besu
volumes:
- ./genesis:/opt/besu/data/genesis
- ./Node-1/data/:/opt/besu/data
container_name: node_1
networks:
besu:
ipv4_address: 172.16.1.2
restart: always
Has joined the channel.
Has joined the channel.
Has joined the channel.
Besu's EVM supports all of the Mainnet forks and all of the Classic forks. So London is probably the answer you are looking for.
Has joined the channel.
Has joined the channel.
How can I set the quickstart to use IBFT instead of QBFT?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
where are you getting the 'Host not authorized' - eg are you trying to send an RPC call?
also you don't need both BESU_HOST_ALLOWLIST and BESU_HOST_ALLOWLIST - they are aliases for the same option. you can just use BESU_HOST_ALLOWLIST
BESU_CONS_ALGO here -> https://github.com/ConsenSys/quorum-dev-quickstart/blob/e537dfff19beb16eaeec99656a342bcbe06fbbd7/files/common/.env
Welcome new members 🙂 Let us know if you've got any questions about getting started with Hyperledger Besu. The quickstart is a good place to start!
Has joined the channel.
New issue: https://github.com/hyperledger/besu/issues/2981
Thanks a lot
Has joined the channel.
Has joined the channel.
Cheers! I was wondering if there was a OpenAPI / Swagger file for the Hyperledger Besu API. I wasn't able to find one.
Thanks in advance!
Welcome everybody!
Has joined the channel.
good day all!
I currently have an application I've built on besu private instance, and I was curious if anyone has explored with taking a private (or public) besu project and attempted a bridge to polygon yet.
WOuld anyone be open to helping me spec this out?
Hello... I would start by looking for existing Ethereum to Polygon bridges and take it from there...
When we change the nodes key files in quickstart, we still have to update the extradata in genesis file, correct?
Given that we update all the related files that contain the enodes.
When we change the nodes keys and use quickstart, we still have to update the extradata in genesis file, correct?
Given that we update all the related files that contain the enodes.
What are the correct steps to using QuickStart with new keys, please?
1. Generate keys
2. Update enode addresses in relevant files.
3. Export code for 'extradata' field in Genesis.
Network is still not coming up. Explorer shows -1
We have a permissioned network in operation for 1 year in contantinopleFixBlock. I am trying to discover for what hard fork should I upgrade. I have seen that https://eips.ethereum.org/meta contains a list of hardforks. Looking to this site, I concluded that I should go to Hardfork Meta: Muir Glacier (It is the last one in Final category). Berlim still appears as Draft.
What is the best link to provide me with info to decide the protocol upgrade of a Besu network?
London.
Thanks, @shemnon. Is there a site with the list of all hardforks and their starting block?
https://github.com/ethereum/execution-specs#ethereum-protocol-releases
That is exactly what I need. Thank you. I think it is a good idea to include this link in protocol upgrade documentation.
Should I update the network from Constantinople to London directly, right?
Is it a zero wei/gas network? There may be a second flag you may need to turn off the fee market. Berlin doesn't have the fee market and has all the functional gains (and most of the gas schedule changes).
Yes, zero wei/gas net. What flag are you talking about?
There were some second-price fee market chagnes in London. I think some of the private network consensus team members should chime in on how it impacts private networks. @macfarla / @lucassaldanha
I generated keys for nodes using the key generator in extra data (nice work).
Then changed the enode addresses in all the relevant files.
And exported the node addresses to RLP, and put the output in extradata field in genesis.
But when running the network, it never comes up. Explorer says -1.
I generated keys for nodes using the key generator in extra data (nice work).
Then changed the enode addresses in all the relevant files.
And exported the node addresses to RLP, and put the output in extradata field in genesis.
But when running the network, it never comes up. Explorer says -1.
What's is missing please?
For private networks London is not yet supported, so Berlin would be the hard fork of choice.
No we haven't done this for Besu. Besu docs are pretty good though! https://besu.hyperledger.org/en/stable/Reference/API-Methods/
@SuzanaMaranhao in answer to your question. We have this on our list of things to do but it isn't near the top right now. Is this going to be a problem for your use case?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has left the channel.
Has joined the channel.
Endpoint_error_message
Hi, I am deploying Besu v21.1.1. I am able to send the private transactions using web3js-quorum library method *generateAndSendRawTransaction* [https://consensys.github.io/web3js-quorum/latest/module-priv.html#~generateAndSendRawTransaction]. While interacting with my deployed contract, via express app, I am getting the following error message:
Hi, I am deploying Besu v21.1.1. I am able to send the private transactions using web3js-quorum method *generateAndSendRawTransaction*. While interacting with my deployed contract, via express app, I am getting the following error message: "The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu."
Any piece of advice will be appreciated. Thank you.
Hi, I am deploying Besu v21.1.1. I am able to send the private transactions using web3js-quorum method *_generateAndSendRawTransaction_*. While interacting with my deployed contract, via express app, I am getting the following error message: "The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu."
I understand from the documentation that the above mentioned method uses *_eea_sendRawTransaction_* to generate the privacy marker transaction and distribute the private transaction. How can I interact with my deployed contract using *_generateAndSendRawTransaction_*?
In the versions 21.7.0 and above of Besu Documentation I can see the the guidelines for "Interacting with Deployed Smart Contracts" [ https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Calling-Contract-Functions/ ] but not in the 21.1.1 version.
Any piece of advice will be appreciated. Thank you.
Hi, I am deploying Besu v21.1.1. I am able to send the private transactions using web3js-quorum method *generateAndSendRawTransaction*. While interacting with my deployed contract, via express app, I am getting the following error message: "The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu."
I understand from the documentation that the above mentioned method uses *eea_sendRawTransaction* to generate the privacy marker transaction and distribute the private transaction. How can I interact with my deployed contract using *generateAndSendRawTransaction*?
In the versions 21.7.0 and above of Besu Documentation I can see the the guidelines for "Interacting with Deployed Smart Contracts" [ https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Calling-Contract-Functions/ ] but not in the 21.1.1 version.
Any piece of advice will be appreciated. Thank you.
Hi, I am deploying Besu v21.1.1. I am able to send the private transactions using web3js-quorum method `generateAndSendRawTransaction`. While interacting with my deployed contract, via express app, I am getting the following error message: "The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu."
I understand from the documentation that the above mentioned method uses `eea_sendRawTransaction` to generate the privacy marker transaction and distribute the private transaction. How can I interact with my deployed contract using `generateAndSendRawTransaction`?
In the versions 21.7.0 and above of Besu Documentation I can see the the guidelines for "Interacting with Deployed Smart Contracts" [ https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Calling-Contract-Functions/ ] but not in the 21.1.1 version.
Any piece of advice will be appreciated. Thank you.
Hi, I am deploying Besu v21.1.1. I am able to send the private transactions using web3js-quorum method *generateAndSendRawTransaction*. While interacting with my deployed contract, via express app, I am getting the following error message: "The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu."
I understand from the documentation that the above mentioned method uses *eea_sendRawTransaction* to generate the privacy marker transaction and distribute the private transaction. How can I interact with my deployed contract using *generateAndSendRawTransaction*? I am using `https://web3js.readthedocs.io/en/v1.2.11/web3-eth-contract.html#web3-eth-contract`
In the versions 21.7.0 and above of Besu Documentation I can see the the guidelines for "Interacting with Deployed Smart Contracts" [ https://besu.hyperledger.org/en/stable/Tutorials/Contracts/Calling-Contract-Functions/ ] but not in the 21.1.1 version.
Any piece of advice will be appreciated. Thank you.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi @kaveri , you will be able to follow the same (21.7.0) instructions to use generateAndSendRawTransaction with your version of Besu. That method generates, signs and sends the transaction using eth_sendRawTransaction. (the difference in docs is because we deprecated web3js-eea client lib and changed the docs to use web3js-quorum)
You would only get that error if you are sending tx via eth_sendTransaction (which Besu does not support). If you're still having trouble, can you share the code that you're using to send the tx to Besu?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hey @marchelbudi.k thanks for reaching out, can you please share some more details on how your application works? If the end call being made is from metamask the remix domain wouldn't need to be added
Has joined the channel.
Does Hyperledger besu and Goquorum have the same features, only differing in implementation language (java vs Go)? Or do they differ in features too?
If I start a ethereum network with Besu, can I join it with a Goquorum node?
I once found this comparison.
https://medium.com/@yashukla47/quorum-vs-hyperledger-besu-a-2020-comparison-841da514d205#:~:text=Definitions&text=Quorum%20is%20an%20enterprise%20blockchain,enhancements%20to%20support%20business%20needs.&text=Besu%20represents%20the%20growing%20interest,use%20cases%20for%20their%20applications.
Has left the channel.
Has anyone been successful in changes the Allocation in the quickstart?
I changed all the possible attributes, and yet, when it runs it fetches the default allocations and puts them in the Genesis.
And I cannot know where it gets the values from, specially after updating all the original genesis files with new wallets.
Has anyone been successful in changing the Allocation in the quickstart?
I changed all the possible attributes, and yet, when it runs it fetches the default allocations and puts them in the Genesis.
And I cannot know where it gets the values from, specially after updating all the original genesis files with new wallets.
Thank you @shadiayoub
I was running into the same problem. Changed the alloc section public keys in all the Genesis files. Still the network starts with the default values.
The solution that worked for me is to change the settings in .env file. And also change the Genesis file.
I appreciate this! Will try it.
Can I change the asset name from ETH to a custom one? I used the quickstart tutorial to create the network. https://docs.goquorum.consensys.net/en/stable/Tutorials/Quorum-Dev-Quickstart/Using-the-Quickstart/
Besu-PrivateTx
Besu-PrivateTx
Hi @frankliawesome as of right now I'm just playing around with the quickstart network with IBFT2.0 and privacy disabled. I was just trying to test out how a web application such as Remix interact with the network. recently I was playing around with the the http cors origin option to find out if i can only allow certain websites to interact with the network. I tried on the block explorer that is on my localhost which was provided by the quickstart and it works. next i was just testing if i can do this with Dapps such as the pet shop which is hosted locally and remix which uses injected web3 that interacts with the network with metamask, however metamask seems to be unable to connect to the network when the http cors origin is specified for remix or the petshop.
Hi @frankliawesome as of right now I'm just playing around with the quickstart network with IBFT2.0 and privacy disabled. I was just trying to test out how a web application such as Remix interact with the network. recently I was playing around with the the http cors origin option to find out if i can allow only certain websites to interact with the network. I tried on the block explorer that is on my localhost which was provided by the quickstart and it works. next i was just testing if i can do this with Dapps such as the pet shop which is hosted locally and remix which uses injected web3 that interacts with the network with metamask, however metamask seems to be unable to connect to the network when the http cors origin is specified for remix or the petshop.
Has joined the channel.
Hi, I was wondering what does the extra data represents other than the validators in the genesis file. the documentation shows extraData - RLP([32 bytes Vanity, List
Hi, I was wondering what does the extra data represents other than the validators in the genesis file. the documentation shows extraData - RLP([32 bytes Vanity, List
As far as I have checked looking at https://github.com/ethereum/execution-specs#ethereum-protocol-releases, the new EIPs from London are all related to gas. Since we are not using it, I think it is not a problem to go with Berlin. Perhaps I am missing some important info, though.
Thank you for the answers
Has joined the channel.
Based on Q/A above, I understood that I need to update my private net from constantinopleFixBlock to Berlin.
So, how exactly should I update the genesis file?
Today, I have
"config": {
....
"constantinopleFixBlock": 0,
......
}
After changing it, the new genesis file would be like this?
"config": {
....
"constantinopleFixBlock": 0,
"london": "####numer_of_the_first_block_using_london###",
......
}
Based on Q/A above, I understood that I need to update my private net from constantinopleFixBlock to Berlin.
So, how exactly should I update the genesis file?
Today, I have
"config": {
....
"constantinopleFixBlock": 0,
......
}
After changing it, would the new genesis file be like this?
"config": {
....
"constantinopleFixBlock": 0,
"london": "####numer_of_the_first_block_using_london###",
......
}
Based on Q/A above, I understood that I need to update my private net from constantinopleFixBlock to Berlin.
So, how exactly should I update the genesis file?
Today, I have
"config": {
....
"constantinopleFixBlock": 0,
......
}
After changing it, would the new genesis file be like this?
"config": {
....
"constantinopleFixBlock": 0,
"beriln": "####numer_of_the_first_block_using_london###",
......
}
"berlinBlock": 7654321
where 7654321 is a block in the future yout network will transition to.
It's always "
Has joined the channel.
Question: Can a blockchain start as permissionless, then along the way update it to permissioned? Assuming we're able to restart all nodes in case of an update (without losing data).
Question: Can a blockchain start as permissionless, then along the way update it to permissioned? Assuming we're able to restart all nodes in case of an update (without losing data).
Update: No. It's set in the genesis file before starting the network.
Has joined the channel.
Has joined the channel.
Has joined the channel.
You can run Besu and GoQuorum together, using Clique or QBFT. The quickstart by default runs either Besu nodes or GoQuorum, but it would be easy enough to modify it to have some of each. If you're using privacy, Besu can run GoQuorum compatible privacy https://besu.hyperledger.org/en/stable/HowTo/Use-Privacy/Use-GoQuorum-compatible-privacy/#goquorum-compatible-private-transactions
What do you mean by changing the asset name? GoQuorum will use ethereum as the platform but you can deploy your own stuff on top
There's a diagram here that might help https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/Clique/#extra-data
The extraData is slightly different depending on the consensus algo being used. But in all cases the main thing is the representation of the validators.
thanks @SuzanaMaranhao !
gotcha, in your use case it sounds like the only failing step is metamask interacting with the contract through Besu. I've given the url `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` a go (adding it to my allowed cors-origin array) and I could use metamask as normal.
I'll get you to try this for me: spin up your quickstart nodes with 'rpc-http-cors-origins=["chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn"]' in the config.toml file (or however you want to pass the option in) and make sure you can do something as simple as sending eth between two addresses with metamask.
I'll get you to try this for me: spin up your quickstart nodes with 'rpc-http-cors-origins=["chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn"]' in the config.toml file (or however you want to pass the option in) and make sure you can do something as simple as sending eth between two addresses with metamask.
@marchelbudi.k let me know how you go!
Is anyone getting email notifications from mentions here in the chat? (I'm not receiving any even though it's configured in my preferences)
Great news.
Thanks for sharing.
Has joined the channel.
Has joined the channel.
OH it seems to be working now @frankliawesome , I'm not sure why last time it didn't work it seems that I needed to change the network first in Metamask instead of using the retry button when it is unable to connect. now I'm confused to how to allow truffle to deploy contract to the network since it also uses rpc http api. so, what client domain need to be used for the cors origin to allow truffle to deploy contracts?
I think truffle runs on a custom port on localhost, and this can be changed under `truffle-config.js`, so try something like `http://127.0.0.1:22000` replace the port with your actual port number?
Did you need the `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` for metamask to work? @marchelbudi.k
Hoping to update https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-cors-origins this section of the besu docs coming out of our discussion here :)
yup it seems that i need to add chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn to get metamask working
yup it seems that i need to add chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn to get metamask working @frankliawesome
yup it seems that i need to add chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn to get metamask working @frankliawesome oh and a side note i notice that this url only works for chrome extension and would not work or edge extension
yup it seems that i need to add chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn to get metamask working @frankliawesome oh and a side note i notice that this url only works for chrome extension and would not work for edge extension
yup it seems that i need to add chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn to get metamask working @frankliawesome oh and a side note i notice that this url only works for chrome extension and would not work for Microsot Edge extension unless it is downloaded from the chrome rom the chrome web store
yup it seems that i need to add chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn to get metamask working @frankliawesome oh and a side note i notice that this url only works for chrome extension and would not work for Microsoft Edge extension unless it is downloaded from the chrome web store
Hi, @frankliawesome could you show me where i can find or change the custom port for truffle. I cant seem to find it in the docs
What about Besu version? What is the most recent Besu version that you recommend to use in a permissioned network using IBFT2? I heard that your new permissioning layer prevents forwarding a transaction to other nodes when it is not allowed to be sent. Is it correct? I think it is very important!
nvm it seems that truffle does not need cors origin
Has joined the channel.
Are you talking about writing your own permissioning plugin? https://besu.hyperledger.org/en/stable/Concepts/Permissioning/Plugin-Permissioning/
https://github.com/hyperledger/besu/pull/2218
We recommend using the most recent version of Besu unless you have a reason not to!
For the genesis block the important information in the extra data is the list of the validators all other details have essentially empty values.
For blocks other the genesis block this extra data holds additional information that is required for the consensus mechanism. In addition to the current list of validators it contains the seals of the validators (list of signed block hash from the validators that committed the block), any votes and the round the block was created on. This article has some more details https://consensys.net/blog/enterprise-blockchain/scaling-consensus-for-enterprise-explaining-the-ibft-algorithm/
My permissions were set at default, I changed it to "mentions" - will see if I get emails!
My permissions were set at default, I changed it to "mentions" - will see if I get emails! @frankliawesome
Has joined the channel.
Unknown option: '-–rpc-http-port=8545'
how is this even possible ?
like this is from your examples on your website, they don't even work , How do you people get money from the Linux foundation and have some many broken things on all your projects ?
Hi @deathdealer007, I've checked and this is the right option. Could you please share the full command that you are executing? Maybe there is something wrong in the command.
Also if you could share the link to the docs page that you looked, I can take a look to see if anything is missing.
Last but not least, if you have already figure out what is wrong and want to help us improve our docs, a PR to https://github.com/hyperledger/besu-docs will be more than welcome!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, does anyone have link for the EthSigner Discord server? The links on the website seems broken.
My issue is specifically with `eth_sign` function of the EthSigner. The current method accepts only string as input and doesn't detect input starting with `0x` as hex.
Clipboard - November 6, 2021 1:49 AM
Hi, I am currently facing an issue with the onchain permissioning shown here https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/ . I tried applying this to the quorum quickstart network and when I tried to add a node to the allow list in the Dapp it seems to have an error with a message of "could not add node
Hi, I am currently facing an issue with the onchain permissioning shown here https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/ . I tried applying this to the quorum quickstart network and when I tried to add a node to the allow list in the Dapp it seems to have an error with a message of "could not add node
Clipboard - November 6, 2021 1:50 AM
Hi, @frankliawesome so I find out something odd and if it is true the documentation might slightly misleading. when i allowed metamask to interact with the network with `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` to the cors origin, any Dapp that uses web3 injected or relies on Metamask to connect to the network such as the pet shop Dapp will be able to interact with the network without the need to add the Dapp client domain to the cors origin, therefore it does not require for the client domain to be added to cors-origin to interact to metamask as metamask accepts any domain that intreracts with metamask . Im not sure if this is only for my case.
Hi, @frankliawesome so I find out something odd and if it is true the documentation might slightly misleading. It is stated in the rpc-http-cors-origins option documentation with the note that To allow a specific domain to use MetaMask with the Besu node, set --rpc-http-cors-origins to the client domain. However when I allowed metamask to interact with the network with `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` to the cors origin, any Dapp that uses web3 injected or relies on Metamask to connect to the network such as the pet shop Dapp will be able to interact with the network without the need to add the Dapp client domain to the cors origin, therefore it does not require for the client domain to be added to cors-origin to interact to metamask as metamask accepts any domain that intreracts with metamask . Im not sure if this is only for my case.
Hi, @frankliawesome so I find out something odd and if it is true the documentation might slightly misleading. It is stated in the rpc-http-cors-origins option documentation with the note that `To allow a specific domain to use MetaMask with the Besu node, set --rpc-http-cors-origins to the client domain`. However when I allowed metamask to interact with the network with `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` to the cors origin, any Dapp that uses web3 injected or relies on Metamask to connect to the network such as the pet shop Dapp will be able to interact with the network without the need to add the Dapp client domain to the cors origin, therefore it does not require for the client domain to be added to cors-origin to interact to metamask as metamask accepts any domain that intreracts with metamask . Im not sure if this is only for my case.
Hi, @frankliawesome so I find out something odd and if it is true the documentation might slightly misleading. It is stated in the rpc-http-cors-origins option documentation with the note that `To allow a specific domain to use MetaMask with the Besu node, set --rpc-http-cors-origins to the client domain`. However when I allowed metamask to interact with the network with `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` to the cors origin, any Dapp that uses web3 injected or relies on Metamask to connect to the network such as the pet shop Dapp will be able to interact with the network without the need to add the Dapp client domain to the cors origin. Im not sure if this is only for my case.
Hi, @frankliawesome so I find out something odd and if it is true the documentation might slightly misleading. It is stated in the rpc-http-cors-origins option documentation with the note that `To allow a specific domain to use MetaMask with the Besu node, set --rpc-http-cors-origins to the client domain`. However when I allowed metamask to interact with the network with `chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn` added to the cors origin, any Dapp that uses web3 injected or relies on Metamask to connect to the network such as the pet shop Dapp will be able to interact with the network without the need to add the Dapp client domain to the cors origin. Im not sure if this is only for my case.
for web application such as the block explorer that connects the network directly will still need cors origin
Hello... Where in the following code can I set block time please?
},
"coinbase": "0x0000000000000000000000000000000000000000",
"config": {
"homesteadBlock": 0,
"byzantiumBlock": 0,
"constantinopleBlock": 0,
"petersburgBlock": 0,
"istanbulBlock": 0,
"privacyEnhancementsBlock": 0,
"eip150Block": 0,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 0,
"eip158Block": 0,
"maxCodeSizeConfig": [
{
"block": 0,
"size": 32
}
],
"chainId": 1342,
"isQuorum": true,
"istanbul": {
"epoch": 30000,
"policy": 0
}
},
Hello.. Where in the following code can the blocktime be defined please?
"chainId": 1342,
"isQuorum": true,
"istanbul": {
"epoch": 30000,
"policy": 0
}
Hello.. Where in the following code can the blocktime be defined please?
"chainId": 1342,
"isQuorum": true,
"istanbul": {
"epoch": 30000,
"policy": 0
}
UPDATE: by adding the following under Istanbul:
"blockperiod: 5,
Hello.. Where in the following code can the blocktime be defined please?
"chainId": 1342,
"isQuorum": true,
"istanbul": {
"epoch": 30000,
"policy": 0
}
UPDATE: by adding the following under Istanbul:
"blockperiod": 5,
Hi all, after making change in config.toml, do I have to restart the node to sync up? I mean if I leave the node running, will it eventually sync up by itself with other nodes?
Have you tried a) refreshing your browser b) resetting your account in MetaMask
https://metamask.zendesk.com/hc/en-us/articles/360015488891-How-to-reset-your-wallet
If you have made changes in your config file you should restart your node to pickup the updated config. AFAIK Besu only reads the config file during startup.
Is there any paid special training for Besu and GoQuorum?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi @Nithronium, you can access join Consensys discord server. You can post in web3signer channel for EthSigner questions as well. https://discord.gg/Qjt9gVPQ . Will take a look into updating EthSigner doc to fix discord server and/or create EthSigner specific channel again.
Hi @Nithronium, you can join Consensys discord server and post in web3signer or Besu channel for EthSigner questions as well. https://discord.gg/Qjt9gVPQ . Will take a look into updating EthSigner doc to fix discord server and/or create EthSigner specific channel again.
Regarding eth_sign, it is by design i.e. https://docs.ethsigner.consensys.net/en/stable/Reference/API-Methods/#eth_sign ... the input string is converted to ethereum specific signature and signed as: sign(keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)))
Has joined the channel.
@Nithronium Let me verify this behavior with Geth. It might be a bug in EthSigner.
Has joined the channel.
LFR - sonar as a separate step https://github.com/hyperledger/besu/pull/3016
am trying to hit this curl request - curl -X POST --data '{"jsonrpc":"2.0","method":"ibft_getValidatorsByBlockNumber","params":["latest"], "id":1}' localhost:8545
from the host machine
pkiexception
Has left the channel.
Has joined the channel.
https://github.com/ConsenSys/ethsigner/pull/392 should fix this issue.
There is now a ethsigner channel on discord you can use for ethsigner discussions https://discord.gg/jCk2XuYtrp
Has joined the channel.
Has joined the channel.
Thanks a lot for the update! It ate my friday night I had my own fork of the working code but I am not a java dev so I was just saving the day. This seems like this'll do the job :)
Has joined the channel.
PRs are always welcome @Nithronium :).
[ ](https://chat.hyperledger.org/channel/besu?msg=4nwRPMD8bhMFuvDra) My code wouldn't be accepted as I wrote something that'd just do what I need and not in any form of acceptable code! :sweat_smile:
I'm not a java dev soooo :D
Hi, I am facing issue with besu network. Metamask is not able to connect with besu node - Error at metamask- Could not fetch chain ID. Is your RPC URL correct?
Has joined the channel.
Has joined the channel.
Has joined the channel.
the fix has been merged to master branch.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Welcome everyone. If you want a more active chat channel join the Discord server.. Search for consensys
Has joined the channel.
Has joined the channel.
Hi! When you start your Besu node, you need to ensure the RPC configuration is correctly set, exposing the port that you want, and listening in the correct interface.
Take a look at the `rpc-http-*` options in the docs to find what you could be missing. If you want to share the config file that you are using to start your node we can try to help identifying what could be missing.
There is also a note in our docs re using Besu with Metamask (how to configure the cors settings correctly). Take a look into it: https://besu.hyperledger.org/en/latest/Reference/CLI/CLI-Syntax/#rpc-http-cors-origins
Has joined the channel.
Has joined the channel.
Hi, can someone confirm if RLPX is used by default in permissioned networks and communication between the peers is encrypted? Thank you!
Hello, I've deployed a private network using the IBFT 2.0 consensus protocol (Proof of Authority) following the article below:
https://besu.hyperledger.org/en/21.10.1/Tutorials/Private-Network/Create-IBFT-Network/
Now I want to connect Metamask from another computer but port 8545 is only listening on 127.0.0.1. How can I open the port to be accessible from other computers? Thanks.
Hi!
You have to bind the HTTP interface to a public one in your instance. Take a look at the [rpc-http-host](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-host) flag
Then I have to stop the boot-node with CTRL+C and restart it including the --rpc-http-host=0.0.0.0 flag, right?
Only boot-node (Node-1) or all 4 Nodes?
exactly, you have to restart it. You only need to do it in the node you want to connect externally
All right, thank you very much!
Has joined the channel.
Has joined the channel.
Hello. I've discovered IBFT2 has problem with scalability. I want to scale to about 1000 validators. Is it possible with any of Besu's algorithms? I found that there is a YAC algorithm in HL Iroha, that scales well. Are there perhaps any plan to implement it in Besu?
You are correct in that IBFT2 is not designed to work with such a large set of validators.
Why do you need such a large number of validators?
There are no plans to implement the YAC algorithm in Besu at the moment. Is the scaling of validator nodes in YAC the main reason for wanting YAC in Besu?
Has joined the channel.
The only consensus mechanism in Besu that might work with such a large set of validators is Clique but then you have forks and give up finality and byzantine fault tolerance. So probably not something you would want to use in a production network. Mostly just mentioning it for completeness.
[ ](https://chat.hyperledger.org/channel/besu?msg=7DWd7SLWq3ydQnyGa) exactly that.
[ ](https://chat.hyperledger.org/channel/besu?msg=7DWd7SLWq3ydQnyGa) yes, exactly.
Has joined the channel.
thanks!
Hey, I am trying to invoke smart contract through web3js in besu private IBFT network. I am using ethereumjs-tx dependency, The problem is when trying to invoke the contract it throwing error - 'Error in createRawTransaction Error: Chain with name 1337 not supported'
Hi! RLPx is used by default in permissioned networks.
The only exception is if you are using TLS for DevP2P. We recently introduced the option of using TLS for DevP2P connections. In this case, the RLPx encryption isn't needed anymore (because all packets are already encrypted by TLS).
More info: https://besu.hyperledger.org/en/latest/HowTo/Configure/TLS/P2P-TLS/
I'm not sure how your code looks like. It seems it is trying to map your chainId configuration to a network name (maybe one of the "standard" names like ropsten, rinkeby or mainnet).
I'd suggest double-checking your ethereumjs-tx initialization in your scripts.
If you want to share your scripts someone might be able to help spot what's going on.
this is the part of the script where is the issue - const ethTx = require("ethereumjs-tx").Transaction;
const { config } = require("./config");
const web3 = require("./web3Object");
/**
* Convert Payload into Raw transactions signed by Private Key
* @param {String(hex)} to
* @param {String(hex)} from
* @param {Object} data
* @param {Number} value
* @param {Number} gasLimit
* @param {Number*} gasPrice
* @param {String(hex)} privateKey
*/
const createRawTransaction = async (
to,
from,
data,
value,
gasLimit,
gasPrice,
privateKey
) => {
console.log(
"createRawTransaction -------------------->>>>>>>>>>",
to,
from,
data,
value,
gasLimit,
gasPrice,
privateKey
);
try {
console.log("IN createRawTransaction");
let nonce = await web3.eth.getTransactionCount(from, "pending");
const txParams = {
nonce: web3.utils.toHex(nonce),
gasPrice: web3.utils.toHex(gasPrice),
gasLimit: web3.utils.toHex(gasLimit),
to: to,
value: web3.utils.toHex(value),
data: data,
};
console.log("txParam", txParams);
const tx = new ethTx(txParams, {
chain: `${config.chain}`,
network: `${config.network}`,
});
privateKey = new Buffer.from(privateKey, "hex");
tx.sign(privateKey);
let serializedTx = tx.serialize();
let rawTxn = "0x" + serializedTx.toString("hex");
return rawTxn;
} catch (error) {
console.log("Error in createRawTransaction", error);
error.code = 801;
throw error;
}
};
const createTask = async (_content, _userAddress) => {
try {
console.log(toDoContract.methods)
let result = await toDoContract.methods.createTask(_content);
let payload = result.encodeABI();
let eg = await helper.estimateGas({ from: _userAddress, to: config.contract.address, data: payload, value: 0 });
let gasPrice = await helper.getGasPrice();
console.log(eg);
let rawTxn = await createRawTransaction(config.contract.address, _userAddress, payload, 0, eg * 2, gasPrice, "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63");
let txn = await helper.submitSignedTx(rawTxn);
return txn;
} catch (error) {
console.log(error);
return error
}
}
createTask("hello")
this is the part of the script where is the issue - const ethTx = require("ethereumjs-tx").Transaction;
const { config } = require("./config");
const web3 = require("./web3Object");
/**
* Convert Payload into Raw transactions signed by Private Key
* @param {String(hex)} to
* @param {String(hex)} from
* @param {Object} data
* @param {Number} value
* @param {Number} gasLimit
* @param {Number*} gasPrice
* @param {String(hex)} privateKey
*/
const createRawTransaction = async (
to,
from,
data,
value,
gasLimit,
gasPrice,
privateKey
) => {
console.log(
"createRawTransaction -------------------->>>>>>>>>>",
to,
from,
data,
value,
gasLimit,
gasPrice,
privateKey
);
try {
console.log("IN createRawTransaction");
let nonce = await web3.eth.getTransactionCount(from, "pending");
const txParams = {
nonce: web3.utils.toHex(nonce),
gasPrice: web3.utils.toHex(gasPrice),
gasLimit: web3.utils.toHex(gasLimit),
to: to,
value: web3.utils.toHex(value),
data: data,
};
console.log("txParam", txParams);
const tx = new ethTx(txParams, {
chain: `${config.chain}`,
network: `${config.network}`,
});
privateKey = new Buffer.from(privateKey, "hex");
tx.sign(privateKey);
let serializedTx = tx.serialize();
let rawTxn = "0x" + serializedTx.toString("hex");
return rawTxn;
} catch (error) {
console.log("Error in createRawTransaction", error);
error.code = 801;
throw error;
}
};
const createTask = async (_content, _userAddress) => {
try {
console.log(toDoContract.methods)
let result = await toDoContract.methods.createTask(_content);
let payload = result.encodeABI();
let eg = await helper.estimateGas({ from: _userAddress, to: config.contract.address, data: payload, value: 0 });
let gasPrice = await helper.getGasPrice();
console.log(eg);
let rawTxn = await createRawTransaction(config.contract.address, _userAddress, payload, 0, eg * 2, gasPrice, "8f2a55949038a9610f50fb23b5883af3b4ecb3c3bb792cbcefbd1542c692be63");
let txn = await helper.submitSignedTx(rawTxn);
return txn;
} catch (error) {
console.log(error);
return error
}
}
createTask("hello")
Has joined the channel.
thanks!
Has joined the channel.
Has joined the channel.
Hi, i restarted full node connected to Ropsten testnet and now i see these messages in the log, for ex:
_Downloaded 7800000 world state nodes. At least 13961106 nodes remaining.
Downloaded 7900000 world state nodes. At least 13879115 nodes remaining
......._
Executing 'eth_blockNumber' returns the value before i restarted the node and right now is ~500 blocks behind and keep increasing. Can someone explain what exactly is going on and why chain height stays the same?
Thanks.
Hi, i restarted full node connected to Ropsten testnet and now i see these messages in the log, for ex:
Downloaded 7800000 world state nodes. At least 13961106 nodes remaining.
Downloaded 7900000 world state nodes. At least 13879115 nodes remaining
.......
Executing 'eth_blockNumber' returns the value before i restarted the node and right now is ~500 blocks behind and keep increasing. Can someone explain what exactly is going on and why chain height stays the same?
Thanks.
@IgorSim Hello.. Perhaps you'd want to join the Discord server as well. https://discord.gg/sqXastKG
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has left the channel.
Has joined the channel.
Has joined the channel.
Hi all, after enable http authorization and verified JWT token on jet.io with publicly, the node1 throws error of invalid JWT token:
2021-11-12 08:02:19.020+08:00 | vert.x-eventloop-thread-0 | DEBUG | B3PropagatorExtractorMultipleHeaders | Invalid TraceId in B3 header: null'. Returning INVALID span context.
2021-11-12 08:02:19.021+08:00 | vert.x-eventloop-thread-0 | DEBUG | AuthenticationUtils | Invalid JWT token
java.lang.RuntimeException: Signature verification failed
at io.vertx.ext.jwt.JWT.decode(JWT.java:311)
at io.vertx.ext.auth.jwt.impl.JWTAuthProviderImpl.authenticate(JWTAuthProviderImpl.java:122)
at org.hyperledger.besu.ethereum.api.jsonrpc.authentication.AuthenticationUtils.getUser(AuthenticationUtils.java:84)
at org.hyperledger.besu.ethereum.api.jsonrpc.JsonRpcHttpService.handleJsonRPCRequest(JsonRpcHttpService.java:548)
at io.vertx.ext.web.impl.RouteState.handleContext(RouteState.java:1038)
at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:101)
at io.vertx.ext.web.impl.RoutingContextImpl.next(RoutingContextImpl.java:132)
at org.hyperledger.besu.ethereum.api.handlers.TimeoutHandler.processHandler(TimeoutHandler.java:75)
Here is the config.toml for jwt token
#jwt token
rpc-http-authentication-enabled=true
rpc-http-authentication-jwt-public-key-file="/home/besu_network/publicKeyRSA.pem"
connection object on client is:
connection : {
url: 'http://server-ip:80',
headers: {
Authorization: 'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJwZXJtaXNzaW9ucyI6WyIqpYXQiOjE2MzY2NzUzMzh9.UCgLVzwtFNUxjGezAIaG256rBpnYtNmVmiXZUI1wrdH3ik9BkXMcJ0rWZWkaBXOhhcPBy7fbBZe0rL1K7eBQ9hLESrT3GDLLprg77yuWxDCT2DhNfZshR8C2QuJkSWk4SOppD6OwtIaM1-1tYWoA-Jcpgc88YMuOjI5Z8wgfNa_T87inU8cH8JECe5tVu22x0d7Cpj5Fkn5leq_glpc7sxXVYoAHcB0CmIOQCRkbIVqtWQRmLx6VaOFwzAJuL4NF7emRenpIaYkHdsIrZwx2mCxViALlAku0Mf2p00XgcBKg4GoJczg'
}
}
What could cause the error of invalid JWT token if the token itself is verified?
Hey there wanna PM through your public key file and I'll see if I can replicate the issue?
Hey @marchelbudi.k we have since updated the doc, I agree with you - it should make more sense now :)
Has joined the channel.
My notification setting for rocketchat is still a bit funky, when you get to it can you send through your toml file as well as your public key over to frank.li@consensys.net and I'll take a look at this :)
My notification setting for rocketchat is still a bit funky, when you get to it can you send through your toml file as well as your public key over to frank.li@consensys.net and I'll take a look at this :) @EmcLab
Has joined the channel.
Hi Frank, JWT token and public key were sent to you by email. Please check .Thanks.
Has joined the channel.
Thanks, I couldn't replicate this so it's likely something with your API call has gone wrong - this is what I've done:
1. Latest Besu master repo, built
2. Running from build/install/besu/bin/besu (should be the same as running a fresh Besu binary) with the command line arg config-file=config.toml (your file) and the public key is under root as well
3. Tested POST `{"jsonrpc":"2.0","method":"net_listening","params":[],"id":53}` which is a auth protected route with your JWT, got the correct result, altered one character in the JWT, got unauthorized.
[ ](https://chat.hyperledger.org/channel/besu?msg=8Zf9qhykGG7N9N9ZX) a reverse proxy is used to route the call. Here is the setup on the nginx reverse proxy.
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8545;
}
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8545;
}
The whole setup was tested before.What else can cause Besu returns invalid jwt token?
The whole setup was tested before.What else can cause Besu return invalid jwt token?
I'm not too familiar with proxies and networking things - all I can say for sure is that the JWT and pub key pair is fine, and the JWT library works as intended :)
What is your connection object used on client?
Here is the error on client side. ethersjs 5.x is used.
Connection mainchain error Error: bad response (status=401, headers={"server":"nginx/1.21.4","date":"Fri, 12 Nov 2021 00:02:19 GMT","content-type":"application/json","content-length":"107","connection":"close"}, body="{\n \"jsonrpc\" : \"2.0\",\n \"id\" : 42,\n \"error\" : {\n \"code\" : -40100,\n \"message\" : \"Unauthorized\"\n }\n}", requestBody="{\"method\":\"eth_blockNumber\",\"params\":[],\"id\":42,\"jsonrpc\":\"2.0\"}", requestMethod="POST", url="http://my-ip:80", code=SERVER_ERROR, version=web/5.3.0)
tried curl command below and it returned "unauthorized"
curl -X POST -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJwZXJtaXNzaW9ucyI6WyIqOioiXSwiZXhwIjoxNjM4NzQ4OTM4LCJpYXQiOjE2MzY2NzUzMzh9.UCgLVzwtFNUxjGezAIaG256rBpnYtNmVmiXZUI1wrdH3ik9BkXMcJ0rWZWkaBXOhhcPBy7fbBZe0rL1K7eBQ9hLENn1IK8JSAZ5MS3lkYIhBXlf91QbPZaXk-AiSrT3GDLLprg77yuWxDCT2DhNfZshR8C2QuJkSWk4SOppD6OwtIaM1-1tYWoA-Jcpgc88YMuOjI5Z8wgfNa_T87inU8cH8JECe5tVu22x0d7Cpj5Fkn5leq_glpc7sxXVYoAHcB0CmIOQCRkbIVqtWQRmLx6VaOFwzAJuL4NF7emRenpIaYkHdsIrZwx2mCxViALlAku0Mf2p00XgcBKg4GoJczg' -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' http://myip:80
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -40100,
"message" : "Unauthorized"
}
}
Has joined the channel.
Has joined the channel.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=8sTkxvGvHiRyFuWwm) I'm working on a network, where all nodes are validators, distributed geographically and organizationally. more validators means more stability and security.
Is it possible to transition to another consensus mechanism during operation, for example by restarting all nodes with a "transition" added to genesis file?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hey , hello sorry guys 4 bother
I want to interact with smart contracts in a besu network is any chance that i can be with an rest api y dont got the bridge that it'll have
Has joined the channel.
Hi 'frankliawesome`, I log the Authorization header on nginx proxy server and verified the jwt token in the log on jwt.io. The token's signature was verified successfully. It seems that something happened on besu server made the signature verification failed. the besu version is 21.10.0 which is the latest. What can go wrong with token verification on besu?
Your question is hard to understand.
Here is the nginx log file
[13/Nov/2021:05:28:34 +0800] "POST / HTTP/1.1" 401 106 "-" "curl/7.64.1" "-""127.0.0.1:8545" "127.0.0.1:8545""Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJwZXJtaXNzaW9ucyI6WyIqOioiXSwiZXhwIjoxNjM4ODI0ODExLCJpYXQiOjE2MzY3NTEyMTF9.iCAIokCGHW2-AB4PQ-HvvxTWTblXeO_X-OdAofyWT8BJZuHdD8yKGIq1xDIl1Np5BKQfGb9bYXWYR_q9jmWxMmKK66sxCmnZRQr9FrAh0yXK2g2gSYV83_ppeF7fvtj34vgznHHrdHBRj5PzeCpdm4OhKlxLUEwJopWXEr4zwdws9HHrdzoum0aQxcf9xsDBYQ14FdsHb-a4oXYtS3HLLJSgxEIKIZPHBqTUfT_ljIDf7aXpQPHxlbFHoogIq4hgW0vYVdaY5_n1yZ2qGL4E_pk3z0MNKhYaYed51SJz2zrpeFz-6jNg99yoWvMCOZPN24Gxu6Gm0Be4wdWD5_vxEA" "http_authorization"
Has joined the channel.
Hi team, why it is so hard for 21.10.1 to start and sync, with reboot or systemctl. Some releases could be synced up very quickly but not 21.10.1
2021-11-13 09:26:07.513+08:00 | main | DEBUG | NativeLibrary | Adding system paths: [/usr/lib/x86_64-linux-gnu, /lib/x86_64-linux-gnu, /usr/lib64, /lib64, /usr/lib, /lib, /usr/lib/x86_64-linux-gnu/libfakeroot]
2021-11-13 09:26:07.514+08:00 | main | DEBUG | NativeLibrary | Trying libsecp256k1.so
2021-11-13 09:26:07.514+08:00 | main | DEBUG | NativeLibrary | Loading failed with message: libsecp256k1.so: cannot open shared object file: No such file or directory
2021-11-13 09:26:07.514+08:00 | main | DEBUG | NativeLibrary | Looking for version variants
Hi 'frankliawesome`, the jwt token starts to work after upgrading to 21.10.1. It was 21.10.0
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hey , hi
I want to create a dapp for interact with a smart contract that is in the private network , i already try to use python but i got this error cause the private chain is PoA
Mmm so what i want to do is create this dapp withouth the need of using metamask , i will give the provate key to it , or any thoughts of how can i extract that from the blockchain or the only path is to use java script?
Has joined the channel.
What is the error? BSC is PoA, and I figure you can deploy on BSC, so this may not be the issue.
Anyway, in the Quorum-Dev-Quickstart you can find an example of a private transactions with a private key in it. This may help as an example.
What is the error? BSC is PoA, and I figure you can deploy on BSC, so this may not be the issue.
Anyway, in the Quorum-Dev-Quickstart you can find an example of a private transactions with a private key in it. This may help as an example. @Clippo 3
The error was that the hex was to large maybe u are using a PoA chain
Sooo i give up in web3.py
Yeah in docs there are examples but i can integrate that in to an api.rest? sorry i'm a little bit lost in it
[ ](https://chat.hyperledger.org/channel/besu?msg=9HZ8k3oQcEuSmveDF) Can you try deploying it on BSC ?
Sorry i don't get u
With IBFT2.0, is it possible to change blockreward and blocktime via "transitions" after the network has started?
There is a caution block in the documention: "The blockreward and miningbeneficiary properties cannot be updated once your network is started." Not sure if this is only in combination with miningbeneficiary or in general.
looks like it's working. Just tried with one signer node to change blocktime and reward.
It is possible using transitions to change the block period and mining block reward. Changing the block period was only just added in the in the most recent of Besu 21.10.1.
That caution in the docs applies to either blockreward or miningbeneficary or in combination.
Very interesting, we have another patch on JWT coming soon, if it works on the latest version I would go with that first
It looks like x86-64 linux. What network are you trying to sync? Do you have any static peers set?
are you running in docker?
Has joined the channel.
Has joined the channel.
changing the blockrewards also worked fine.. so that's what is confusing me. for miningbeneficary it looks like this is not taken into the account on a transition.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello can someone help me with setting up the Hyperledger Explorer and the stats page ? I already have this deployed and working https://grafana.mariomichel.com/d/5S-6O8VZk/hyperledger-besu-node-at-ethereum-classic?orgId=1&from=now-12h&to=now
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
I should have clarified that blockrewards is also supported for transitions, documentation is coming soon for that we only just added that feature. So it is possible to change the validators, block period and block reward for IBFT2 and QBFT. Yes it isn't possible for change the mining beneficiary using a transition right now.
Has joined the channel.
I am not familiar with Hyperledger Explorer but it looks like it works with Fabric and Iroha. I don't know if it supports Besu.
The best place to ask for help will be: https://chat.hyperledger.org/channel/hyperledger-explorer
Has joined the channel.
I too don't think they support Besu.
I use Expedition explorer but it needs some UI work to look prettier.
Try to deploy the same contract to BSC.
As it's PoA... And see if it gives you the same error.
Just a suggestion to troubleshoot
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hey can someone help with interacting with deployed contracts in besu docs don't do nothing
Has joined the channel.
There is nothing specific in Besu for interacting with your contracts. If you have [RPC enabled](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-enabled) you can use any 3rd party library to interact through JSON-RPC with your contract. E.g. [ethers](https://docs.ethers.io/) and [web3.js](https://web3js.readthedocs.io)
Regarding on-chain permissioning for nodes/accounts: the howto is with predefined ingress contracts in the genesis file. Is it possible to start unpermissioned and then deploy onchain permissioning later? I.e. without predefined ingress contracts in genesis, but later regularly deployed?
Yes. You can start the network without permissioning, deploy your contract, and then restart the nodes with permissioning enabled, using the deployed contract address.
If you are doing this, it is probably a good idea to start the network with a single node. After the contract and the rules are ready, you add more nodes to the network, and they will sync up the chain and start using the rules.
great.. thanks. I was afraid that the predefined ingress contract in the genesis file are mandatory.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi there, does Besu have a local transaction journal that can be recovered from the disk? I'm trying to determine if, like geth, there's a local journal that can be copied over when a node is being restored from another node's database backup
`geth` generates a `transactions.rlp`, which contains pending/queued txns submitted to the node and that file can be restored in lieu of resubmitting transactions after a node is restored using a manual recovery (for example, using backup from another node)
Has joined the channel.
Has left the channel.
For IBFT2.0.. I assume since it's PBFT-like voting mechanism, the complexity for voting messages increases O(n^2)? what would be a good enough sweet spot in regard to complexity/performance vs decentralization? Something between 10 - 20 validators?
Has joined the channel.
Has joined the channel.
Error: Returned error: The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu.
im a little stuck in it , the docs says i should use eth signer but seriously i dont get it
Besu doesn't manage private keys. EthSigner does and serves as an intemediary between your node and your client code.
[ ](https://chat.hyperledger.org/channel/besu?msg=Ti32okpEyguNz4vgw) I don't get how i can use that , cause to use eth signer to do a v3vaultkey and what do u do with that cause it's only the private and a password , how can u do that with a deployed contract , cause the rawmethod of besu rpc-json only take one parameter to work.
The raw parameter is the fully signed transaction. eth_signTransaction takes all those pieces, adds a signature from your private key, and generates the single parameter then feeds it into the same logic as eth_sendRawTransaction.
EthSigner does the same, but instead of seding it to an interlal method for eth_sendRawTransaction it sends that byte array to the besu node via eth_sendRawTransaction
@Clippo 3 it might help to look at the web3js-quorum examples to see how they work - you can follow the examples to sign and send the tx https://besu.hyperledger.org/en/stable/HowTo/Interact/Client-Libraries/web3js-quorum/ - or you can run EthSigner alongside Besu and just send your eth_sendTransaction to EthSigner and it will sign and send to Besu.
@shadiayoub Thanks for the info but seems that I can't even make the RPC available :( {"message":"Host not authorized."}root@mm-nrb-srv-01:~/etc# curl http://localhost:8545
version: '3.3'
networks:
web:
external: true
back-tier: null
services:
besu:
ports:
- '8545:8545'
- '30303:30303'
- '9545:9545'
image: 'hyperledger/besu:21.10.2'
volumes:
- '/mnt/tank/besu/classic/:/var/lib/besu/'
environment:
- BESU_NETWORK=classic
- BESU_DATA_PATH=/var/lib/besu/
- BESU_MAX_PEERS=1000
- BESU_METRICS_ENABLED=true
- BESU_METRICS_HOST=0.0.0.0
- BESU_METRICS_PORT=9545
- BESU_HOST_ALLOWLIST="*"
- BESU_RPC_HTTP_ENABLED=true
- BESU_RPC_HTTP_HOST=0.0.0.0
- BESU_RPC_HTTP_CORS_ORIGINS="all"
- BESU_RPC_HTTP_AUTHENTICATION_ENABLED=false
- BESU_RPC_WS_ENABLED=true
- BESU_RPC_WS_API=ETH,NET,WEB3
- BESU_GRAPHQL_HTTP_ENABLED=true
- BESU_GRAPHQL_HTTP_HOST=0.0.0.0
version: '3.3'
networks:
web:
external: true
back-tier: null
services:
besu:
ports:
- '8545:8545'
- '30303:30303'
- '9545:9545'
image: 'hyperledger/besu:21.10.2'
volumes:
- '/mnt/tank/besu/classic/:/var/lib/besu/'
environment:
- BESU_NETWORK=classic
- BESU_DATA_PATH=/var/lib/besu/
- BESU_MAX_PEERS=1000
- BESU_METRICS_ENABLED=true
- BESU_METRICS_HOST=0.0.0.0
- BESU_METRICS_PORT=9545
- BESU_HOST_ALLOWLIST="*"
- BESU_RPC_HTTP_ENABLED=true
- BESU_RPC_HTTP_HOST=0.0.0.0
- BESU_RPC_HTTP_PORT=8545
- BESU_RPC_HTTP_CORS_ORIGINS="all"
- BESU_RPC_HTTP_AUTHENTICATION_ENABLED=false
- BESU_RPC_WS_ENABLED=true
- BESU_RPC_WS_API=ETH,NET,WEB3
This has been happening with me too. I cannot figure it out still.
I cannot get the api running and not figuring out the reason.
It works only when running the quickstart, Quorum's and Dev's.
Hi, we have a problem with our Besu nodes, they run out of space after a while, they consume a lot of disk space. I have read somewhere that with the use of Merklee Trees it is possible to solve this issue. I have not found anything in the documentation about this issue, is it possible with Hyperledger Besu to work with this technology?
Thanks
Yes, the message complexity is O(n^2) where n is the number of validators.
Has joined the channel.
Hi, we have a blockscout problem with our Besu nodes, the AWS instance where we have running the block explorer run out of space after a while, we hardly use the nodes, and it consumes a lot of disk space. Any idea how to solve this problem?
Thanks
Hmmm I do use all docker in a docker-compose file. https://github.com/MrMarioMichel/hyperledger-besu-etc-node/blob/main/docker-compose.yml
We have this problem also. Perhaps it's possible to produce only populated blocks, omitting empty ones. We're investigating this.
I don't know exactly the requirements behind blockscout in terms of services provided by the node. But if it barely needs a client to emit events for every block to put them into some indexed storage for their frontend, you can give it a try to sync a Besu node using the Bonsai data storage. You can read a little more about it in a [recent post](https://consensys.net/blog/news/bonsai-tries-a-big-update-for-small-state-storage-in-hyperledger-besu/) from the Consensys blog
No, Besu does not do this. Can you tell me a little bit about this use case? Is this for a Clique network?
Has joined the channel.
Hi there! Quick question: is it possible to set the `blockperiodseconds` in IBFT 2.0 to a value smaller than <1 second? I tried doing so (I set it to 0.99, was 1 before) but based on what I observe I _think_ for values smaller than <1 second, or non-integers in general, Besu (latest release, 21.10.2) just uses a default value instead (but I don't see anything about this happening in the logs).
Hi there! Quick question: is it possible to set the `blockperiodseconds` in [IBFT 2.0](https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/#block-time) to a value smaller than <1 second? I tried doing so (I set it to 0.99, was 1 before) but based on what I observe I _think_ for values smaller than <1 second, or non-integers in general, Besu (latest release, 21.10.2) just uses a default value instead (but I don't see anything about this happening in the logs).
I set it to 0.5 and it worked.
Hmm, and are you certain that it actually uses 0.5? I was using 1s before and when I use 0.99s I see a lot of timeouts that I didn't see before
Has joined the channel.
No, this is for an IBFT network (running in Kaleido). For Quorum, when there's a situation where chaindata in a node is unrecoverable due to errors, we restore the node by using a backup. We also restore the `transactions.rlp` that is copied out before restoring, to ensure that any locally submitted transactions get re-submitted on start up. In Besu, we recently ran into
```
2021-11-15 19:19:38.244+00:00 | main | INFO | DatabaseMetadata | Lookup database metadata file in data directory: /qdata/ethereum
2021-11-15 19:19:38.421+00:00 | main | INFO | RocksDBKeyValueStorageFactory | Existing database detected at /qdata/ethereum. Version 1
org.rocksdb.RocksDBException: SST file is ahead of WALs
```
for which restoring the node from a backup or have it catch up all the way from the start is the solution
Has joined the channel.
It's producing blocks every 0.5 sec, so I suppose it's working.
Has joined the channel.
Hi everyone. Have recently joined and going through besu docs to get better idea of the framework. I've looked at the contribution docs and was wondering if this is a good project for first time open source contribution?
perhaps someone has a good first issue they'd be interested in pointing me in that direction and any prereqs?
suffering from a bit of information overload the past few days lol
Has joined the channel.
Hello I am getting a "Host Not Authorized" from the Besu RPC API and this is my config `````
` environment:
- BESU_NETWORK=classic
- BESU_DATA_PATH=/var/lib/besu/
- BESU_MAX_PEERS=1000
- BESU_METRICS_ENABLED=true
- BESU_METRICS_HOST=0.0.0.0
- BESU_METRICS_PORT=9545
- BESU_HOST_ALLOWLIST=127.0.0.1
- BESU_HOST_WHITELIST=127.0.0.1
- BESU_HOST_ALLOWLIST="*"
- BESU_RPC_HTTP_ENABLED=true
- BESU_RPC_HTTP_HOST=0.0.0.0
- BESU_RPC_HTTP_PORT=8545
- BESU_RPC_HTTP_CORS_ORIGINS="all"
- BESU_RPC_HTTP_API=ETH,NET,WEB3
- BESU_RPC_HTTP_AUTHENTICATION_ENABLED=false
- BESU_RPC_WS_ENABLED=true
- BESU_RPC_WS_API=ETH,NET,WEB3
`
```
Hi @LEOISHere :wave:
Besu is a good project for your first time time contribution. And there's a helpful bunch of documenters available to help should you get stuck :)
You mentioned that you've looked at the contribution docs? If you get stuck with any of the steps, give us a shout and we'll get you unstuck.
https://wiki.hyperledger.org/display/BESU/First+contribution
*Important*: Each commit you make must include your signature to avoid DCO errors. See https://wiki.hyperledger.org/display/BESU/DCO
We generally label issues as "Good first issue" for folks that want something less complicated to document. You can find that list here. I'll go through the backlog and see if any others can be marked as such.
https://github.com/hyperledger/besu-docs/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
Use only one of allowlist and whitelist. Drop the whitelist. Also, opening rpc to "*" is not advised in production.
@shemnon I just tried to find the issue with that "*" option
There are some results on performance testing that was done on IBFT2 on the wiki https://wiki.hyperledger.org/display/BESU/Maximum+Validator+count+for+an+IBFT2+Network
IBFT2 was able to safely handle up to 30 validators beyond that there was some performance degradation. So IBFT2 should be handle 10-20 validators without any issue.
Has joined the channel.
missing some basic thing - I had one bootnode and started 2 nodes (clique), nodes connect but they only import and not produce - what;s the magic I am missing?
I want to translate this page to Korean 'https://besu.hyperledger.org/en/stable/' . Is there any way to do contribute?
Hi @indongkim, we currently don't have any translations for Hyperledger Besu, and therefore no real process to contribute as yet.
However if it's something you are eager to pursue then we'll gladly try and help.
Is it the entire document that you would like to translate? Or is it just that first page?
Hey @LEOISHere I started this month working on Besu and this was my first PR https://github.com/hyperledger/besu/pull/2970 start with looking at issues tagged with 'good first issue' and find ones you're comfortable with, if you get stuck you can always reach out here.
Has joined the channel.
Hi @indongkim , also you can easily automatically translate using translation tools like Google Translate. Have you tried https://besu-hyperledger-org.translate.goog/en/stable/?_x_tr_sl=auto&_x_tr_tl=ko&_x_tr_hl=en-GB&_x_tr_pto=nui ?
It's probably not as good as a manual translation, but Besu doc sentences are very simple and should not be too hard to understand for these robots.
Hmm, alright, I'm not sure why I'm seeing what I'm seeing then. Thank you nonetheless!
Has joined the channel.
Has joined the channel.
I saw that it is possible to define a log filter in Besu using eth_newFilter. I did not find a method to remove this kind of log filter. How to do it?
This seems to be only in latest doc version, but there's a `eth_uninstallFilter` method: https://besu.hyperledger.org/en/latest/Reference/API-Methods/#eth_uninstallfilter
~This seems to be only in latest doc version, but~ there's a `eth_uninstallFilter` method: https://besu.hyperledger.org/en/latest/Reference/API-Methods/#eth_uninstallfilter~
~This seems to be only in latest doc version, but~ there's a `eth_uninstallFilter` method: https://besu.hyperledger.org/en/latest/Reference/API-Methods/#eth_uninstallfilter
It really is!!! I was looking for removeFilter or changeFilter, things like that. Thanks
You may try it with the satable besu version 21.10.2, sometimes it's just that doc takes some time to be completely up to date.
You may try it with the stable Besu version 21.10.2, sometimes it's just that doc takes some time to be completely up to date.
~You may try it with the stable Besu version 21.10.2, sometimes it's just that doc takes some time to be completely up to date.~
Does it only work on version 21.10.2 and above?
Let me check ;)
Yes I think it's in the API since ... forever...
:-)
Forget what I said about the doc not being up to date (I hope I did not made my colleagues who wrote it too angry), it's in the doc since forever too, I did not search correctly probably...
Forget what I said about the doc not being up to date (I hope I did not make my colleagues who wrote it too angry), it's in the doc since forever too, I did not search correctly probably...
great, thanks
Did you try something like 0.5 ?
missing some basic thing - I had one bootnode and started 2 nodes (clique), nodes connect but they only import and not produce - what;s the magic I am missing?
LMTA, I have one bootnode and started 2 nodes. Those nodes connect to bootnode, import blocks fine, but never producer block? Is there sth basic I am missing?
let me give it one more shot. asking for quick clarification. I have one bootnode and started 2 nodes. Those nodes connect to bootnode, import blocks fine, but never producer block? Is there sth basic I am missing?
let me give it one more shot. asking for quick clarification. I have one bootnode and started 2 nodes. Those nodes connect to bootnode, import blocks fine, but never produce block? I was expecting they would take turns. Is there sth basic I am missing?
Asking for quick clarification. I have one bootnode and started 2 nodes. Those nodes connect to bootnode, import blocks fine, but never produce block? I was expecting they would take turns. Is there sth basic I am missing?
Perhaps it's an election thing. So it's kinda normal. But let's wait for the experts' opinion
Bootnodes != validators or miner nodes.
What consensus are you using? PoW, IBFT2?
I suppose Clique.. Since they're 3 nodes
Not sure we can deduce that but yes you are right, Clique is also an option.
So Clique, PoW (Eth) or IBFT2?
Has joined the channel.
Has joined the channel.
can I somewhere see a list of all enode connected ?
Clique
hey, sorry missed the indent question. Private network with Clique
Has joined the channel.
I hoped an easy way to access besu IBFT API would be to use goquorum and attach it to besu RPC port: `docker run --rm -it --name goquorum --network container:besu_node quorumengineering/quorum attach http://localhost:8545`. However, I can not see ibft or any other additional api being offered when calling `web3` on console.
I hoped an easy way to access besu IBFT API would be to use goquorum and attach it to besu RPC port: `docker run --rm -it --name goquorum --network container:besu_node quorumengineering/quorum attach http://localhost:8545`. However, I can not see ibft or any other additional api being offered when calling `web3` on the console.
I hoped an easy way to access besu IBFT API would be to use goquorum and attach it to besu RPC port: `docker run --rm -it --name goquorum --network container:besu_node quorumengineering/quorum attach http://localhost:8545`. However, I can not see ibft or any other additional api being offered when calling `web3` on the goethereum console.
Another question regarding mixing goquorum and besu in a IBFT2 network: can goquorum also handle transitions in the same way like besu can?
I just noticed the JSON RPC methods for ibft in goquroum and besu are called differently..
Yeah, I tried 0.5. I actually ended up opening an issue/bug report: https://github.com/hyperledger/besu/issues/3088
Has joined the channel.
does someone use Besu with Expedition ? can some one help me thanks!
hi..has anyone created an explorer using blockscout for private network?
I searched here and seems others are having issues...we need it for the same reason others do..display of ERC tokens and similar
I searched here and seems others are having issues...we need it for the same reason others do..display of ERC tokens and similar, and Alethio Light doesn;t do all that
I use Expedition and Epirus free.
Both work like a charm.
I have.
I have. I hope I can help..
Is there a web wallet for Ethereum, other than MEW, that's open source?
Could you clarify what do you mean by "handle transitions in the same way like besu can"? Are you talking about some specific feature re transactions? Or are you considering performance?
@lucassaldanha besu can add transitions in the genesis file to reconfigure network parameters like blockrewards and blocktimes. If goquorum and besu ibft are compatible, are there similar transition mechanisms in goquorum like in besu?
Ah sorry, I believe I misread transition (I thought you were asking about transactions). My bad!
I'll ask someone from the GoQuorum team about this and get back to you.
[ ](https://chat.hyperledger.org/channel/besu?msg=Big9qwBCL43mQEzd8) I started studying Besu a while ago.
There is very little Besu information in Korean, so it will be helpful for other Korean developers to translate while studying. I want contribute to all page.
Has joined the channel.
Has joined the channel.
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#admin_peers is this what you're looking for?
Has joined the channel.
GoQuorum does not support the notion of transitions. You can not 'fork' the network with a new Genesis, there is an exception to this. You can migrate from IBFT to QBFT at a specific block height (testQBFTBlock).
https://docs.goquorum.consensys.net/en/stable/HowTo/Configure/Consensus-Protocols/QBFT/#migrating-from-ibft-to-qbft
Has joined the channel.
Is there a recommended way to do off-chain storage with Besu? As far as I understand, using private transactions essentially achieves off-chain storage but adds a lot of complexity due to also having to configure and deploy the Tessera nodes and due to needing to send private transactions. Are there other recommended alternatives if I don't need the privacy features?
Hey i'm trying to do the same and i'm on it for two weeks and still not find a way to do it in a rigth way
This is probably similar to off-chain storage in every other Ethereum client, so there's plenty documentation out there. IPFS seems to be very popular for the purpose.
Has joined the channel.
Thanks, that is helpful :) Do you, or anyone, else know whether Tessera or IPFS will tend to give a better overall latency/performance (given that whatever we store off-chain, we also have to retrieve..)?
Has joined the channel.
Has joined the channel.
Yes sems so but i do get this response :( `}root@mm-nrb-srv-01:~# curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : "1",
"error" : {
"code" : -32604,
"message" : "Method not enabled"
}
`
Yes sems so but i do get this response :(
`}root@mm-nrb-srv-01:~# curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : "1",
"error" : {
"code" : -32604,
"message" : "Method not enabled"
}
`
Yes sems so but i do get this response :(
```}root@mm-nrb-srv-01:~# curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : "1",
"error" : {
"code" : -32604,
"message" : "Method not enabled"
}
```
Yes sems so but i do get this response :(
```root@mm-nrb-srv-01:~# curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
{
"jsonrpc" : "2.0",
"id" : "1",
"error" : {
"code" : -32604,
"message" : "Method not enabled"
}
```
````
```
```
```
```
- BESU_NETWORK=classic
- BESU_DATA_PATH=/var/lib/besu/
- BESU_MAX_PEERS=1000
- BESU_METRICS_ENABLED=true
- BESU_METRICS_HOST=0.0.0.0
- BESU_METRICS_PORT=9545
- BESU_RPC_HTTP_ENABLED=true
- BESU_RPC_HTTP_HOST=0.0.0.0
# - BESU_HOST_ALLOWLIST=167.86.100.59,127.0.0.1
- BESU_HOST_WHITELIST=167.86.100.59,127.0.0.1,192.168.96.3
# - BESU_HOST_ALLOWLIST="*"
# - BESU_HOST_WHITELIST="*"
# - BESU_LOGGING=DEBUG
- BESU_HOST_ALLOWLIST="*"
- BESU_RPC_HTTP_PORT=8545
- BESU_RPC_HTTP_CORS_ORIGINS="all"
- BESU_RPC_HTTP_API=ETH,NET,WEB3
- BESU_RPC_HTTP_AUTHENTICATION_ENABLED=false
- BESU_RPC_WS_ENABLED=true
- BESU_RPC_WS_API=ETH,NET,WEB3
# - BESU_GRAPHQL_HTTP_ENABLED=true
# - BESU_GRAPHQL_HTTP_HOST=0.0.0.0
```
Does it work for you ? I do have I guess found the issue from me or did you configure something special ? https://github.com/xops/expedition/issues/12
Works out of the box.
Hmmmm do you have it setup on bare bone or via e.g Docker ?
can you do for me ``curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"eth_blockNumber","params":[]}' http://127.0.0.1:8545``
can you do for me ````curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"eth_blockNumber","params":[]}' http://127.0.0.1:8545``````
```
can you do for me ````curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"eth_blockNumber","params":[]}' http://127.0.0.1:8545````
can you do for me ````curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"admin_peers","params":[]}' http://127.0.0.1:8545
curl -X POST --data '{"jsonrpc":"2.0","id":"1","method":"eth_blockNumber","params":[]}' http://127.0.0.1:8545```
I want to see if I found the issue or i am looking at the wrong
Barebone, as in the README
hmmm mabye therefore.
http://scan.oho.ai
https://scan.dexioprotocol.com/
Really did nothing special.
German ?
do you want to share your environment settings ?
Not German.
Sure. What do you want me to share?
`` environment:
- BESU_NETWORK=classic
- BESU_DATA_PATH=/var/lib/besu/
- BESU_MAX_PEERS=1000
- BESU_METRICS_ENABLED=true
- BESU_METRICS_HOST=0.0.0.0
- BESU_METRICS_PORT=9545
- BESU_RPC_HTTP_ENABLED=true
- BESU_RPC_HTTP_HOST=0.0.0.0
# - BESU_HOST_ALLOWLIST=167.86.100.59,127.0.0.1
- BESU_HOST_WHITELIST=167.86.100.59,127.0.0.1,192.168.96.3
# - BESU_HOST_ALLOWLIST="*"
# - BESU_HOST_WHITELIST="*"
# - BESU_LOGGING=DEBUG
- BESU_HOST_ALLOWLIST="*"
- BESU_RPC_HTTP_PORT=8545
- BESU_RPC_HTTP_CORS_ORIGINS="all"
- BESU_RPC_HTTP_API=ETH,NET,WEB3
- BESU_RPC_HTTP_AUTHENTICATION_ENABLED=false
- BESU_RPC_WS_ENABLED=true
- BESU_RPC_WS_API=ETH,NET,WEB3
# - BESU_GRAPHQL_HTTP_ENABLED=true
# - BESU_GRAPHQL_HTTP_HOST=0.0.0.0
``
```` environment:
- BESU_NETWORK=classic
- BESU_DATA_PATH=/var/lib/besu/
- BESU_MAX_PEERS=1000
- BESU_METRICS_ENABLED=true
- BESU_METRICS_HOST=0.0.0.0
- BESU_METRICS_PORT=9545
- BESU_RPC_HTTP_ENABLED=true
- BESU_RPC_HTTP_HOST=0.0.0.0
# - BESU_HOST_ALLOWLIST=167.86.100.59,127.0.0.1
- BESU_HOST_WHITELIST=167.86.100.59,127.0.0.1,192.168.96.3
# - BESU_HOST_ALLOWLIST="*"
# - BESU_HOST_WHITELIST="*"
# - BESU_LOGGING=DEBUG
- BESU_HOST_ALLOWLIST="*"
- BESU_RPC_HTTP_PORT=8545
- BESU_RPC_HTTP_CORS_ORIGINS="all"
- BESU_RPC_HTTP_API=ETH,NET,WEB3
- BESU_RPC_HTTP_AUTHENTICATION_ENABLED=false
- BESU_RPC_WS_ENABLED=true
- BESU_RPC_WS_API=ETH,NET,WEB3
# - BESU_GRAPHQL_HTTP_ENABLED=true
# - BESU_GRAPHQL_HTTP_HOST=0.0.0.0
``
```
I do have e.g these all
I do have e.g these all for Besu
Clipboard - November 22, 2021 7:13 PM
https://explorer-etc.mariomichel.com/?network=Ethereum%20Classic
If you mean Besu, it's run as docker.
Reachable via api https
yeah
Has joined the channel.
Has joined the channel.
logging="INFO"
data-path="/opt/besu/data"
host-whitelist=["*"]
# rpc
rpc-http-enabled=true
rpc-http-host="0.0.0.0"
rpc-http-port=8545
rpc-http-cors-origins=["*"]
# ws
rpc-ws-enabled=true
rpc-ws-host="0.0.0.0"
rpc-ws-port=8546
# graphql
graphql-http-enabled=true
graphql-http-host="0.0.0.0"
graphql-http-port=8547
graphql-http-cors-origins=["*"]
# metrics
metrics-enabled=true
metrics-host="0.0.0.0"
metrics-port=9545
# permissions
permissions-nodes-config-file-enabled=true
permissions-nodes-config-file="/config/permissions_config.toml"
# bootnodes
bootnodes=["enode://8208a3f344695d44e9cf2c023683cbea7b9343e2f70a5e804bd2c93858e945f8f91439eef96a4ab6c47ff06637d6fbe6472f96de1655a1bee57ea896654f3a22@172.16.239.11:30303"]
# Discovery at boot is set to a list of static files, but will also discover new nodes should they be added
# static nodes
static-nodes-file="/config/static-nodes.json"
discovery-enabled=true
I will check that tomorrow thanks!
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-api have a look at this - you'll need to add ADMIN to the --rpc-http-api option (BESU_RPC_HTTP_API in the config)
@MarioMichel https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-api have a look at this - you'll need to add ADMIN to the --rpc-http-api option (BESU_RPC_HTTP_API in the config)
Has joined the channel.
Has joined the channel.
Hi Team, I have recently started ETH fast node using Besu, but it is not synching.
There are no issues with Ports or network, This happening recently , earlier i do not have this type of issue
Hi Team, I have recently started ETH fast node using Besu, but it is not synching.
There are no issues with Ports or network, This happening recently , earlier i do not have this type of issue.
OpenETH node synching fine on the same server .
Has joined the channel.
Hmmm I would have this config here - BESU_RPC_HTTP_API=ETH,NET,WEB3
~Hmmm I would have this config here - BESU_RPC_HTTP_API=ETH,NET,WEB3~ Nvm I see it I will test
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
hello everyone, I'm new to open source and wanted to contribute on an issue but got stuck. The issue was "Remove code duplication TODO in OnchainPrivacyPrecompiledContract". Anyone who can help me out in this?
Has joined the channel.
Hello everyone, we have a IBFT2.0 network using Besu 21.7.4 and Berlin (since London is not ready). Is this issue https://jira.hyperledger.org/browse/BESU-181 solved in the code we are using?
Hello everyone, we have an IBFT2.0 network using Besu 21.7.4 and Berlin (since London is not ready). Is this issue https://jira.hyperledger.org/browse/BESU-181 solved in the code we are using?
The same bug is described here: https://github.com/hyperledger/besu/issues/528
Unfortunately, not.
Has joined the channel.
It looks like this was fixed by https://github.com/hyperledger/besu/pull/969
Are you still experiencing this issue?
Has joined the channel.
Awesome thank you @frankliawesome just needed to enable this also in the RPC and it worked. Many Thanks!
Has joined the channel.
I want to change the genesis file and set a gasprice. Which parameter should I tweak? Will that gas fees be deposited to one of the validator nodes?
Hi @anipaul2 - where are you stuck? Have you followed this checklist? https://wiki.hyperledger.org/display/BESU/First+contribution
Have you created a fork of Besu?
Have you checked out the code and compiled it?
Has joined the channel.
Has joined the channel.
gaslimit parameter.
And make sure your nodes ARE NOT started with gas=0 command option.
Maybe you'll find this article helpful:
https://consensys.net/blog/quorum/hyperledger-besu-how-to-create-an-ethereum-genesis-file/
coinbase parameter defines the wallet that receives mining rewards.
Has joined the channel.
I have not tested it in this new version. Just want to make sure that 21.7.4 already contain this fix.
hmmm still does not work and added a few things :( anyways thanks!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
besusetupnewkeys.png
Hello... Anyone can tell me what am I missing ? Trying to setup Besu with new keys using Quickstart:
besusetupnewkeys.png
Has joined the channel.
Has joined the channel.
Update: The answer may be here:
https://besu.hyperledger.org/en/stable/Tutorials/Developer-Quickstart/#add-a-new-node-to-the-network
Following the [tutorial for a privacy-enabled network](https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/) - is there a quick way to check whether the set up was successful and whether I could send private transactions over my network?
Has joined the channel.
Has joined the channel.
Has joined the channel.
In genesis file I have set `"gasLimit" : "0x15",`
In docker-compose.yml file I kept
`export CONSENSUS_ARGS="--istanbul.blockperiod 5 --mine --minerthreads 1 --miner.gasprice 400 --emitcheckpoints"`
I cant make the gas fees go to the validators.
In genesis file I have set `"gasLimit" : "0x15",`
In docker-compose.yml file I set gas price to be 400
`export CONSENSUS_ARGS="--istanbul.blockperiod 5 --mine --minerthreads 1 --miner.gasprice 400 --emitcheckpoints"`
I cant make the gas fees go to the validators.
In genesis file I have set `"gasLimit" : "0x15",`
In docker-compose.yml file I set gas price to be 400
`export CONSENSUS_ARGS="--istanbul.blockperiod 5 --mine --minerthreads 1 --miner.gasprice 400 --emitcheckpoints"`
In metamask I cannot add any gas fees. Transaction fails with an error "gas fees is not zero"
hi exist any development for hyperledger besu with proof of stake ?
thank you in advance...
I think not.
However, you can replace PoS with rewards using smart contracts.
It is more flexible this way.
Has joined the channel.
"The merge" work (FKA Eth 2.0) is going on here: https://github.com/hyperledger/besu/tree/merge
Qubernetes - is it centralized?
https://docs.goquorum.consensys.net/en/stable/GetStarted/Getting-Started-Qubernetes/
Kubernetes is an application to run/manage/terminate many nodes centrally. Will an Ethereum private blockchain with nodes/validators running on Kubernetes retain its decentralized nature?
Qubernetes - is it centralized?
https://docs.goquorum.consensys.net/en/stable/GetStarted/Getting-Started-Qubernetes/
Kubernetes is an application to add/manage/terminate many nodes centrally. Will an Ethereum private blockchain with nodes/validators running on Kubernetes retain its decentralized nature?
Qubernetes - is it centralized?
https://docs.goquorum.consensys.net/en/stable/GetStarted/Getting-Started-Qubernetes/
Kubernetes is an application to add/manage/terminate multiple nodes from a central control plane. Will an Ethereum private blockchain with nodes/validators running on Kubernetes retain its decentralized nature?
Hi - silly question. According to the documentation, ETH methods should be enabled by default? But when I try and execute sth like `new Web3(...).eth.getTransactionCount(....)` I get a method not enabled error. The address I pass into the `getTransactionCount` method is one of the account addresses registered in the genesis file (dev.json).
looks like I have to add --rpc-http-api=ETH. Any ideas why?
looks like I have to add `--rpc-http-api=ETH`. Any ideas why?
I think it's not meant for production environments. Although perhaps there are usecases, when decentralization is not a requirement.
I think so too. When we need a decentralized ethereum network, we should not use Kubernetes.
Technically it is decentralized.
Administratively it is centralized.
Blockchain persay is a decentralized technology. Nodes running the blockchain can be either:
1. public: anyone can operate a validating node. This model is also administratively decentralized.
2. private: admins decide which validating nodes are added. This model is a blockchain but "permissioned" and controlled; hence administratively centralized.
Does anybody have a good write up on pros and cons of running no gas private network vs setting up fees? Sth with lessons learned? I see setting fees as ability to limit network spam, e.g. I wonder how contract execution would stop if there is a bug and there is no gas. I would like to play with it in close VPN accessible network, so I am don't need to really be worried about huge number of malicious actors. So maybe it's more practicality. Internally I could share eth via faucet (is there any open source faucet i could use spin for that purpose?).
(also if I set gas, will miners be earning it and that's the only way to get it then. I will have couple addresses in genesis with inital balance).
Hi, what would be the setting for sending mining rewards to a specific address instead of the validator on IBFT2?
coinbase parameter seems to be not working
nvm, found it; `miningbeneficiary`
Also, current Besu IBFT2 implementation doesn't support change of mining beneficiary, would it be possible to implement changing parameter on this when upgrading network?
What's your reasoning going IBFT2 vs Clique? I kind of feel that the "delayed" finality with forks of Clique is closer to consensus protocols in main networks out there, so apps written will need to be more resilient and will be more transerable to other blockchains?
The web3js-quorum client library will have some examples you can use to test it out https://besu.hyperledger.org/en/stable/Tutorials/Privacy/web3js-quorum-Multinode-example/
ETH methods are enabled by default. could there be something in your original setup that's overriding the default settings?
I don't think we have written up anything on this specifically. We'd be interested to hear your thoughts and what you find out from running this
Clique is not Byzantine Fault Tolerant (BFT) which a lot of use cases require.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
I think optimal for PoA is organizational centralization – hence the name consortium. There you have common policy and mutual trust, but each suborganization administers it's own node independently (own servers, passwords, admins, private keys etc.).
@shadiayoub you say using smart contracts how ? if i want a fixed total supply for a blockchain and POS concensus exist any documentation about this or repos ?
@shemnon thx i will take a look. with this code i can have a POS ethereum blockchain, will be possible to have a fixed total supply. exist any documentation about POS what happens to tokens locked for a malicious validator ?
sorry many questions :D . I already work with besu in one project, but i have some ideas to create a new one.
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=AYcZhnTfuuxmrzRXi) Asking question is the essence of this chat.
Getting answers is another thing though lol.
I work on some projects too. I'd love to share knowledge and experience if interested.
Anyway: with smart contracts:
you create the network with 100% premined amount.
You dedicated portion of the coins for rewards (instead of mining them).
You create a smart contract that distributes rewards to users based on conditions you set: amount of staking, period length, operating a node..... whatever you want.
This way it is way more flexible than the standard PoS mining.
Has joined the channel.
Has joined the channel.
@shadiayoub cool, i get the idea, for this i need to create like a genesis smart contracts and hardfork code to deal with this logic i think right?
i'm just discussing ideas :)
i'm trying to build a old version of besu but i not get this resource
>Could not resolve net.consensys:orion:1.5.0-SNAPSHOT.
> Unable to load Maven meta-data from https://consensys.bintray.com/pegasys-repo/net/consensys/orion/1.5.0-SNAPSHOT/maven-metadata.xml.
> Could not get resource 'https://consensys.bintray.com/pegasys-repo/net/consensys/orion/1.5.0-SNAPSHOT/maven-metadata.xml'.
> Could not GET 'https://consensys.bintray.com/pegasys-repo/net/consensys/orion/1.5.0-SNAPSHOT/maven-metadata.xml'. Received status code 403 from server: Forbidden
what repo has this resource?
Bintray shut down (JFrog, please return your Duke's Choice Award...). The binaries for 1.5.0 orion appear to be on cloudsmith (https://cloudsmith.io/~consensys/repos/orion/packages/?sort=-version&q=version%3A1.5.0) but I don't think they are wired up conveniently for inclusion as a maven library. @macfarla may know more.
ok thanks.
[ ](https://chat.hyperledger.org/channel/besu?msg=Poe85rPSqBDCidJXX) Not needed.
Instead, you create smart contracts just like on Ethereum, and dedicated wallets for rewards.
Think of it this way: What if you want to create a smart contract on Ethereum network to reward stakers with Ethereum (you won't do it but..) , you'd do this on your chain and own coin
Dears, we have a Prometheus/Grafana monitoring in our Besu permissioned network. We want to understand what ethstats can do that our existing monitoring cannot. As far as I understood, Ethstats has the advantage of reading data from the http/rpc port of a node and, of course, extract info from the blockchain itself (transactions, balances etc). Is that the main difference?
In IBFT2.0 and Clique here the validators are stored ?
In IBFT2.0 and Clique where the validators are stored ?
:thinking:
For clique every "epoch" block (3000 by default) lists all validators in the extra data. https://eips.ethereum.org/EIPS/eip-225
For IBFT 2.0: :man_shrugging_light_skin_tone: Not a protocol I know the low level details of.
Like staking and farming and other stuff... All different names for the same concept.
It can be done with genesis but not needed... So you don't fork.
In IBFT2, the validators are kept as a list in the Block Header's extra data field.
https://besu.hyperledger.org/en/latest/HowTo/Configure/Consensus-Protocols/IBFT/#extra-data
yep we did move orion binaries to cloudsmith. But also we've officially deprecated orion in favour of tessera (as of end of Nov ie today/tomorrow depending on your timezone). Is there a reason for building an old version of Besu or should I not ask??
Added an issue to implement IBFT2 and QBFT to be able change the mining beneficiary using transitions https://github.com/hyperledger/besu/issues/3115
:cool: thank you @shemnon @lucassaldanha
yes i are building a old version due a issue in our mainnet, dev and test net are updated but with other issue that block are mined off time, the block need 4seconds and for some reasom mined before, so the new cliente validate this and can't import. https://github.com/hyperledger/besu/issues/2797#issuecomment-976206735. but due a new issue we can update directly to production :) so we do a downgrade in all networks and later we will update all to new versions.
yes i are building a old version due a issue in our mainnet, dev and test net are updated but with other issue that block are mined off time, the block need 4seconds and for some reasom mined before, so the new cliente validate this and can't import. https://github.com/hyperledger/besu/issues/2797#issuecomment-976206735. but due a new issue we can't update directly to production :) so we do a downgrade in all networks and later we will update all to new versions.
for other problem the database of dev and test networks with new client can't be imported with older version, so we need to import node by node from 0.
Other problem the database of dev and test networks with new client can't be imported with older version, so we need to import node by node from 0.
Other problem the database of dev and test networks with new client besu v21 can't be imported with older version, so we need to import node by node from 0.
@macfarla this dependency is on testUtils i will remove for compile my client,
it's possivle from cloudsmith get resource like before?
sorry for my english, i'm portuguese :D
Has joined the channel.
Has joined the channel.
@shemnon @macfarla is possible import zip for the project as resource ?
i already resolved, i remove this util and all tests related to orion
thanks anyway
Hello
It's ok to develop an app with the quorum quickstart?
Or what do u think?
Like u can use it annd just develop the dapp
[ ](https://chat.hyperledger.org/channel/besu?msg=pKhadNSjkeWFPDMpX) It's very good so far.. It gives you a well setup network...
Like 4 a enterprise level u think?
If i do that how i can connect to the htpc/rpc
Yes.
It's the ip of the server :8545 by default.
Locally it's http://127.0.0.1:8545
Has joined the channel.
But if i want to connect to in a differente part of the world?
It will be the same ?
No, then use the ip of the server instead of 127.0.0.1
For example: http://124.55.187.22:8584\
No, then use the ip of the server instead of 127.0.0.1
For example: http://124.55.187.22:8584
In a scenario that a validator node called A (that is not bootnode) is linked directly only to one bootnode and many other validators, what happen if the bootnode fails? Will the validator A also fails? Or will the validator A keep communicating with other validators as usual?
Another question:
What happen if a validator node A (that is not bootnode) is linked to many bootnodes? Will the validator node A randomly choose one bootnode? Will the validator node interact with all bootnodes? Will it impact the performance of validator node A?
validator A should keep running peering with the other validators
Thanks!! U area a hero
Validator A will use all the bootnodes for initial peer discovery in this case. It will attempt to establish a peer connection and interact with all the listed bootnodes. There shouldn't be any performance impact on validator node A.
Thank you, @jframe. Will Validator A use the boots just in the initial peer discovery? Will validator A run discovery again and again periodically?
great that it's resolved!
ethstats gives a view of the overall blockchain (many nodes, not just Besu, and not just your nodes if it's a public network), Besu metrics gives a view of the besu node itself.
discovery is triggered by "insufficient peers" ie if your peer count falls below the threshold
Has joined the channel.
Has joined the channel.
I created a goquorum private network using this tutorial
https://docs.goquorum.consensys.net/en/stable/GetStarted/GettingStartedOverview/
How can I set a gas fees to 0.01 ETH? Which file should I edit? I tried editing gasLimit in genesis file. No effect. Should I edit some docker yaml file?
Tomorrow we will talk about Besu, Bonsai and Metamask with @GarySchulte and @matt.nelson.94!
We will talk through the steps, show live (and simulated) environments, and discuss caveats, pitfalls, tips, tricks, and more.
Make sure to register here: https://pages.consensys.net/webinar-besu-on-mainnet
Looking forward!
See you tomorrow then.
Has joined the channel.
Makes total sense!!! Thank you, @macfarla
:thumbsup:
Dears, Besu natively inputs a lot of metrics to Prometheus. But supposing we want to include new metrics, e.g., what are the 5 more called smart contracts in a permissioned network? I imagine I can develop an additional software to extract this metric and input it in Prometheus, correct? Is there any ready template/sample code/docs for using as a reference to that?
Dears, Besu natively inputs a lot of metrics to Prometheus. But supposing we want to include new metrics, e.g., what are the 5 more called smart contracts in a permissioned network? I imagine I can develop an additional software to extract this metric and input it in Prometheus, correct? Is there any ready template/sample code/docs for using as a reference to that?
Another example would be any command that I can do using curl. Supposing I want to include this as a new metric on Prometheus. Is there anything ready to help extensions like that?
[ ](https://chat.hyperledger.org/channel/besu?msg=e6JjrjDEmC4h9WHob) GoQuorum doesn't support anything other than zero gas price networks. If you want to do something like that you should use besu :smile:
Another example would be any command that I can do using curl. Supposing I want to include this as a new metric on Prometheus. Is there anything ready to help extensions like that?
Has joined the channel.
@antonydenyer Interesting...
And in all cases, there is no way to set gas at a fixed ETH price like 0.01 , is there?
There is no gas price in GoQuorum - maybe in the distant future but not right now. What specific features in GoQuorum do you want to use with gas?
Yeah, I meant with Besu.. Gas price is set by max. blocksize and not with a defined Eth price.
Okay, so you if want a fixed gas price of 0.01 eth you should be able to set it and use a non proof of work consensus algorithm ie QBFT.
You will need to fund an account at genesis and use that as a 'faucet' for funds to do transactions
This is news... Good news.
We can set up a fixed gas fee network using ibft ?!
yeah I think so (not 100% sure)
Nice
well the network starts! I'll leave the rest to you :slight_smile:
Finally, there is some clarity about gas price in a goquorum network. I think they should put this in docs.
Has joined the channel.
for besu fast sync on mainnet, how long should it reasonably take to confirm the first pivotblock.. i seem to get 4 confirmations really quick then the 5th just stalls
Has joined the channel.
@efrain - raised https://github.com/ConsenSys/doc.goquorum/issues/167 to add the gas price info to the GoQuorum docs
Has joined the channel.
anyone has a problem with qourum dev quickstart? I have an error with the permissions on the config file and the nodes not starting
Clipboard - 2 de diciembre de 2021 7:17
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=j4mvedqD7f3f5yShS) Hi @joey_gogo which version of Besu are you running? are you running behind a firewall?
sounds like a file permissions issue - can you check the permissions for the user you're running the quickstart under - that user will need to have write permission to your file system
Yes... I execute this deployment with the only user of the host. If I deploy older versions of Besu it works... I don´t know what happend with the new release, but it doesn´t works
Has joined the channel.
21.1.6 I'm trying this out in AWS i have outbound open 0.0.0.0/0
Has joined the channel.
then update to the last version, since it is much better in finding more peeds
and you should also open the p2p inbound port, by default 30303
is the inbound required or just more helpful?
Has joined the channel.
not required, but helps to get more peers
which version are you using? Can you share the command you're using to run the quickstart including any options? Thanks
Dears, we successfully upgrade all our nodes in our permissioned network to 21.7.4. Now, we need to upgrade to Berlin. We included the line "berlinBlock": "17974000". However, after changing that in a node and restarting it, the new node did not go up anymore.
Any clue? I believe I do not need to restart all nodes at the same time, correct?
Dears, we successfully upgrade all our nodes in our permissioned network to 21.7.4. Now, we need to upgrade to Berlin. We included the line "berlinBlock": "17974000" in the genesis file. However, after changing that in a node and restarting it, the new node did not go up anymore.
Any clue? I believe I do not need to restart all nodes at the same time, correct?
Appreciate it, looks like i'm syncing and downloading state much faster
Has joined the channel.
Has joined the channel.
stable version, but, if you download with the instruction "npx quorum-dev-quickstart", you will download the latest version
I executed this instruction: npx quorum-dev-quickstart
the instruction os the official page of BEsu
Has joined the channel.
DId you try another node?
These two nodes should at least talk to each others since they both have the same genesis different from the rest.
Has joined the channel.
@shadiayoub how are you getting on? Working as expected?
Has joined the channel.
I have not yet tried this. Not sure how to set a fixed gas price...
In docker-compose.yaml file I have set `--min-gas-price=400000` and started the network.
I can verify that some gas fee is needed to execute a transaction and the gas fee is deposited to the validator's address.
When I kept 0 as gas price in metamask, the network keeps the Transaction pending for a long time.
The transaction gets accepted when I set the gas price as non-zero. Even if the gas price is just 1. But I have set `--min-gas-price=400000` and I thought such transactions would fail.
In docker-compose.yml file I have set `--min-gas-price=400000` and started the network.
I can verify that some gas fee is needed to execute a transaction and the gas fee is deposited to the validator's address.
When I kept 0 as gas price in metamask, the network keeps the Transaction pending for a long time.
The transaction gets accepted when I set the gas price as non-zero. Even if the gas price is just 1. But I have set `--min-gas-price=400000` and I thought such transactions would fail.
@efrain The min-gas-price does not set the actual price of gas, but the minimum possible. Gas changes based on the size of the transaction. This is where the gas-limit comes into place.
So I am not sure if we can set a defined foxed gas price.... Or not yet at least.
@shadiayoub
I understand that `min-gas-price=400000` sets a lower limit on the gas price. So, it should not allow the Tx when the client (metamask in my case) sets the gas price at less than 400000 gwei. But the Tx gets through.
Is the `--min-gas-price` value to be specified in units of gwei, wei or ETH? I assumed it is gwei.
@shadiayoub
I understand that `min-gas-price=400000` sets a lower limit on the gas price. So, it should not allow the Tx when the client (metamask in my case) sets the gas price at less than 400000 gwei. But the Tx gets through.
@shadiayoub
I understand that `min-gas-price=400000` sets a lower limit on the gas price. So, it should not allow the Tx when the client (metamask in my case) sets the gas price at less than 400000. But the Tx gets through.
@shadiayoub
I understand that `min-gas-price=400000` sets a lower limit on the gas price. So, it should not allow the Tx when the client (metamask in my case) sets the gas price at less than 400000 gwei. But the Tx gets through.
@shadiayoub
I understand that `min-gas-price=400000` sets a lower limit on the gas price. So, it should not allow the Tx when the client (metamask in my case) sets the gas price at less than 400000 gwei. But the Tx gets through.
What is the unit for `min-gas-price` - wei, gwei or ETH? I assumed it is gwei.
@shadiayoub
I understand that `min-gas-price=400000` sets a lower limit on the gas price. So, it should not allow the Tx when the client (metamask in my case) sets the gas price at less than 400000 gwei. But the Tx gets through !!!
What is the unit for `min-gas-price` - wei, gwei or ETH? I assumed it is gwei.
I dont want to set a fixed gas price. Even if I can set a minimum price, that is sufficient for my purpose.
From experimenting I found that the unit for `min-gas-price` is `wei`. The docs are not clear on this https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#min-gas-price
@madelinemurray Can you raise a ticket to include this info in the docs?
Yes, wei it is...
Has joined the channel.
Has joined the channel.
hi i need to fast sync IBFT new validators, is valid i "copy and paste" or syncronize the database folder to new validator ?
is more fast copy database files than new validator import one by one.
is more fast copy "database" files than new validator import one by one.
is more fast copy `database` files than new validator import one by one.
is more fast copy `database` files than new validator import one block by one.
my question is safe do this way ?
`cache` folder is needed as well ?
Has joined the channel.
Has joined the channel.
Hello mates i can't make a write operation in besu
Any more info?
Checked permissions? Tried as root?
It seems the issue was to use quotes around the block number!
Yes i'm trying with javascript but it gaves me an error
That it only support raw transactions
Error: Returned error: The method eth_sendTransaction is not supported. Use eth_sendRawTransaction to send a signed transaction to Besu.
Hello Clippo. Besu doesn't support handling user keys/wallets, you may want to use EthSigner if you really need to use `eth_sendTransaction` or sign your transactions on your client to prepare them for `eth_sendRawTransaction`. You may fin more info [here](https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/)
Been there, done that.
Safe-wise I guess no problem.
For example when we get a full Ethereum node on Google cloud this is what they do. They copy the data to a new disk, and then the new node takes it from there.
The docs doesn't explain that much of how to use it
:besu:
I wish I knew more about development.
I am an admin, trying to learn some dev.
But diegoll's answer sums it up I guess.
Has joined the channel.
It's said that ibft2 is not scalable to large networks.
What's the definition if 'large'?
I want to run a node using Besu with IBFT2 consensus. This node should not receive transaction fees but there are other validator nodes which do receive the fees. This node should have the full data of the blockchain and RPC endpoint. Is it possible to run a non-validator node?
How do nodes get fees?
I thought we can set one beneficiary address in genesis.
Validator nodes get the transaction fees. The configuration for this is not to be done in genesis file. While starting the nodes with `besu` command we have to include the command line option `--min-gas-price=1000000` or any non-zero value. Then when a transaction happens in the network, the addresses of the validator nodes get the fees.
Nice!
Very useful information. Thanks...
https://docs.goquorum.consensys.net/en/stable/HowTo/Use/adding_nodes/#ibft-qbft-and-clique
Has joined the channel.
Has joined the channel.
This largely depends on the network config and the contracts that are in play, but about 30 is safe. If all the nodes are using private address for example in a VPC the latency is a lot quicker, than by going via the public internet
Hi @SuzanaMaranhao I think the closest thing we have is the plugins interface and you can develop custom plugin to do this https://besu.hyperledger.org/en/latest/Concepts/Plugins/ In this case the smart contracts & txns and build off that? Tessera has something along these lines though (API metrics) that you could also use as sample code
@joshuafernandes Thanks so much...
How can we use mining in ibft ?
And can it be for a limited supply?
Adding some additional info here - the comment about large refers to the number of validators in the network not the total number of nodes.
Thank you Madeline :) yes, should have clarified that. You can have n nodes (non validators) and the comment above is for validators only
In ibft2 there is no mining as such. But you can reward the validator the proposes the block by setting the miningbeneficiary and a blockreward in the ibft2 configuration https://besu.hyperledger.org/en/latest/HowTo/Configure/Consensus-Protocols/IBFT/#genesis-file
In ibft2 there is no mining as such. But you can reward the validator that proposes the block by setting the miningbeneficiary and a blockreward in the ibft2 configuration https://besu.hyperledger.org/en/latest/HowTo/Configure/Consensus-Protocols/IBFT/#genesis-file
that
The supply in ibft2 is limited to whatever is allocated in the initial accounts in the genesis file.
Has joined the channel.
@jframe Thank you very much !
Has joined the channel.
Thank you, @shadiayoub
Has joined the channel.
Has joined the channel.
Did someone setup Hyperledger Besu with the RCP enable and using Expedition ? I need some help cause my link between the RPC API and the Block Explorer is not working. :(
Are you still having this issue? I don't seem to be able to reproduce this error
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi,
I trying to integrate ERC 1155 with BESU
but i am unable to import Openzeppelin of ERC1155
Looking out for some guidance
Thank you
Hi,
I am trying to integrate ERC-1155 with BESU
but i am unable to import Openzeppelin of ERC1155
Looking out for some guidance
Thank you
Hi,
I am trying to integrate ERC-1155 with BESU
but i am unable to import Openzeppelin of ERC1155
Looking out for Help
Thank you
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Yes , i still can't sign the transaction with javascript
Has joined the channel.
Has joined the channel.
Dears, we changed all genesis file to do the EIP upgrades to Berlin at a specific block that was already generated. The network is still working perfectly, but what is the best way to test if the EIP upgrades really happened?
Check gas costs on sloads on a repeated slot read in the same tx.
Or submit a "type 1" or EIP2930 transaction with an access list.
Has joined the channel.
Has joined the channel.
Has joined the channel.
How to increase throughput?
How to increase throughput? I am getting a lot lesser throughput (around 400-500) before applying RPC max active connection (default was 80). After applying this configuration the throughput increased, but sometimes more transaction is causing the network to get stuck. I am using docker to run the besu network in AWS, and the network is gas free
Hi,
I am trying to integrate ERC-1155 with BESU
but i am unable to import Openzeppelin of ERC1155
Looking out for Help
Thank you
Has joined the channel.
Has joined the channel.
@shemnon - you said "Check gas costs on sloads on a repeated slot read in the same tx.
Or submit a "type 1" or EIP2930 transaction with an access list.""
What is the best way to do this? I was trying to debug a transaction using Remix and analyzing the "step details". Is it the way to go? What do you recommend?
sload costs changed in general, so any transaction when run through a simulator with the same state should hve the same gas cost. Just compare the costs at the end. But a type 1 transaction is the quickest to verify, but not many wallets support it.
@shemnon I am trying to understand your comment. I think I need to understand some points before it. I do not have experience with low-level ethereum code:
1) Is the Remix debug a simulator to test the gas cost?
2) I think you are referring to EIP-2929, which seems to change the gas cost of SLOAD to 2100. Is it the case?
3) As far as I understood from EIP-2929, I need to check different uses of SLOAD in the same function, correct? Because now you said to look at the cost at the end....
4) Do you have an example of wallet that supports type 1 transaction? Do you have a link to this?
1-3 yes, verify the simulated gas cost matches the receipt from your network.
4, no, I don't know of a wallet that does type 1, they all went straight to type2/london/eip1559
If "the simulator gas cost matches the receipt" it means that the fork happened?
yes
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
hi all, on my besu node i encountered the following error:
WARN | JsonRpcHttpService | Rejecting new connection from 193.56.29.33:35546. Max 80 active connections limit reached.
it being understood that they can be increased from configuration there is the possibility to control them in real time with some ws or rpc call ? thanks
hi all..we have problem with a contract deployed on hyperledger besu, on the withdraw function - the contract works fine on Avalanche, Binance Smart Chain, Polygon and we can withdraw from the smart contract, but on Hyperledger it fails, also address(this).balance returns 0 even if there is balance in smart contract
pragma solidity 0.8.9;
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
contract TokenRecover is Ownable {
/**
* @dev Remember that only owner can call so be careful when use on contracts generated from other contracts.
* @param tokenAddress The token contract address
* @param tokenAmount Number of tokens to be sent
*/
function recoverERC20(address tokenAddress, uint256 tokenAmount) public onlyOwner {
IERC20(tokenAddress).transfer(owner(), tokenAmount);
}
}
/**
* @title ServiceReceiver
* @dev Implementation of the ServiceReceiver
*/
contract ServiceReceiver is TokenRecover {
mapping (bytes32 => uint256) private _prices;
event Created(string serviceName, address indexed serviceAddress);
function pay(string memory serviceName) public payable {
emit Created(serviceName, _msgSender());
}
function getPrice(string memory serviceName) public view returns (uint256) {
return _prices[_toBytes32(serviceName)];
}
function setPrice(string memory serviceName, uint256 amount) public onlyOwner {
_prices[_toBytes32(serviceName)] = amount;
}
function withdraw(uint256 amount) public onlyOwner {
payable(owner()).transfer(amount);
}
function _toBytes32(string memory serviceName) private pure returns (bytes32) {
return keccak256(abi.encode(serviceName));
}
}
function withdraw(uint256 amount) public onlyOwner {
payable(owner()).transfer(amount);
this contract is used within creator.tagbond.com, which enables ERC20 creation on multiple Layer 2 Networks, with the Tagbond network running on Hyperledger Besu
right. :cool:
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
@shemmon, I could reproduce the test. Thank you!
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi,
I am trying to integrate ERC-1155 with BESU
but i am unable to import Openzeppelin of ERC1155
Looking out for Help
Thank you
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Besu release 21.10.3 has the wrong binaries linked
`besu/v20.10.3/linux-x86_64/graalvm-java-11`
Has joined the channel.
Here? - https://github.com/hyperledger/besu/releases/tag/21.10.3
Good catch. Updated.
Thanks for letting us know - this has been fixed!
A zero-day vulnerability has been published in log4j, which is used by Besu.
We released 21.10.3 which includes a patch: https://github.com/hyperledger/besu/releases/tag/21.10.3
All users should upgrade immediately or manually mitigate.
Manual mitigation can be done by running Besu with this additional flag “‐Dlog4j2.formatMsgNoLookups=True”
Note that this may impact the behaviour of your system’s logging if it relies on Lookups for message formatting.
Hi all - with regards to the above message - please hold off on updating for now and apply the manual mitigation as necessary. We are testing this release more carefully to see if there are any other issues
Confirmed as fixed
Hello all... How can I trace down the reason no blocks are being produced?
It's a new network from scratch. Peers show as connected. Logs don't show complains.
Hello all... How can I trace down the reason no blocks are being produced?
It's a new network from scratch. Peers show as connected. Logs don't show complains.
Edit: Answer is: because I created a network with 15 validators, so from extradata it is expected to have at least 2/3 of these 15 validators operational.
I had only 4 running so no blocks were validated.
Solution: operate 10 validators at least for this network, or create a network with 4-6 validators and operate 2/3 minimum.
Has joined the channel.
Hi! Excited to be part of the group.
I have a question. We are considering the use of Hyperledger but not sure which "version" to use. We believe that BESU may be the best option given our goals. That being said, can someone tell me the following:
1) Does BESU have the ability to leverage Hyperledger functionality on a private network (nodes) and interact with the Ethereum (ETH) Main Net, when necessary? For example, we would have a private ecosystem that facilitates transactions amongst users but leverages an ERC-20 token. That would require calls to ETH main net for balances or transfers but the remaining transactions would be private within our ecosystem. Is this possible with BESU?
Has joined the channel.
Has joined the channel.
And another question for the group comes to mind...what happens with the consensus methods for BESU when ETH 2.0 is introduced?
Hey! Sounds like Besu suits your use case perfectly - it's our mainnet client with privacy and permissioning features. I recommend having a read through the docs here https://besu.hyperledger.org/en/stable/ and maybe give the quickstart a go, let us know if you have any questions.
Teku is our ETH2.0 client that can be run alongside with Besu https://github.com/ConsenSys/teku
currently this is a CLI option on startup. No ability to change it in real time.
If you can supply the smart contract and complete js script you're using to call it, that would help us in reproducing the problem. Also version of Besu and any other environment info. If you create an issue in github there's a template which has prompts for various info which helps us. Thanks!
If you can supply the error message you're getting, the smart contract and any script you're using to call it, that would help us in reproducing the problem. Also version of Besu and any other environment info. If you create an issue in github there's a template which has prompts for various info which helps us. Thanks!
Also have you tried your smart contract against remix or ganache? Is the problem with besu specifically or further up the stack?
Did you get anywhere with this one?
Besu doesn't support eth_sendTransaction https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Account-Management/
You can either sign the transaction yourself - see https://github.com/ConsenSys/web3js-quorum `generateAndSendRawTransaction` OR run ethsigner alongside besu - you can send eth_sendTransaction to ethsigner and it signs and sends tx to besu
We recently put together some tuning tips (mostly aimed at private transactions) but some of this might be relevant for you https://besu.hyperledger.org/en/latest/HowTo/Use-Privacy/Performance-Best-Practices/
Sanity-checking: if I want to use a TLS connection between my Dapp and Besu, then I need to use the HTTP RPC API, correct? (and I cannot use the websocket API in that case)
Hi there! I have just a quick question to sanity-check: if I want to use a TLS connection between my Dapp and Besu, then I need to use the HTTP RPC API, correct? (and I cannot use the websocket API in that case)
I have a besu network. I am using Alethio block explorer. How can I change the ETH symbol to a custom one? I tried creating a config.json file as mentined in the docs but it did not work. https://github.com/Alethio/ethereum-lite-explorer#configuration
I have a besu network. I am using Alethio block explorer. How can I change the ETH symbol to a custom one? I tried creating a config.json file and set `ethSymbol` as mentined in the docs but it did not work. https://github.com/Alethio/ethereum-lite-explorer#configuration
Has joined the channel.
Has joined the channel.
Hey guys how u doing , i've this problem ERRORError: Returned error: Privacy is not enabled someone know maybe a hint of this problem?
Hello colleagues, is Besu 21.7.4 vulnerable to the log4j bug?
Yes. Use 21.10.3 or later.
(21.10.3 is the latest at the moment.)
Thank you
When I say "yes" I mean it has the vulnerable Log4J version. It can be mitigated also with command line flags, or a custom log4j file.
But upgrading versions is the best route if that is an option, generally speaking.
Hello , someone know why this happens
{
"jsonrpc" : "2.0",
"id" : 1,
"error" : {
"code" : -50200,
"message" : "The list of members in a privacy group should include self"
}
In creating a privacy group
Has joined the channel.
it means you haven't enabled privacy https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#privacy-enabled
it means you haven't included yourself (your own tessera public key) in the list when creating the privacy group
yep we don't have TLS for websockets
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello , how you doing i think i fix it buy i have this error rn ERRORError: Returned error: Private from does not match enclave public key
Don't know why
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
privateFrom (when you're sending a private transaction) has to match the Tessera public key you have configured. Besu points to Tessera using privacy-url and the keys need to match
Have you run through this tutorial - it might help cement the basics for you https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello everyone.
I want to know if besu keeps a list of nodes it's connected to? in case it falls, it can reconnect with these nodes
Hello everyone.
I would like to know if besu persists a list of nodes it's connected to? in case it falls, it can reconnect with these nodes.
for example: I'm connected to node B from discovery and I'm also connected to bootnode C. If my node goes down, when I get up, I'll connect directly to node B or I'll connect to node C and use discovery to find the B
Has joined the channel.
Has joined the channel.
Has joined the channel.
We have just released besu 21.10.4 which upgrades log4j to version 2.16. This patches the second round of log4shell vulnerabilities. Given the criticality of these security issues, please upgrade if you are running any besu version less than 21.10.4.
Has joined the channel.
If the network is already running and I want to add a besu node or verify the node, what should I do?
Hi, i'm running Besu(21.10.2) on Ethereum mainnet in fast sync mode, so far it reached chain height=13,754,413 and it is not importing any blocks for past several days. In log there are messages like:
EthScheduler-Services-7 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 396700000 world state nodes. At least 34661198 nodes remaining.
EthScheduler-Services-7 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 396800000 world state nodes. At least 34652474 nodes remaining.
EthScheduler-Services-7 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 396900000 world state nodes. At least 34650350 nodes remaining.
CPU (4vCPU machine) is around 70%, disk is around 65% full (520GB).
I have difficulties to understand what exactly its going on, is it working, is it stuck or else?
Thanks.
Has joined the channel.
Has joined the channel.
Hello Everyone! I am new to using goQuorum and BlockChain in general. I'm a Cloud/DevOps Engineer but i'm really interested to learn blockchain. So i have started a network with instructions from https://consensys.net/quorum/products/guides/getting-started-with-consensys-quorum/
I'm have tried geth attach http://localhost:8545/ but i'm unable to send transaction from the account i imported from the instructions via the CLI. Manually clicking it on metalmask works will allow the transaction to go through.
Where can i find the ipc file that the network has started? Am i heading in the right direction?
Hello Everyone! I am new to using Quorum and BlockChain in general. I'm a Cloud/DevOps Engineer but i'm really interested to learn blockchain. So i have started a network with instructions from https://consensys.net/quorum/products/guides/getting-started-with-consensys-quorum/
I'm have tried geth attach http://localhost:8545/ but i'm unable to send transaction from the account i imported from the instructions via the CLI. Manually clicking it on metalmask works will allow the transaction to go through.
Where can i find the ipc file that the network has started? Am i heading in the right direction?
hello,
Would someone know to tell me where I can find the besu discovery algorithm and how it works?
I think this is a good place to begin https://eth.wiki/en/research/node-discovery-protocol
I think this is a good place to start https://eth.wiki/en/research/node-discovery-protocol
Has joined the channel.
Has joined the channel.
Has joined the channel.
hi all...I am trying to create 2 sets of validator machines, with the idea that both have 4 sets of validators, - on one machine it was working fine, we set the other machine up the same way, and added 2 addresses as validators via proposed vote api method...now no more blocks are being produced...and we cannot remove the newly validators because no more blocks are being produced...any ideas where we went wrong?..:-)
both machines can see and connect with each other...ports 8545, 30303 , bootnodes, static nodes etc are all working
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
We have just release besu 21.10.5 (https://github.com/hyperledger/besu/releases/tag/21.10.5). This upgrades log4j to version 2.17 to patch the third critical vulnerability in a fortnight. Although from the limited information we have about this new issue it seems that besu is not affected.
My first guess is that now that you have more validators, you need 2/3 validators to vote
https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/IBFT/
Not exactly sure how the situation occurred. You can bypass the voting and reset the list of validators with a transition though: https://besu.hyperledger.org/en/stable/HowTo/Configure/Consensus-Protocols/Add-Validators/#adding-and-removing-validators-without-voting
Sending transactions to besu won't work in the same way as geth because Besu does not has wallet capabilities. Take a look at https://docs.ethsigner.consensys.net/en/stable/
Once it gets a pivot block, fast sync has a stage where it has to download the world state before it will progress. During this stage, no blocks are imported. It can take several days since the world state is quite large
I'm guessing you're using the quickstart? https://besu.hyperledger.org/en/latest/Tutorials/Developer-Quickstart/#add-a-new-node-to-the-network
The short answer: no. Besu does not persist connections. It will start again with any configured bootnodes/static-nodes
Thanks, i noticed this morning messages in the log such as:
2021-12-20 05:54:56.819+00:00 | EthScheduler-Services-18 (importBlock) | INFO | FastImportBlocksStep | Completed importing chain segment 13840044 to 13840229, Peers: 26
2021-12-20 05:54:56.820+00:00 | EthScheduler-Services-18 (importBlock) | INFO | PipelineChainDownloader | Chain download complete
2021-12-20 05:54:57.300+00:00 | EthScheduler-Services-2 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 500000 world state nodes. At least 7498482 nodes remaining.
2021-12-20 05:55:56.144+00:00 | EthScheduler-Services-2 (requestCompleteTask) | INFO | CompleteTaskStep | Downloaded 600000 world state nodes. At least 8998239 nodes remaining.
I guess this is the exact part you're talking about right?
yes indeed
Has joined the channel.
Has joined the channel.
i am researching out for gaming on besu using ERC1155
can you help me!
Hi all, the besu config.tom used to use * to allow any connection. Today a trusted domain name is added with host-allowlist=["my-domain.com"] and host-cors-original = ["https://my-domain.com"]. Here "my-domain.com" is the domain name for the physical server where 4 besu nodes are running. However there is error of "Host Not Authorized"
Connection mainchain error [Error: bad response (status=403, headers={"date":"Mon, 20 Dec 2021 23:17:55 GMT","content-type":"application/json; charset=utf-8","content-length":"34","server":"nginx/1.21.4","connection":"keep-alive"}, body="{\"message\":\"Host not authorized.\"}", requestBody="{\"method\":\"eth_blockNumber\",\"params\":[],\"id\":42,\"jsonrpc\":\"2.0\"}", requestMethod="POST", url="https://my-domain.com", code=SERVER_ERROR, version=web/5.5.0)]
rpc-http-cors-origins and host-allowlist
Has joined the channel.
The node has token authorization enabled and it was working before.
that doesn't look like a besu error
so it was working when you had * but when you put the host name into host-allowlist and rpc-http-cors-origins it doesn't work?
I would recommend changing one at a time to try and narrow it down
could it be the host is http not https? could it be a dns issue?
Has joined the channel.
Has joined the channel.
Hey y'all
How i connect a node to my besu network from another computer
I was reading the docs but i got lost
Like i want to add another validator
Follow the step of adding the second node. But replace 127.0.0.1 with your first node's ip address in the enode address.
You can ask if you need more details.
Thanks for answering so i need to use this?
besu --data-path=data --genesis-file=../cliqueGenesis.json --permissions-nodes-config-file-enabled --permissions-accounts-config-file-enabled --rpc-http-enabled --rpc-http-api=ADMIN,ETH,NET,PERM,CLIQUE --host-allowlist="*" --rpc-http-cors-origins="*" --p2p-port=30304 --rpc-http-port=8546
Or this besu --data-path=data --genesis-file=../cliqueGenesis.json --bootnodes=
But mi question is that the other computer needs the genesis file?
Yes.
Each computer needs a genesis
In fact, each node does. But nodes on a single computer can share the genesis file for ease.
Copy the contents of genesis file to the new node
Thanks very much
I appreciate it now i understand it
Same goes for permissions and static-nodes files. But those two do not have to be the same on all nodes.
Genesis does.
It's worth mentioning that on the computer you can leave out specifying the ports.. i.e. 8546 and 30304
Since it will use the default ports 8545 and 30303 without conflicts.
In the tutorial however, nodes are on the same machine, therefore we have to specify different ports for additional nodes.
It's worth mentioning that on the second computer you can leave out specifying the ports.. i.e. 8546 and 30304
Since it will use the default ports 8545 and 30303 without conflicts.
In the tutorial however, nodes are on the same machine, therefore we have to specify different ports for additional nodes.
Thanks!!! Gotcha
!!!!
Hi, I've added world state completed and pending requests to our grafana dashboard, pending requests looks strange with spikes i don't understand, is this normal behaviour or this indicate some problem?
besu-grafana.png
Has joined the channel.
Can u increase the gas price in besu any admin methods?
@JiriPeinlich is this normal behavior for fast sync? I would think it looks ok but you have more knowledge of this area!
https://besu.hyperledger.org/en/stable/Reference/API-Methods/#miner_changetargetgaslimit is this what you're looking for?
Hello , that's only miner ?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Gas price for the network you mean I guess.
This attribute in Genesis cannot be changed after running the network, as mentioned in the docs.
I tried to locate this information in docs but couldn't.
But it is mentioned somewhere in the official docs.
Hello everyone.
could you tell me, how many peers the nodes can support in besu ?
Default is 25. No one that I am aware of has tried to see where the upper limit ie.
Default is 25. No one that I am aware of has tried to see where the upper limit is.
As IBFT is not scalable to large number of nodes, what is considered the maximum number of nodes for ibft to stay efficient?
As IBFT is not scalable to large number of nodes, what is considered being the maximum number of nodes for ibft to stay efficient?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
What's the correct docker command to run Besu using --config-file=config.toml, please?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi all, I saw in one of the documentation today that ether transfer cannot be private. I was wondering if it is only limited to ether or other custom ERC20 tokens. Also if ether transfer cannot be private does private transaction pays gas?
Has joined the channel.
Has joined the channel.
Has joined the channel.
In dockerized world it is quite hard to overwrite --entrypoint with parameter. I would rather try to give config via environment variable eg. docker run hyperledger/besu:latest -e BESU_CONFIG_FILE=/config.toml ( if file is on your localfs you need to map it as well)
Hi Everyone! Im new with besu and trying to run besu on kubernetes. I was using https://github.com/ConsenSys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/clique as baseline and when running private network with 4 validators and 3 nodes I started receiving problems:
Hi Everyone! Im new with besu and trying to run besu on kubernetes. I was using https://github.com/ConsenSys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/clique as baseline and when running private network with 4 validators and 3 nodes I started receiving problems: ` EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 6`
Hi Everyone! Im new with besu and trying to run besu on kubernetes. I was using https://github.com/ConsenSys/quorum-kubernetes/tree/master/playground/kubectl/quorum-besu/clique as baseline and when running private network with 4 validators and 3 nodes I started receiving problems: ` EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 6` Probably problem is with my kubernetes instance but no idea how I can troubleshoot this error
Thank you very much.
Has joined the channel.
This is additional log (maybe this will help):
This is additional log (maybe this will help):
`2021-12-29 17:28:16.939+00:00 | vert.x-eventloop-thread-1 | DEBUG | PeerDiscoveryController | Peer table refresh triggered by insufficient peers
2021-12-29 17:28:16.940+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Start peer search.
2021-12-29 17:28:16.940+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2021-12-29 17:28:16.940+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Initiating neighbours round with 3 candidates from 3 tracked nodes
2021-12-29 17:28:16.962+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Received neighbours packet with 3 neighbours
2021-12-29 17:28:16.963+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Received neighbours packet with 3 neighbours
2021-12-29 17:28:16.963+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Received neighbours packet with 4 neighbours
2021-12-29 17:28:16.963+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Skipping bonding round because no candidates are available
2021-12-29 17:28:16.963+00:00 | vert.x-eventloop-thread-1 | DEBUG | RecursivePeerRefreshState | Iterative peer search complete. 3 peers processed over 2 rounds.`
Nevermind - I messed up with keys for validators :)
Has joined the channel.
Has joined the channel.
This is normal fast sync behaviour, we are working on improving it
This is normal fast sync behaviour, we are working on improving it. There is now WIP to reduce the amount of stored working state requests https://github.com/hyperledger/besu/pull/3202
Has joined the channel.
Thanks, number of pending requests dropped to zero and chain height moved to head of chain and I thought things will 'stabilize' but after some time client entered again in this mode with huge number of pending requests and increasing number of blocks behind. Is this also normal behaviour and is there any meaning to anticipate when it will finish?
besu-12-30.png
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
I think that represents a change of pivot block for fast sync
so I would consider it normal
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
The restriction is only for ether transfers. That is, private transactions cannot have value > 0
Private transactions can still pay gas. You can configure the network to be zero gas (free gas) or non-zero gas - more info here - https://besu.hyperledger.org/en/stable/HowTo/Configure/FreeGas/#configuring-free-gas-in-hyperledger-besu
Welcome new members 🙂 Let us know if you've got any questions about getting started with Hyperledger Besu. The quickstart is a good place to start!
[ ](https://chat.hyperledger.org/channel/besu?msg=XTdBrphABReZ3aPoc) I do have one: to use hashicorp for keys is it required that we use quorum-key-manager?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
You can use EthSigner with HashiCorp keys https://docs.ethsigner.consensys.net/en/stable/HowTo/Store-Keys/Use-Hashicorp/
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
I am learning the data structure of Ethereum transaction receipt. I want to know which field is the return result of the function after calling the smart contract?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
My Enterprise is at a heightened security awareness with the log4j vulnerabilities as are most. We scanned 21.10.5 in Nexus IQ, the scan results are below. We cannot proceed with security vulnerabilities seven or higher. When can these be remediated? When do you plan to update log4j to 2.17.1? hreat of 10
com.fasterxml.jackson.core : jackson-databind : 2.12.4
com.google.code.gson : gson : 2.8.6
com.squareup.okhttp: okhttp: 2.7.5
com.squareup.okhttp3 : okhttp:4.9.1
io.kubernetes : client-java : 5.0.0
io.netty: netty-all : 4.1.66. Final
io.netty: netty-all: 4.1.66. Final
io.netty: netty-codec : 4.1.65.Final
io.netty: netty-codec : 4.1.65.Final
io.netty: netty-codec : 4.1.65. Final
Threat of 7
com.squareup.okhttp: okhttp: 2.7.5
commons-codec : commons-codec : 1.13
io.grpc: grpc-core: 1.39.0
io.kubernetes: client-java : 5.0.0
io.netty: netty-all : 4.1.66.Final
io.netty: netty-codec-http: 4.1.65.Final
io.netty: netty-handler : 4.1.65.Final
commons-codec: commons-codec: 1.13
io.grpc: grpc-core : 1.39.0
io.kubernetes : client-java:5.0.0
io.netty: netty-all : 4.1.66.Final
io.netty: netty-codec-http : 4.1.65.Final
io.netty: netty-handler: 4.1.65.Final
io.vertx: vertx-web : 3.9.8
org.apache.logging.log4j : log4j-core : 2.17.0
org.bouncycastle : bcprov-ext-jdk15on: 1.61
org.bouncycastle : bcprov-jdk15on: 1.69
My Enterprise is at a heightened security awareness with the log4j vulnerabilities as are most. We scanned 21.10.5 in Nexus IQ, the scan results are below. We cannot proceed with security vulnerabilities seven or higher. When can these be remediated? When do you plan to update log4j to 2.17.1? Threat of 10
com.fasterxml.jackson.core : jackson-databind : 2.12.4
com.google.code.gson : gson : 2.8.6
com.squareup.okhttp: okhttp: 2.7.5
com.squareup.okhttp3 : okhttp:4.9.1
io.kubernetes : client-java : 5.0.0
io.netty: netty-all : 4.1.66. Final
io.netty: netty-all: 4.1.66. Final
io.netty: netty-codec : 4.1.65.Final
io.netty: netty-codec : 4.1.65.Final
io.netty: netty-codec : 4.1.65. Final
Threat of 7
com.squareup.okhttp: okhttp: 2.7.5
commons-codec : commons-codec : 1.13
io.grpc: grpc-core: 1.39.0
io.kubernetes: client-java : 5.0.0
io.netty: netty-all : 4.1.66.Final
io.netty: netty-codec-http: 4.1.65.Final
io.netty: netty-handler : 4.1.65.Final
commons-codec: commons-codec: 1.13
io.grpc: grpc-core : 1.39.0
io.kubernetes : client-java:5.0.0
io.netty: netty-all : 4.1.66.Final
io.netty: netty-codec-http : 4.1.65.Final
io.netty: netty-handler: 4.1.65.Final
io.vertx: vertx-web : 3.9.8
org.apache.logging.log4j : log4j-core : 2.17.0
org.bouncycastle : bcprov-ext-jdk15on: 1.61
org.bouncycastle : bcprov-jdk15on: 1.69
My Enterprise is at a heightened security awareness with the log4j vulnerabilities as are most. We scanned 21.10.5 in Nexus IQ, the scan results are below. We cannot proceed with security vulnerabilities seven or higher. When can these be remediated? When do you plan to update log4j to 2.17.1? Threat of 10
com.fasterxml.jackson.core : jackson-databind : 2.12.4
com.google.code.gson : gson : 2.8.6
com.squareup.okhttp: okhttp: 2.7.5
com.squareup.okhttp3 : okhttp:4.9.1
io.kubernetes : client-java : 5.0.0
io.netty: netty-all : 4.1.66. Final
io.netty: netty-all: 4.1.66. Final
io.netty: netty-codec : 4.1.65.Final
io.netty: netty-codec : 4.1.65.Final
io.netty: netty-codec : 4.1.65. Final
Threat of 7
com.squareup.okhttp: okhttp: 2.7.5
commons-codec : commons-codec : 1.13
io.grpc: grpc-core: 1.39.0
io.kubernetes: client-java : 5.0.0
io.netty: netty-all : 4.1.66.Final
io.netty: netty-codec-http: 4.1.65.Final
io.netty: netty-handler : 4.1.65.Final
commons-codec: commons-codec: 1.13
io.grpc: grpc-core : 1.39.0
io.kubernetes : client-java:5.0.0
io.netty: netty-all : 4.1.66.Final
io.netty: netty-codec-http : 4.1.65.Final
io.netty: netty-handler: 4.1.65.Final
io.vertx: vertx-web : 3.9.8
org.apache.logging.log4j : log4j-core : 2.17.0
org.bouncycastle : bcprov-ext-jdk15on: 1.61
org.bouncycastle : bcprov-jdk15on: 1.69
Has joined the channel.
@arvieira please open an issue on the repo thanks!
will do thanks
Has joined the channel.
OK.. So not for the validator node keys.
How should we secure those if not using vault?
Has joined the channel.
That's right EthSigner is only for signing transactions not the node key.
There is no support for using hashicorp to secure node keys in Besu
There is no support for using hashicorp or vault any other vault to secure node keys in Besu
You will need to use normal OS security practices to secure the node key file
thanks @jframe
Thanks for answer, what i don't understand is how to interpret this, i've been running this client for almost 2 months and this `behaviour` just keeps repeating, meaning at some point block behind eventually will reach zero but afterwards it will start to increase (reaching 10K, 20K etc) which i guess it means my client is no longer in sync which is showstopper. Or, i'm missing something?
Has joined the channel.
Thanks.. @jframe
Has joined the channel.
Has joined the channel.
Hi everyone. Does anybody know whether there is a call to make a Besu node (in a permissioned setting) to try connecting to other peers? We have a permissioned dynamic connected blockchain (not static connections) and some nodes are less connected than expected. We could use addPeers, but it would be a static-connections-like solution. I could not find a call to make nodes dynamic discover and connect to other peers. Any thoughs? Thank you.
Hi everyone. Does anybody know if there is a call to make a Besu node (in a permissioned setting) to try connecting to other peers? We have a permissioned dynamic connected blockchain (not static connections) and some nodes are less connected than expected. We could use addPeers, but it would be a static-connections-like solution. I could not find a call to make nodes dynamic discover and connect to other peers. Any thoughs? Thank you.
Currently, the algorithm for downloading world state is processing the world state tree close to almost breath first. That has the following consequences:
1) We need to store huge number of requests of state nodes that we still need to process in a cache
2) When we reset to a new pivot block, we need to rerun the algorithm from start.
There is a PR now in works that changes the algorithm to close to almost depth first search. After it will get merged into main you should see this behaviour to be improved.
(https://github.com/hyperledger/besu/pull/3202)
Has joined the channel.
OK, tnx for quick reply :) So, i guess there isn't much to do except upgrading the version once PR is merged and released
@arvieira latest release should have you covered https://github.com/hyperledger/besu/releases/tag/21.10.6
21.10.6 has the log4j update but not the latest of other dependencies - I've updated a few more already, aiming to get this included in RC2 @RoboCopsGoneMad https://github.com/hyperledger/besu/issues/3229
my mistake, i tagged the wrong user anyway...
There isn't a "start a discovery round" call but discovery does happen periodically, based on numbers of peers and peer thresholds. You can use the admin_addPeer to force a specific connection to be attempted but as you say this is point to point, not discovery.
Could it be an issue with your permissioning config? maybe a particular node is not on the list? Are you using onchain or offchain permissioning?
oops
brain broke, stepping away from keyboard
Thanks for your answer. Do you know how often this discovery round is and is it configurable?
We use on chain permissioning. I'll take a look. Because there must be some root cause for the current situation...
The frequency is not configurable. There is --max-peers as well as --remote-connections-limit-enabled and --remote-connections-max-percentage and also https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#random-peer-priority-enabled which I didn't even know about!
Also consider using bootnodes if you aren't already
Thanks for the references. If the frequency is not configurable, what is its value?
We are using boot nodes, indeed. Sorry, I did not get why bootnodes influence this question.
bootnodes might help because when a node starts up it always attempts to connect to its configured bootnodes. Similarly in onchain permissioning it is a fallback - if the node gets to zero peers it will try to connect to bootnodes
As far as the frequency of peer discovery - I think it is more to do with whether the node thinks its peer table is full (max-peers) - if it doesn't have that many peers yet it will still be searching for peers using discovery. In a private network like you're describing this should be sufficient (on mainnet it's different because you don't want to be stuck with the same peers forever)
so you should be able to see in the logs where the nodes are searching for peers
Ah, ok. Got it! The network is very stable (I'm even considering seriously to make it static), so nodes coming in and out do not happen frequently.
that's why the static-nodes option exists! discovery is inherently messy
Yeah! Now I see!... :tears:
Well, does it still make sense using boot nodes in a static network???
bootnodes are like static nodes if you're using discovery. So if you're using static nodes, you don't need discovery
Does that make sense?
Has joined the channel.
Has joined the channel.
@gladsjr besu supports custom dns discovery configuration via genesis (custom config of eip1459 dns node discovery). That is probably the best route to finding dynamic peers quickly and reliably. If the nodes are going to join and drop regularly, you would likely need to create automation to create/update the DNS TEXT entries for each node. See:
https://github.com/hyperledger/besu/issues/1632
https://eips.ethereum.org/EIPS/eip-1459
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, happy new year. Quick question: assume there is a malicious tx storing unwanted data (e.g. illegal) on the ledger and we want the data removed, is there a way? Or modifying the peers and making a hard-fork is the only way?
Has joined the channel.
I am not completely knowledgable about the topic, also I don't know what you mean by "we" in "we want the data removed" but if your client will consider some transactions invalid (for instance for legal reasons) than you will fork yourself into another chain that does not have those in the chain (lets call it "legal chain"). If you convinced the majority of the network to consider the transaction invalid, then that would then make everybody join the majority eventually, even the participants that don't care about the legality.
hi @JiriPeinlich thanks for the response. By "we" I am referring to the peers operators of a permissioned network. Assuming there is consensus that data from a tx should be removed from the ledger, are there other ways than modifying the source code of the peer?
hi @JiriPeinlich thanks for the response. By "we" I am referring to the peer operators of a permissioned network. Assuming there is consensus that data from a tx should be removed from the ledger, are there other ways than modifying the source code of the peer?
Yes! It feels like it makes sense...
Currently, the ledger is immutable. So, data cannot be removed without reordering the history. There might be in the future a day when we start dropping historical data from the memory of nodes. Currently, the only way I see is reorg using change of the source code of peers.
Thank you, that was my understanding too, I appreciate your feedback!
This eip might interest you https://eips.ethereum.org/EIPS/eip-4444
Has joined the channel.
@macfarla , I was revising carefully the parameters (options) you said could be useful to examine. It called my attention that there is no a minimum connections option or something like that. Assuming this option does not exist, what is the threshold under which a node start a new discovery?
Oh, great! This seems a little more involved to me, so I'm taking more time to process this information. Thank you, @GarySchulte!
Has joined the channel.
I think it's if peerCount < maxPeers
Really? It does not look like that's what's happening in our network. Nodes have much less connections than the maximum.
Maybe it's some kind of issue, since our nodes (the ones that belong to the company I work to) are having problems with permissioning.
Has left the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello everyone.
I'm a newbie learning Besu and currently having two questions
They are mainly related to the characteristics of private transactions implemented in Besu blockchain with the application Tessera.
Question 1: Can a smart contract deployed as a private transaction be called by other smart contracts?
Question 2: Can the specific content of the smart contract deployed as the private transaction, including code and member variables, be accessed by other members of the blockchain?
Because, as far as I know, the code of smart contracts on ethereum is available, and also the values of all variables can be obtained through the methods provided in web3.
So I would like to know if private transactions can protect the content of smart contracts.
my meaning was: if peerCount < maxPeers, then that node will still attempt to find peers (discovery)
whether it successfully finds peers depends on permissioning (and obviously how many peers are available)
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
hi
Has joined the channel.
yes if you deploy a smart contract to a privacy group, it can be called by other contracts (or directly via priv_call) that are deployed to the same privacy group. If you aren't part of that privacy group, you won't know about that contract - even if you somehow have its address, it would be like calling a contract that didn't exist ie no op.
if you look at the web3js-quorum examples, there are some that show this scenario. eg the multi node example has 3 nodes but only 2 are in the privacy group. when you try to "get the value" from node 3, it can't see it. This link is to the exact line of code but I recommend running the whole example so you can see it in action :) https://github.com/ConsenSys/web3js-quorum/blob/0ed71eff6b8e09f431889f018076222e7883373b/example/multiNodeExample/storeValueFromNode1.js#L100
If you want the return value of a function it's probably eth_call that you're after rather than the tx receipt https://besu.hyperledger.org/en/stable/HowTo/Send-Transactions/Transactions/#eth_call-vs-eth_sendrawtransaction
Also working through some of the examples using web3js-quorum is probably useful https://github.com/ConsenSys/web3js-quorum
Welcome new members 🙂 Let us know if you've got any questions about getting started with Hyperledger Besu. The quickstart is a good place to start! Also we do have a few people away on leave or sick at the moment so response times might be a bit longer than usual - hoping everyone is safe and as well as can be!
Thank you very much:smile:
Hi! I need to monitor mainnet activity for events from my smart contract. Is this possible to run Besu in a mode, when it doesn't store any blocks, just responds to 'latest'? What problems can it generate? Is 'latest' already confirmed with other peers? How to check if it's confirmed?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
No, there really isn't a way to do that in Besu, but it is an interesting requirement.
isn't this one of the use cases for Bonsai? If I understood it correctly, it stores all headers, but not all states (older states can be rebuild up to some number that I don't recall)
The problem with "latest" is re-orgs. Bonsai tries get you close but we haven't put in older state pruning yet,.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
hello guys,
I would like to know if you know any references about contracts in genesisfile. I even found a page on the besu website (https://besu.hyperledger.org/en/stable/HowTo/Configure/Contracts-in-Genesis/) but it says very little. I'm mainly interested in how this "storage" tag works. can you help me ?
Storage pre-populates the contract storage at genesis. Originally this was implemented as an aid to reference tests but was exposed generally as it has utility. When the genesis block is calculated the keys and values are stored in a merkle trie and the merkle root is calculated. Hence the four principal parts of an account stored in the account trie (balance, code, nonce, and storage) can be pre-set at genesis.
So if, for example, you need to migrate an old chain to a new genesis but keep contract state you can extract all the storage keys (via debug_storageRangeAt rpc) and code and balance and even nonce and migrate to a fresh new chain.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello, I am not very experienced, but I followed this tutorial:
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
and I successfully created a private Besu network locally on my laptop. Now I want to add a new node from second machine/laptop. Would you please let me know how to do that. I mean how to connect an external node to already running Besu network? Many thanks in adavance
Hello, I am not very experienced, but I followed this tutorial:
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
and I successfully created a private Besu network locally on my laptop. Now I want to add a new node from second machine/laptop. Would you please let me know how to do that. I mean how to connect an external node to an already running Besu network? Many thanks in advance :)
Hello, I am not very experienced, but I followed this tutorial:
https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
and I successfully created a private Besu network locally on my laptop. Now I want to add a new node from the second machine/laptop. Would you please let me know how to do that? I mean how to connect an external node to an already running Besu network? Many thanks in advance :)
Has joined the channel.
Hi friends! I'm working on a write up to help people run the Besu-Teku client combo on Kintsugi and I'm running into an issue running Besu on that testnet.
I put all the relevant description in this Github gist.
https://gist.github.com/luisnaranjo733/81f4d5396d3f93352f93f0c3e16b9f49
Is this the right place to reach out for support? I'm happy to file an issue or move over to Discord, just not sure what works best for the team. Thanks!
Hi, I have the same question. Did you find an answer?
Hello
To connect to a remote node, just replace the 127.0.0.1 in the enode address to the IP of the remote node.
In the tutorial, this is shown in adding second node.
In this case you do not need to specify custom ports.
Thank you very much. Let me try. So when I replace the 127.0.0.1 with the IP of the second node, I don't need to provide the ports(the bold line), right?
besu --data-path=data --genesis-file=../genesis.json --bootnodes=
إثس
--p2p-port=30304
--rpc-http-port=8546
Yes
--p2p-port=30304
--rpc-http-port=8546
But to clarify: you don't need to specify the ports because you're on a different machine.
If you run more than one node on one server then you will need to specify ports from the second node up.
yes, makes sense. Thank you very much, I will try it now:):pray:
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, sorry for asking again, but I tried to replace the ip and it is still not connecting:
2022-01-17 12:59:49.189+02:00 | EthScheduler-Timer-0 | INFO | FullSyncTargetManager | No sync target, waiting for peers: 0
I tried multiple devices, IPs, even tried with both ading and removing ports but neither way works. Do you have idea what might be wrong?
Show me the command you run on the second device please.. If you want, in a private message.
Node2 % besu --data-path=data --genesis-file=../privateNetworkGenesis.json --bootnodes=enode://c62181790a1d57ba4ab035746d878a4b1578a37fa505cfab4c5c756c7fca6ce4272ea2b6bb3cf6e2acb590eb0f26bb032dbdc007e0e2139aacb3a29d45000d36@89.215.236.5:30303
Node2 % besu --data-path=data --genesis-file=../privateNetworkGenesis.json --bootnodes=enode://c62181790a1d57ba4ab035746d878a4b1578a37fa505cfab4c5c756c7fca6ce4272ea2b6bb3cf6e2acb590eb0f26bb032dbdc007e0e2139aacb3a29d45000d36@internal IP:30303
Thank you
Just to confirm: you're positive that the first node is actually running
yes, I actually just restarted it. So the new enode is now :
enode://0789c0cefaf14c7b736aca28bea4606ea7d47f92bb3026db3e64940d77fead4904b4eaea1a216948b25c7afe9b27c185dd48091c845a8b1a6ef9e6033c314dcf@127.0.0.1:30303
But yes it is working and giving this output:
2022-01-17 13:24:36.823+02:00 | pool-7-thread-2 | INFO | BlockMiner | Produced #28 / 0 tx / 0 om / 0 (0.0%) gas / (0x517626068071e2df77c5c069c5d735ba0ba0fbd70e3f2975edd7a404f7332364) in 8.838s
28 blocks I think since started
Can you share the first node's command please ?
yes sure:
Node1 % besu --data-path=data --genesis-file=../privateNetworkGenesis.json --miner-enabled --miner-coinbase fe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-enabled --host-allowlist="*" --rpc-http-cors-origins="all"
Is it ibft or clique
Basically on my 1st laptop I run this command in a directory called besu, where I have a privateNetworkGenesis.json and Node1 folder
its EThash
but I have tried everrything
if it is easier for you I can try also clique or ibft
OK..
Which documentation did you use.. Can you share the link please ?
yes sure this one:
https://besu.hyperledger.org/en/latest/Tutorials/Private-Network/Create-Private-Network/
Checking
I always setup ibft so I want to 'stare' in the docs a bit.
But so far it looks fine.
Do you have firewall enabled on the first node ?
I can also try with ibft for me it doesn't matter. More important is understand how to connect them. About the firewall, I am not very sure. Let me check
No, the firewall is turned off and it says that all connections are allowed
Go IBFT and I am here fully for it.
ok one sec I will do it now
It has a different approach, as you must create the keys for the validators.
I will follow this tutorial : https://besu.hyperledger.org/en/latest/Tutorials/Private-Network/Create-IBFT-Network/
Yes...
I will text in on private message maybe it is easier
OK
Has left the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, i see that https://github.com/hyperledger/besu/pull/3202 was merged into main, as far i understand latest release (21.10.8) doesn't contain this fix. Is it planned to be included in next 22.1.0-RC release?
Has joined the channel.
Has joined the channel.
Has joined the channel.
There is kuntsugi-specific chat over on discord for sure. But looking at your error `picocli.CommandLine$ParameterException: Unable to start mining without a coinbase.
` <- this means you have mining enabled --miner-enabled=true but you haven't set the --miner-coinbase
yes it will be in the next RC release. I can't give an exact date for that - we're testing these changes on our canary nodes - but hopefully within a week or so
Any updates on clique?
Hello anyone have implemented geomaps in grafana for a hyperledger besu blockchain?
Has joined the channel.
To connect to a remote node, just replace the 127.0.0.1 in the enode address to the IP of the remote node.
In the tutorial, this is shown in adding second node.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
We did it with ibft afterall.
hello. is there any official TPS of hyperledger besu?
Has joined the channel.
Has joined the channel.
Has joined the channel.
How come , clique doesn't work at all?
Just asking cause i wann do it with clique
No, not that..
Clique also works like a charm.
If you need help ping us here
The problem was: he is setting Besu on two computers in the office, both behind an Internet router.
This confused Besu and could not start.
It worked when he concected the computers via local IP;s.
i'm trying rn with clique
I don't know why i got
Method not enables
enabled*
Has joined the channel.
I'm using the quorum developer quickstart and it has de -rpc-htp-api enabled
Has joined the channel.
Has joined the channel.
How to enable admin methods in quorum developer quickstart?
If anyone know :woo:
Does anyone know if the json-rpc api handles batch requests in parallel or in series?
Has joined the channel.
It looks like it will handle them in parallel, however it waits for them all before sending the response back to the client.
https://github.com/hyperledger/besu/blob/main/ethereum/api/src/main/java/org/hyperledger/besu/ethereum/api/jsonrpc/JsonRpcHttpService.java#L680-L702
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
In docker-compose.yml file. But it should be enabled
Please let us know too if you got an answer.
I read somewhere it's 500 tps but not sure how official or accurate is this.
Has joined the channel.
Hey guys, I was trying to run Besu with a config.toml file (besu --config-file=config.toml) and got this error. Does anyone how to fix it and why it occures?
ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8ANTLR Tool version 4.7.1 used for code generation does not match the current runtime version 4.8ANTLR Runtime version 4.7.1 used for parser compilation does not match the current runtime version 4.8TomlInvalidTypeException: Value of 'rpc-http-cors-origins' is a string while processing argument at or before arg[0] '--config-file=config.toml' in [--config-file=config.toml]: org.apache.tuweni.toml.TomlInvalidTypeException: Value of 'rpc-http-cors-origins' is a string
To display full help:
besu [COMMAND] --help
Looks like you've got a string value instead of a list of strings, e.g. you need something like: rpc-http-cors-origins=["*"]
This property requires an array when using toml format. See 'Configuration file' example here:
https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#rpc-http-cors-origins
Yes. Warning is sill there. Even though node is running. Thanks
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
ws_secret besu has one?
Anyone knows?
Do you mean the `WS_SECRET` for ethstats?. It can be set in the connection URL for the server. Take a look at the [ethstats](https://besu.hyperledger.org/en/stable/Reference/CLI/CLI-Syntax/#ethstats) value option format
Yes i'm trying to connect ethstas to a private network
Without any sucess
AFAIK, the secret is defined by the ethstats server, it isn't specific to besu
Has joined the channel.
Has joined the channel.
Pre-deploying contracts in the genesis file.Are there more complete documents.
I encountered some problems and never succeeded
Has joined the channel.
Has joined the channel.
Hi Everyone Want to ask a question, is it possible on besu client to work with 2 different languages like one can write the contract in DAML and others can write these contract using other language like solidity and still be able to perform transactions on the same node?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi guys, the quick start network by command: npx quorum-dev-quickstart
uses IBFT as consensus ?
Has joined the channel.
Yes, for Besu. And QBFT for Quorum.
QBFT ....
You can edit the .env file to make it ibft
Has joined the channel.
Has joined the channel.
Has joined the channel.
Finally i can get eth stats with quorum but no node listing
In geo map of eth stats , that suck
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi all, for the local permisioning for accounts, I understand that transaction that is received by a normal node will be propagated to validator node. I was wondering if the normal node have Account A in the permissioning list and validator node does not have Account A in the permissioning list, will the transaction created by Account A which is received by the normal node be completed?
In short, the tx would be rejected by tx propagation, but if the normal node is producing blocks, a block containing that tx would be accepted. This scenario is explained here: https://besu.hyperledger.org/en/stable/HowTo/Limit-Access/Local-Permissioning/#account-allowlisting
However I guess you might be talking about IBFT2 specifically? In which case it's only the validators producing blocks?
I don't see any reason why not. At the protocol level the transactions would look the same
Also note we do recommend each node in the network has the same accounts allowlist. :)
the tricky thing here is getting the storage right. This might help https://docs.soliditylang.org/en/v0.8.7/internals/layout_in_storage.html
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
creativehill_besu
Has joined the channel.
It should be now included in the latest RC
Let me know if you get better results, please
Thanks for heads up, i will upgrade and let you know, most probably later this week....
However, before upgrading i wanted to update you how client behaved past several days. From the graph you can see that eventually it reached head of the chain and it was working fine for 2-3 days, meaning it was in sync with mainnet, but afterwards it stopped importing new blocks. Log messages are:
2022-01-23 00:07:12.412+00:00 | nioEventLoopGroup-3-5 | INFO | BlockPropagationManager | Saving announced block 14058568 (0xf55f99fa93a04921b31775033fa4c4984ffd03748d8c89cbe4a1a519eb938f74) for future import
2022-01-23 00:07:25.730+00:00 | nioEventLoopGroup-3-5 | INFO | GetBlockFromPeerTask | Failed to download block 0xbdec1019ff88788785ec4b15085323af492cdf430c026b6ce1776beea8f85e33 from peer Peer 0x946bf11de8227d5b52....
2022-01-23 00:07:25.847+00:00 | nioEventLoopGroup-3-5 | INFO | BlockPropagationManager | Saving announced block 14058569 (0xbdec1019ff88788785ec4b15085323af492cdf430c026b6ce1776beea8f85e33) for future import
2022-01-23 00:07:33.200+00:00 | nioEventLoopGroup-3-6 | INFO | GetBlockFromPeerTask | Failed to download block 0x5ec3569a7a3f1220fb91b43e5b8c15907b2d93bf9fe31fd8092ef0fbe0242624 from peer Peer 0x4afacd81c5ada6bbc0....
Is this 'problem
Thanks for heads up, i will upgrade and let you know, most probably later this week....
However, before upgrading i wanted to update you how client behaved past several days. From the graph you can see that eventually it reached head of the chain and it was working fine for 2-3 days, meaning it was in sync with mainnet, but afterwards it stopped importing new blocks. Log messages are:
2022-01-23 00:07:12.412+00:00 | nioEventLoopGroup-3-5 | INFO | BlockPropagationManager | Saving announced block 14058568 (0xf55f99fa93a04921b31775033fa4c4984ffd03748d8c89cbe4a1a519eb938f74) for future import
2022-01-23 00:07:25.730+00:00 | nioEventLoopGroup-3-5 | INFO | GetBlockFromPeerTask | Failed to download block 0xbdec1019ff88788785ec4b15085323af492cdf430c026b6ce1776beea8f85e33 from peer Peer 0x946bf11de8227d5b52....
2022-01-23 00:07:25.847+00:00 | nioEventLoopGroup-3-5 | INFO | BlockPropagationManager | Saving announced block 14058569 (0xbdec1019ff88788785ec4b15085323af492cdf430c026b6ce1776beea8f85e33) for future import
2022-01-23 00:07:33.200+00:00 | nioEventLoopGroup-3-6 | INFO | GetBlockFromPeerTask | Failed to download block 0x5ec3569a7a3f1220fb91b43e5b8c15907b2d93bf9fe31fd8092ef0fbe0242624 from peer Peer 0x4afacd81c5ada6bbc0....
Is this 'problem' related somehow to the one we discussed or something else is going on here?
Thank you.
besu-mainet.png
That problem is unrelated. When you are up-to-date with the head, then a different part of the system takes over.
As you're already synced, you will not benefit from the update unless you would start your sync from scratch by deleting the local data. There is no need to start from scratch unless you would want to satisfy your curiosity.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi everyone, is there any way for me to see the version of the EVM (london, berlin, etc.) for a particular release (20.10.3)?
Has joined the channel.
The versions of the EVM are driven by the block configuration. Look in the genesis config files (https://github.com/hyperledger/besu/tree/8bf078cd613a0b305de72d27d9ab0d776a00b606/config/src/main/resources) to see what the current version is for each chain. For a private chain just make sure the desired EVM version is set in the genesis file (such as `"londonBlock":0`)
21.10.3 has support up to london.
Does that mean that as long the block number is in the config file, I can assume that the EVM supports that version?
Has joined the channel.
yes
Question on OpenTelemetry integration There is a "resource_to_telemetry_conversion" setting inside the awsemf exporter that pulls a metric called "service.name" and it is set to "best-client" I see "best-client" is the default for the prometheus job name but I can't seem to change this AND use OpenTelemetry ...there anything I'm missing?
@atoulme is our resident OpenTelemetry expert
Has joined the channel.
Hi everyone. Does someone know from which version the host-allowlist option was introduced in Besu? It seems that it was previously called host-whitelist, right?
20.10 or so.
host-whitelist is still a supported option, it is just hidden since 20.10.1
Thanks, guys!
I have another one for you! :woo:
I appreciate a lot if could help me once again.
Is it possible to remove transactions of the transaction pool? Does shutting down the node empty its transaction pool?
yes. the Transactions may get re-gossip'd however
Ok, thanks! :)
hmm there's at least 3 weird things in what you're saying
There is no metric named service.name. Did you mean an attribute value?
I believe you mean "besu-client" not "best-client"
finally I don't quite follow what you mean by prometheus vs OpenTelemetry.
So please walk me back, slowly, from first principles. I'm not quite sure how to help you.
Has joined the channel.
Great! Thanks.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, are there any tutorials on how to set up and deploy a Hyperledger Besu network with privacy group to the cloud?
You have both tutorials in the Besu doc, one is privacy, the other is cloud, you can probably pick the best of each.
- https://besu.hyperledger.org/en/stable/Tutorials/Privacy/Configuring-Privacy/
- https://besu.hyperledger.org/en/stable/Tutorials/Kubernetes/Overview/
-
Thanks!
Just to check my understanding, if I have a privacy group, does that mean anyone would be able to send transactions to a contract in that privacy group, however only the miners in the privacy group will have access to the state of the contract, and even the transactions sender will not be able to see other transactions other than their own?
Privacy group restricts who can interact with the contract in terms of Tessera nodes. So only private transactions from a node in the group can be made available to the group. No one outside the group can see the tx private part. The miner has nothing to do here (and we usually don't have miners as we require finality so an IBFT consensus and it only has validators, no miners).
Any member node of a group can read and send tx to the group it's part of. Look at the examples in
https://besu.hyperledger.org/en/stable/Concepts/Privacy/Privacy-Groups/#besu-extended-privacy
> Access between states
A contract in a privacy group:
- Can read or write to a contract in the same privacy group.
- Can read from the public state including public contracts.
- Cannot access contracts from a different privacy group.
- A public contract cannot access a private contract.
> Access between states
> A contract in a privacy group:
>
>- Can read or write to a contract in the same privacy group.
>- Can read from the public state including public contracts.
>- Cannot access contracts from a different privacy group.
>- A public contract cannot access a private contract.
I see, thank you for the clarification.
In such case, is there a way to configure Besu such that any users can submit transactions to the network, however it is a private network and only the nodes can see the transactions and maintain the state of the network? I apologise if this is a dumb question
What's use case you're trying to solve?
I am creating a private registry that is maintained by a few independent nodes. Anyone could add items to the registry, however we would like to maintain privacy. Only the nodes would be able to see all the items in the registry.
No, you can not blindly send a transaction into a privacy group. This is by design. You could do it an application level.
Node A + Node X = Privacy Group A
Node X + Node Y + Node Z = Privacy Group Pool
When Node A submits to Node X using Privacy Group A only they know about it. Then at an applicaiton level Node A would need to submit a transaction to Privacy Group Pool which only Node X,Y,Z can see.
The main thing to remember is that in besu private state is always consistent. There is a private state per group.
Has joined the channel.
Hello. In my private chain I'd like to filter transactions based on type and source account. This should be done when receiving transactions through RPC, and when importing blocks from other nodes (anywhere else?). Also, I'd like to query smart contract data for configuration.
I think the best approach would be to expose relevant functionality in *Plugin API*. What are the points in code, where transaction verification is done, that I could plug into? Would Besu team be interested in such a contribution?
Hello. In my private chain I'd like to *filter transactions* based on type and source account. This should be done when receiving transactions through RPC, and when importing blocks from other nodes (anywhere else?). Also, I'd like to query smart contract data for configuration.
I think the best approach would be to expose relevant functionality in *Plugin API*. What are the points in code, where transaction verification is done, that I could plug into? Would Besu team be interested in such a contribution?
I'd be researching the issue on my own, trying to check regularly for answers in this thread. But in case I missed something and not responded here, please contact me directly by email: maciej@robotix-lozinski.pl . Thanks.
Understood! Thank you so much for the help and insights!
iacopo@LAPTOP-4HE1CDFS:~$ besu --Xlauncher-force
? Which Ethereum network would you like to use ? dev
? Which synchronization mode? fast
? Do you want to enable pruning? no
? What is the data directory ? /tmp
? Do you want to enable the JSON-RPC HTTP service ? yes
? Do you want to configure the JSON-RPC options now ? yes
? What is the JSON RPC HTTP host address ? 127.0.0.1
? What is the JSON RPC HTTP port ? 8545
2022-01-27 19:37:54.093+01:00 | main | WARN | Besu | Unable to run the launcher invalid default option for rpc-http-apis
any solution?
besu --version
besu/v21.10.9/linux-x86_64/openjdk-java-17
Linux LAPTOP-4HE1CDFS 5.10.16.3-microsoft-standard-WSL2
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi i updated a fork of besu, but i get some problems with acceptance-tests with /usr/bin/solc
> > Task :acceptance-tests:tests:compileSolidity FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':acceptance-tests:tests:compileSolidity'.
> A problem occurred starting process 'command '/usr/bin/solc''
I installed solc and i have a path like the command but not work. Maybe i missed some conflits files when i did git merge
Anyone can help with this question, thanks in advance.
hi i updated the besu client to a custom fork. (tag 21.10.9) and i got one problem with tests
>> Task :acceptance-tests:tests:compileSolidity FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':acceptance-tests:tests:compileSolidity'.
> A problem occurred starting process 'command '/usr/bin/solc''
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
this when i run > ▶./gradlew assemble acceptanceTests --warning-mode all
what is the problem the folder acceptanceTests is equal to the tag
what is the problem ? the folder acceptanceTests is equal to the tag
Anyone can help me with this ? thanks in advance.
Has joined the channel.
Hello Everyone, anyone there to help me a bit?
[ ](https://chat.hyperledger.org/channel/besu?msg=kDkSAtjc64E36vowx) i think is solved i found this PR - https://github.com/hyperledger/besu/pull/3284/files
Has joined the channel.
[ ](https://chat.hyperledger.org/channel/besu?msg=mDrhEdYqAnLQGttXN) Maybe is good to ask and see if anyone can help.
[ ](https://chat.hyperledger.org/channel/besu?msg=mDrhEdYqAnLQGttXN) Maybe is good to ask first and see if anyone can help.
Has joined the channel.
Hello everyone, I'm Swarnim. I'm new here and have just started involed in the project. I've solved one issue and have a pr pending for review. I want to contribute to contribute to the project and started solving issues that were more typical and helps me to learn new things. I'll be very greatful if the project maintainers or anyone involved in the project can help me to guide me to continue involved in the project.
Hello Swarnim, feel free to join #besu-contributors and ask for reviewers there
Has joined the channel.
Hi all, I am trying to setup a private network with IBFT 2.0 consensus. The validators are starting very close to each other but they are stuck at a certain round and not generating any blocks. The rounds keep expiring and blocks are not being created...Any thoughts on how to resolve this?
Please find below the logs:
`2022-01-29 06:07:00.184+00:00 | pool-9-thread-1 | DEBUG | IbftBlockHeightManager | Starting new round 8
2022-01-29 06:07:00.184+00:00 | pool-9-thread-1 | DEBUG | IbftBlockHeightManager | Round has expired, creating PreparedCertificate and notifying peers. round=ConsensusRoundIdentifier{Sequence=1, Round=7}`
I want to ask if I can change the native token used by my private blockchain created using hyperledger besu. Please guide me on how and where to make the required changes. I want to change my token symbol - (ETH to RRZ for example) and the image representing the token. Looking forward to expert guidance on this matter.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello @Avijeet_15 There is no symbol stored in blocks/ledger. You can change to any symbol in explorer logic or while adding the network to metamask you can enter symbol there.
Has joined the channel.
Thanks @diegoll
I can reproduce this behaviour on my local machine. I see you created an issue - thanks! https://github.com/hyperledger/besu/issues/3338 - please note that this isn't a high priority for us right now especially as it is a --X "experimental" option. I would recommend creating a config file and run besu directly (without the launcher)
You could try `besu --network=dev` which uses dev.json that exists in besu repo - it's probably similar behaviour to what you're after - and you can copy that config and modify as you need.
Hi @vijayr24 if you could create a besu issue https://github.com/hyperledger/besu/issues/new
and put details about your setup and some more complete logs, that would be ideal and enable us to help you more quickly.
Have you seen/followed this guide? https://besu.hyperledger.org/en/stable/Tutorials/Private-Network/Create-IBFT-Network/
Can you double check that all the validators are in the genesis extra data?
Hi All,
My config.toml file for IBFT 2.0 has
rpc-http-cors-origins=["all"]
Hi All,
My config.toml file for IBFT 2.0 has
rpc-http-cors-origins=["all"]
in it. But it still gives CORS error for the Metamask connection request. But it is working fine for all other services such as Prometheus and alethio block explorer.
I also tried
rpc-http-cors-origins=["*"]
But getting the same result. But when I gave each origin separately it is working fine. Any idea why it gives error for Metamask?
Hi All,
My config.toml file for IBFT 2.0 has
rpc-http-cors-origins=["all"]
in it. But it still gives CORS error for the Metamask connection request. It is working fine for all other services such as Prometheus and alethio block explorer.
I also tried
rpc-http-cors-origins=["*"]
But getting the same result. But when I gave each origin separately it is working fine. Any idea why it gives error for Metamask?
Hi All,
My config.toml file for IBFT 2.0 has
rpc-http-cors-origins=["all"]
in it. But it still gives CORS error for the Metamask connection request. It is working fine for all other services such as Prometheus and alethio block explorer.
I also tried
rpc-http-cors-origins=["*"]
But getting the same result. When I gave each origin separately it is working fine. Any idea why it gives error for Metamask?
What besu version are you running? This was fixed in 21.10.9
21.10.8
ok
Thanks
Hello :wave:,
when we start a besu node is created a privatekey this will be used as default miner-coinbase parameter --miner-coinbase ? My question is --miner-coinbase will override or is different stuff?
Has joined the channel.
Has joined the channel.
Has joined the channel.
different stuff - it is there to identify the node on the p2p network. It doesn't have any bearing on the miner-coinbase. If your node is producing blocks, you will need a miner-coinbase
Hello, is it possible to use Cakeshop with BESU? and if yes, there is an example/tutorial I can use?
thanks!
alternatively, if there is a similar software that simplifies the deployment of contracts and management of the network
Has joined the channel.
Hello @prasanthdotv , thank you for your reply. I want to create a private blockchain network using hyperledger but I dont want the network to be restricted to my computer. Following the documentation, I was able to build a private network with 4 validator nodes. What I want to create is a blockchain network similar to ethereum main net or matic network where computers can connect to the network using the internet and where they can then act as validator nodes or bootnodes etc. Please guide me how to achieve this. I would really appreciate any help from your side or anyone.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
HI, i've updated to latest version few days ago, client reached the head of the chain and things are working fine for now....
I've noticed that CPU is bit higher than usual, not sure if that's problem per se
rc3.png
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi Team , I have a question regarding the licensing of using Hyperledger for production use? Is there any Enterprise version exist for Besu or is there any cost of using Besu ?
Hi @vsh1982, thank you for reaching out. There is no cost to using Besu in production. When you do, we'd love to hear any feedback you have.
At ConsenSys we do offer Professional Services to help get you up and running at scale correctly and we also offer Support as an option to quickly fix any issues that might arise in production.
With Support, comes additional products that make it easier to build and manage Besu based blockchains.
Fortune 100 companies are already using Besu at scale and in production
Hi @isavelli , best to use Remix. The only thing missing is something to deploy txns with, which we are looking to add at some point
https://remix.ethereum.org/#optimize=false&runs=200&evmVersion=null&version=soljson-v0.8.7+commit.e28d00a7.js
Hi @Avijeet_15, are you looking to actually create something like Mainnet and Polygon (Public Permissionless) or are you looking to make your own network that others can join but you have control of who joins as a node (Public Permissioned)?
Here is some documentation around creating a permissioned network
https://besu.hyperledger.org/en/1.4.2/Tutorials/Permissioning/Create-Permissioned-Network/
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Ryan - Thanks for your the information. I am thinking to have a call with you guys ? How can we connect?
@RyanJJones10 - Thanks a lot for the information. I am thinking to have a call with you guys to understand bit more about the services your company provides. How can we connect?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Other than Solidity, what other programming languages can be used to write smart contracts and develop DLT application for Besu?
Has joined the channel.
Does someone have Hyperledger Besu with Expedion via Brsu RPC API in use ?
Has joined the channel.
Has joined the channel.
Hi everyone. We`ve studied a lot on chain permissioning in Besu (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/#7-clone-the-contracts-and-install-dependencies).
However, we are not sure if it`s possible to write specific contracts for our network. It seems to be possible, but it`s not clear how to do it yet. Would you suggest some material about it, please
Hi everyone. We`ve studied a lot on chain permissioning in Besu (https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/#7-clone-the-contracts-and-install-dependencies).
However, we are not sure if it is possible to write specific permissioning contracts tailored for our network. It seems to be possible, but it is not clear how to do it yet. Would you suggest some material about it, please?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
How much disk space is required for running hyperledger besu node?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Any language that is compatible with Ethereum should be compatible with Besu
Has joined the channel.
Hi, Is there any way to change the names of Besu monitoring metrics?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hello Guys, I was reading the permissioning documentation at this link: https://besu.hyperledger.org/en/stable/Tutorials/Permissioning/Getting-Started-Onchain-Permissioning/#7-clone-the-contracts-and-install-dependencies and I didn't understand the purpose of the storage in the genesis file. What this means?
Hello, I have a question:
Can a (master) contract deploy another (child) contract, but with different privacy, e.g. with different flexible privacy groups or privateFor? My idea is to have a public contract that receives all transactions and then depending on some criteria creates different derived contracts to manage subsets of these transactions (e.g. for settlement purpose).
A good place to start might be looking at the tests for the existing contracts https://github.com/ConsenSys/permissioning-smart-contracts/tree/main/test and also the EEA spec (version 6) - basically Besu can talk to any contract that implements the spec. This is what's implemented by NodeIngress and AccountIngress contracts. https://entethalliance.org/technical-specifications/
this sets the initial state for the contracts that are deployed in the genesis file
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
A contract can only deploy contracts in the same world state. We think that would be a pretty cool feature but it's not on our roadmap rn!
Has joined the channel.
You would have to change the source code to change them rn, there's no API to do it. Is there something that is confusing?
Hi Everyone,
We are trying to use bevel for fabric platform,
Can you please help me to find video material or tutorials that will help me to go through?
Thank you,
Khushal S. Kunjir
Has joined the channel.
hello
I am struggling with the error of "Failed to import block to chain".
and I found this closed issue: https://github.com/hyperledger/besu/issues/2899
I am not sure if it is the same problem, my network is still running and this error only showed 2 times in the past week.
(running on AWS)
I want to identify if this problem also belongs to issue #2899,
(then I can solve it with upgrade the version),
Or I have to do other research related to verifying the blockhash or something.
(want to know what's meaning of the error message below)
I'm sorry that I couldn't provide more environmental information because I am very fresh in this field.
If any advice that I can get to make a research direction, that will be really helpful.
Thank you in advance.
Software version: version: besu/v1.5.3/linux-x86_64/oracle_openjdk-java-14
Error message:
```
Failed to import block to chain. block=222781 extraData=IbftExtraData[vanityData=0x0000000000000000000000000000000000000000000000000000000000000000, seals=[SECP256K1.Signature{r=31067947231597307515973088086785511695430782653315401734983116471929184051551, s=41100377914765765404298290283756800917726635099840850440833293306229461546982, recId=1}, SECP256K1.Signature{r=47782506287434789985199491837321874102405210378675089875974341358627722049426, s=56477448400379054562010499330983298925376366053806129530627296595708347561354, recId=0}, SECP256K1.Signature{r=31067947231597307515973088086785511695430782653315401734983116471929184051551, s=41100377914765765404298290283756800917726635099840850440833293306229461546982, recId=1}, SECP256K1.Signature{r=90592021223121448214823925170077787411866036053198613281180515164735438305430, s=26702380845072626744248573333825194847417154529560575364938790705076047148372, recId=1}], vote=Optional.empty, round=0,
...
```
Has joined the channel.
Hello Cai 238.
Using the latest `main` I was able to synchronize ETH Mainnet beyond the block you are having issues
```
2022-02-09 09:07:11.897-03:00 | EthScheduler-Services-5 (importBlock) | INFO | FullImportBlockStep | Import reached block 222600 (0x6ce6c39bdd960bb34f32b421b506d2d8eac8728836cc06be6b2f186aeff5dc15), 37.935 Mg/s, Peers: 24
2022-02-09 09:07:14.378-03:00 | EthScheduler-Services-5 (importBlock) | INFO | FullImportBlockStep | Import reached block 222800 (0x2e1cd14f5f0ee063a7e763c295c09777fd3ba54c05a6479980ec06a0eea38402), 10.722 Mg/s, Peers: 25
```
What version are you using? You can check that by running `besu --version`
Has joined the channel.
@diegoll
@diegoll ```
``` Hello, thank you for your kind information. ```
I am using a quite old version which is 1.5.3.```
My network is private and runs on the cloud server. ```
It is not easy to upgrade the version so I want to get more information about the error. ```
I hope the besu developer can check if this is the same situation with https://github.com/hyperledger/besu/issues/2899
```
```
```
```
@diegoll
Hello, thank you for your kind information.
I am using a quite old version which is 1.5.3.
My network is private and runs on the cloud server.
It is not easy to upgrade the version so I want to get more information about the error.
I hope the besu developer can check if this is the same situation with https://github.com/hyperledger/besu/issues/2899
Should i post it to the github issues so that i can get more information?
I don't think this is related to issue #2899
:pensive:
Has joined the channel.
How can I access this state in the contract?
Is it through some variable?
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Has joined the channel.
Hi, I am executing on chain per missioning example . while running 'yarn migrate --reset ' node are not getting added
Adding Initial Allowlisted eNodes ...
enode://9526c2994497fd9f6a8f2288f344afa8dd1142f30af2d9c69176786adbdc4dddaaa00f82cc9518dcb39984fecfbb359a8751897d7741c34de99bf5dd4444be9a@127.0.0.1:30303,enode://5095fe60ab5f0cb30f76044fec5278ea57fa189c01a65e4bb03808ee337af64e63342f84b2945e64f22ef2ef5ab4fe10fadd2e92ddaea8548ed8b4004180483f@127.0.0.1:30304,enode://3691dd126e791534d8f1f44a0c95397e124f4ccdb96af29f084ee7f18af6dfd36ed4d16720b85642cd73956e247670f7d8d0d3dfef7ffb444aea4b37990d5780@127.0.0.1:30305
Exiting: Review successful transactions manually by checking the transaction hashes above on Etherscan.
Error: Execution reverted
at module.exports (/home/ubuntu/Documents/block-poc/hyperledger-besu/onchain-sec11/onchain-permissioning/permissioning-smart-contracts/migrations/3_deploy_node_ingress_rules_contract.js:87:50)
at runMicrotasks (
Has joined the channel.
Howdy! Good news! Hyperledger is migrating to Discord! (Please re-ask your question in the `besu` channel if you didn't already get a response here.) Find us over here - https://discord.gg/hyperledger
Has joined the channel.
Has joined the channel.