Cambio de patrón de bloque de Ethereum

Quiero saber cómo se agregan los datos de bloque a los datos de cadena leveldb en Ethereum. Para que pueda cambiar el patrón de bloque. Básicamente, estoy creando mi propia cadena de bloques ethereum privada. Y quiero agregar algún prefijo como "Bloque extraído" en todos y cada uno de los bloques que se crean.

Cualquier sugerencia es bienvenida. Gracias de antemano.

Respuestas (1)

Creé esta respuesta que creo que describe con bastante precisión el proceso que necesitarías para decodificar la cadena de bloques .

No me gusta la palabra blockchain cuando se usa para Ethereum porque puede dar a las personas una impresión equivocada de cómo funciona Ethereum. En Bitcoin y muchas criptomonedas, usan bloques para almacenar toda la información que ha cambiado y que está tratando de agregarse a la cadena de información. Si se aprueba, todos golpean el bloque al final de la cadena y ahora saben que serán las últimas transacciones válidas en la cadena.

Ethereum agrega estado a una cadena de bloques que requiere que no solo se tengan en cuenta los UTXO, sino que cada cuenta en el EVM debe estar disponible en caso de que alguien llame a un contrato inteligente y quiera que haya un cambio de estado. Manejan esto creando árboles Merkle Patricia que almacenan nuevos cambios y también hacen referencia a todo el EVM anterior para que también se pueda hacer referencia en las llamadas. Podría explicar más sobre los árboles merkle patricia , y si es necesario, comente, pero no creo que sea necesario para su pregunta.

Solo quería aclarar ese entendimiento para que ambos podamos estar en una página similar sobre cómo Ethereum maneja los bloques. No creo que desee cambiar la estructura de cómo se almacenan los datos en Ethereum, sino cambiar lo que se acepta para agregarse como datos a su implementación de Ethereum.

Entonces, desea crear su propia implementación privada de Ethereum que agregue un prefijo a cada bloque. Eso suena como un requisito que desea implementar, no a nivel de EVM, sino como un requisito al minar.

Si miras este bloque. Verás que tiene información extra en ASCII que dice: "ethermine-eu5". Supongo que desea hacer cumplir eso para decir, en su lugar, "Bloquear ethermine-eu5 extraído". Puede manejar esto desde los nodos o desde su cliente de minería. Geth es una de las implementaciones más comunes de Ethereum y podrían decir que si un bloque entra sin "Bloque extraído" como prefijo, entonces rechazará el bloque. Pero si otro cliente decide aceptar ese prefijo, como la paridad, habría una división en la forma de manejar ese cambio.

No sé cómo está creando actualmente su propia cadena privada, pero creo que debería cambiar el código del cliente para hacer cumplir que cada bloque que se acepta tenga un prefijo en el campo Extra. Si otro nodo elige hacer otra cosa, se eliminaría de su implementación de su cadena de bloques.