Estoy tratando de escribir una prueba con bitcoin/test/funcional/example_test.py para obtener el nodo 1 para extraer otro bloque, enviarlo al nodo 2 y verificar que el nodo 2 lo recibió. ¿Alguna idea sobre cómo hacer/empezar en esto? Estoy familiarizado con Python, pero esto es bastante nuevo para mí.
Gracias.
El valor predeterminado setup_network()
implementado por el marco de prueba conecta todos los nodos, como se explica en el comentario de example_test.py
's setup_network()
. Dado que desea que el nodo 2 se conecte a los nodos 1 y 0, simplemente puede eliminar el setup_network()
implementado example_test.py
para usar el predeterminado setup_network()
. Luego, dentro de run_test()
, puede hacerlo .generate()
con cualquiera de los nodos y el bloque debe sincronizarse con todos los demás nodos.
Para garantizar que todos los nodos estén sincronizados con el mismo bloque, puede usar self.sync_blocks()
lo que garantizará que cada nodo tenga la misma sugerencia antes de regresar.
Su prueba de ejecución tendría algo como:
def run_test(self):
self.nodes[0].generate(1)
self.sync_blocks()
spraveenitpro
self.nodes[1].generate(1)
? 2. Enviar el bloque extraído del nodo 1 al nodo 2 se puede hacer conself.sync_blocks()
[después de eliminar setup_network example_test.py para usar setup_network() predeterminado] 3. ¿Cómo verifico que el nodo 2 lo haya recibido?andres chow
sync_blocks()
solo se asegura de que todos los nodos estén sincronizados antes de continuar con la prueba. 3. Puede usargetbestblockhash()
en los nodos 1 y 2 y verificar que coincidan. Pero no es necesario hacer eso ya quesync_blocks()
lo hará por ti.spraveenitpro
You can use getbestblockhash() on nodes 1 and 2 and check that they match.
¿cómo se vería eso en el código? gracias de nuevo.andres chow
assert_equal(self.nodes[1].getbestblockhash(), self.nodes[2].getbestblockhash())