{"id":24196570,"url":"https://github.com/dedis/columbus-united","last_synced_at":"2025-07-25T08:04:12.144Z","repository":{"id":38313541,"uuid":"257325166","full_name":"dedis/columbus-united","owner":"dedis","description":"📦➿📦➿📦 Intuitive and insightful blockchain explorer 🔎","archived":false,"fork":false,"pushed_at":"2023-03-04T13:28:22.000Z","size":7836,"stargazers_count":18,"open_issues_count":18,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-04T09:36:15.474Z","etag":null,"topics":["blockchain","blockchain-explorer","typescript"],"latest_commit_sha":null,"homepage":"https://status.dedis.ch/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dedis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-20T15:32:41.000Z","updated_at":"2025-03-19T09:15:52.000Z","dependencies_parsed_at":"2025-01-13T19:36:05.175Z","dependency_job_id":"257d4c66-f7f4-4c88-83ab-dfeeb06b0fd4","html_url":"https://github.com/dedis/columbus-united","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/dedis/columbus-united","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fcolumbus-united","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fcolumbus-united/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fcolumbus-united/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fcolumbus-united/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dedis","download_url":"https://codeload.github.com/dedis/columbus-united/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dedis%2Fcolumbus-united/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266977743,"owners_count":24015478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","blockchain-explorer","typescript"],"created_at":"2025-01-13T19:35:55.380Z","updated_at":"2025-07-25T08:04:12.054Z","avatar_url":"https://github.com/dedis.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# columbus-united\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"assets/logo-color-small.png\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/dedis/columbus-united/actions?query=workflow%3A%22Wookiee+deployment%22\"\u003e\n    \u003cimg src=\"https://github.com/dedis/columbus-united/workflows/Wookiee%20deployment/badge.svg?branch=production\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/dedis/columbus-united/actions?query=workflow%3A%22Wookiee+DEV+deployment%22\"\u003e\n    \u003cimg src=\"https://github.com/dedis/columbus-united/workflows/Wookiee%20DEV%20deployment/badge.svg\"\u003e\n  \u003c/a\u003e\n  \u003cbr/\u003e\n  \u003ca href=\"https://github.com/dedis/columbus-united/actions?query=workflow%3APrettier\"\u003e\n    \u003cimg src=\"https://github.com/dedis/columbus-united/workflows/Prettier/badge.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/dedis/columbus-united/actions?query=workflow%3A%22Quality+checking\"\u003e\n    \u003cimg src=\"https://github.com/dedis/columbus-united/workflows/Quality%20checking/badge.svg\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\nImplementation of an intuitive and insightful blockchain explorer. The Columbus\nproject is a project aiming to facilitate the visualization of the\n[Byzcoin](https://github.com/dedis/cothority/tree/master/byzcoin) blockchain by\nproviding a unified and interactive visualization tool.\n\nThis tool is a web based application written in typescript, bundled with\nwebpack, and using the d3 and rxjs librairies.\n\n👌 **Quick TL;DR setup**:\n\n1) Rename `src/roster.ts.template` to `src/roster.ts`\n2) Install dependencies with `npm install`\n3) Bundle the app with `npm run bundle`\n4) You are ready to go, open `index.html`\n\n[Play with it](https://wookiee.ch/columbus/)\n\n# Features\n\n## \"Browsable\" chain\n\nBrowse the chain with your mouse with drag and zoom. Blocks will naturally load.\nActions are also accessible through buttons.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"docs/assets/feature1.gif\"\u003e\n\u003c/div\u003e\n\n## Explore block\n\nClick on blocks to check their content. Many element display additional hints.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"docs/assets/feature2.gif\"\u003e\n\u003c/div\u003e\n\n## Follow evolution of an instance\n\nCheck the evolution of a smart contract instance. You can get blocks and\ninstruction related to a particular instance.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"docs/assets/feature3.gif\"\u003e\n\u003c/div\u003e\n\n## Perform search\n\nUse the top search bar to retrieve a particular block. You can select among many\ndifferent search attribute.\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"docs/assets/feature4.gif\"\u003e\n\u003c/div\u003e\n\n## ... and many more\n\nAdditional features include:\n\n- Block export to json\n- Tutorial to introduce functionalities to new users\n- Upload of a custom roster\n- Statistics and status about the chain\n- Ability to follow block links\n\n# Stack\n\n- Typescript, as the frontend language\n- NPM, as the package manager\n- Webpack, as the bundler\n- d3, as the visualization library\n- RxJS, as the reactive programming library\n- UIkit, as the CSS framework\n\n# Setup (ubuntu)\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee details\u003c/summary\u003e\n\nInstall nodejs and npm:\n\n```bash\nsudo apt-get install nodejs\nsudo apt-get install npm\n```\n\nRename `src/roster.ts.template` to `src/roster.ts`. By default it uses the DEDIS\nroster.\n\nOtherwise, follow instructions in the next section to run a local conode and get\na local roster configuration.\n\nFinally, install dependencies with `npm install`.  \n\nYou are ready to use the app: bundle it with `npm run bundle` and open\n`index.html`.\n\n## If you need to run a local blockchain\n\nIf you are developing on Columbus you will need to use a local blockchain in\norder to avoid over-loading a node running the production blockchain.\n\nDownload and extract the latest binaries from\nhttps://github.com/c4dt/byzcoin/releases. Choose the folder corresponding to\nyour environment (only Mac and Linux is supported) and run the `byzcoin` binary\nin \"proxy\" mode. You need to provide an existing database. You can download a\ncached database reflecting the production data at\n[https://demo.c4dt.org/omniledger/cached.db](https://demo.c4dt.org/omniledger/cached.db).\n\nThen, run the node in \"proxy\" mode with :\n\n```\n./byzcoin proxy \u003cMY_DATABASE.db\u003e\n```\n\nThat's it ! This will run a node listening on 127.0.0.1:7771.\n\nYou can stop it with \u003ckbd\u003ectrl\u003c/kbd\u003e + \u003ckbd\u003eC\u003c/kbd\u003e.\n\nThere are additional options that you can spot with `./byzcoin proxy -h`.\n\nYou can then use the following roster in your `roster.ts`:\n\n```\n[[servers]]\n  Url = \"http://127.0.0.1:7771\"\n  Suite = \"Ed25519\"\n  Public = \"0000000000000000000000000000000000000000000000000000000000000000\"\n```\n\n\u003c/details\u003e\n\n# Some useful commands\n\nBundle the project (from the root): `npm run bundle`  \nWatch for source code changes and automatically bundle: `npm run watch`  \nCheck TypeScript code formatting: `npm run lint`  \nCheck if the code is well formatted: `npm run isPretty`  \nFormat the code: `npm run makePretty`  \n\n# Recommendations for Visual Studio Code\n\n\u003cdetails\u003e\n  \u003csummary\u003eSee details\u003c/summary\u003e\n\n## Settings\n\nAdd vertical lines at columns 80 and 100: `editor.rulers` -\u003e `Edit in settings.json` -\u003e `\"editor.rulers\": [80,100]`  \n\n## Extensions\n\n### Live Server\n\nPurpose: Automatically refresh the html upon compile  \nInstall: `ritwickdey.liveserver`  \nUse:\n\n* Right click on `index.html`\n* `Open with Live Server`\n\n### Prettier - Code formatter\n\nPurpose: Automatically format the code  \nInstall: `esbenp.prettier-vscode`  \nSetup: setting `editor.defaultFormatter` -\u003e select `esbenp.prettier-vscode`  \nUse:\n\n* Open Command Palette (`Ctrl+Shift+P`)\n* `Format Document`\n\n### TypeScript Hero\n\nPurpose: Automatically organize TypeScript imports  \nInstall: `rbbit.typescript-hero`  \nUse:\n\n* Open Command Palette (`Ctrl+Shift+P`)\n* `TS Hero: Organize imports`\n\n### Rewrap\n\nPurpose: Automatically reformat comments to a given line length (default is 80)  \nInstall: `stkb.rewrap`  \nUse:\n\n* Open Command Palette (`Ctrl+Shift+P`)\n* `Rewrap Comment / Text`\n\n### Comment Anchor\nPurpose: Place anchor tags within comments for easy file \u0026 workspace navigation.\nInstall: `ext install ExodiusStudios.comment-anchors`\nUse:\n\n* Use \\\\\\\\ANCHOR and \\\\\\\\SECTION to delimitate code regions\n* Use \\\\\\\\TODO, \\\\\\\\FIXME to mark specific areas\n* Read the documentation for more features\n\n\u003c/details\u003e\n\n# Production deployment\n\nA change on the `production` branch automatically triggers a deployment on\n[https://status.dedis.ch](https://status.dedis.ch).\n\nThe production branch must only be used that way:\n\n```bash\n# Trigger a deployment:\ngit push origin master:production\n```\n\n# Dev deployment\n\nA change on the `deploy-dev` branch automatically triggers a deployment on\n[https://wookiee.ch/columbus-dev](https://wookiee.ch/columbus-dev).\n\nThe `deploy-dev` branch must only be used that way:\n\n```bash\n# Trigger a deployment:\ngit push origin \u003csource branch\u003e:deploy-dev\n```\n\n# Documentation\n\nGenerate the documentation: `npm run doc`\n\n# Design Guidelines\nCan be found in the most recent report  \n\n# Contributors\n\nSupervision and integration\n\n- Noémien Kocher\n\nStudent project Spring 2020:\n\n- Anthony Iozzia ([report](https://www.epfl.ch/labs/dedis/wp-content/uploads/2020/06/report-2020-1-Anthony-Iozzia-Columbus-II.pdf))\n- Julien von Felten ([report](https://www.epfl.ch/labs/dedis/wp-content/uploads/2020/06/report-2020-1-Julien-von-Felten-Columbus-I.pdf))\n\nStudent project Fall 2020:\n\n- Sophia Artioli \n- Lucas Trognon\n\n[Common report](https://www.epfl.ch/labs/dedis/wp-content/uploads/2021/01/report-2020-3-Columbus-Sophia-Artiolis-Lucas-Trognon-Columbus-III.pdf)\n\nStudent project Spring 2021:\n\n- Rosa Jose Sara\n- Pilar Marxer\n\n[Common report](https://www.epfl.ch/labs/dedis/wp-content/uploads/2021/07/report-2021-1-Pilar-Rosa_Columbus_IV.pdf)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdedis%2Fcolumbus-united","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdedis%2Fcolumbus-united","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdedis%2Fcolumbus-united/lists"}