Obscuro Testnet Change Log

Aug 2023-09-14 (v0.17.0)

  • A list of the PRs merged in this release is as below;
    • 43e99a9b Refactor storage to allow for different dbs + tests (#1517)
    • 1e6ba68f Tweak og database deploy (#1515)
    • 2e56932f Obscuro gateway database deploy (#1514)
    • b7b4e3e3 Change config to use rpc urls instead of host and port (#1512)
    • 764f98d7 Aggressive header compression (#1502)
    • 28d007bd Filter for tx with any obscuro interactions (#1509)
    • 4ddbf93f Hardhat: ensure token script doesn’t spin when waiting (#1508)
    • 61a90b0d Change back to inputs (#1507)
    • 5b18d686 Fix the event relevancy fields (#1506)
    • b4cbf13e Limit enclave fed l1 receipts to obscuro-relevant tx (#1495)
    • 2d2f7e46 Enclave guardian: remove superfluous running flag (#1505)
    • 98a86e6f Open port 3002 on gateway for websockets (#1504)
    • eeefcb14 L1 client - change reconnect to reconnect if dead (#1503)
    • 73c0e9ee Fix ci tests (#1496)
    • 1978e19e Add a isincomingp2penabled flag (#1491)
    • 4cb161e3 Set the debug namespace on the validator (#1494)
    • 50d2dc94 Fix txhash field in sql (#1493)
    • d0357c92 Fixing the debug namespace wiring (#1492)
    • 509d76fb Add loglevel flag (#1490)
    • d0dc3165 Update testnet-kpis.md (#1441)
    • 8bb1b465 Use versioning with obscuro gateway api (#1486)
    • 6ed6b304 Uses a prebuilt obscuro node image (#1487)
    • 998c8449 Merge stopcontrol + breaker packages (#1485)
    • b50b5f76 Bump eth2network (#1483)
    • 94775344 Fix for zero hash geth errors (#1484)
    • 923d5c6d Upgrading geth to 1.12 (#1481)
    • c6178c2a User getstorageat with parameter “getuserid” to get userid from request url (#1478)
    • 81c611d0 Add sepolia network runner to ide tools (#1480)
    • 4a74826a Subscribe for all clients from user if there is no address (#1467)
    • 0e34f367 Add very primitive db migration mechanism. (#1479)
    • 2e2b2019 Add verified data pages + obscuro info endpoint (#1476)

Aug 2023-08-22 (v0.16.0)

  • A list of the PRs merged in this release is as below;
    • 670af392 Add condition to only log slow storage calls (#1475)
    • 915c5f21 Add index (#1474)
    • 28ab67ac Add timer to storage calls (#1473)
    • 01f1cd94 Nil pointer when eth new block not found (#1472)
    • 89c09486 Add decryption + fixes to the grids (#1470)
    • 6687cf32 Fixes to the obscuroscan ui (#1468)

Aug 2023-08-17 (v0.15.0)

  • A list of the PRs merged in this release is as below;
    • d137cce6 Adjust the timer log for easier extraction from datadog (#1463)
    • f0a978f2 Update p2p stopping mechanism (#1466)
    • fd2de555 Add not null constraints (#1465)
    • 9fa606b4 Change l1 smoke test to check batches and blocks (#1464)
    • 2bc00d09 Fix eth2 timeout (#1462)
    • 1b9830bf Create single page for blocks, transaction and batches lists (#1448)
    • b895a4f3 Optimise the relevancy check and improve logging (#1461)
    • f74a3057 Ensure p2p peer list resync after restart (#1460)
    • 2847ce46 Clarify in-mem flag is for host db (#1459)
    • 66606eb8 Fixes for tests using persistent sqlite db (#1457)
    • f8bf2433 Sanity check p2p message before sending (#1458)
    • ce6bbf7f Fix logging bug (#1456)
    • 756798a7 Log errors (#1455)
    • ce0bb0a6 Some errors, plus extract shared secret processing (#1454)
    • 6efc3a96 Fix wiring of l1 start hash (#1452)
    • 889bb3de New location (#1453)
    • 3e671d79 P2p batch request data is historic not (#1451)
    • 95f7b986 Tweak log messages (#1450)
    • 09a3815e Bug: l1 start hash was overwritten so catching up from genesis (#1445)
    • 5fa006e6 Fix enclave latest seq number reporting (#1449)
    • d837842c Add timeout to wait for l1 merge (#1447)
    • ea7d338e Fix bug with restarting enclaves sqlite connection (#1438)
    • 430125fb Changed test timeout (#1446)
    • 509a1bae Refactor the subscription logic (#1443)
    • 4d078d50 Use public address for p2p requests (#1444)
    • 3ce52056 Remove extraneous hyphen (#1442)

Aug 2023-08-11 (v0.14.0)

  • A list of the PRs merged in this release is as below;
    • 6d2997e3 Fix peer addresses mutex (#1439)
    • 2224f956 Add hash reset (#1436)
    • bb03475f Use compressed pub key (#1435)
    • 90a768d2 Fix encoding of userid (#1429)
    • d2c7acbd Obscuroscan - add pagination in the list calls (public and encrypted) (#1434)
    • 1ab96316 Fix bug with unexecuted batch data (#1432)
    • cfdc6b81 Avoid panics when sequencer host thinks it is behind the enclave (#1433)
    • 58863712 Introduce unsubscribe delay (#1424)
    • 881e6719 Fix for deadlock (#1425)
    • 61358311 Reduce retention to 1 day on failure only (#1430)
    • bcf05b21 Added a health endpoint to og (#1427)
    • 3d4fabe9 Fix og user id and address problems (#1426)
    • 4852e28b Public tx listing rpc + fe (#1422)
    • 22277219 Fix add subscription logic (#1423)
    • 0aebb2d3 Clarify channels and mutexes (#1421)
    • f4913937 Pedro/private tx list (#1418)
    • 06e63f1e Add enclave guardian service, refactor logic out of host.go (#1409)
    • b4e4182c Fix timing issue for subscriptions (#1420)
    • 6a0f95a2 Rework batch execution logic (#1419)
    • ff6bf45a Fix l2 deploy (#1416)
    • 86e0152e Allow enclave to produce handlers for both old and new message types (#1417)
    • d47a0f29 Log block hash rather than pointer (#1414)
    • 4caac6dc Fix cache for blocks and batches (#1415)
    • f96bccd8 Ensure error fields on encl rpc resp are captured (#1413)
    • ce4d06d3 Add primitive cache for blocks and batches (#1412)
    • a36adf12 Block explorer api routes + fix obscuro api json marshallers (#1407)
    • 10477c78 Set back ot 03:05 nightly (#1410)
    • cd8be2c0 Fix event order (#1408)
    • ccf890a5 Implement relational db new tables (#1385)
    • 483c39a5 Obscuroscan now pulls rollups (#1406)
    • 99ec6e7c Change from port 13000 to 80 (#1405)
    • a08afcc6 Adding rolling batches and blocks (#1404)
    • 1a3f5cbc More fixes to get the faucet deployment to work when the upgrade workflow is initiated from a schedule event (#1402)
    • b074d5f2 Hook obscuro scan other endpoints (#1403)
    • 66f3cac0 Obs scan connect be-fe (#1399)
    • 922c1b18 Simplify enclave batch streaming and fix p2p batch requesting (#1400)
    • 3e9446df Put in some logging (#1401)
    • 0d7ddd32 Fixes to the obscuro scan v2 deploy (#1398)
    • 01fb6339 Obscuroscan v2 deploy (#1397)
    • 04ebaf7e Obscuroscan v2 frontend bootstrap (#1396)
    • c79b9c24 Fix issue with host failing to stop after error (#1393)
    • 3cc1eb98 Simplify host health check and p2p health check (#1389)
    • 6e46b005 Try feeding consecutive blocks if failing after a fork (#1395)
    • 3cc25ebb Scheduled trigger of the faucet fix for schedule (#1394)
    • 92098154 Add batch repository to host using seq no as key (#1388)
    • 00793ac0 Obscuroscan v2 backend (#1391)
    • e8c45ef3 Avoid getting stuck when returning to a prev l1 fork (#1390)
    • 17d27178 Rework how rollups are created (#1386)
    • d093666a Lock ego container image (#1387)
    • 9fb09210 Tweak we/og start flags for local testnet (#1384)
    • 5c27887e Fix the deployment of the faucet on a scheduled trigger (#1383)
    • 30162354 Re-enable the upgrade (#1382)
    • b9b1d5be Move sql creation logic to “sql” files (#1377)
    • 6700de56 Add multi-user support for obscuro gateway (#1375)
    • edf2ac90 Add subscription manager for sub/unsub (#1379)
    • b522d6c2 Fix paths for testnet local build (#1380)
    • c7c0aa5d Fix testnet after docker refactoring (#1378)
    • b5f6d52a Add l1 publishing service (#1376)
    • 7401bf04 Upgrade rollups (#1370)
    • ed4d3340 Add db schema (#1374)
    • d08abf33 Setup generic services in the host (#1372)
    • 6b51336a Fix missing mutex lock for block submission (#1373)
    • fe46cfce Reduce log noise from block catchup at startup (#1371)
    • 83a18aad Refactor tools dockerfiles, docker_run.sh scripts (#1355)
    • eb24d7fd Enclave-guardian: l1 repository service (#1368)
    • 50e9678b Add bit about the host services to the design docs (#1369)
    • c7668ee4 Add scan endpoint + contract creation count (#1367)
    • 3e958a50 Enclave-guardian: add enclave status tracker to host (#1364)
    • fcb3a7a3 Fix obscuro gateway deployment (#1366)
    • 4207c708 Temporary rollup logic fix (#1362)
    • 7de5739f Deploy obscuro gateway (#1349)
    • ef8f4245 Fix the build tests (#1361)
    • 7bdb5b56 Pedro/fix ci (#1360)
    • 5d524409 Simplify block processing logic (#1359)
    • 43c7f493 Tudor/change rollup execution flow (#1357)
    • 2ded2a00 Testnet github actions: fix clash with secrets (#1358)
    • acfe19f3 Fix the sim logger again (#1356)
    • 61edac8b Use latest patch version, not latest minor version (#1354)
    • 46adf001 Fix logger for sim hosts (#1353)
    • 80dcac43 Correct retention yaml (#1352)
    • 68bf71db Logs (#1351)
    • 11e5f651 Add in retention period (#1350)
    • 473b109b Add sequencer number field , plus some renaming (#1347)
    • e49bd32f Stop the nightly upgrade (#1348)
    • cf17ee28 Remove network manager (#1345)
    • 1832b40b Pedro/update faucet (#1342)
    • bdea3cb1 Relative network json file (#1339)
    • b2ad8714 Viewing key now is sent as a payload instead registering against enclave (#1318)
    • 8ee39357 Fixes to l2 upgrade and deployment (#1344)
    • 3728b2df Rename host db add batch method (#1343)
    • ad813cb6 Tudor/change headers (#1341)
    • 553abbc4 Change how randomness per batch is calculated to remove the mixdigest (#1340)
    • 3a1eb7af Integrate faucet in go-obscuro (#1323)
    • 612b5d5d L1 now runs on vm (#1335)
    • f90ec295 Add obscuro gateway endpoints (#1334)
    • e6e2658c Fix for validators not working without p2p (#1337)
    • a6bf6909 Updates start command (#1336)
    • 74d7ce02 Ziga/obscuto gatweay storage (#1330)
    • 4c510c42 Add useraccountmanager to manage accounts for multiple users (#1326)
    • ad419c64 Add l1 head and l2 head to enclave status (#1333)
    • f143b1f5 Separate p2p sub methods from host interface (#1332)
    • cf660911 Adding the faucet workflow (#1331)
    • f420b0d7 Added measuring logs to validator. (#1329)
    • 896d54e2 Fix log_15 logger param errors (#1325)
    • b4287cf3 Improve logging (#1327)
    • 723190b7 Skip rollup production when out of sync with l1 (#1328)
    • 7d779935 Updated wording for encryption (#1316)
    • bae86f05 Configurable pos timeframes (#1317)
    • 5e90d17d Resolver added. proto added (#1315)
    • 5af7d8f0 Remove unnecessary header fields (#1303)
    • 7112e508 Tidy up the enclave request handling (#1313)
    • 15e391d0 Start from right hash (#1314)
    • bc002525 Add logging details when catching up missing batches (#1312)
    • ceeb0742 Use batch transaction for db batches on host (#1311)
    • 44b93999 Tidying up the we (#1308)
    • 180fd043 Add l1 up-to-date flag to host health check (#1310)
    • 2021d3de Write to db after every batch (#1309)
    • ee9cccd9 Only publish batches when up-to-date with l1 (#1307)
    • 6727f8ed Updating go v1.20 prysm v4.0.5 gethv1.11.6 (#1257)
    • 37adab1d Fix for incorrectly chained rollups (#1305)
    • 46a2e084 Fix sendtransaction method signature (#1302)
    • 12d35437 Fix hash formatting in error msg (#1301)
    • 6a880273 Enclave: log less when scanning backwards for rollups (#1300)
    • 2b268bf2 Remove network deployer (#1299)
    • af5376c8 Changed limits. (#1298)
    • aa6fb166 Small fixes (#1296)
    • 4536aade Swapped true and false on acceptbatch. (#1289)
    • ef16c1ed Reinstate hash cache, and fix some pointers (#1295)
    • 3a4e1ca8 Adjust limiters (#1294)
    • da8d540b Performance fixes (#1293)
    • 06878966 Standardise block and batch log references (#1292)
    • 86dd3c93 Obscuro_gateway design (#1248)
    • 020fd3af Fix logger config (#1291)
    • ce2e8a3b Added config for batch size limit. (#1290)
    • 88b3a845 Add userid parameter in all request handlers (#1283)
    • 1a64bc08 Add squash and merge to dev onboarding (#1288)
    • 4f9851ff Changed log level (#1287)
    • 75656dc6 Restore configs (#1286)
    • a6061d0d Adding limiters that prevent creating oversized transactions (#1218)
    • 82b78b14 Added compression to the batches payload (#1284)
    • bd3abcef Add developer onboarding guide (#1285)
    • 96168330 Decrease rollup time (#1282)
    • 9595c548 Fix log level (#1281)
    • 8f55555e Fix databasepath to be consistent with other settings (#1280)
    • 69c09eb2 Always update l1 head on submit block (#1279)
    • 2b0bee0d Obscuro gateway add database (#1266)
    • 4945e3a0 Storage now accepts db batch. (#1277)
    • 3d7d9157 Add simple retry to p2p (#1278)
    • 30f51bda Added log timers. (#1276)
    • b22bb354 Consuming rollups: fixes and clarifications (#1275)
    • 8cf8b8cf Be explicit about the environment and whether deployed or upgraded (#1274)
    • 8977efbe Increase ego heapsize to 2gb (#1273)
    • 29991d36 Review of todos part four (#1250)
    • 770379c0 Add test for restarting all nodes in network (#1272)
    • 04a3f5d0 Node upgrade: fix management contract config (#1271)
    • eb68c71f Fix log formatting to not swallow error (#1270)
    • 463f4c9b Mempool is now using a simpler mechanism to pick transactions and wait for ones that are not ready to go in yet (#1268)
    • 116043bb Host: retry submitblock on generic errors (#1267)
    • 2dfc15da Set the text replacement for sending the faucet trigger (#1265)
    • 8cc34ea2 Fixes the testlog usage (#1264)
    • 4356da01 Testnet deploy: validator health check to 5mins (#1263)
    • aadd5c5b Avoid forwarding bad txs to the sequencer (#1249)
    • 1c186ee7 Fix syntax (#1262)
    • 0b44bc72 Updated to run the upgrade nightly (#1261)
    • cd9d44c4 Testnet upgrade: lookup env build number from azure vms (#1252)
    • f2ffe2cb Testnet deploy: install gcc and allow time for vms to initialise (#1255)
    • e119c78b Testnet deploy: health check validator node too (#1258)
    • 26e03e35 Refactored the l2 chain code. added sequencer and validator separations and components to enable them (#1227)
    • 1fc911bf Logs on the l1 containers (#1256)
    • 52623e95 Inmem node used in the socket simulation (#1254)
    • f290dd67 Fix testnet deploy sleep condition (#1253)
    • b7f18445 Add inmemory node to the node package (#1251)
    • 69458bfd Fix the stop issue in the unit tests (#1247)
    • d3e1d79e Tidy up block submission errors (#1245)

May 2023-05-04 (v0.13)

  • A list of the PRs merged in this release is as below;
    • 6f8264f7 Fix the we cross-os build (#1244)
    • 325bb0c8 Adding system errors (#1237)
    • f346e239 Add wait group wait() timeout function to util (#1242)
    • b759f55a Remove error from proto message payload (#1241)
    • fdc9b035 Fix broken link for the pdf version of the whitepaper. (#1238)
    • 61b9e17f Update some of the @matt todos (#1240)
    • 13c87ac1 Updates after backlog review part three (#1239)
    • a551408b Layout update for obscuroscan (#1200)
    • eeb1623b Locking the docker image alpine to 16 (#1233)
    • 6758cb32 Update wallet extension docs and include a link to obx faucet (#1235)
    • a1a30083 Logs are now debuggable from the debug_log visibility endpoint (#1231)
    • 3497be98 Only perform the l2 deployment on a scheduled basis (#1230)
    • 3bda160e Reintroducing encrypted enclave errors (#1197)
    • 56557a2f Host to retry forever waiting for the enclave to come up (#1229)

April 2023-04-13 (v0.12)

  • Robustness fixes for event log subscriptions, including ensuring no dropping of event logs, removal of any duplicates, and ensuring correct ordering based on their block insertion.
  • Event log subscriptions will now infer the correct viewing key to use for relevancy checks performed by an Obscuro node. This is based on filter criteria in the subscription, e.g. when a particular address field is included in the filter list, if a viewing key for that address is registered, that key will be used. Note that subscriptions to all events, where those events might contain data used in the relevancy checks, will not be able to infer the viewing key to use, and as such will use the first registered key made through that instance of the wallet extension.
  • A list of the PRs merged in this release is as below;
    • 25dc4cd9 Block provider now contributes to health status (#1225)
    • 978e3509 Renaming docker volumes (#1224)
    • 827d67bc Workaround for xchain message finality (#1220)
    • 56589db7 Persist enclave key (#1223)
    • 845d7d34 Is debug namespace enables flag (#1222)
    • a3b220d1 Disabled notifications for npm (#1221)
    • 96e4029b Adding debug_traceTransaction endpoint and functionality (#1214)
    • 37835960 Add different manual tests (#1217)
    • c1425fbf Reconnect client on the block provider (#1216)
    • b0983690 Fix npe (#1215)
    • e5efecc6 Fix sqlite init logic (#1213)
    • 05a7065f Normalise data field to fix event dups bug (#1212)
    • 0fc9d164 Fix bug and improve log (#1211)
    • bb92ae19 Add more logging in the verbose we (#1210)
    • 02d885ea Review of todos part two (#1209)
    • c1033393 Setup ego signer for testnets (#1208)
    • 7c2e8985 Pull the updated docker images in testnet upgrade script (#1207)
    • 13d8f102 Fix the block hash of log messages and receipts (#1206)
    • 4766f27b Pedro/log tx rollup hash (#1204)
    • 6e81b9e2 Remove -a option (#1203)
    • 81aacd56 Eth2network now pushed as part of the deploy flow (#1201)
    • e8903b38 Add logic to discover the authenticated client to be used for subscriptions (#1196)
    • cad27131 Fix filtering logic (#1199)
    • 90b04263 Fix local network launcher for enclave persistence (#1198)
    • 48acdc3f Use docker mount for enclave persistence (#1195)
    • 31562358 Rename offchain to obscall and fix tx execution logs (#1194)
    • f3f73da6 Changes to the testnet launcher, better logging (#1192)
    • 124eb4cf Fix names of types aliases (#1193)
    • c6316cbb Store events in sql table (#1182)
    • 17a7c44b Todo review number 1 edits (#1191)
    • 927b970d L1_host not output properly in upgrade gh action (#1190)
    • 013e8f32 Wipe and re-clone obscuro code on testnet node upgrade (#1186)
    • f7d4cd35 Revert “refactoring how errors are done. (#1153)” (#1189)
    • 8dd0f1f6 Resolve faucet docs images (#1188)
    • 24659498 Add back in the faucet steps using discord (#1187)
    • 00fedf0f Run scheduled dev-testnet deployment at 3:05am tues to sat (#1185)
    • 9af0f70c Add in the release notes for v0.11 (#1177)
    • 45984ad1 Replaced 1.17->1.18 (#1184)
    • c010d003 Refactoring how errors are done (#1153)
    • 6b96286d Add docker_buildkit=1 (#1183)
    • c3b76592 Remove unused host flow controls (#1181)
    • 3afc850e Fix: node launcher was ignoring the l1 start param (#1180)
    • 18420198 Simplify sqlite creation logic (#1179)
    • 81483e76 Remove db interfaces (#1178)
    • e7343851 Close database and guard enclave methods (#1175)
    • 9c9337c4 Removing the external api calls section (#1176)
    • 8106a432 Expose underlying sql database (#1171)
    • 235de492 Extract the mgmt contract deployment block for node starts (#1174)

March 2023-03-22 (v0.11)

  • A list of the PRs merged in this release is as below;
    • 1d22729e Fixed nil ptr case. (#1172)
    • 96565a7d Bridge and cross chain messaging docs. (#1087)
    • dfc2b284 Added some logs for event relevancy. (#1169)
    • 915794a4 Process network secrets now iterates only over successful transactions. (#1168)
    • 0d8e947e Tell prysm node not to look for peers (#1167)
    • 72cf6948 Retry l1 reconnect indefinitely (#1166)
    • 2678359a Fix dead links. (#1156)e$
    • 266fd18c Fix a dead link (#1157)e$
    • f32bd928 Fixes for 3 dead links. (#1158)
    • c3147be0 Prysm upgrade + fix compatibility (#1165)
    • 2e38f551 Set sequencer host to use in-mem db as well (#1164)
    • 496e626e Move network config persistence further down stack (#1161)
    • 290c6c53 Docker testnet launcher to use in-mem db for host (#1162)
    • 6527a019 Update fast_finality.md (#1163)
    • a483fe3f Add upgrade option to node script (#1154)
    • d41ad9ea Small logging improvements, loosen islatest restriction (#1151)
    • 59762afe Enable persistence on testnet hosts (#1152)
    • a6087483 Fix loglvl arg format in testnet script (#1150)
    • 5bd5c21e Set host and enclave loggers to info by default (#1149)
    • 8b85efe5 Reenable disabled block provider test (#1148)
    • 2e335e8e Enclave does not process failed rollups (#1138)
    • fddfeccb Wallet extension verbose logging (#1147)
    • 824d74f8 Deploy l2 contracts synchronously (#1146)
    • 31b1d017 Add buildkit to docker update step (#1145)
    • ee335754 Add basic l1 sanity check to networktests tools (#1142)
    • af7f7259 Updated readme. (#1140)
    • 70197a13 Update the go versions on actions to match the repo version (#1143)
    • dbda7aec Fix to the admin address (#1141)
    • d0a2d02d Rollup module (#1125)
    • d4637cc1 Trigger a repository dispatch to the faucet (#1139)
    • 6eb94f9b Renamed increaseallowance to approve. (#1136)
    • 486892e5 Admin role for bridge. (#1135)
    • f4e8f2ab Clean up design documents (#1137)
    • ec41be07 Draft upgrading design (#1103)
    • b5a79eb6 Add test that restarts the host as well as the enclave (#1134)
    • b3b15faa Fix to the format of the dispatch event (#1133)

February 2023-02-23 (v0.10)

  • A list of the PRs merged in this release is as below;
    • d81f5f9a Run a schedule deploy on the l1, and trigger l2 if succesful (#1129)
    • 481dc317 Wrap leveldb so its error types don’t leak into our codebase (#1128)
    • e5d8c398 Resilient to rpc requests while sequencer unknown (#1130)
    • aa3eaea2 Updated go version and ego version. (#1124)
    • 6de02fb0 Add config to enable host persistence (#1122)
    • 7f7b78fa Save deployment container logs as build artifacts for fault finding (#1123)
    • 7b640aec No need to request secret for enclave on host restart (#1117)
    • 71d0ea88 Testnet launcher + node package (#1112)
    • c33bf2bc Clarify p2p address syncing (#1116)
    • 1c6f7c7e Add integration testing and local network tools (#1115)
    • a4d34075 Implemented scheduled deployment of dev-testnet (#1114)
    • 8adb8970 Rotates the eth2 logs (#1113)
    • a9c8f9af Update testnet-local-build_images.sh (#1110)
    • 77cc0dad Management contract in all vars (#1093)
    • 7bffad4d Add a single start script to launch testnet with default arguments (#1107)
    • ff7632fa Adds a script that waits for the eth2network to be ready (#1108)
    • 76a0abbb Removes the gethnetwork (#1095)
    • 70767522 Add blockheight and blockhash log keys (#1105)
    • d4bb4120 Fix comparison for empty hash (#1106)
    • 6e145dce Update enclave.go (#1104)
    • 55f4fdc9 Fixes for the we tests (#1102)
    • de1d8bf4 Record latest rollup for every l1 block to avoid scanning back (#1101)
    • 859524b2 Attempt to fix github sleep step bash syntax (#1099)
    • 9196f32b Aggressive enclave logging to track what what it is processing (#1100)
    • f56418b9 Fix contract deployer test ports (#1097)
    • a10e94a7 Add sleep to stagger az cli requests on parallel node creation (#1098)
    • 855c3a36 Fix wallet extension flakyness (#1096)
    • 04af95bd Fix for contract ci go test integration. reintroduced param names to … (#1094)
    • 2e0dfdc1 Eth2 used in the deployment (#1079)
    • 3ef6a073 Remove speculative execution (#1092)
    • ba736919 Adding manual tests + minor fixes (#1090)
    • 1d3134b7 Fix sequencer tx production (#1091)
    • 73dc2df8 Rollup lookup should not assume that l1 blocks go back to genesis (#1089)
    • 09932b44 After enclave restart, replay batches to restore missing statedb cache (#1088)
    • d0bb547f Provide a clearer way for finding the latest rollup in the chain of a given head block. (#1085)
    • c610271f Fixes enclave debug image (#1086)
    • e2c2babc Avoid swallowing l1 client error messages (#1081)
    • 54819a09 Ensure l2 head is rewound after l1 forks (#1078)
    • afafeee2 Call db client batches dbbatches to avoid confusion (#1070)
    • a8357aa3 Obscuro bridge deployment scripts. (#1046)
    • c951a9b8 Reduces the time to start a merged eth2 network (#1077)
    • 7a65331c Make pr template lighter (#1076)
    • 015c6b7e Juiced the docker. it’s now fast. (#1071)
    • 9e7c6a30 Upgrade enclave l2 (#1075)
    • 5e494c36 Fixes the enclave start (#1074)
    • 6f2b8a69 Remove early exit (#1073)
    • 14d25d96 Fix faucet deployment trigger (#1072)
    • b2e6f8e2 Store the l2 head hash directly in the enclave (#1069)
    • 34e7bbe3 Adds an upgrade testnet workflow (#1049)
    • f8230934 Adds eth2 network (#1050)
    • 37f52830 Docker image size reduction (#1068)
    • 6f621c0b No need to manage a mempool on non-sequencer nodes (#1064)
    • d8f3d64d Temporarily allow product key sealing edb credentials for testnet upgrades (#1065)
    • c254ac9c Removed stuff related to the old bridge (#1057)
    • c775d8bd Store batches from rollups. check batches at same height are consistent. (#1063)
    • 69fcdd10 Wallet extension now supports –host cli arg. (#1061)
    • c5635a75 Fix solidity compilation warnings for unused calldata. warnings are now treated as errors. (#1060)
    • fde6606c Adds todo. (#1058)
    • 72c062b8 Requires the full set of batches to be specified when creating a rollup from a set of batches (#1056)
    • 5b7ffbb5 Each rollup references its batches, rather than a set of transactions (#1055)
    • 12229781 Adds comments to clarify some of the log events logic. (#1054)
    • 1a16f9ef Fix for ci deployment. (#1053)
    • 3c977786 Rollup header points to batch. (#1052)
    • 556a5741 Avoid unnecessary updating of head rollup for block (#1051)

January 2023-01-17 (v0.9)

  • A list of the PRs merged in this release is as below;
    • 35054c64 In mem tests now use containers (#1045)
    • b736353f Added layer 2 deployment and updated bits around it (#1044)
    • d9ef7b8a Fixes to some hh deployment issues (#1043)
    • ce18d3fd Propagates container start error (#1042)
    • bb1bc76c Remove gas constants (#1041)
    • 80fcc27d Hardhat deploy plugin and deployment of the layer 1 bits (#1038)
    • 070c79d7 Added tasks for the wallet extension (#1037)
    • a0eb02c3 Testnet and dev tesnet now deploy from one workflow (#1035)
    • 10838a4e Improved validation of incoming rollups (#1040)
    • 47ecb855 Extracted abigen task as a separate one (#1036)
    • e375f0f5 Obscuroscan now deploys manually (#1033)
    • d37f325a Separate batch and rollup in block submission response (#1034)
    • 0d32caf7 Testnet metrics are pushed to datadog (#1025)
    • 35c60d39 Fixed a slight bug in the message bus (#1028)
    • e30dcb2a Changed runner from self hosted to ubuntu (#1030)
    • a3567c0e Parallel build the images (#941)

January 2023-01-04 (v0.8)

  • Predominantly internal changes as part of work on faster finality, persistent L1 and updated bridge. No user visible changes or breaking API changes are made.
  • A list of the PRs merged in this release is as below;
    • 7652b2c5 Fix for issue deploying testnet (#1020)
    • 84bd5d82 Added bridge smart contracts and test. (#993)
    • 8a75bd05 Deployments wait until node 0 is healthy (#1018)
    • 383b9c7b Updated changelog (#1016)
    • 3622359f Uses known registry address (#1017)
    • 6f4f876c Decouples host and rpc server (#1014)
    • 81d92fb3 Locks edb version for the obscuro node (#1012)
    • 1bb248d3 Remove unnecessary start method from enclave interface (#1011)
    • 7e525447 Rpc server is injected into the host (#1010)
    • 7c51dcb6 Docker updates (#1009)
    • 8ac39307 Updates pccs url for edgelessdb + ego (#1008)
    • 74cc6e9b Change sequencer id var to read from gh secrets (#1006)
    • d74c2995 Use a curl command to request obx (#1007)
    • dd9b5e77 Adds metrics + update p2p to use metrics (#1002)
    • dd6d7ec6 Fix timing issue with sequencer secret (#1004)
    • 80a24e61 Genesis rollup agg field should be the sequencer that produces it (#1003)
    • d777c4c1 Updates the sgx folder to match the edgelessdb usage (#1000)
    • 521b0156 Add is() support to blockrejecterr for standard errors (#1001)
    • 3ebd06b7 Switching genesis to be a batch, not a rollup (#997)
    • c3907cb5 Hooks sequencerid flag (#999)
    • 709cd907 Fixes two bugs in batch catchup (#995)
    • 8b1344e1 Fix for oz 4.5.0 dependency (#994)
    • 38ab4925 Return genesis as batch, not rollup (#990)
    • 25e3b73c Remove ides folders (#992)
    • e05282e1 Changed contracts to use hardhat for compilation. (#965)
    • cb561316 Reduce sleep time after unexpected block provider error (#989)
    • 81f52116 Add fast-fail mechanism to break out of retry (#988)
    • 43dcf872 Create two separate header structs for batch and rollup (#985)
    • b34fde07 Tx injector l1 deposits are estimated (#986)
    • c40573be Clean up batch validation on validators; check for missing batches in chain (#984)
    • 4f0cc501 Stop using same struct for rollup and batch headers, so they can diverge (#981)
    • 79bf6b52 Fix main build errors (#982)
    • 12799f2c Temporarily disable the validation of sequencer signatures (#980)
    • 5e72c139 P2p healthcheck (#962)
    • c3aaeb24 Check that rollups processed from l1 blocks are sequential (#977)
    • c2a463c2 Returns clearer error if rollup signature cannot be validated (#978)
    • 37c9246e Some minimal validation of processed rollups (#976)
    • 5cab9cf6 Send transactions to sequencer, instead of broadcasting them (#975)
    • e22643db Add section into pr template (#974)
    • a6c8415e Proper handling of genesis batch on the host side (#972)
    • 997737e5 Reintroduce storage of rollups; store genesis rollup and rollups from blocks (#973)
    • c80b5d56 Check that received batch is produced by sequencer (#971)
    • 1c06e9ec Removes use of transaction blob crypto in rollup chain. (#970)
    • 2bbde79f Rename methods on enclave to reflect fact that batches are now source of truth (#969)
    • 061febd8 Fixed broken link. (#967)
    • 1aab5f55 Clean up enclave storage (#968)
    • 21abaa9c Cleaner production of rollup on sequencer (#964)
    • 7824f769 Produce block submission response outside of rollupchain; some cleanup (#963)
    • d6199e1f Clarify storenewheads logic (#961)
    • 650f727c Avoid storing batches twice; small optimisations to batch catch-up (#959)
    • a0141139 Disabled cross chain messages block hash binding in management contract. (#958)
    • 3ed4b90d Separate di constructor for container in testing (#957)
    • 7506ebe3 Reenable withdrawals check in sim. (#956)
    • 304d33ab Remove storage of rollups on the host side (#955)
    • 755a61ca Create rollups from scratch instead of retrieving them from l1 blocks (#946)
    • 4fd3825a Hosts now use the addr pk for deployment (#935)
    • 5b6b6380 Gas estimation centralization (#954)
    • 188d1f23 Logging improvements to easily trace what is going on and a band aid on the test to stop showing false positives. (#953)
    • a3a4f12c Second attempt at fixing testnet (#952)
    • b1574942 Fix for the testnet deployment (#951)
    • 838067f8 Standardise container wiring for enclave and host (#949)
    • 5e18b286 Fix security issue. seal secrets with the unique sgx key (#950)
    • e8e34ac8 Adding stop and status scripts (#948)
    • 13d334da Obscuro cross chain messaging (#817)
    • 2d327cee Adds a start node doc (#945)
    • cfdfd07c Submit each batch to the enclave if it’s successfully stored (#947)
    • 24871c16 Removes issequencerenclave. updates node types. (#944)
    • 9ebcf3f3 Fixes underflow bug. (#942)
    • 8dca53c8 Removes unused flags (#934)
    • 7f854124 Clean up handling of genesis block (#939)
    • 9bb34347 Reverts use of retry.do. (#940)
    • e27d1242 Pedro/fix get balance (#937)
    • 41580a89 Fixes batch catchup, and fixes bug in sequencer rollup production (#927)
    • 640f065f Have shorter timeout for awaiting receipt in in-mem sim (#925)
    • 8334dad0 Host id is now generated from pk (#933)
    • 8c06ad68 Quote the owner in the json (#932)
    • 687f910d Fixes obscuro scan git deploy (#931)
    • f75f77d4 Remove pkaddress flag (#930)
    • 86c61ec9 Add in user login (#929)
    • 6b302f85 Fix in-mem mock concurrency bug (#928)
    • 53fb50a4 Remove genesis block references outside of in-mem mock code (#922)
    • 2dade86f Testnet dns now point to node1 (#918)
    • df5703b1 Avoid duplication in ancestor-checking methods (#920)
    • 84a4a13d Jamescarlyle webapp obscuroscan (#849)
    • 3d212dad Allow l1 start block to be configured to avoid all l1 history (#917)
    • a979dca4 Fix fork block loop and re-merge blockprovider pr (#916)
    • c4c30343 Removes buggy fetchheadrollup method on storage (#914)
    • 780af91a Has-get pattern in the db fix (#912)
    • b695a1a5 Simplifies storage of new heads (#910)
    • ab28a79b Remove headsafterl1block type; some clean-up (#907)
    • d3898965 Eth call, estimategas and getbalance calls now respect the block numb… (#902)
    • 483d5ba2 Revert call error not correctly propagated (#905)
    • 437a53df Reorganises rollupchain methods (#904)
    • f19917f1 Clean up of l1 block submission (#903)
    • 61da560f Unlink production of rollups from submission of l1 blocks (#899)
    • da812862 Clarifies fields in blockstate (#901)
    • 131b5e4c Log error if no peers list yet to send batch request to (#900)
    • 9a5f5812 Separate out genesis response from blocksubmissionresponse (#898)
    • e8e1de09 Clean up submitl1block (#897)
    • 1ca96d95 Allow hosts to catch up on missed batches (#887)
    • ef1ad41d Revert “use block provider as source of l1 blocks in host (#891)” (#895)
    • ab23a792 Adds tests to enclave get balance (#894)
    • 2e59cdbd Use block provider as source of l1 blocks in host (#891)
    • 739b34c1 Reworks confusing error block. (#893)
    • 82528e73 Rollup chain no longer handles encryption and param validation (#892)
    • 75843a00 Fix enclave tests (#890)
    • abe4ac09 Simplify blockprovider process control to use context (#889)
    • 7ce5047a Tweaking the faucet to allow for enclave unit tests (#888)
    • 8ad27bd5 Surface enclave errors. (#886)
    • 80b0fef6 Fixes npe when receipt takes longer than expected time (#881)
    • d23388e4 More enclave db error handling (#883)
    • 41c2e62c Profiler - address gosec warning on new versions of golangci-lint (#884)
    • 6d116689 Make our errnotfound match ethereum’s (#885)
    • 842997c8 Surface errors from accessors_receipts and accessors_metadata (#882)
    • ddc39783 Surface enclave errors. (#880)
    • 9ccd7cde Removes dead linteres to remove noise. (#878)
    • 08e16959 Surface more enclave errors (#877)
    • 4641fd93 Rename to be consistent (#876)
    • 8c993fec More surfacing of enclave db errors (#874)
    • 9e497728 Add file to deploy obscuroscan into dev-testnet (#875)
    • 72fde61d Update faucet.md (#872)
    • 85ce478b Extends integration tests of obscuroscan. switch obscuroscan api to return batches, not rollups. (#873)
    • 325d37fb Tidy up names (#860)
    • 80a77b7e Surface enclave db errors (#866)
    • d28d3b27 Revert “testnet dns now point to node1” (#868)
    • b40a7517 Test obscuroscan’s getlatesttxs in integration tests (#871)
    • 84d42fda Fix dead links in docs (#864)
    • bea17905 Adds integration test of gettotaltxs. (#870)
    • e6598799 Return errors from enclave db, instead of ignoring or using a critical log message (#863)
    • a734947d Custom error is now a pointer (#865)
    • 6bcadc77 Switch over various obscuroscan api methods to be based on batches, not rollups (#857)

November 2022-11-22 (v0.7)

  • A variety of stability related issues are fixed within this release.
  • Inclusion of a health endpoint for system status monitoring.
  • It is now possible to run an Obscuroscan against a locally deployed testnet. For more information see building and running a local testnet in the project readme.
  • Obscuroscan’s GitHub Actions deploy script has been modified to run the public Testnet Obscuroscan as an Azure web app. This allows access via HTTPS (TLS), which allows app developers to call the Obscuroscan API from other web apps.
  • A list of the relevant PRs addressed in this release is as below;
    • 12a04c40 Checks whether the head rollup is nil (#859)
    • 619d39b4 Clarify that blocks are L1 blocks (#858)
    • 01884de0 Removes endpoint to get L1 height from Obs node (#856)
    • 9b975f3d eth_getBlockByNumber and eth_getBlockByHash responds based on the batches, not the rollups (#855)
    • 87588e54 Stores batch at the correct point (#854)
    • f4d37f6e Remove geth EVM trace logger (#853)
    • fcc02555 Distribute and store batches (#850)
    • 243f7ef7 Replace panics with logger.Crit in the enclave (#844)
    • 5f97c1a4 Returns errors from DB methods, instead of found bools and critical log events (#842)
    • 3dd03cdc Uses a write lock instead of a read lock (#847)
    • c039df7d Locks the subscription list in LogEventManager for threadsafety (#846)
    • b1bfed47 Gets number of subs in threadsafe way (#845)
    • 76fde61d Revert “Fix EVM error casting to use pointer variable” (#841)
    • d225a75c Adds methods to host DB for batches (#837)
    • f3d60127 Fix EVM error casting to use pointer variable (#840)
    • 8e21374b Fix issues with submit block errors (#838)
    • ddecd719 Fixes concurrency bug in subscription manager (#839)
    • 12f34d46 Create blockprovider and use it for awaitSecret (#813)
    • 9e524e7f Removes HeaderWithHashes type (#836)
    • 756b7c16 Removes ExtRollup/ExtRollupWithHash split (#835)
    • 17940c7b Fixing node start out of sync (#832)
    • 81b8d9c8 Testnet DNS now point to node1 (#827)
    • de9dbc6f Cleans up the GetLatestTransactions API method (#833)
    • 6932e020 Fixes grabbing a rollup via ObscuroScan (#829)
    • c9e978f0 Adds booleans to DB methods to indicate whether was found. (#831)
    • 849ea7aa Fetch latest Rollup Head now returns error (#826)
    • bc652690 Adding health check endpoint (#825)
    • 8f049ff9 Handle all errors from ethcall and estimate gas (#823)
    • 9107d571 Fixes eth call error propagation (#822)
    • 976d872c Remove unused test APIs. Rename RPC method constants for clarity (#821)
    • 3a6f197f Stop in-mem nodes properly. Prune unused in-mem RPC methods (#820)
    • 84e7c615 Provides logger for Obscuroscan (#819)
    • 088d8f50 Dynamic estimate gas (#815)
    • 4478ffbd Fix the bridge address to pass the checksums (#812)
    • ef0e04d9 Downgrade the spammy log message (#810)
    • 6cb0d85a Have sims test the eth_blockNumber endpoint (#809)
    • d83c201e Confusing description of DB.writeRollupNumber. Minor clean-up (#791)
    • 5faab414 Fix to use the dev build of the contract deployer (#807)

November 2022-11-08 (v0.6)

  • The Number Guessing Game has been removed from static and auto deployment scripts, and is now hosted in a sample applications repository. Given the move for Testnet to be long-running (or at least restartable without contract disappearance), the Guessing Game must be persisted across software updates, and redeployed manually if needed in the same way other applications are.
  • The list of sensitive RPC API methods, where the request and response is encrypted in transit, now covers eth_call, eth_estimateGas, eth_getBalance, eth_getLogs, eth_getTransactionByHash, eth_getTransactionCount, eth_getTransactionReceipt and eth_sendRawTransaction. See the Obscuro documentation for more details.
  • Calls to wait for a transaction receipt are now blocking, whereas previously they would return an error meaning the client side code needed to perform a specific wait and poll loop. The example on how to programmatically deploy a contract has been updated accordingly.
  • The ability to start a faucet server against a local testnet deployment is now supported via a docker container. For more information see the Obscuro readme.
  • Updates to the Events design inclusion of the Fast Finality design.
  • The Obscuro docs site is now searchable.
  • Testnet is now officially termed Evan's Cat.

  • ObscuroScan:
    • ObscuroScan supports a single API at /rollup/ which allows web clients to access a JSON representation of rollups and encrypted transactions. Further details here

October 2022-10-21 (v0.5)

  • Event Subscriptions:
    • Event subscriptions for logs are now supported via the eth_subscribe and eth_getLogs approaches. This has been tested using both the ethers and web3js libraries. Note that eth_newFilter is not currently supported. For more information see the events design.

September 2022-09-22 (v0.4)

  • Wallet extension:
    • The wallet extension now supports separate ports for HTTP and WebSocket connections. Use the --port and --portWS command line options respectively for each. For more information see the Wallet extension documentation.
  • Event subscription:
    • An early preview of event subscriptions is available in this release, though note that this is still undergoing testing and feature enhancements and therefore is liable to issues and instability. For more information on the functionality available reach out to the development team on the discord active testnet developers channel.
  • Transaction receipts:
    • Only return receipts for transactions which were included in a canonical rollup.

September 2022-09-07 (v0.3)

  • Tokens / ERC20 contracts
    • The ERC20 ‘HOC’ and ‘POC’ tokens are now funded with 18 decimal places of precision. Previously funding of 50 tokens was erroneously made as 50 10^-18. This means tokens imported into Metamask will display correctly. Note that the number guessing game pay to play still costs 1 10^-18 HOC tokens.
  • Wallet extension:
    • Viewing keys are now persisted across wallet extension restarts
    • Enhanced logging for registering of viewing keys

August 2022-08-22 (v0.2)

  • Account balances:
    • Added correct calculation of account balances (previously, all accounts were allocated infinite funds).
  • Tokens / ERC20 contracts
    • The two pre-installed ERC20 contracts deployed are now named ‘HOC’ and ‘POC’, replacing the previous tokens of ‘JAM’ and ‘ETH’. Contract addresses remain the same as before respectively. The tokens have restricted balanceOf and allowance calls such that only the owner of the account can view details which should be private to them. See go-obscuro\integration\erc20contract\ObsERC20.sol for more information.
    • Testnet now supports a faucet to distribute native OBX on request. Previously pre-funding of accounts meant that no native tokens were required to execute transactions on Obscuro - this is now not the case and native tokens must be requested. Allocation of native OBX, along with HOC and POC tokens is currently not supported automatically and a request to Obscuro Labs should be made on the Faucet Discord channel.
  • Gas prices:
    • The node operator can configure the minimum gas price their aggregator will accept on startup.
  • Wallet extension
    • The wallet extension now supports multiple viewing keys through a single running instance. For more information see the wallet extension design doc, specifically Handling eth_call requests for how the required viewing key is selected when multiple keys are registered.

August 2022

  • Testnet launch:
    • Testnet preview launched to limited number of application developers.
    • ObscuroScan block explorer for Testnet launched.
    • Number Guessing Game smart contract deployed to Testnet.
  • Obscuro Docsite launched.
  • Account balances:
    • Added correct calculation of account balances (previously, all accounts were allocated infinite funds).
    • Introduced network faucet account.
    • Obscuro enclaves services can configure the minimum gas price they’ll accept
  • block.difficulty will return a true random number generated inside the secure enclave.

Updated: