Repository: ethereum/web3.py

Issue:
Update Geth test fixture to 1.10.1
### What was wrong?
Our Geth fixture is lagging behind. We're on 1.9.19 while latest is now 1.10.1.

### How can it be fixed?
Test out the docs [here](https://web3py.readthedocs.io/en/stable/contributing.html#generating-new-fixtures). ~Hopefully they're sufficient, but ping me if not.~ Docs can use some improvement; let's identify where the gaps are.


Discussion:

Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -8,7 +8,7 @@
 extras_require = {
     'tester': [
         "eth-tester[py-evm]==v0.5.0-beta.3",
-        "py-geth>=2.4.0,<3",
+        "py-geth>=3.0.0,<4",
     ],
     'linter': [
         "flake8==3.8.3",
diff --git a/web3/eth.py b/web3/eth.py
--- a/web3/eth.py
+++ b/web3/eth.py
@@ -125,6 +125,10 @@ def icapNamereg(self) -> NoReturn:
 
     @property
     def protocol_version(self) -> str:
+        warnings.warn(
+            "This method has been deprecated in some clients.",
+            category=DeprecationWarning,
+        )
         return self._protocol_version()
 
     @property


Test patch:
diff --git a/tests/integration/generate_fixtures/go_ethereum.py b/tests/integration/generate_fixtures/go_ethereum.py
--- a/tests/integration/generate_fixtures/go_ethereum.py
+++ b/tests/integration/generate_fixtures/go_ethereum.py
@@ -74,7 +74,7 @@ def get_geth_process(geth_binary,
         '--gcmode', 'archive',
         '--nodiscover',
         '--port', geth_port,
-        '--etherbase', common.COINBASE[2:],
+        '--miner.etherbase', common.COINBASE[2:],
     )
 
     popen_proc = subprocess.Popen(
diff --git a/tests/integration/geth-1.10.1-fixture.zip b/tests/integration/geth-1.10.1-fixture.zip
new file mode 100644
Binary files /dev/null and b/tests/integration/geth-1.10.1-fixture.zip differ
diff --git a/tests/integration/geth-1.9.19-fixture.zip b/tests/integration/geth-1.9.19-fixture.zip
deleted file mode 100644
Binary files a/tests/integration/geth-1.9.19-fixture.zip and /dev/null differ
diff --git a/tests/integration/go_ethereum/common.py b/tests/integration/go_ethereum/common.py
--- a/tests/integration/go_ethereum/common.py
+++ b/tests/integration/go_ethereum/common.py
@@ -34,14 +34,6 @@ def test_eth_replace_transaction_already_mined(self, web3, unlocked_account_dual
         super().test_eth_replace_transaction_already_mined(web3, unlocked_account_dual_type)
         web3.geth.miner.stop()
 
-    @pytest.mark.xfail(reason='Block identifier has not been implemented in geth')
-    def test_eth_estimateGas_with_block(self,
-                                        web3,
-                                        unlocked_account_dual_type):
-        super().test_eth_estimateGas_with_block(
-            web3, unlocked_account_dual_type
-        )
-
     @pytest.mark.xfail(reason='eth_signTypedData has not been released in geth')
     def test_eth_signTypedData(self,
                                web3,
@@ -58,9 +50,23 @@ def test_invalid_eth_signTypedData(self,
             web3, unlocked_account_dual_type
         )
 
+    @pytest.mark.xfail(reason='eth_protocolVersion was removed in Geth 1.10.0')
+    def test_eth_protocol_version(self, web3):
+        super().test_eth_protocol_version(web3)
+
+    @pytest.mark.xfail(reason='eth_protocolVersion was removed in Geth 1.10.0')
+    def test_eth_protocolVersion(self, web3):
+        super().test_eth_protocolVersion(web3)
+
 
 class GoEthereumVersionModuleTest(VersionModuleTest):
-    pass
+    @pytest.mark.xfail(reason='eth_protocolVersion was removed in Geth 1.10.0')
+    def test_eth_protocol_version(self, web3):
+        super().test_eth_protocol_version(web3)
+
+    @pytest.mark.xfail(reason='eth_protocolVersion was removed in Geth 1.10.0')
+    def test_eth_protocolVersion(self, web3):
+        super().test_eth_protocolVersion(web3)
 
 
 class GoEthereumNetModuleTest(NetModuleTest):
diff --git a/tests/integration/go_ethereum/conftest.py b/tests/integration/go_ethereum/conftest.py
--- a/tests/integration/go_ethereum/conftest.py
+++ b/tests/integration/go_ethereum/conftest.py
@@ -19,7 +19,7 @@
 
 KEYFILE_PW = 'web3py-test'
 
-GETH_1919_ZIP = 'geth-1.9.19-fixture.zip'
+GETH_FIXTURE_ZIP = 'geth-1.10.1-fixture.zip'
 
 
 @pytest.fixture(scope='module')
@@ -68,8 +68,8 @@ def base_geth_command_arguments(geth_binary, datadir):
 
 @pytest.fixture(scope="module")
 def geth_zipfile_version(get_geth_version):
-    if get_geth_version.major == 1 and get_geth_version.minor == 9:
-        return GETH_1919_ZIP
+    if get_geth_version.major == 1 and get_geth_version.minor == 10:
+        return GETH_FIXTURE_ZIP
     raise AssertionError("Unsupported geth version")
 
 
diff --git a/tests/integration/go_ethereum/test_goethereum_ws.py b/tests/integration/go_ethereum/test_goethereum_ws.py
--- a/tests/integration/go_ethereum/test_goethereum_ws.py
+++ b/tests/integration/go_ethereum/test_goethereum_ws.py
@@ -42,7 +42,7 @@ def _geth_command_arguments(ws_port,
             '--ipcdisable',
             '--allow-insecure-unlock',
         )
-        if geth_version.minor not in [9]:
+        if geth_version.minor not in [10]:
             raise AssertionError("Unsupported Geth version")
     else:
         raise AssertionError("Unsupported Geth version")
diff --git a/web3/_utils/module_testing/eth_module.py b/web3/_utils/module_testing/eth_module.py
--- a/web3/_utils/module_testing/eth_module.py
+++ b/web3/_utils/module_testing/eth_module.py
@@ -888,17 +888,13 @@ def test_eth_modifyTransaction_deprecated(
     @pytest.mark.parametrize(
         'raw_transaction, expected_hash',
         [
-            (
-                # address 0x39EEed73fb1D3855E90Cbd42f348b3D7b340aAA6
-                '0xf8648085174876e8008252089439eeed73fb1d3855e90cbd42f348b3d7b340aaa601801ba0ec1295f00936acd0c2cb90ab2cdaacb8bf5e11b3d9957833595aca9ceedb7aada05dfc8937baec0e26029057abd3a1ef8c505dca2cdc07ffacb046d090d2bea06a',  # noqa: E501
-                '0x1f80f8ab5f12a45be218f76404bda64d37270a6f4f86ededd0eb599f80548c13',
-            ),
             (
                 # private key 0x3c2ab4e8f17a7dea191b8c991522660126d681039509dc3bb31af7c9bdb63518
                 # This is an unfunded account, but the transaction has a 0 gas price, so is valid.
                 # It never needs to be mined, we just want the transaction hash back to confirm.
-                HexBytes('0xf85f808082c35094d898d5e829717c72e7438bad593076686d7d164a80801ba005c2e99ecee98a12fbf28ab9577423f42e9e88f2291b3acc8228de743884c874a077d6bc77a47ad41ec85c96aac2ad27f05a039c4787fca8a1e5ee2d8c7ec1bb6a'),  # noqa: E501
-                '0x98eeadb99454427f6aad7b558bac13e9d225512a6f5e5c11cf48e8d4067e51b5',
+                # tx = {'to': '0x0000000000000000000000000000000000000000', 'value': 0, 'nonce': 0, 'gas': 21000, 'gasPrice': 0, 'chainId': 131277322940537}  # noqa: E501
+                HexBytes('0xf8658080825208940000000000000000000000000000000000000000808086eecac466e115a038176e5f9f1c25ce470ce77856bacbc02dd728ad647bb8b18434ac62c3e8e14fa03279bb3ee1e5202580668ec62b66a7d01355de3d5c4ef18fcfcb88fac56d5f90'),  # noqa: E501
+                '0x6ab943e675003de610b4e94f2e289dc711688df6e150da2bc57bd03811ad0f63',
             ),
         ]
     )