Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

geth v1.9.0 upgrade #10

Merged
merged 1 commit into from
Aug 1, 2019
Merged

geth v1.9.0 upgrade #10

merged 1 commit into from
Aug 1, 2019

Conversation

kyriediculous
Copy link
Contributor

@kyriediculous kyriediculous commented Jul 30, 2019

This PR upgrades the version of geth being used from 1.7.3 to v1.9.1 so that it includes the constantinople hard fork.

  • In Dockerfile changed GETH_MINING_ACCOUNT env variable to be the correct sealer (0x0161e0...) as defined in genesis.json extradata field, 0x87da6... is a funded genesis account but not the sealer.

  • Changed indexed --unlock to the explicit address of sealer (can unlock all accounts but is this necessary?) (could also use $GETH_MINING_ACCOUNT now)

  • Added --allow-insecure-unlock to allow exposing http over RPC with unlocked accounts

  • Changed node to full archive node to prevent state pruning ( --gcmode "archive" ), introduced in geth 1.8.0 this is what lead to loss of state since last 128 blocks are kept in memory only then they are flushed to disk. In addition changed syncmode to full

  • Added -rpcvhosts "*" to allow any DNS rebinding

  • Tested by running protocol/pm unit tests against a container running locally

  • Tested running test-harness

An image can be found at https://cloud.docker.com/u/vergauwennico/repository/docker/vergauwennico/livepeer-testnet

Fixes #9

@darkdarkdragon
Copy link
Contributor

@kyriediculous please pay attention to changed Livepeer controller address.
Also, geth shows me this errors:
Failed to enumerate USB devices hub=trezor vendor=4617 failcount=1 err="failed to initialize libusb: libusb: unknown error [code -99]

@kyriediculous
Copy link
Contributor Author

kyriediculous commented Jul 30, 2019

I get those errors too , seems to be related to hardware wallet support which was changed/improved in geth v1.9.0. It shouldn't prevent sealing blocks.

I am getting following error in the test-harness using the image created from this , will need to do more testing

requesting tokens for  [ 'orchestrators' ]
POST:  http://localhost:8742/requestTokens
POST:  http://localhost:8733/requestTokens
{ Error: connect ECONNREFUSED 127.0.0.1:8733
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
  errno: 'ECONNREFUSED',
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 8733 }
Waiting for 2000 ms
Done waiting.
Tried to request token 14 times, giving up.

please pay attention to changed Livepeer controller address.

Could you elaborate? Ah because I changed the 'from' account in the truffle config in ./build-protocol you mean? Good point.

@darkdarkdragon
Copy link
Contributor

go-livpeer node, compiled from master, gives these errors:

 eventmonitor.go:214] Error with header subscription for NewRound: unexpected EOF
I0730 19:19:19.975502       1 eventmonitor.go:144] Trying to resubscribe for NewRound
E0730 19:19:19.975447       1 eventmonitor.go:214] Error with header subscription for BlockWatcher: unexpected EOF
I0730 19:19:19.975677       1 eventmonitor.go:144] Trying to resubscribe for BlockWatcher

Also, it can't initialize new round

@kyriediculous
Copy link
Contributor Author

I think I made an additional build with the syncmode flag for which the contracts didn't get migrated.

Currently running the test harness locally on v1.8.27 sucessfully, the same version I have installed for myself.

Building a new image with 1.9.1 as we speak and will test momentarily with the test-harness

@kyriediculous
Copy link
Contributor Author

kyriediculous commented Jul 31, 2019

go-livpeer node, compiled from master, gives these errors:

Yeah, found those too. Will have to dig a little as to why, perhaps some subtle PR that happened.
Possibly ethereum/go-ethereum#19866

v1.9.0 seems to work except for a failing bond transaction on setup , but a retry of that seems to work.

@kyriediculous kyriediculous changed the title geth v1.9.1 upgrade geth v1.9.0 upgrade Jul 31, 2019
@kyriediculous
Copy link
Contributor Author

Settled on geth v1.9.0 for now will check if it's stable in the coming hours.

If you want to try it out with the test-harness I uploaded both a v1.8.27 and v1.9.0 image https://cloud.docker.com/repository/docker/vergauwennico/livepeer-testnet/tags

image

@darkdarkdragon
Copy link
Contributor

I've built 1.9.0 locally, but in test harness, it fails to activate orchestrator

@kyriediculous
Copy link
Contributor Author

kyriediculous commented Jul 31, 2019

I had some hiccups bonding initially as well but all seems ok now (always failing tx) but on retry of the bonding tx it worked fine.

I also experienced the geth container going OOM and getting killed a couple of times but after letting it initialise some rounds and then firing a stream at it it runs just fine.

currently running at 100% transcode success rate and 100% ticket redemption rate for over 5 minutes.

I am running a local test-harness branch with following branches merged into it though:

re-added rpcvhosts flag in 70cf9e5

geth-with-protocol/Dockerfile Show resolved Hide resolved
geth-with-protocol/start.sh Outdated Show resolved Hide resolved
Copy link
Contributor

@darkdarkdragon darkdarkdragon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
ok, it worked locally for me.
Just don't forget to make PR for test harness with changed Livepeer Controller address in examples folder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

geth-with-protocol: Update geth to post-Constantinople version
3 participants