wormhole/algorand/NOTES.md

314 lines
15 KiB
Markdown

npm run test -- algorand
https://developer.algorand.org/docs/rest-apis/algod/v2/#get-v2statuswait-for-block-afterround
current algorand machine size:
https://howbigisalgorand.com/
custom indexes:
https://github.com/algorand/indexer/blob/develop/docs/PostgresqlIndexes.md
Installing node:
https://developer.algorand.org/docs/run-a-node/setup/install/
kubectl exec -it algorand-0 -c algorand-algod -- /bin/bash
docker exec -it algorand-tilt-indexer /bin/bash
to switch to sandbox, change devnet/node.yaml
- - http://algorand:8980
+ - http://host.minikube.internal:8980
put into dev/node.yaml
- --algorandAppID
- "4"
Install the algorand requirements
python3 -m pip install -r requirements.txt
install docker-compile
./sandbox down; ./sandbox clean; ./sandbox up dev -v; python3 admin.py --devnet
bring up the dev sandbox
./sandbox down; ./sandbox clean
[jsiegel@gusc1a-ossdev-jsl1 ~/.../algorand/_sandbox]{master} git diff
diff --git a/images/indexer/start.sh b/images/indexer/start.sh
index 9e224c2..f1714ea 100755
--- a/images/indexer/start.sh
+++ b/images/indexer/start.sh
@@ -28,6 +28,7 @@ start_with_algod() {
/tmp/algorand-indexer daemon \
--dev-mode \
+ --enable-all-parameters \
--server ":$PORT" \
-P "$CONNECTION_STRING" \
--algod-net "${ALGOD_ADDR}" \
./sandbox up dev
docker_compose("./algorand/sandbox-algorand/tilt-compose.yml")
dc_resource('algo-algod', labels=["algorand"])
dc_resource('algo-indexer', labels=["algorand"])
dc_resource('algo-indexer-db', labels=["algorand"])
// Solana
"01000000000100c9f4230109e378f7efc0605fb40f0e1869f2d82fda5b1dfad8a5a2dafee85e033d155c18641165a77a2db6a7afbf2745b458616cb59347e89ae0c7aa3e7cc2d400000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e4272696467650100000001c69a1b1a65dd336bf1df6a77afb501fc25db7fc0938cb08595a9ef473265cb4f",
// Ethereum
"01000000000100e2e1975d14734206e7a23d90db48a6b5b6696df72675443293c6057dcb936bf224b5df67d32967adeb220d4fe3cb28be515be5608c74aab6adb31099a478db5c01000000010000000100010000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000546f6b656e42726964676501000000020000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16",
// BSC
"01000000000100719b4ada436f614489dbf87593c38ba9aea35aa7b997387f8ae09f819806f5654c8d45b6b751faa0e809ccbc294794885efa205bd8a046669464c7cbfb03d183010000000100000001000100000000000000000000000000000000000000000000000000000000000000040000000002c8bb0600000000000000000000000000000000000000000000546f6b656e42726964676501000000040000000000000000000000000290fb167208af455bb137780163b7b7a9a10c16",
('0100000001010001ca2fbf60ac6227d47dda4fe2e7bccc087f27d22170a212b9800da5b4cbf0d64c52deb2f65ce58be2267bf5b366437c267b5c7b795cd6cea1ac2fee8a1db3ad006225f801000000010001000000000000000000000000000000000000000000000000000000000000000400000000000000012000000000000000000000000000000000000000000000000000000000436f72650200000000000001beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe',
{'Meta': 'CoreGovernance',
'NewGuardianSetIndex': 0,
'action': 2,
'chain': 1,
'chainRaw': b'\x00\x01',
'consistency': 32,
'digest': b'b%\xf8\x01\x00\x00\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00'
b'\x00\x01 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00C'
b'ore\x02\x00\x00\x00\x00\x00\x00\x01\xbe\xfaB\x9dW\xcd\x18\xb7\xf8'
b'\xa4\xd9\x1a-\xa9\xabJ\xf0]\x0f\xbe',
'emitter': b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04',
'index': 1,
'module': '00000000000000000000000000000000000000000000000000000000436f7265',
'nonce': 1,
'sequence': 1,
'siglen': 1,
'signatures': b"\x00\x01\xca/\xbf`\xacb'\xd4}\xdaO\xe2\xe7\xbc\xcc\x08\x7f'"
b'\xd2!p\xa2\x12\xb9\x80\r\xa5\xb4\xcb\xf0\xd6LR\xde'
b'\xb2\xf6\\\xe5\x8b\xe2&{\xf5\xb3fC|&{\\{y\\\xd6\xce\xa1\xac/'
b'\xee\x8a\x1d\xb3\xad\x00',
'sigs': ['0001ca2fbf60ac6227d47dda4fe2e7bccc087f27d22170a212b9800da5b4cbf0d64c52deb2f65ce58be2267bf5b366437c267b5c7b795cd6cea1ac2fee8a1db3ad00'],
'targetChain': 0,
'timestamp': 1646655489,
'version': 1})
Registering chain 1
('01000000020100c2f0b6e546e093630295e5007e8b077b1028d3aa9a72ab4c454b261306eb4f550179638597f25afd6f40a18580bc87fa315552e7294b407bd4616f0995d1cb55016225f5fd0000000300010000000000000000000000000000000000000000000000000000000000000004000000000000000320000000000000000000000000000000000000000000546f6b656e4272696467650100000001ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5',
{'EmitterChainID': 1,
'Meta': 'TokenBridge RegisterChain',
'action': 1,
'chain': 1,
'chainRaw': b'\x00\x01',
'consistency': 32,
'digest': b'b%\xf5\xfd\x00\x00\x00\x03\x00\x01\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00'
b'\x00\x03 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00TokenBridge\x01\x00\x00\x00\x01'
b'\xecsr\x99]\\\xc8s#\x97\xfb\n\xd3\\\x01!\xe0\xea\xa9\r&\xf8(\xa5'
b'4\xca\xb5C\x91\xb3\xa4\xf5',
'emitter': b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04',
'index': 2,
'module': '000000000000000000000000000000000000000000546f6b656e427269646765',
'nonce': 3,
'sequence': 3,
'siglen': 1,
'signatures': b'\x00\xc2\xf0\xb6\xe5F\xe0\x93c\x02\x95\xe5\x00~\x8b\x07'
b'{\x10(\xd3\xaa\x9ar\xabLEK&\x13\x06\xebOU\x01yc\x85\x97\xf2Z'
b'\xfdo@\xa1\x85\x80\xbc\x87\xfa1UR\xe7)K@{\xd4ao\t\x95\xd1\xcb'
b'U\x01',
'sigs': ['00c2f0b6e546e093630295e5007e8b077b1028d3aa9a72ab4c454b261306eb4f550179638597f25afd6f40a18580bc87fa315552e7294b407bd4616f0995d1cb5501'],
'targetChain': 0,
'targetEmitter': 'ec7372995d5cc8732397fb0ad35c0121e0eaa90d26f828a534cab54391b3a4f5',
'timestamp': 1646654973,
'version': 1})
Sending 3000 algo to cover fees
[1000, 1000, 1000, 1000]
{0: 99997976000}
Registering chain 2
('010000000201008c7153db06d433e304dcb7dc029b6cb142093adf87eac7a14adff78060f9b80275479d0620612ae656f7281190ab7bbf85f31eb2ace579e77b2e7855af2a4504016225f5fe0000000400010000000000000000000000000000000000000000000000000000000000000004000000000000000420000000000000000000000000000000000000000000546f6b656e42726964676501000000020000000000000000000000003ee18b2214aff97000d974cf647e7c347e8fa585',
{'EmitterChainID': 2,
'Meta': 'TokenBridge RegisterChain',
'action': 1,
'chain': 1,
'chainRaw': b'\x00\x01',
'consistency': 32,
'digest': b'b%\xf5\xfe\x00\x00\x00\x04\x00\x01\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00'
b'\x00\x04 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00TokenBridge\x01\x00\x00\x00\x02'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00>\xe1\x8b"'
b'\x14\xaf\xf9p\x00\xd9t\xcfd~|4~\x8f\xa5\x85',
'emitter': b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04',
'index': 2,
'module': '000000000000000000000000000000000000000000546f6b656e427269646765',
'nonce': 4,
'sequence': 4,
'siglen': 1,
'signatures': b'\x00\x8cqS\xdb\x06\xd43\xe3\x04\xdc\xb7\xdc\x02\x9bl\xb1B\t:'
b'\xdf\x87\xea\xc7\xa1J\xdf\xf7\x80`\xf9\xb8\x02uG\x9d\x06 a*'
b'\xe6V\xf7(\x11\x90\xab{\xbf\x85\xf3\x1e\xb2\xac\xe5y\xe7{.x'
b'U\xaf*E\x04\x01',
'sigs': ['008c7153db06d433e304dcb7dc029b6cb142093adf87eac7a14adff78060f9b80275479d0620612ae656f7281190ab7bbf85f31eb2ace579e77b2e7855af2a450401'],
'targetChain': 0,
'targetEmitter': '0000000000000000000000003ee18b2214aff97000d974cf647e7c347e8fa585',
'timestamp': 1646654974,
'version': 1})
Sending 3000 algo to cover fees
[1000, 1000, 1000, 1000]
{0: 99997967000}
Registering chain 3
('010000000201006896223475308eb13bc6d279b620b167f0e4884afc56942b2199faa81e1d50d83d74f7c0700254aa78a7e8966508608f0d827969df09745ad569575136551bce006225f5ff0000000500010000000000000000000000000000000000000000000000000000000000000004000000000000000520000000000000000000000000000000000000000000546f6b656e42726964676501000000030000000000000000000000007cf7b764e38a0a5e967972c1df77d432510564e2',
{'EmitterChainID': 3,
'Meta': 'TokenBridge RegisterChain',
'action': 1,
'chain': 1,
'chainRaw': b'\x00\x01',
'consistency': 32,
'digest': b'b%\xf5\xff\x00\x00\x00\x05\x00\x01\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00'
b'\x00\x05 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00TokenBridge\x01\x00\x00\x00\x03'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00|\xf7\xb7d'
b'\xe3\x8a\n^\x96yr\xc1\xdfw\xd42Q\x05d\xe2',
'emitter': b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04',
'index': 2,
'module': '000000000000000000000000000000000000000000546f6b656e427269646765',
'nonce': 5,
'sequence': 5,
'siglen': 1,
'signatures': b'\x00h\x96"4u0\x8e\xb1;\xc6\xd2y\xb6 \xb1g\xf0\xe4\x88'
b'J\xfcV\x94+!\x99\xfa\xa8\x1e\x1dP\xd8=t\xf7\xc0p\x02T'
b'\xaax\xa7\xe8\x96e\x08`\x8f\r\x82yi\xdf\ttZ\xd5iWQ6U\x1b'
b'\xce\x00',
'sigs': ['006896223475308eb13bc6d279b620b167f0e4884afc56942b2199faa81e1d50d83d74f7c0700254aa78a7e8966508608f0d827969df09745ad569575136551bce00'],
'targetChain': 0,
'targetEmitter': '0000000000000000000000007cf7b764e38a0a5e967972c1df77d432510564e2',
'timestamp': 1646654975,
'version': 1})
Sending 3000 algo to cover fees
[1000, 1000, 1000, 1000]
{0: 99997958000}
Registering chain 4
('0100000002010023b80ca2402119348543c14134218cd0e1e54428e54ecdf21acb1a1d6c01be261fcc138023955a04bcd09230a5710340251b68db080a8bbf64d06ab744624d6a016225f5ff0000000600010000000000000000000000000000000000000000000000000000000000000004000000000000000620000000000000000000000000000000000000000000546f6b656e4272696467650100000004000000000000000000000000b6f6d86a8f9879a9c87f643768d9efc38c1da6e7',
{'EmitterChainID': 4,
'Meta': 'TokenBridge RegisterChain',
'action': 1,
'chain': 1,
'chainRaw': b'\x00\x01',
'consistency': 32,
'digest': b'b%\xf5\xff\x00\x00\x00\x06\x00\x01\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00'
b'\x00\x06 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00TokenBridge\x01\x00\x00\x00\x04'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\xf6\xd8j'
b'\x8f\x98y\xa9\xc8\x7fd7h\xd9\xef\xc3\x8c\x1d\xa6\xe7',
'emitter': b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04',
'index': 2,
'module': '000000000000000000000000000000000000000000546f6b656e427269646765',
'nonce': 6,
'sequence': 6,
'siglen': 1,
'signatures': b'\x00#\xb8\x0c\xa2@!\x194\x85C\xc1A4!\x8c\xd0\xe1\xe5D'
b'(\xe5N\xcd\xf2\x1a\xcb\x1a\x1dl\x01\xbe&\x1f\xcc\x13'
b'\x80#\x95Z\x04\xbc\xd0\x920\xa5q\x03@%\x1bh\xdb\x08\n\x8b'
b'\xbfd\xd0j\xb7DbMj\x01',
'sigs': ['0023b80ca2402119348543c14134218cd0e1e54428e54ecdf21acb1a1d6c01be261fcc138023955a04bcd09230a5710340251b68db080a8bbf64d06ab744624d6a01'],
'targetChain': 0,
'targetEmitter': '000000000000000000000000b6f6d86a8f9879a9c87f643768d9efc38c1da6e7',
'timestamp': 1646654975,
'version': 1})
Sending 3000 algo to cover fees
[1000, 1000, 1000, 1000]
{0: 99997949000}
Registering chain 5
('010000000201003a168d6617cc74c3a5e254a6e65441d341cec315dcd5b588e72f781f8dd9c82977ad1234732d097151a54add996a33a6e4da3a2e80c41146de0bc834d8830661006225f6000000000700010000000000000000000000000000000000000000000000000000000000000004000000000000000720000000000000000000000000000000000000000000546f6b656e42726964676501000000050000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde',
{'EmitterChainID': 5,
'Meta': 'TokenBridge RegisterChain',
'action': 1,
'chain': 1,
'chainRaw': b'\x00\x01',
'consistency': 32,
'digest': b'b%\xf6\x00\x00\x00\x00\x07\x00\x01\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00'
b'\x00\x07 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00TokenBridge\x01\x00\x00\x00\x05'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00ZXPZ'
b'\x96\xd1\xdb\xf8\xdf\x91\xcb!\xb5D\x19\xfc6\xe9?\xde',
'emitter': b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04',
'index': 2,
'module': '000000000000000000000000000000000000000000546f6b656e427269646765',
'nonce': 7,
'sequence': 7,
'siglen': 1,
'signatures': b'\x00:\x16\x8df\x17\xcct\xc3\xa5\xe2T\xa6\xe6TA\xd3A\xce\xc3'
b'\x15\xdc\xd5\xb5\x88\xe7/x\x1f\x8d\xd9\xc8)w\xad\x124s-\t'
b'qQ\xa5J\xdd\x99j3\xa6\xe4\xda:.\x80\xc4\x11F\xde\x0b\xc8'
b'4\xd8\x83\x06a\x00',
'sigs': ['003a168d6617cc74c3a5e254a6e65441d341cec315dcd5b588e72f781f8dd9c82977ad1234732d097151a54add996a33a6e4da3a2e80c41146de0bc834d883066100'],
'targetChain': 0,
'targetEmitter': '0000000000000000000000005a58505a96d1dbf8df91cb21b54419fc36e93fde',
'timestamp': 1646654976,
'version': 1})
./sandbox down; ./sandbox clean; ./sandbox up dev -v; python3 admin.py --devnet
[jsiegel@gusc1a-ossdev-jsl1 ~/.../algorand/_sandbox]{master} git diff
diff --git a/images/indexer/start.sh b/images/indexer/start.sh
index 9e224c2..f1714ea 100755
--- a/images/indexer/start.sh
+++ b/images/indexer/start.sh
@@ -28,6 +28,7 @@ start_with_algod() {
/tmp/algorand-indexer daemon \
--dev-mode \
+ --enable-all-parameters \
--server ":$PORT" \
-P "$CONNECTION_STRING" \
--algod-net "${ALGOD_ADDR}" \
--
#!/usr/bin/env bash
if [ ! -d _sandbox ]; then
echo We need to create it...
git clone https://github.com/algorand/sandbox.git _sandbox
fi
if [ "`grep enable-all-parameters _sandbox/images/indexer/start.sh | wc -l`" == "0" ]; then
echo the indexer is incorrectly configured
sed -i -e 's/dev-mode/dev-mode --enable-all-parameters/' _sandbox/images/indexer/start.sh
echo delete all the existing docker images
./sandbox clean
fi
./sandbox up dev
echo "run the tests"
cd test
python3 test.py
echo "bring the sandbox down"
cd ..
./sandbox down