{"id":21892905,"url":"https://github.com/ahf/peculium_core","last_synced_at":"2025-04-15T15:04:51.570Z","repository":{"id":7207976,"uuid":"8513490","full_name":"ahf/peculium_core","owner":"ahf","description":"Peculium Core Erlang application.","archived":false,"fork":false,"pushed_at":"2013-09-08T15:37:19.000Z","size":1232,"stargazers_count":4,"open_issues_count":8,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-15T15:04:35.427Z","etag":null,"topics":["bitcoin","cryptography","erlang"],"latest_commit_sha":null,"homepage":"","language":"Erlang","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/ahf.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}},"created_at":"2013-03-02T00:55:59.000Z","updated_at":"2024-05-04T21:54:51.000Z","dependencies_parsed_at":"2022-08-24T19:10:12.897Z","dependency_job_id":null,"html_url":"https://github.com/ahf/peculium_core","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahf%2Fpeculium_core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahf%2Fpeculium_core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahf%2Fpeculium_core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahf%2Fpeculium_core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahf","download_url":"https://codeload.github.com/ahf/peculium_core/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249094932,"owners_count":21211837,"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":["bitcoin","cryptography","erlang"],"created_at":"2024-11-28T12:59:53.408Z","updated_at":"2025-04-15T15:04:51.540Z","avatar_url":"https://github.com/ahf.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# Peculium - An Erlang Bitcoin Client #\n\nCopyright (c) 2013 Alexander Færøy\n\n\n__Authors:__ Alexander Færøy ([`ahf@0x90.dk`](mailto:ahf@0x90.dk)).\n\nPeculium is an experimental Bitcoin client implemented in the Erlang programming language.\n\n\n### \u003ca name=\"Warning\"\u003eWarning\u003c/a\u003e ###\n\nPeculium is **beta quality software** and needs proper testing. Do not move your\nentire Bitcoin fortune from your current client to Peculium.\n\nWe will remove this warning once we believe this software is of good enough\nquality to be a replacement for the Satoshi client.\n\n\n### \u003ca name=\"Getting_Started\"\u003eGetting Started\u003c/a\u003e ###\n\nMake sure you have a working Erlang environment running on your machine. If you\nare a Mac OS X user using Homebrew, you can install the Erlang distribution using:\n\n```\n$ brew install erlang\n```\n\nWe are also depending on Basho's Rebar build-utility. You should be able to\nmanually install it using:\n\n```\n$ git clone git://github.com/basho/rebar.git\n$ cd rebar\n$ make\n```\n\nThen copy the rebar executable into somewhere in your UNIX path.\n\nYou should now be able to download Peculium and build it using:\n\n```\n$ git clone git://github.com/ahf/peculium.git\n$ cd peculium\n```\n\nDownload our dependencies:\n\n```\n$ make get-deps\n```\n\nCompile our dependencies and Peculium itself:\n\n```\n$ make build-deps\n```\n\nFrom now on, you can (re)build Peculium using:\n\n```\n$ make\n```\n\nTo start Peculium and attach an Erlang shell:\n\n```\n$ make console\n```\n\n\n### \u003ca name=\"Testing\"\u003eTesting\u003c/a\u003e ###\n\nPeculium uses `EUnit` and `triq` for unit and property-based testing. To run\nthe test suites use:\n\n```\n$ make test\n```\n\n\n### \u003ca name=\"Documentation\"\u003eDocumentation\u003c/a\u003e ###\n\nEvery function in the Peculium source code must have a type-specification and a\ndocumentation entry. Peculium uses `edoc` for documentation and generates\nGithub friendly markdown based on the output. To generate the documentation\nuse:\n\n```\n$ make doc\n```\n\n\n### \u003ca name=\"Community\"\u003eCommunity\u003c/a\u003e ###\n\nAll Peculium hackers and users are welcome to join `#peculium` on the Freenode\nIRC network.\n\n\n### \u003ca name=\"Contributors\"\u003eContributors\u003c/a\u003e ###\n\nAnyone who has contributed to Peculium should add themselves here. No change is\ntoo little to be put on this list.\n\n- [Alexander Færøy](https://github.com/ahf).\n- [Jesper Louis Andersen](https://github.com/jlouis).\n\n\n### \u003ca name=\"Quirks\"\u003eQuirks\u003c/a\u003e ###\n\nThis secion will keep you updated on various quirks that you should take into\naccount when using Peculium.\n\n\n#### \u003ca name=\"Use_NTP\"\u003eUse NTP\u003c/a\u003e ####\n\nLike a lot of other software out there, the Bitcoin system heavily depends upon\nhaving access to a correct time source. The Satoshi client tries to use the\nBitcoin network to calculate an adjusted time whereas Peculium don't. Peculium\nrequires that you keep your clock synchronized.\n\nIf you do not keep your clock in sync strange things might happen. For\ninstance, Peculium might start thinking that certain perfectly valid blocks are\ninvalid because of this.\n\n\n## Modules ##\n\n\n\u003ctable width=\"100%\" border=\"0\" summary=\"list of modules\"\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core.md\" class=\"module\"\u003epeculium_core\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_app.md\" class=\"module\"\u003epeculium_core_app\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_base58.md\" class=\"module\"\u003epeculium_core_base58\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_block.md\" class=\"module\"\u003epeculium_core_block\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_block_header.md\" class=\"module\"\u003epeculium_core_block_header\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_block_index.md\" class=\"module\"\u003epeculium_core_block_index\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_block_index_entry.md\" class=\"module\"\u003epeculium_core_block_index_entry\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_block_locator.md\" class=\"module\"\u003epeculium_core_block_locator\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_block_store.md\" class=\"module\"\u003epeculium_core_block_store\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_config.md\" class=\"module\"\u003epeculium_core_config\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_crypto.md\" class=\"module\"\u003epeculium_core_crypto\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_difficulty.md\" class=\"module\"\u003epeculium_core_difficulty\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_inv.md\" class=\"module\"\u003epeculium_core_inv\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_leveldb.md\" class=\"module\"\u003epeculium_core_leveldb\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_merkle_tree.md\" class=\"module\"\u003epeculium_core_merkle_tree\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_messages.md\" class=\"module\"\u003epeculium_core_messages\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_mnesia.md\" class=\"module\"\u003epeculium_core_mnesia\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_network.md\" class=\"module\"\u003epeculium_core_network\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_network_address.md\" class=\"module\"\u003epeculium_core_network_address\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_peer.md\" class=\"module\"\u003epeculium_core_peer\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_peer_manager.md\" class=\"module\"\u003epeculium_core_peer_manager\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_peer_nonce_manager.md\" class=\"module\"\u003epeculium_core_peer_nonce_manager\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_peer_pool.md\" class=\"module\"\u003epeculium_core_peer_pool\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_peer_sup.md\" class=\"module\"\u003epeculium_core_peer_sup\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_protocol.md\" class=\"module\"\u003epeculium_core_protocol\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_protocol_types.md\" class=\"module\"\u003epeculium_core_protocol_types\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_protocol_utilities.md\" class=\"module\"\u003epeculium_core_protocol_utilities\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_script.md\" class=\"module\"\u003epeculium_core_script\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_sup.md\" class=\"module\"\u003epeculium_core_sup\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_transaction.md\" class=\"module\"\u003epeculium_core_transaction\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_transaction_input.md\" class=\"module\"\u003epeculium_core_transaction_input\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_transaction_outpoint.md\" class=\"module\"\u003epeculium_core_transaction_outpoint\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_transaction_output.md\" class=\"module\"\u003epeculium_core_transaction_output\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_triq.md\" class=\"module\"\u003epeculium_core_triq\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_types.md\" class=\"module\"\u003epeculium_core_types\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_units.md\" class=\"module\"\u003epeculium_core_units\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_utilities.md\" class=\"module\"\u003epeculium_core_utilities\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003e\u003ca href=\"https://github.com/ahf/peculium_core/blob/master/doc/peculium_core_version.md\" class=\"module\"\u003epeculium_core_version\u003c/a\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahf%2Fpeculium_core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahf%2Fpeculium_core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahf%2Fpeculium_core/lists"}