Emin Mahrt
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
# OUTDATED Developers Page (public draft, work in progress) Welcome Blockchain application Developers, Node-Operators, Miners and Blockchain protocol researchers. This page helps you to get started with aeternity. ## Why aeternity. If you are familiar with basic Blockchain principles and Smart Contracts already, start with learning about aeternity's unique features. The aeternity protocol ships with a rich set of features and functionalities out of the box. A full specification and documentation of the protocol can be found on GitHub https://github.com/aeternity/protocol ### Technical Advantages Compared to Major Platforms: - Confirmation times ~3 Seconds - No scaling limits with built in trust-less off-chain State Channels - Highest security standards with a type safe VM and functional Smart Contract Language - Low-fees on-chain due to a highly optimized Consensus, VM and native transaction types - No-fees off-chain for transactions and Smart Contract executions in State Channels - Private transactions and Smart Contracts in State Channels - Highly flexible Generalized Account model supporting all-types of signing options - Built in Oracles for accessing external API's and real world data - Built in Naming System for human readable names Reference implementation [written in Erlang](https://en.wikipedia.org/wiki/Erlang_(programming_language)) by industry experts, the Language that powers 90% of today's world wide web. ### Universal The aeternity protocol can do everything that you expect from a Smart Contract Blockchain platform like Ethereum or others. It can be used to power **Games, Payments, Identity, Decentralized Finance, Registries, Token-Economy, Logistics and more.** Some of the things are not yet invented that will be built with aeternity. **The future is yours.** ### Secure aeternity is built with security in mind. The reference implementation is written in Erlang, following all standards of high-quality software engineering. Recurring security audits and intensive property based testing are part of the daily work of the protocol developers. In its security aspects on Blockchain, the aeternity protocol gets shipped with a type safe virtual machine called FATE (Fast aeternity Transaction Engine) which was engineered to boost efficiency (gas consumption) and security (type safe). Together with Sophia, a functional smart contract language that supports formal verification, the aeternity protocol provides an uniqe take on Blockchain and smart contract security. A highly paid bug bounty program is availabe for security researchers ### Scalable In order to scale to billions of users and transactions the aeternity protocol provides trustless scaling through off-chain state channels. Without compromising on security state channels allow peer to peer transaction between users and the execution of smart contracts off-chain. This way aeternity has no limits in scaling. The network consensus of the protocol is fast. In average up to 15 times faster with a higher transaction throughput then comparable protocols. The confirmation time is as less as three seconds, which especially comes into account when looking at user experience. ### Efficient low-to-no fees aeternity is equipped with dozens of unique native transactions types for State Channels, Oracles, Names among others. All functionality is optimized to work with minimal gas cost. Additionally, once established, within off-chain State Channels, there are no fees for transactions or smart contract executions. On-chain, with Bitcoin-NG, the consensus mechanism of the protocol allows for more transactions and gas (smart contract executions) per block. This relaxes the fee and gas market and leads to lower cost. Combined with the execution of smart contracts through the highly effient FATE VM, less overall Gas is needed. Additionally with off-chain State Channels, the aeternity protocol reduces the on-chain transaction and smart contract execution volumes massivly, which lowers the fees. ### Interoperable Oracles Oracles are a special type of transactions on aeternity to request and provide data from data providers and APIs. If a smart contract for example is in need of todays weather data, a oracle request transaction including a data schema can be broadcasted on chain. Data providers can respond to data and charge a fee for providing the response. The other way around oracle provides can register on-chain and provide all types of data for free or by charging a fee. This allows smart contract developers to interact and build upon all sorts of APIs and create applications which are dependend on outside data (for example the current price of Bitcoin at a certain time). ### Open Source The protocol and all essential developer resources are fully open source. There is no proprietary license whatsoever. The development is transparent and everyone can start contributing via GitHub, the Forum or physical Meetups. ### Decentralized With Satoshi's heritage in its core (Nakamoto Consensus) the protocol is build to be decentralized. Everyone can host a node and start mining, connect to the network and help to secure the chain or verify transaction. The network is operated by an community of thousands of nodes. It is fully trustless, there is no central authority, no master nodes or kill-switches. With Cuckoo Circle, aeternity has choosen a highly efficient proof-of-work algorithm which is the first graph-theoretic proof-of-work, and the most memory bound, yet with instant verification. ### Public and Private The aetrenity protocol is using the accounts model. All transactions are public by default. Aeternity allows a very flexible and open design of accounts, which is called Generalized Accounts that enable signing transactions with a high flexibility. Cryptographically the protocol uses Blake2b (256 bits digest) and ed25519. It supports Schnorr Signatures. The communication between nodes is encrypted with the noise protocol. Off-chain State Channel transactions and smart contract executions are fully private unless published on-chain for dispute resolution. It is easy to setup a private Blockchain network (example for Enterprise or Public Institions). ### User Friendly A build in Naming System for human readable names allows you to point names to accounts and contracts (Example: ak_XbqHDRYPbuw3eVopLycGLwJY2mJGZfDBinaD1VAo7S4nYhii3 becomes yourname.aet). This makes transacting tokens between peers easiert and can help to make smart contract code more readable and upgradable. ### Governance The aeternity community is governed by miners, users and developers. Through hard-fork signaling node operators can show their support for hard upgrades. All token holders can join a weighted delegated polling mechanism through an mobile and user friendly app with verifiable results on the aeternity Blockchain. Discussions are taking place in chatrooms, online forums, public events and in the aexpansions repository on GitHub. ### Development Sustainability The protocol is rebust and reliable and build to last for aeternity even without maintanance or the development of new features. Nevertheless, the aeternity crypto foundation currently receive around 10.8% of the mining reward to support the long-term development and maintanance of the core protocol and essential resources. There is an open R&D Grant program available at www.aternity-foundation.org aswell as a Development Bounty program for contributors. To enable entrepreneurs and business to launch their own startup, there are programs for entrepreneurs www.aeternityStarfleet.com and a venture fund www.aeternity-Ventures.com to kickstart even more. ## Learn about the aeternity protocol Design and documentation of the core protocol can be found on GitHub in a dedicated repositories - [Protocol Documentation](https://github.com/aeternity/protocol) - [Threat Model and Security Review](https://github.com/aeternity/aetmodel) - [Node API](https://github.com/aeternity/protocol/blob/master/node/api/README.md) and [Swagger API-Documentation](https://api-docs.aeternity.io/) If you are looking for specific keywords, we are suggesting the search functionality of MKDocs [here](https://aeternity.com/documentation-hub/). Please notice that MKDocs is community maintained and might not contain the newest documentation. ## Safe Smart Contract Development with Sophia An Æternity BlockChain Language The Sophia is a language in the ML family. It is strongly typed and has restricted mutable state. Sophia is customized for smart contracts, which can be published to a blockchain (the Æternity BlockChain). Thus some features of conventional languages, such as floating point arithmetic, are not present in Sophia, and some blockchain specific primitives, constructions and types have been added. Links: - [Documentation](https://github.com/aeternity/protocol/blob/master/contracts/sophia.md) - [Examples](https://github.com/aeternity/aepp-sophia-examples) on GitHub - [Code Highlighting](https://forum.aeternity.com/t/sophia-language-visual-studio-code-extension/2588) for VSCode and other IDE's ### Educational material - [Online Course from Dacade.org](https://dacade.org/) check out the highly recommended aeternity 101 course on Dacade, a peer learning platform. Courses are free, a certificate will be given and you earn 100 AE token on completition. - [Tutorials](https://github.com/aeternity/tutorials) about Sophia are available but might be outdated Buttons: [Get help](https://forum.aeternity.com/c/development/sophia-smart-contracts) in the Forum [Chat](https://devchat.aeternity.com) in DevChat [Contribute](https://github.com/aeternity/aeternity/issues) via GitHub ## Getting started. If you are new to aeternity and want to try out the Sophia Smart Contract Language, is is suggested to use one of the community developed online IDE's. They allow you to write contracts, compile them, post them to the chain on testnet and call its functions. **Try it in the browser with one of the IDE's** - [Contracts](https://testnet.contracts.aepps.com/) - [Playground](https://testing.playground.aepps.com/) - [FireEditor](http://fireeditor.nikitafuchs.de/) AEproject is an aeternity framework which helps with setting up a project. The framework makes the development of smart contracts in the aeternity network pretty easy. It provides commands for compilation, deployment of smart contracts, running a local node, local compiler and unit testing the contracts. **Try it locally and setup your development enviroment in no-time.** - [AEproject](https://github.com/aeternity/aepp-aeproject-js/blob/develop/README.md) Buttons: [Get help](https://forum.aeternity.com/c/development/sophia-smart-contracts) in the Forum [Chat](https://devchat.aeternity.com) in DevChat [Contribute](https://github.com/aeternity/aeternity/issues) via GitHub ## Developer Tools Programming libraries are available. Any Javascript developer can build a simple aeternity app in one day. For a quick start and refrence SDK it is recommended to use the JavaScript one. **Node HTTP API** - aeternity [Node API](https://aeternity.com/api-docs/) **SDK Frontend APIs** - [JavaScript](https://github.com/aeternity/aepp-sdk-js/blob/develop/README.md) (recommended) - [Python](https://github.com/aeternity/aepp-sdk-python/blob/develop/README.md) - [Go](https://github.com/aeternity/aepp-sdk-go) - [Java](https://github.com/kryptokrauts/aepp-sdk-java/) (Community Maintained) **Middleware Backend API** The [Middleware](https://github.com/aeternity/aepp-middleware/blob/develop/README.md) is a caching and reporting layer which sits in front of the nodesof the aeternity blockchain. Its purpose is to respond to queries faster than the node can do, and to support queries that for reasons of efficiency the node cannot or will not support itself. **CLI - Command Line Client** o quickly test all of Aeternity's blockchain features from your Terminal, you can Install and use our [NodeJS CLI](https://github.com/aeternity/aepp-cli-js)! Buttons: [Get help](https://forum.aeternity.com/c/aepplications/sdk) in the Forum [Chat](https://devchat.aeternity.com) in DevChat [Contribute](https://github.com/aeternity/aepp-sdk-js/blob/develop/docs/contrib/README.md) via GitHub ## Hosted API Server, Public Nodes and Services For convenience reasons, there are hosted services available to quick start the development of aeternity Blockchain applications on testnet. Even though all services are available for mainnet too, it is not advised to use these services in production. Therefore self-hosting critical infrastructure is recommended. - Testnet API Gateway Nodes hosted on https://sdk-testnet.aepps.com - Testnet Middleware API Server https://testnet.mdw.aepps.com - Sophia Smart Contract Compiler https://compiler.aepps.com/ To get some free AE tokens, use the testnet Token Faucet https://testnet.faucet.aepps.com/ ## Resources - Middleware Explorer (Testnet/Mainnet) - Mainnet https://mdw.aepps.com/ - Testnet https://testnet.mdw.aepps.com/ - Blockchain Explorer (Testnet/Mainnet) - Aeternity Explorer - Testnet https://testnet.explorer.aepps.com/ - Mainnet https://explorer.aepps.com/ - AEknow - https://www.aeknow.org/ - Goggles Transaction Inspector - Mainnet https://goggles.aepps.com/ - Testnet https://testnet.goggles.aepps.com/ ## Interfaces and Clients Two major clients to interact with aeternity Blockchain applications, sign contract calls and do transactions. - Base iOS/Andrios/Web Wallet and Browser - https://github.com/aeternity/aepp-base/blob/develop/README.md - Waellet Browser Extension - https://github.com/aeternity/aepp-waellet/blob/master/README.md A variety of community build wallets are available, such as: - [Airgap Vault and Wallet](https://airgap.it) - [Trust Wallet](https://trustwallet.com) It is possible to buy aeternity tokens on exchanges like Binance, OKex, Huobi, GateIO and many others. A full list of markets can be found via https://coinmarketcap.com/currencies/aeternity/#markets ## Run your own Node and Services. - How to host a [Node](https://docs.aeternity.io/en/latest/installation/) - How to host the Sophia Smart Contract [Compiler](https://github.com/aeternity/aesophia) - How to host a [Middleware](https://github.com/aeternity/aepp-middleware/blob/develop/README.md) API Server ## For Miners, Pools and Node Operators To get the latest version of aeternity node, please check out the latest [published packages](https://github.com/aeternity/aeternity/releases) and the [release notes](https://github.com/aeternity/aeternity/tree/master/docs/release-notes) and - Run a [node](https://github.com/aeternity/aeternity/blob/master/docs/installation.md) - Run a [mining pool](https://github.com/aeternity/aeternity/blob/master/docs/stratum.md) - Choose a [mining clients](https://forum.aeternity.com/c/mining) - Join an existing [mining pool](https://forum.aeternity.com/c/mining) ## Join the Community! - [Public Developers Update Call](https://www.youtube.com/playlist?list=PLZTjth8D1qBfz8giWgAuMwBr88JCQNHp1) - [Forum](https://forum.aeternity.com) - [Devchat](https://devchat.aeternity.com) - [Devlopment Bounties](https://aeternity-foundation.org) - [Devlopment Grants](https://aeternity-foundation.org)

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully