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

Upgrade to geth 1.9.1 or newer #890

Closed
petermetz opened this issue Nov 24, 2019 · 6 comments
Closed

Upgrade to geth 1.9.1 or newer #890

petermetz opened this issue Nov 24, 2019 · 6 comments
Assignees

Comments

@petermetz
Copy link

System information

Geth version: geth version

Geth
Version: 1.8.18-stable
Git Commit: 99f7fd6733a93ee7619d1c740e0d4cd7643b6700
Quorum Version: 2.3.0
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1337
Go Version: go1.11.13
Operating System: linux
GOPATH=
GOROOT=/usr/local/go

OS & Version: Windows/Linux/OSX

Ubuntu 18.04

Branch, Commit Hash or Release: git status

Tried 2.2.5 and 2.3.0

Cannot downgrade to any older versions because of the gas limit bug in 2.2.3 that breaks other things.

Expected behaviour

Contract deployment works.

Actual behaviour

Contract deployment is broken because geth shuts down the WebSocket connection, assuming that it does so due to ethereum/go-ethereum#19001

Steps to reproduce the behaviour

  1. Pull up a quorum 2.2.5/2.3.0 network with raft.
  2. Compile contracts with solidity 0.5.1 (npm package solc)
  3. Instantiate Web3 with WebSocketProvider pointing at network set up in 1)
  4. Attempt to deploy contracts, watch it burn.

Specific contract I'm deploying: https://github.com/hyperledger-labs/blockchain-integration-framework/blob/master/examples/simple-asset-transfer/quorum/contracts/Root.sol

Potentially Relevant Issues

ethereum/go-ethereum#16846
web3/web3.js#1631
web3/web3.js#1217 (comment)

Backtrace

The exact JSON RPC request payload is 62390 bytes long and is pasted below:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "eth_sendTransaction",
  "params": [
    {
      "from": "0xed9d02e382b34818e88b88a309c7fe71e65f419d",
      "gas": "0x989680",
      "data": "0x60806040523480156200001157600080fd5b506200001c620000c0565b604051809103906000f08015801562000039573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000d1565b604051611b608062005e2883390190565b615d4780620000e16000396000f3fe608060405260043610620000e5576000357c0100000000000000000000000000000000000000000000000000000000900480630b5156c514620000ea5780630ff6ae7314620003875780631d010ed5146200041c57806320cd18a8146200048d578063227b02511462000690578063362245d214620008935780633d9ffad514620008ed5780634904ca401462000aad578063561580441462000ced57806365eeafaa1462000d345780637cebfb641462000ea75780638da5cb5b146200105057806393c0e83a14620010aa5780639d2a5b8f1462001129578063cd5286d014620011be575b600080fd5b348015620000f757600080fd5b5062000385600480360360808110156200011057600080fd5b81019080803590602001906401000000008111156200012e57600080fd5b8201836020820111156200014157600080fd5b803590602001918460018302840111640100000000831117156200016457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115620001c857600080fd5b820183602082011115620001db57600080fd5b80359060200191846001830284011164010000000083111715620001fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156200026257600080fd5b8201836020820111156200027557600080fd5b803590602001918460018302840111640100000000831117156200029857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115620002fc57600080fd5b8201836020820111156200030f57600080fd5b803590602001918460018302840111640100000000831117156200033257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506200153f565b005b3480156200039457600080fd5b50620003da60048036036020811015620003ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620017a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200042957600080fd5b5062000434620017da565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015620004795780820151818401526020810190506200045c565b505050509050019250505060405180910390f35b3480156200049a57600080fd5b506200068e60048036036060811015620004b357600080fd5b8101908080359060200190640100000000811115620004d157600080fd5b820183602082011115620004e457600080fd5b803590602001918460018302840111640100000000831117156200050757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156200056b57600080fd5b8201836020820111156200057e57600080fd5b80359060200191846001830284011164010000000083111715620005a157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156200060557600080fd5b8201836020820111156200061857600080fd5b803590602001918460018302840111640100000000831117156200063b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506200186a565b005b3480156200069d57600080fd5b506200089160048036036060811015620006b657600080fd5b8101908080359060200190640100000000811115620006d457600080fd5b820183602082011115620006e757600080fd5b803590602001918460018302840111640100000000831117156200070a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156200076e57600080fd5b8201836020820111156200078157600080fd5b80359060200191846001830284011164010000000083111715620007a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156200080857600080fd5b8201836020820111156200081b57600080fd5b803590602001918460018302840111640100000000831117156200083e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505062001a61565b005b348015620008a057600080fd5b50620008ab62001c58565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620008fa57600080fd5b5062000a54600480360360408110156200091357600080fd5b81019080803590602001906401000000008111156200093157600080fd5b8201836020820111156200094457600080fd5b803590602001918460018302840111640100000000831117156200096757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115620009cb57600080fd5b820183602082011115620009de57600080fd5b8035906020019184600183028401116401000000008311171562000a0157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505062001cbf565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101562000a9957808201518184015260208101905062000a7c565b505050509050019250505060405180910390f35b34801562000aba57600080fd5b5062000ceb600480360360c081101562000ad357600080fd5b810190808035906020019064010000000081111562000af157600080fd5b82018360208201111562000b0457600080fd5b8035906020019184600183028401116401000000008311171562000b2757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111562000b8b57600080fd5b82018360208201111562000b9e57600080fd5b8035906020019184600183028401116401000000008311171562000bc157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291908035906020019064010000000081111562000c5257600080fd5b82018360208201111562000c6557600080fd5b8035906020019184600183028401116401000000008311171562000c8857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803563ffffffff16906020019092919050505062001e0b565b005b62000d326004803603602081101562000d0557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050620022d7565b005b34801562000d4157600080fd5b5062000ea56004803603606081101562000d5a57600080fd5b810190808035906020019064010000000081111562000d7857600080fd5b82018360208201111562000d8b57600080fd5b8035906020019184600183028401116401000000008311171562000dae57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111562000e1257600080fd5b82018360208201111562000e2557600080fd5b8035906020019184600183028401116401000000008311171562000e4857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050620024de565b005b34801562000eb457600080fd5b506200100e6004803603604081101562000ecd57600080fd5b810190808035906020019064010000000081111562000eeb57600080fd5b82018360208201111562000efe57600080fd5b8035906020019184600183028401116401000000008311171562000f2157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111562000f8557600080fd5b82018360208201111562000f9857600080fd5b8035906020019184600183028401116401000000008311171562000fbb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050620026aa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200105d57600080fd5b5062001068620027f1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620010b757600080fd5b50620010e760048036036020811015620010d057600080fd5b810190808035906020019092919050505062002817565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156200113657600080fd5b506200117c600480360360208110156200114f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505062002856565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015620011cb57600080fd5b506200128b60048036036020811015620011e457600080fd5b81019080803590602001906401000000008111156200120257600080fd5b8201836020820111156200121557600080fd5b803590602001918460018302840111640100000000831117156200123857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505062002889565b604051808060200180602001806020018060200188151515158152602001806020018060200187810387528e818151815260200191508051906020019080838360005b83811015620012eb578082015181840152602081019050620012ce565b50505050905090810190601f168015620013195780820380516001836020036101000a031916815260200191505b5087810386528d818151815260200191508051906020019080838360005b838110156200135457808201518184015260208101905062001337565b50505050905090810190601f168015620013825780820380516001836020036101000a031916815260200191505b5087810385528c818151815260200191508051906020019080838360005b83811015620013bd578082015181840152602081019050620013a0565b50505050905090810190601f168015620013eb5780820380516001836020036101000a031916815260200191505b5087810384528b818151815260200191508051906020019080838360005b838110156200142657808201518184015260208101905062001409565b50505050905090810190601f168015620014545780820380516001836020036101000a031916815260200191505b50878103835289818151815260200191508051906020019080838360005b838110156200148f57808201518184015260208101905062001472565b50505050905090810190601f168015620014bd5780820380516001836020036101000a031916815260200191505b50878103825288818151815260200191508051906020019080838360005b83811015620014f8578082015181840152602081019050620014db565b50505050905090810190601f168015620015265780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630b5156c5858585856040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018060200180602001858103855289818151815260200191508051906020019080838360005b83811015620015f9578082015181840152602081019050620015dc565b50505050905090810190601f168015620016275780820380516001836020036101000a031916815260200191505b50858103845288818151815260200191508051906020019080838360005b838110156200166257808201518184015260208101905062001645565b50505050905090810190601f168015620016905780820380516001836020036101000a031916815260200191505b50858103835287818151815260200191508051906020019080838360005b83811015620016cb578082015181840152602081019050620016ae565b50505050905090810190601f168015620016f95780820380516001836020036101000a031916815260200191505b50858103825286818151815260200191508051906020019080838360005b838110156200173457808201518184015260208101905062001717565b50505050905090810190601f168015620017625780820380516001836020036101000a031916815260200191505b5098505050505050505050600060405180830381600087803b1580156200178857600080fd5b505af11580156200179d573d6000803e3d6000fd5b5050505050505050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060028054806020026020016040519081016040528092919081815260200182805480156200186057602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001815575b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166320cd18a88484846040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b838110156200191f57808201518184015260208101905062001902565b50505050905090810190601f1680156200194d5780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b83811015620019885780820151818401526020810190506200196b565b50505050905090810190601f168015620019b65780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b83811015620019f1578082015181840152602081019050620019d4565b50505050905090810190601f16801562001a1f5780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b15801562001a4357600080fd5b505af115801562001a58573d6000803e3d6000fd5b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663227b02518484846040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180806020018060200180602001848103845287818151815260200191508051906020019080838360005b8381101562001b1657808201518184015260208101905062001af9565b50505050905090810190601f16801562001b445780820380516001836020036101000a031916815260200191505b50848103835286818151815260200191508051906020019080838360005b8381101562001b7f57808201518184015260208101905062001b62565b50505050905090810190601f16801562001bad5780820380516001836020036101000a031916815260200191505b50848103825285818151815260200191508051906020019080838360005b8381101562001be857808201518184015260208101905062001bcb565b50505050905090810190601f16801562001c165780820380516001836020036101000a031916815260200191505b509650505050505050600060405180830381600087803b15801562001c3a57600080fd5b505af115801562001c4f573d6000803e3d6000fd5b50505050505050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606080600083519050606060418281151562001cd757fe5b0460405190808252806020026020018201604052801562001d075781602001602082028038833980820191505090505b509050600080905060008090505b8381101562001dfd57808701945060418552600062001d358987620026aa565b9050600073ffffffffffffffffffffffffffffffffffffffff16600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415848480600101955081518110151562001ddc57fe5b90602001906020020190151590811515815250505060418101905062001d15565b508194505050505092915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151562001e6857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151562001f6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4249463a204163746f7220616c726561647920726567697374657265642e000081525060200191505060405180910390fd5b600086868686868662001f7e62004e88565b8080602001806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186600281111562001fc657fe5b60ff168152602001806020018563ffffffff1663ffffffff16815260200184810384528a818151815260200191508051906020019080838360005b838110156200201e57808201518184015260208101905062002001565b50505050905090810190601f1680156200204c5780820380516001836020036101000a031916815260200191505b50848103835289818151815260200191508051906020019080838360005b83811015620020875780820151818401526020810190506200206a565b50505050905090810190601f168015620020b55780820380516001836020036101000a031916815260200191505b50848103825286818151815260200191508051906020019080838360005b83811015620020f0578082015181840152602081019050620020d3565b50505050905090810190601f1680156200211e5780820380516001836020036101000a031916815260200191505b509950505050505050505050604051809103906000f08015801562002147573d6000803e3d6000fd5b50905080600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600280811115620021d557fe5b846002811115620021e257fe5b1415620022685780600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60028190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156200233457600080fd5b620023d46002620023ce6002805480602002602001604051908101604052809291908181526020018280548015620023c257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162002377575b50505050508462002bde565b62002c80565b6000819050600360008273ffffffffffffffffffffffffffffffffffffffff166341398b156040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156200244057600080fd5b505afa15801562002455573d6000803e3d6000fd5b505050506040513d60208110156200246c57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555050565b6060620024ec848462001cbf565b905060008090505b8151811015620025335781818151811015156200250d57fe5b906020019060200201511562002527578280600190039350505b806001019050620024f4565b50600082131515156200254557600080fd5b60008060606200255787601e62002dac565b8094508193508295505050506000831415156200257357600080fd5b6060620025b8886040805190810160405280600981526020017f70726f7065727479310000000000000000000000000000000000000000000000815250848662003c2f565b90506060620025ff896040805190810160405280600981526020017f70726f7065727479320000000000000000000000000000000000000000000000815250858762003c2f565b90506060620026468a6040805190810160405280600781526020017f6173736574496400000000000000000000000000000000000000000000000000815250868862003c2f565b905060606200268d8b6040805190810160405280600681526020017f6f726967696e0000000000000000000000000000000000000000000000000000815250878962003c2f565b90506200269d828286866200153f565b5050505050505050505050565b60008060008060418551141515620026c95760009350505050620027eb565b6000868051906020012090506020860151935060408601519250606086015160001a9150601b8260ff1610156200270157601b820191505b601b8260ff16141580156200271a5750601c8260ff1614155b156200272e576000945050505050620027eb565b60018160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012083868660405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015620027da573d6000803e3d6000fd5b505050602060405103519450505050505b92915050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6002818154811015156200282757fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60608060608060006060806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cd5286d0896040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200293f57808201518184015260208101905062002922565b50505050905090810190601f1680156200296d5780820380516001836020036101000a031916815260200191505b509250505060006040518083038186803b1580156200298b57600080fd5b505afa158015620029a0573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525060e0811015620029cb57600080fd5b810190808051640100000000811115620029e457600080fd5b82810190506020810184811115620029fb57600080fd5b815185600182028301116401000000008211171562002a1957600080fd5b5050929190602001805164010000000081111562002a3657600080fd5b8281019050602081018481111562002a4d57600080fd5b815185600182028301116401000000008211171562002a6b57600080fd5b5050929190602001805164010000000081111562002a8857600080fd5b8281019050602081018481111562002a9f57600080fd5b815185600182028301116401000000008211171562002abd57600080fd5b5050929190602001805164010000000081111562002ada57600080fd5b8281019050602081018481111562002af157600080fd5b815185600182028301116401000000008211171562002b0f57600080fd5b505092919060200180519060200190929190805164010000000081111562002b3657600080fd5b8281019050602081018481111562002b4d57600080fd5b815185600182028301116401000000008211171562002b6b57600080fd5b5050929190602001805164010000000081111562002b8857600080fd5b8281019050602081018481111562002b9f57600080fd5b815185600182028301116401000000008211171562002bbd57600080fd5b50509291905050509650965096509650965096509650919395979092949650565b600080600090505b835181101562002c55578273ffffffffffffffffffffffffffffffffffffffff16848281518110151562002c1657fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff16141562002c47578091505062002c7a565b808060010191505062002be6565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90505b92915050565b81805490508110151562002c945762002da8565b60008190505b600183805490500381101562002d4c57826001820181548110151562002cbc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838281548110151562002cf657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808060010191505062002c9a565b5081600183805490500381548110151562002d6357fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690558180548091906001900362002da6919062004e99565b505b5050565b6000606060006060859050600062002dc362004ec8565b62002dce8762003dbc565b809650819250505060008082602001519050600062002dec62004eea565b5b86518560000151101562003c1257600087866000015181518110151562002e1057fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000029050607b7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148062002ef55750605b7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156200304e57838060010194505062002f0f868b62003e62565b809350819850505086151562002f3b5760038a60008090509a509a509a50505050505050505062003c28565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff866040015114151562002f9c5789866040015181518110151562002f7c57fe5b9060200190602002015160a001805180919060010160ff1660ff16815250505b607b7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161462002ff157600262002ff4565b60015b826000019060048111156200300557fe5b908160048111156200301357fe5b815250508560000151826020018181525050600182604001901515908115158152505060018660200151038660400181815250505062003bfc565b607d7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480620030e65750605d7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156200335c576000607d7f010000000000000000000000000000000000000000000000000000000000000002827effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146200314357600262003146565b60015b90506000809050600188602001510394505b60008510151562003271578b858151811015156200317257fe5b906020019060200201519350836040015180156200319257508360800151155b156200326257816004811115620031a557fe5b84600001516004811115620031b657fe5b141515620031dc5760018c60008090509c509c509c505050505050505050505062003c28565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88604001818152505060018860000151018c868151811015156200321d57fe5b90602001906020020151606001818152505060018c868151811015156200324057fe5b9060200190602002015160800190151590811515815250506001905062003271565b84806001900395505062003158565b801515620032975760018c60008090509c509c509c505050505050505050505062003c28565b5b6000851115620032f6578b85815181101515620032b157fe5b90602001906020020151935083604001518015620032d157508360800151155b15620032e75784886040018181525050620032f6565b84806001900395505062003298565b600085141562003353578b858151811015156200330f57fe5b906020019060200201519350836040015180156200332f57508360800151155b156200335257846fffffffffffffffffffffffffffffffff168860400181815250505b5b50505062003bfc565b7f2200000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614156200344c57620033b4868b8a62003f3d565b9450600085141515620033dc57848a60008090509a509a509a50505050505050505062003c28565b83806001019450507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff866040015114151562003445578986604001518151811015156200342557fe5b9060200190602002015160a001805180919060010160ff1660ff16815250505b5062003bfc565b7f2000000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480620034e1575060117f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8062003531575060127f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8062003581575060147f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156200358e575062003bfc565b7f3a00000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620035f15760018660200151038660400181815250505062003bfc565b7f2c00000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620037fc577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff866040015114158015620036aa5750600260048111156200367a57fe5b8a87604001518151811015156200368d57fe5b90602001906020020151600001516004811115620036a757fe5b14155b8015620036f0575060016004811115620036c057fe5b8a8760400151815181101515620036d357fe5b90602001906020020151600001516004811115620036ed57fe5b14155b15620037f557600186602001510392505b600083101515620037f457600260048111156200371a57fe5b8a848151811015156200372957fe5b906020019060200201516000015160048111156200374357fe5b1480620037845750600160048111156200375957fe5b8a848151811015156200376857fe5b906020019060200201516000015160048111156200378257fe5b145b15620037e55789838151811015156200379957fe5b90602001906020020151604001518015620037ce57508983815181101515620037be57fe5b9060200190602002015160800151155b15620037e45782866040018181525050620037f4565b5b82806001900393505062003701565b5b5062003bfc565b7f3000000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101580156200389157507f3900000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b80620038de57507f2d00000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200392b57507f6600000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200397857507f7400000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80620039c557507f6e00000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b1562003b3d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff866040015114151562003a985789866040015181518110151562003a0c57fe5b9060200190602002015191506001600481111562003a2657fe5b8260000151600481111562003a3757fe5b148062003a7557506003600481111562003a4d57fe5b8260000151600481111562003a5e57fe5b14801562003a74575060008260a0015160ff1614155b5b1562003a975760018a60008090509a509a509a50505050505050505062003c28565b5b62003aa5868b8a62004669565b945060008514151562003acd57848a60008090509a509a509a50505050505050505062003c28565b83806001019450507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff866040015114151562003b365789866040015181518110151562003b1657fe5b9060200190602002015160a001805180919060010160ff1660ff16815250505b5062003bfc565b60207f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161015801562003bd85750607e7f010000000000000000000000000000000000000000000000000000000000000002817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191611155b1562003bfa5760018a60008090509a509a509a50505050505050505062003c28565b505b8460000180518091906001018152505062002ded565b6000898660200151995099509950505050505050505b9250925092565b60606000600190505b8281101562003d3b576003600481111562003c4f57fe5b848281518110151562003c5e57fe5b9060200190602002015160000151600481111562003c7857fe5b14801562003cd5575062003cd18562003ccb88878581518110151562003c9a57fe5b9060200190602002015160200151888681518110151562003cb757fe5b906020019060200201516060015162004a3a565b62004b40565b6000145b1562003d2f5780600101905062003d2686858381518110151562003cf557fe5b9060200190602002015160200151868481518110151562003d1257fe5b906020019060200201516060015162004a3a565b91505062003db4565b80600101905062003c38565b506000151562003db3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f70726f7065727479206e6f7420666f756e64000000000000000000000000000081525060200191505060405180910390fd5b5b949350505050565b62003dc662004ec8565b606062003dd262004ec8565b60606040519081016040528060008152602001600081526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff815250905060608460405190808252806020026020018201604052801562003e5257816020015b62003e3e62004f34565b81526020019060019003908162003e345790505b5090508181935093505050915091565b600062003e6e62004eea565b8251846020015110151562003ea957600083600185510381518110151562003e9257fe5b906020019060200201518090509150915062003f36565b62003eb362004eea565b60c0604051908101604052806000600481111562003ecd57fe5b81526020016000815260200160001515815260200160008152602001600015158152602001600060ff1681525090508084866020015181518110151562003f1057fe5b906020019060200201819052508460200180518091906001018152505060018192509250505b9250929050565b60008084600001519050600062003f5362004eea565b866000018051809190600101815250505b8451876000015110156200465057600085886000015181518110151562003f8757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000290507f2200000000000000000000000000000000000000000000000000000000000000817effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562004077576200402b888862003e62565b8093508194505050821515620040535783886000018181525050600394505050505062004662565b62004069826003600187018b6000015162004e15565b600094505050505062004662565b605c817f0100000000000000000000000000000000000000000000000000000000000000900460ff16148015620040b5575085516001896000015101105b156200463857876000018051809190600101815250507f2200000000000000000000000000000000000000000000000000000000000000868960000151815181101515620040ff57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806200421757507f2f00000000000000000000000000000000000000000000000000000000000000868960000151815181101515620041a857fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80620042c157507f5c000000000000000000000000000000000000000000000000000000000000008689600001518151811015156200425257fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200436b57507f6600000000000000000000000000000000000000000000000000000000000000868960000151815181101515620042fc57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200441557507f7200000000000000000000000000000000000000000000000000000000000000868960000151815181101515620043a657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80620044bf57507f6e000000000000000000000000000000000000000000000000000000000000008689600001518151811015156200445057fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200456957507f6200000000000000000000000000000000000000000000000000000000000000868960000151815181101515620044fa57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200461357507f7400000000000000000000000000000000000000000000000000000000000000868960000151815181101515620045a457fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156200462057506200463a565b83886000018181525050600194505050505062004662565b505b8660000180518091906001018152505062003f64565b82876000018181525050600293505050505b9392505050565b600080600090506000856000015190506000806200468662004eea565b5b865189600001511015620049af57868960000151815181101515620046a857fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000292507f2000000000000000000000000000000000000000000000000000000000000000837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806200478757507f0900000000000000000000000000000000000000000000000000000000000000837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80620047d457507f0a00000000000000000000000000000000000000000000000000000000000000837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200482157507f0d00000000000000000000000000000000000000000000000000000000000000837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200486e57507f2c00000000000000000000000000000000000000000000000000000000000000837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80620048be5750607d7f010000000000000000000000000000000000000000000000000000000000000002837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806200490e5750605d7f010000000000000000000000000000000000000000000000000000000000000002837effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b156200491e5760019450620049af565b6020837f0100000000000000000000000000000000000000000000000000000000000000900460ff1610806200497a5750607f837f0100000000000000000000000000000000000000000000000000000000000000900460ff16115b1562004999578389600001818152505060019550505050505062004a33565b8860000180518091906001018152505062004687565b841515620049d0578389600001818152505060029550505050505062004a33565b620049dc898962003e62565b809250819350505081151562004a05578389600001818152505060039550505050505062004a33565b62004a18816004868c6000015162004e15565b88600001805180919060019003815250506000955050505050505b9392505050565b60608084905060608484036040519080825280601f01601f19166020018201604052801562004a785781602001600182028038833980820191505090505b50905060008590505b8481101562004b3357828181518110151562004a9957fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000028287830381518110151562004af557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808060010191505062004a81565b5080925050509392505050565b600060608390506060839050600082519050808251101562004b6157815190505b60008090505b8181101562004db757828181518110151562004b7f57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110151562004bfb57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916101562004c9c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff94505050505062004e0f565b828181518110151562004cab57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110151562004d2757fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916111562004da957600194505050505062004e0f565b808060010191505062004b67565b5081518351101562004def577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff935050505062004e0f565b81518351111562004e07576001935050505062004e0f565b600093505050505b92915050565b828460000190600481111562004e2757fe5b9081600481111562004e3557fe5b8152505081846020018181525050600184604001901515908115158152505080846060018181525050600184608001901515908115158152505060008460a0019060ff16908160ff168152505050505050565b604051610d758062004fa783390190565b81548183558181111562004ec35781836000526020600020918201910162004ec2919062004f7e565b5b505050565b6060604051908101604052806000815260200160008152602001600081525090565b60c0604051908101604052806000600481111562004f0457fe5b81526020016000815260200160001515815260200160008152602001600015158152602001600060ff1681525090565b60c0604051908101604052806000600481111562004f4e57fe5b81526020016000815260200160001515815260200160008152602001600015158152602001600060ff1681525090565b62004fa391905b8082111562004f9f57600081600090555060010162004f85565b5090565b9056fe60806040523480156200001157600080fd5b5060405162000d7538038062000d75833981018060405260c08110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b828101905060208101848111156200006757600080fd5b81518560018202830111640100000000821117156200008557600080fd5b50509291906020018051640100000000811115620000a257600080fd5b82810190506020810184811115620000b957600080fd5b8151856001820283011164010000000082111715620000d757600080fd5b5050929190602001805190602001909291908051906020019092919080516401000000008111156200010857600080fd5b828101905060208101848111156200011f57600080fd5b81518560018202830111640100000000821117156200013d57600080fd5b50509291906020018051906020019092919050505085600090805190602001906200016a9291906200022f565b508460019080519060200190620001839291906200022f565b5082600260146101000a81548160ff02191690836002811115620001a357fe5b021790555083600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160039080519060200190620002019291906200022f565b5080600460006101000a81548163ffffffff021916908363ffffffff160217905550505050505050620002de565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200027257805160ff1916838001178555620002a3565b82800160010185558215620002a3579182015b82811115620002a257825182559160200191906001019062000285565b5b509050620002b29190620002b6565b5090565b620002db91905b80821115620002d7576000816000905550600101620002bd565b5090565b90565b610a8780620002ee6000396000f3fe608060405260043610610088576000357c01000000000000000000000000000000000000000000000000000000009004806306fdde031461008d57806326b3c68b1461011d5780632d4ee6db146101545780633943380c146101e457806341398b15146102745780636aaa2aa3146102cb578063b706bc1d1461048e578063f437bc59146104c7575b600080fd5b34801561009957600080fd5b506100a2610557565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100e25780820151818401526020810190506100c7565b50505050905090810190601f16801561010f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561012957600080fd5b506101326105f5565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b34801561016057600080fd5b5061016961060b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a957808201518184015260208101905061018e565b50505050905090810190601f1680156101d65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101f057600080fd5b506101f96106a9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023957808201518184015260208101905061021e565b50505050905090810190601f1680156102665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028057600080fd5b50610289610747565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102d757600080fd5b506102e061076d565b6040518080602001806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200186600281111561032a57fe5b60ff168152602001806020018563ffffffff1663ffffffff16815260200184810384528a818151815260200191508051906020019080838360005b83811015610380578082015181840152602081019050610365565b50505050905090810190601f1680156103ad5780820380516001836020036101000a031916815260200191505b50848103835289818151815260200191508051906020019080838360005b838110156103e65780820151818401526020810190506103cb565b50505050905090810190601f1680156104135780820380516001836020036101000a031916815260200191505b50848103825286818151815260200191508051906020019080838360005b8381101561044c578082015181840152602081019050610431565b50505050905090810190601f1680156104795780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b34801561049a57600080fd5b506104a36109aa565b604051808260028111156104b357fe5b60ff16815260200191505060405180910390f35b3480156104d357600080fd5b506104dc6109bd565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561051c578082015181840152602081019050610501565b50505050905090810190601f1680156105495780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105ed5780601f106105c2576101008083540402835291602001916105ed565b820191906000526020600020905b8154815290600101906020018083116105d057829003601f168201915b505050505081565b600460009054906101000a900463ffffffff1681565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106a15780601f10610676576101008083540402835291602001916106a1565b820191906000526020600020905b81548152906001019060200180831161068457829003601f168201915b505050505081565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561073f5780601f106107145761010080835404028352916020019161073f565b820191906000526020600020905b81548152906001019060200180831161072257829003601f168201915b505050505081565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60608060008060606000806001600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260149054906101000a900460ff166003600460009054906101000a900463ffffffff16858054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108575780601f1061082c57610100808354040283529160200191610857565b820191906000526020600020905b81548152906001019060200180831161083a57829003601f168201915b50505050509550848054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b50505050509450818054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561098f5780601f106109645761010080835404028352916020019161098f565b820191906000526020600020905b81548152906001019060200180831161097257829003601f168201915b50505050509150955095509550955095509550909192939495565b600260149054906101000a900460ff1681565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a535780601f10610a2857610100808354040283529160200191610a53565b820191906000526020600020905b815481529060010190602001808311610a3657829003601f168201915b50505050508156fea165627a7a7230582084b423ef514129265d227fff5985d42439bff616e02b709afa6fcf8c728aecd30029a165627a7a72305820f8f307f1e41c0d5709c5f134a619ecf9b88e1e08d392bbfcc19e5a7e2dc0e1040029608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611b00806100606000396000f3fe608060405260043610610067576000357c0100000000000000000000000000000000000000000000000000000000900480630b5156c51461006c57806320cd18a8146102f9578063227b0251146104ef5780638da5cb5b146106e5578063cd5286d01461073c575b600080fd5b34801561007857600080fd5b506102f76004803603608081101561008f57600080fd5b81019080803590602001906401000000008111156100ac57600080fd5b8201836020820111156100be57600080fd5b803590602001918460018302840111640100000000831117156100e057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561014357600080fd5b82018360208201111561015557600080fd5b8035906020019184600183028401116401000000008311171561017757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156101da57600080fd5b8201836020820111156101ec57600080fd5b8035906020019184600183028401116401000000008311171561020e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561027157600080fd5b82018360208201111561028357600080fd5b803590602001918460018302840111640100000000831117156102a557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610aa4565b005b34801561030557600080fd5b506104ed6004803603606081101561031c57600080fd5b810190808035906020019064010000000081111561033957600080fd5b82018360208201111561034b57600080fd5b8035906020019184600183028401116401000000008311171561036d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103d057600080fd5b8201836020820111156103e257600080fd5b8035906020019184600183028401116401000000008311171561040457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561046757600080fd5b82018360208201111561047957600080fd5b8035906020019184600183028401116401000000008311171561049b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610e28565b005b3480156104fb57600080fd5b506106e36004803603606081101561051257600080fd5b810190808035906020019064010000000081111561052f57600080fd5b82018360208201111561054157600080fd5b8035906020019184600183028401116401000000008311171561056357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156105c657600080fd5b8201836020820111156105d857600080fd5b803590602001918460018302840111640100000000831117156105fa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561065d57600080fd5b82018360208201111561066f57600080fd5b8035906020019184600183028401116401000000008311171561069157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506111d1565b005b3480156106f157600080fd5b506106fa611410565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561074857600080fd5b506108026004803603602081101561075f57600080fd5b810190808035906020019064010000000081111561077c57600080fd5b82018360208201111561078e57600080fd5b803590602001918460018302840111640100000000831117156107b057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611435565b604051808060200180602001806020018060200188151515158152602001806020018060200187810387528e818151815260200191508051906020019080838360005b83811015610860578082015181840152602081019050610845565b50505050905090810190601f16801561088d5780820380516001836020036101000a031916815260200191505b5087810386528d818151815260200191508051906020019080838360005b838110156108c65780820151818401526020810190506108ab565b50505050905090810190601f1680156108f35780820380516001836020036101000a031916815260200191505b5087810385528c818151815260200191508051906020019080838360005b8381101561092c578082015181840152602081019050610911565b50505050905090810190601f1680156109595780820380516001836020036101000a031916815260200191505b5087810384528b818151815260200191508051906020019080838360005b83811015610992578082015181840152602081019050610977565b50505050905090810190601f1680156109bf5780820380516001836020036101000a031916815260200191505b50878103835289818151815260200191508051906020019080838360005b838110156109f85780820151818401526020810190506109dd565b50505050905090810190601f168015610a255780820380516001836020036101000a031916815260200191505b50878103825288818151815260200191508051906020019080838360005b83811015610a5e578082015181840152602081019050610a43565b50505050905090810190601f168015610a8b5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aff57600080fd5b6000600160006002876040518082805190602001908083835b602083101515610b3d5780518252602082019150602081019050602083039250610b18565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610b7f573d6000803e3d6000fd5b5050506040513d6020811015610b9457600080fd5b81019080805190602001909291905050508152602001908152602001600020600001805460018160011615610100020316600290049050141515610bd757600080fd5b60e0604051908101604052808581526020016040805190810160405280600d81526020017f416363656e747572655f444c540000000000000000000000000000000000000081525081526020018481526020016040805190810160405280858152602001848152508152602001600015158152602001602060405190810160405280600081525081526020016020604051908101604052806000815250815250600160006002876040518082805190602001908083835b602083101515610cb35780518252602082019150602081019050602083039250610c8e565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610cf5573d6000803e3d6000fd5b5050506040513d6020811015610d0a57600080fd5b810190808051906020019092919050505081526020019081526020016000206000820151816000019080519060200190610d459291906119af565b506020820151816001019080519060200190610d629291906119af565b506040820151816002019080519060200190610d7f9291906119af565b506060820151816003016000820151816000019080519060200190610da59291906119af565b506020820151816001019080519060200190610dc29291906119af565b50505060808201518160050160006101000a81548160ff02191690831515021790555060a0820151816006019080519060200190610e019291906119af565b5060c0820151816007019080519060200190610e1e9291906119af565b5090505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e8357600080fd5b6000600160006002866040518082805190602001908083835b602083101515610ec15780518252602082019150602081019050602083039250610e9c565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610f03573d6000803e3d6000fd5b5050506040513d6020811015610f1857600080fd5b8101908080519060200190929190505050815260200190815260200160002060000180546001816001161561010002031660029004905014151515610f5c57600080fd5b6000600160006002866040518082805190602001908083835b602083101515610f9a5780518252602082019150602081019050602083039250610f75565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015610fdc573d6000803e3d6000fd5b5050506040513d6020811015610ff157600080fd5b81019080805190602001909291905050508152602001908152602001600020905060026040805190810160405280600981526020017f70726f70657274793100000000000000000000000000000000000000000000008152506040518082805190602001908083835b60208310151561107f578051825260208201915060208101905060208303925061105a565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156110c1573d6000803e3d6000fd5b5050506040513d60208110156110d657600080fd5b81019080805190602001909291905050506002846040518082805190602001908083835b60208310151561111f57805182526020820191506020810190506020830392506110fa565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611161573d6000803e3d6000fd5b5050506040513d602081101561117657600080fd5b810190808051906020019092919050505014156111ae57818160030160000190805190602001906111a8929190611a2f565b506111cb565b818160030160010190805190602001906111c9929190611a2f565b505b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561122c57600080fd5b6000600160006002866040518082805190602001908083835b60208310151561126a5780518252602082019150602081019050602083039250611245565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156112ac573d6000803e3d6000fd5b5050506040513d60208110156112c157600080fd5b810190808051906020019092919050505081526020019081526020016000206000018054600181600116156101000203166002900490501415151561130557600080fd5b6000600160006002866040518082805190602001908083835b602083101515611343578051825260208201915060208101905060208303925061131e565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611385573d6000803e3d6000fd5b5050506040513d602081101561139a57600080fd5b81019080805190602001909291905050508152602001908152602001600020905060018160050160006101000a81548160ff021916908315150217905550828160060190805190602001906113f0929190611a2f565b5081816007019080519060200190611409929190611a2f565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606080606080600060608060006001600060028b6040518082805190602001908083835b60208310151561147e5780518252602082019150602081019050602083039250611459565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa1580156114c0573d6000803e3d6000fd5b5050506040513d60208110156114d557600080fd5b810190808051906020019092919050505081526020019081526020016000206000018054600181600116156101000203166002900490501415151561151957600080fd5b60006001600060028b6040518082805190602001908083835b6020831015156115575780518252602082019150602081019050602083039250611532565b6001836020036101000a038019825116818451168082178552505050505050905001915050602060405180830381855afa158015611599573d6000803e3d6000fd5b5050506040513d60208110156115ae57600080fd5b810190808051906020019092919050505081526020019081526020016000209050806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116675780601f1061163c57610100808354040283529160200191611667565b820191906000526020600020905b81548152906001019060200180831161164a57829003601f168201915b50505050509750806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117065780601f106116db57610100808354040283529160200191611706565b820191906000526020600020905b8154815290600101906020018083116116e957829003601f168201915b50505050509650806003016000018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117a85780601f1061177d576101008083540402835291602001916117a8565b820191906000526020600020905b81548152906001019060200180831161178b57829003601f168201915b50505050509550806003016001018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561184a5780601f1061181f5761010080835404028352916020019161184a565b820191906000526020600020905b81548152906001019060200180831161182d57829003601f168201915b505050505094508060050160009054906101000a900460ff169350806006018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118fd5780601f106118d2576101008083540402835291602001916118fd565b820191906000526020600020905b8154815290600101906020018083116118e057829003601f168201915b50505050509250806007018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561199c5780601f106119715761010080835404028352916020019161199c565b820191906000526020600020905b81548152906001019060200180831161197f57829003601f168201915b5050505050915050919395979092949650565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106119f057805160ff1916838001178555611a1e565b82800160010185558215611a1e579182015b82811115611a1d578251825591602001919060010190611a02565b5b509050611a2b9190611aaf565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611a7057805160ff1916838001178555611a9e565b82800160010185558215611a9e579182015b82811115611a9d578251825591602001919060010190611a82565b5b509050611aab9190611aaf565b5090565b611ad191905b80821115611acd576000816000905550600101611ab5565b5090565b9056fea165627a7a7230582068aa99645b84b669f0710da5e557aa09f0bc2dd4438525e78c6b3e45fffb08650029",
      "gasPrice": "0x0"
    }
  ]
}

Which then produces the WebSocket connection shut down in response:

 {"jsonrpc":"2.0","error":{"code":-32600,"message":"unexpected EOF"}}
@zzy96
Copy link
Contributor

zzy96 commented Nov 25, 2019

Hi @petermetz

I have tried your JSON RPC request directly on both current master and v2.3.0 through WebSocket. It is working fine and the contract is successfully deployed. Can you share the web3.js script you are using which reproduces this error together with web3.js version?

@petermetz
Copy link
Author

petermetz commented Nov 26, 2019

Hi @zzy96
Thank you for taking the time to look into it! We use Web3 v1.2.4 (latest stable)

Here's the file that instantiates Web3 https://github.com/hyperledger-labs/blockchain-integration-framework/blob/master/examples/simple-asset-transfer/quorum/api/utils/web3.js

Here's the top level script that deploys the contract (with mentioned Web3 instance)
https://github.com/hyperledger-labs/blockchain-integration-framework/blob/master/examples/simple-asset-transfer/quorum/api/scripts/deploy-contracts.js

The file that instantiates the Web3 contract object:
https://github.com/hyperledger-labs/blockchain-integration-framework/blob/master/examples/simple-asset-transfer/quorum/api/utils/contracts.js#L17

And for reference here's a docker-compose file used to bring up the network itself (mostly your 7nodes example but were cut down to 4 nodes):
https://github.com/hyperledger-labs/blockchain-integration-framework/blob/master/examples/simple-asset-transfer/quorum/platform/docker-compose.yml

If this doesn't help either, of course I can put together a small, self contained example, I was just trying to avoid that on account of other issues corroborating mine from ethereum-go that they already acknowledged as a problem. I mean mostly this one: ethereum/go-ethereum#19001

@zzy96
Copy link
Contributor

zzy96 commented Nov 27, 2019

Unfortunately, I am not able to reproduce the issue. It would be helpful if you could provide a self-contained script to crash WebSocket. We will work on a patch if it is necessary.

I understand that the upstream geth has used a new WebSocket library since 1.9.1. Geth upgrade for Quorum to 1.9.x is also ongoing 😃

@petermetz
Copy link
Author

That's fair enough @zzy96 . If the geth upgrade is already underway then I'll just have my fingers crossed that it will fix it and in the meantime we'll use the HTTP Web3 Provider and be done with it.
Apologies, I'm really short on time, can't promise to make a self-contained repro anytime soon. If I do get time in the future and this is still open I'll get it done. Also, if you reach a testable stage with the geth 1.9.1 migration I'd be happy to give it a quick test run with my not-self-contained-nor-small test case that's currently failing. :-)

@vsmk98
Copy link
Contributor

vsmk98 commented Apr 15, 2020

#960

@zzy96
Copy link
Contributor

zzy96 commented May 4, 2020

https://github.com/jpmorganchase/quorum/releases/tag/v2.6.0

@zzy96 zzy96 closed this as completed May 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants