{"id":13835094,"url":"https://github.com/robinmonjo/coincoin","last_synced_at":"2026-01-12T13:16:05.497Z","repository":{"id":146804032,"uuid":"94997320","full_name":"robinmonjo/coincoin","owner":"robinmonjo","description":"Blockchain based cryptocurrency proof-of-concept built with Elixir. Feedback welcome","archived":false,"fork":false,"pushed_at":"2018-02-15T12:32:00.000Z","size":14178,"stargazers_count":404,"open_issues_count":5,"forks_count":54,"subscribers_count":40,"default_branch":"master","last_synced_at":"2024-11-20T20:38:59.031Z","etag":null,"topics":["blockchain","cryptocurrency","elixir","phoenix"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robinmonjo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-06-21T11:34:57.000Z","updated_at":"2024-10-29T13:35:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9bdabee-592c-45a7-b331-626d4eb5ae14","html_url":"https://github.com/robinmonjo/coincoin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robinmonjo/coincoin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinmonjo%2Fcoincoin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinmonjo%2Fcoincoin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinmonjo%2Fcoincoin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinmonjo%2Fcoincoin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robinmonjo","download_url":"https://codeload.github.com/robinmonjo/coincoin/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robinmonjo%2Fcoincoin/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264545158,"owners_count":23625403,"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","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","cryptocurrency","elixir","phoenix"],"created_at":"2024-08-04T14:00:56.639Z","updated_at":"2026-01-12T13:16:05.479Z","avatar_url":"https://github.com/robinmonjo.png","language":"Elixir","funding_links":[],"categories":["Elixir"],"sub_categories":[],"readme":"# coincoin\n\n[![Build Status](https://travis-ci.org/robinmonjo/coincoin.svg?branch=master)](https://travis-ci.org/robinmonjo/blockchain)\n\n\u003cimg align=\"right\" src=\"logo.png\" width=\"128px\"\u003e\n\n`coincoin` is a cryptocurrency proof-of-concept implemented in Elixir. It's an umbrella project that focuses on the 2 main components of (most of) the existing cryptocurrencies: the **blockchain** and **digital transactions**.\n\nIt's goal is to be **as simple as possible** but complete enough to technically understand what's going on behind Bitcoin or Ethereum for example.\n\n## Setup\n\nBlockchains are P2P softwares. To start using `coincoin`, we need to setup multiple nodes and connect them together.\n\nYou need [Elixir](https://elixir-lang.org/install.html) installed. Clone this repository and go to the root of the project.\n\nThen pull the dependencies using `mix deps.get`\n\nTo setup a 3 nodes blockchain, spawn 3 tabs in your terminal (node1, node2 and node3) and run:\n\n- node1: `iex -S mix phx.server` (defaults: `PORT=4000 P2P_PORT=5000`)\n- node2: `PORT=4001 P2P_PORT=5001 iex -S mix phx.server`\n- node3: `PORT=4002 P2P_PORT=5002 iex -S mix phx.server`\n\nThen connect the nodes to create a P2P network:\n\n```elixir\n$node2\u003e Blockchain.connect(\"localhost:5000\") # connect node2 to node1\n\n$node3\u003e Blockchain.connect(\"localhost:5001\") # connect node3 to node2\n```\n\nThis will setup a simple network:\n\n```\nnode1 \u003c--\u003e node2 \u003c--\u003e node3\n```\n\nYou can also use the `robinmonjo/coincoin` docker image available on the [docker hub](https://hub.docker.com/r/robinmonjo/coincoin/):\n\n```bash\ndocker run -it robinmonjo/coincoin\n```\n\nIf you use Docker, in the `Blockchain.connect/1` call make sure to pass your container IP address and that this address is reachable.\n\n**Notes:**\n\n- if you don't want to interact with the REST API, you can skip the `PORT` env var and use `iex -S mix` instead of `iex -S mix phx.server`\n- `Blockchain.connect(5000)` is equivalent to `Blockchain.connect(\"localhost:5000\")`\n- for releases use `make release`\n\n## Usage\n\nWhen started, `coincoin` will start 3 apps:\n\n- [`blockchain`](apps/blockchain/README.md): a minimal blockchain\n- [`token`](apps/token/README.md): a minimal cryptocurrency implemented on top of the blockchain\n- [`blockchain_web`](apps/blockchain_web/README.md): a web interface to manage nodes of the blockchain\n\nTo manipulate the blockchain and store random data in it using the `iex` console checkout the [`blockchain` app](apps/blockchain/README.md). To do the same using a REST API, checkout the [`blockchain_web` app](apps/blockchain_web/README.md). And finally to play with a cryptocurrency and use the blockchain as a distributed ledger, checkout the [`token` app](apps/token/README.md).\n\n## Why coincoin ?\n\nLately I heard a lot about:\n\n1. how Elixir is awesome and is the future of complex system / web development\n2. how blockchain technology will be the next big thing\n\nSo what about building a cryptocurrency proof-of-concept in Elixir ?\n\nAs I'm sure about **1**, I still have some doubts about **2** eventough technologies behind cryptocurrencies are exciting.\n\n\u003e Also \"coin-coin\" in french is the noise of a duck (hence Scrooge McDuck)\n\n## Final words\n\nIssues, suggestions and pull requests are very welcome 😊\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinmonjo%2Fcoincoin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobinmonjo%2Fcoincoin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobinmonjo%2Fcoincoin/lists"}