Giter Site home page Giter Site logo

cardano-foundation / developer-portal Goto Github PK

View Code? Open in Web Editor NEW
374.0 35.0 895.0 224.33 MB

The Cardano Developer Portal

Home Page: https://developers.cardano.org

License: MIT License

JavaScript 71.80% CSS 9.17% TypeScript 19.03%
cardano cardano-community developers

developer-portal's Introduction

Netlify Status

Cardano Developer Portal

We wanted to build a developer portal as open and inclusive as Cardano. A portal that is in the hands of the Cardano community and can be constantly evolved by it.

For this to be successful, the portal relies on your contributions, and the fact that you are reading this text probably means that you have something to contribute, even if you are not a Developer.

Please find a detailed installation guide on developers.cardano.org/docs/portal-contribute/.

Requirements:

Node.js version >= 16.14 Yarn version >= 1.5
On macOS you also need Xcode and Command Line Tools.

Clone the repo

git clone https://github.com/cardano-foundation/developer-portal.git

Navigate into the folder

cd developer-portal

Install all dependencies

yarn install

Production build

Create at least once a production build (as this pulls missing files)

yarn build

Local development

yarn start

This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server.

Project structure

Please find the project structure and more detailed information on developers.cardano.org/docs/portal-contribute/.

developer-portal's People

Contributors

alessandrokonrad avatar cislakk avatar d3vjohn avatar dependabot[bot] avatar dynamicstrategies avatar fill-the-fill avatar gufmar avatar jinglescode avatar katomm avatar ktorz avatar matiwinnetou avatar mercurial avatar mmahut avatar morucci avatar nazeim avatar nielstron avatar nothingalike avatar olgahryniuk avatar olofblomqvist avatar os11k avatar rcmorano avatar rdlrt avatar rphair avatar sanskys avatar thenic95 avatar turboegon avatar tweakch avatar ubinatus avatar weqanhet avatar wolf31o2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

developer-portal's Issues

nodejs and yarn version

Hi all,
thank you for inviting me to participate here. In following the readme.md I have encountered issues with both nodejs and yarn versions (minimum 12.13 and 1.5, respectively). I am running this in ubuntu 20.04 and I am able to get nodejs 10.19.0 and yarn 1.22.5.

This in turn results in the following error when running yarn install:
yarn install v1.22.5 [1/4] Resolving packages... [2/4] Fetching packages... info [email protected]: The platform "linux" is incompatible with this module. info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation. info [email protected]: The platform "linux" is incompatible with this module. info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation. error @docusaurus/[email protected]: The engine "node" is incompatible with this module. Expected version ">=12.13.0". Got "10.19.0" error Found incompatible module. info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

The yarn start and yarn build commands therefore both result in a "docusaurus: not found" error.

Any suggestions?

Regards,

Stef

Missing ADA's in transfer !

Hi all,

I have transferred 500+ ADA from my Nami wallet to my Binance account, it has been 7 hours already and the funds haven't shown up, even though the transaction went through normally and the ADA's left the wallet immediately.

Please help!

Requirement to sort the builder tool array

We should get rid of the requirement to sort the builder tools array alphabetically when adding entries. Just adding at the end is fine as it is sorted automatically these days.

Remove "Legacy key" part from Handbook

I propose to remove "Legacy key" part from Operate a Stake Pool - Handbook. Do we still need it there?

I found that on 3 pages. 2 of them are in Handbook, so I'm pretty sure nobody needs legacy keys at least for creating a pool. No? If this is ok, I will create PR.

CIP-0020 choice of format/structure - suggestion

I have a suggestion for what, in my view, would be an improvement to the current proposed structure of the 674 message.

I couldn't find any discussion platform for this topic so I felt like creating an issue was the only way I could bring this to people's attention.

{ 
  "674":
          { "Invoice-No": "1234567890",
            "Customer-No": "555-1234",
            "Comments": ["P.S.: i will shop again at your store :-)"
                                , "Shopping experience was excellent"]
         }
}

In my opinion, storing key/value pairs inside a string, inside an array, inside a JSON metadata structure is not a smart approach. JSON is already a key value data format. Storing key/value data in this way will introduce the need to have to implement a custom parser, whilst preserving a JSON structure gives easy access to these values directly.

Metadata is expected to be provided as JSON. It is even stored in a column called json in the tx_metadata table in the db-sync database.

Existing tools/wallets already display 721 data in a structured way, by iterating over the key/value pairs,and showing them as labels and values respectively.

The current 674 proposal will introduce the need to handle 674 metadata in a different, inconsistent way.

I also believe that the "msg" key is redundant and offers no extra benefit. The 674 key is already enough to identify the metadata type.

The 674 content structure will be determined by the creator of the transaction/tool and will therefore not follow any particular common standard. Having reserved keys such as "version" etc could be left entirely at the discretion of the transaction creator.

I therefore do not see the added value of having a reserved top-level for keys such as msg, ver, etc...

listening-for-payments-cli doesn't explain how to distinguish customers

@katomm I read your https://developers.cardano.org/docs/integrate-cardano/listening-for-payments-cli but there is major issue in that flow - you can't distinguish between individual customers in that model, you can only track what is current balance of that one address. This would work if you only ever had 1 customer.

How would the proper flow look? Each customer has dedicated address? If yes, then how would you generate a secondary address for the same wallet? And how would you send ADA out of it using cardano-cli? I was experimenting with that but ultimately failed every time - https://forum.cardano.org/t/how-to-properly-sign-transaction-from-non-base-address/74462

It would be of great help if that page could be expanded to cover a fully functional model instead of this trivial example that assumes only 1 customer ever. Thanks!

Use consistent paths in code samples (accross all guides)

It would make sense to agree on a consistent environment across guides

From what I've seen so far, it's pretty consistent but not everywhere... I find that I have to switch directory structure between different guides and my files started ending up everywhere...

I would suggest the following setup

/home/user/cardano
|_ /keys # from cardano-cli guides
|_ /wallets # from cardano-wallet guides
|_ /db
|_ /integrate-cardano-samples
  |_ /id-of-guide-1
    |_ draft.tx
    |_ draft.signed
  |_ /id-of-guide-2
  |_ ...
|_ /build-tx-metadata-samples
  |_ /id-of-guide-1
  |_ /id-of-guide-2
  |_ ...

This setup would allow all guides to first ask the user to check that he is in the correct directory (and let him cd into it)

$ pwd
/home/user/cardano/integrate-cardano-samples

and then for cardano-cli commands "reach up" for .skeys or protocol.json

$ cardano-cli query utxo \
--testnet-magic 1097911063 \
--address $(cat ../keys/payment1.addr)
cardano-cli transaction sign \
--tx-body-file tx.draft \
--signing-key-file ../keys/payment1.skey \
--testnet-magic 1097911063 \
--out-file tx.signed

SPO Sidebar navigation

I am updating the SPO part and will do it in several small steps. The first topic is:

  • to reorganize the Stake Pool section and integrate the content in the handbook into the course. The new sections could be
  1. Introduction
  2. Pre-requisites
  3. Installing & Configuring Cardano Nodes
  4. Registering a Pool
  5. Pool Maintenance
  6. Tools and Links

SPO Sidebar

Update build instructions for node 1.35.0

Details here, at the very minimum :

  • Update system requirements
  • include lib256k1 build instructions
  • Add notes about Op Cert counter increment being 1 (as compared to last block on chain from same pool, 0 otherwise)
  • CLI Updates (Formatting, kes-period-info, leaderlogs, ...)

remove obsolete `--mary-era` option in faucet article

Following the guide at Explore Cardano Wallet I get the following error when querying wallets for UTxOs

cardano-cli query utxo --mary-era --testnet-magic 1097911063 --address $(cat ~/cardano/keys/payment1.addr)
Invalid option `--mary-era'
Usage: cardano-cli query utxo [--shelley-mode | --byron-mode 
                                [--epoch-slots NATURAL] |
                                --cardano-mode [--epoch-slots NATURAL]] 
                              (--whole-utxo | (--address ADDRESS) | 
                                (--tx-in TX-IN)) 
                              (--mainnet | --testnet-magic NATURAL) 
                              [--out-file FILE]
  Get a portion of the current UTxO: by tx in, by address or the whole.

Works fine without the --mary-era option.

Add structure to `Integrate Cardano`

Improve Structure for "Integrating Cardano" section

The structure of Integrate Cardano should be improved. Below ere are the issues I found. I aggregate them all here as to not spam the Issues Tab with my own issues. You can create new issues and assign them to me if you like, I'll do them whenever I have some time to spare.

I am not sure how much thought went into this section and I apologize if I miss the advantages of the current structure

Sub issues

No content in Overview

IMHO the integrate-cardano/Overview.md needs to talk about what this section is about.

  • It should inform the reader about the necessary articles that he should read before continuing.
  • It should introduce and motivate the guides it contains.
  • It should briefly talk about the term integration and explain how the guides try to help achieve integration.
  • It should mention that the guides provide low-level solutions in different languages. Readers should be encouraged to submit an issue for "missing" languages.
  • It should introduce the components covered in the guides (cardano-node, cardano-cli and cardano-wallet) and present the structure of the following guides.

Inconsistent Headings

  • fix header levels

The used headings in the articles creating-wallet-faucet.md, listening-for-payments-cli.md and listening-for-payments-wallet.md begin on level 3 instead of level 2 breaking md001

Current

├╌┬ integrate-cardano/
┆ ├╌╌╌ overview.md (slug: integrate-cardano)
  ├╌┬╌ creating-wallet-faucet.md (title: Exploring Cardano Wallets)
  │ ├╌ ### Overview 
  │ ├╌ ### Cardano Wallets
  │ ┆
  ┆
  ├╌┬╌ listening-for-payments-cli.md
  │ ├╌ ### Overview 
  │ ├╌ ### Use case 
  │ ┆
  ┆
  └╌┬╌ listening-for-payments-wallet.md
    ├╌ ### Overview 
    ├╌ ### Use case 

Proposed

├╌┬ integrate-cardano/
┆ ├╌╌╌ overview.md (slug: integrate-cardano)
  ├╌┬╌ creating-wallet-faucet.md (title: Exploring Cardano Wallets)
  │ ├╌ ## Overview 
  │ ├╌ ## Cardano Wallets
  │ ┆
  ┆
  ├╌┬╌ listening-for-payments-cli.md
  │ ├╌ ## Overview 
  │ ├╌ ## Use case 
  │ ┆
  ┆
  └╌┬╌ listening-for-payments-wallet.md
    ├╌ ## Overview 
    ├╌ ## Use case 

The above structure will also improve the side-bar in the guide to contain subchapters and allow to jump to topics like creating a wallet with cardano-cli.

  • Dont use Emphasis as Headings

Throughout the article (f.e. in ### Create simple transaction paragraphs) we use Emphasis (**Generate recovery phrase**) instead of Heading (#### Generate recovery phrase) breaking md036

Long articles

creating-wallet-faucet.md is a very long article and talks about the following topics:

  • Overview
  • Carano wallets
  • Creating a wallet
    • Creating a wallet with cardano-cli
      • Querying the wallet UTXO with cardano-cli
      • Creating simple transaction
        • generate payment key-pair for wallet 1
        • generate wallet address for wallet 1
        • query UTxOs for wallet 1
        • requesting funds from Testnet Faucet
        • generate payment key-pair for wallet 2
        • generate wallet address for wallet 2
        • query wallet UTxOs for wallet 2
        • query protocol parameters
        • Create draft transaction
        • Calculate min fee
        • Create draft transaction
        • Sign transaction
        • Submit transaction
    • Creating a wallet with cardano-wallet
      • Starting cardano-wallet as a REST API Server
      • Checking wallet server information
      • Creating the wallet via API
      • Receiving tADA (Test ADA)
      • Creating simple transaction
        • generate recovery phrase
        • recovery phrase result
        • create wallet request
        • create wallet result

The following subissues could help improve readability.

  • move Creating simple transaction one layer up and rename to Creating simple transaction with cardano-cli and Creating simple transaction with cardano-wallet respectively
  • Split fauctet article into multiple guides / use cases (like "Creating a wallet", "Receiving tADA", "Building a transaction", "Receiving payments").

Testnet Faucet Limit

If one works through the entire article he will first submit 1000 ada to the wallet he created using cardano-cli. Then (20 minutes later) he will create a new wallet using cardano-wallet and again request 1000 ada from the faucet which has a payout limit for 1000 ada / day.

  • mention this limit explicitly to make the reader aware of the consequences if he works throught the entire article.
  • reduce the guide's requested Ada to 500 ada for both paths (cardano-cli and cardano-wallet).
  • insert / create a new guide that submits a multi-wittness transactions to transmit funds from wallet 1 and 2 to wallet 3.

Oddball solution

We have the focus on two components: cardano-cli and cardano-wallet. We try to give the reader an idea on how to integrate them.

We use two approaches to present this information to him. theme-based approach and component-based approach

  • Adopt Theme-based structure (as in creating-wallet-faucet.md)
  • Adopt Component-based structure (as in listening-for-payments-cli.md and listening-for-payments-wallet.md)

I think I like Component-based more because the articles are shorter, but I really don't know what is better.

Don't repeat yourself

The guides contain some repetition. Sometimes this is unavoidable when talking about two components who do very similar things. The improvements should help avoid the unneccesary repetitions.

  • reduce repetition by improving structure

As an example, we have this paragraph from the cardano-wallet-faucet.md

As mentioned before, in this guide we will only be focusing on the cardano-cli and cardano-wallet since they provide some level of programmability which is important when we are talking about Cardano integrations for different kinds of use-cases.

This could be moved to the overview.md and not be talked about anymore. By removing this paragraph we could move all headings one layer up which would improve the structure of document further.

Typos

Improve current structure (draft)

Until we settle on the approach of the guide (theme-based or component-based or both or leave it as is) I'll leave this here as a draft and "mind map"

### Current structure
┆
├╌┬ integrate-cardano/
┆ ├╌╌╌ overview.md (slug: integrate-cardano)
  ├╌┬╌ creating-wallet-faucet.md (title: Exploring Cardano Wallets)
  │ ├╌ ### Overview 
  │ ├╌ ### Cardano Wallets
  │ ├╌ ### Creating a wallet
  │ └┬╌ #### Creating a wallet with `cardano-cli`
  │  ├╌ #### Querying the wallet UTxO with `cardano-cli`
  │  ├╌ #### Creating simple transactions
  │  ├╌ #### Querying the wallet UTxO with `cardano-wallet`
  │  └╌ #### Creating simple transactions
  ├╌┬╌ listening-for-payments-cli.md
  │ ├╌ ### Overview 
  │ ├╌ ### Use case 
  │ ├╌ ### Technical flow
  │ ├╌ ### Time to code!
  │ ├╌ ### Running and Testing
  │ └╌ ### Complete the payment
  └╌┬╌ listening-for-payments-wallet.md
    ├╌ ### Overview 
    ├╌ ### Use case 
    ├╌ ### Technical flow
    ├╌ ### Time to code!
    ├╌ ### Running and Testing
    └╌ ### Complete the payment


### Theme Baseed Structure (Proposed)
┆
├╌┬ integrate-cardano/
┆ ├╌╌ overview.md (slug: integrate-cardano)
  ├╌┬╌ creating-wallet-faucet.md (slug: )
  │ ├ ## Overview 
  │ ├ ## Cardano Wallets
  │ ├ ## Creating a wallet
  │ ├┬╌ ### Create wallet with `cardano-cli`
  │ ├┬╌ ### Create wallet with `cardano-wallet`  
  │  └╌ Cardano Wallets
  ├╌
  └╌ 


### Component-Baseed Structure (Proposed)
┆
├╌┬ integrate-cardano/
┆ ├╌╌ overview.md (slug: integrate-cardano)
  ├╌┬╌ creating-wallet-faucet.md (slug: )
  │ ├ ## Overview 
  │ ├ ## Cardano Wallets
  │ ├ ## Create wallet with `cardano-cli`
  │ ├╌┬╌ ### Create wallet with `cardano-cli`
  │ ├╌┬╌ ### Create wallet with `cardano-wallet`  
  │ │ └╌ Cardano Wallets
  │ ├ ## Create wallet with `cardano-cli`
  │ ├╌┬╌ ### Create wallet with `cardano-cli`
  │ ├╌┬╌ ### Create wallet with `cardano-wallet`  
  │   └╌ Cardano Wallets
  ├╌
  └╌ 

SPO course, security review needed

The content currently in the stake pool course needs a security review on best practices when it comes to key-related things.

We should not write content like "in the testnet, you can do it like this" - no, stake pool operators should learn how to do things the right away from the beginning.

Please also see this related issue: #43

Non Github accounts

Hello everybody!

We're a family owned company called Bakrypt.io that is building technology on top of the Cardano Blockchain. We offer minting services, IPFS and cloud storage for anybody who wants to create native tokens or collections up to 300 assets per request on the Cardano blockchain. We have a mainnet and testnet environment. We also offer white label services for resellers who would like to integrate these services into their website.

What are the steps required to include our project within the developer portal? I'm attaching links for referral.

Bakrypt.io

Testnet.bakrypt.io

Bakrypt API Reference

Bakrypt Pool | BAK

Cardano Essentials | Developer Ecosystem

Cheers!

Stripping Videos from Stakepool Course

Just a backlog issue, to see if it is beneficial to have SPO Videos in SPO school (as against commands), due to the nature and the videos being quickly out-of-date with current releases - as well as inability to maintain it outside of controller of the videos.

yarn build Fails on First Run

yarn build command fails when running for the first time after the repo is freshly cloned.

OS: Ubuntu 22.04 LTS
Node Version: v18.1.0
Yarn Version: 1.22.18

Output:

$ ts-node scripts/cip.ts && ts-node scripts/token-registry.ts && ts-node scripts/rust-library.ts && docusaurus build
CIP Content Downloading...
(node:49197) [DEP0147] DeprecationWarning: In future versions of Node.js, fs.rmdir(path, { recursive: true }) will be removed. Use fs.rm(path, { recursive: true }) instead
(Use node --trace-deprecation ... to show where the warning was created)
Error: ENOENT: no such file or directory, stat './docs/governance/cardano-improvement-proposals'
at Object.statSync (node:fs:1559:3)
at _node_internal (node:internal/fs/utils:799:8)
at Object.rmdirSync (node:fs:1177:15)
at main ([SOURCE FOLDER]/developer-portal/scripts/cip.ts:145:8)
at processTicksAndRejections (node:internal/process/task_queues:95:5) {
errno: -2,
syscall: 'stat',
code: 'ENOENT',
path: './docs/governance/cardano-improvement-proposals'
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

This appears to be caused by the fs.rmdir(...) call failing because the directory does not exist yet.

Cardano Key Pairs description missing

In the cardano-key-pairs doc, in the description for the payment.skey and stake.skey, there is something missing in the sentence: "key file for the and"

More advanced payment integration

I understand this is all new and still very early but I'm wondering if more advanced payment integration is possible. I went through the example of accepting payments, but I have an app releasing soon where I charge the customer through credit card only after my service takes place.

  1. I'm able to place a hold on their credit card for x amount and then their order is sent to my server if there's enough funds.
  2. After service is done, I replace the hold on their credit card with variables on what happened during the service(ex: An Uber driver driving 8 miles is going to charge the customer less than driving 20 miles).

Am I able to replicate this kind of flow with Cardano? I'm a holder and was hoping this flow was possible with the blockchain. Again, I understand this is still early but I would love to have Cardano integrated with my app if possible. Thanks.

Top level menu

The Top Level Menu in my perspective does not match to the sidebar menu. One simple solution would be to remove "Testnets" which is subtopic of "Get Started" and place "Get Started" on the top menu instead. So, the user would have the option of navigating to one of the main topics from top menu or to one of the sub-topics from the boxes on page. What do you think?
TopOld
TopNew

Looking for Ada developers

Hi Ada dev community, I’m looking to develop a project on Ada platform with funds available to go ahead with the project. Looking for the right experienced Ada Dev.

contact me @ - [email protected]

Seems "Generate Stake Pool Keys" page is not necessary?

If we look into Stake Pool Course - Handbook - Generate Stake Pool Keys

It seems this page is just duplicate of "Create Stake Pool Keys" page and I think this page is not necessary. Or Am I wrong?

Why do you need to create stake pool keys again if we made them them in "Create Stake Pool Keys" page?

Info about topologyUpdater.sh and relay-topology_pull.sh is missing

Hi,

I think we should add details somewhere in course about need to run topologyUpdater.sh hourly and need to generate topology file using relay-topology_pull.sh. I'm willing to create a pull request, but I personally find current page structure of Handbook a bit odd/outdated, so before adding this information I want to confirm that it is ok if I will just update "Configure Topology Files" page?

Burning tokens via cardano-wallet-js?

Hey I've been reading about cardano-wallet-js.
I can see they provide an example on how to mint and send minted native tokens (this works without any issues), however I am interested is it possible to burn native tokens via this library?

SPO course, security chapter missing

The stake pool course needs a security chapter (better the topic should run through the whole course, but you have to start somewhere). We can use this issue to discuss ideas, requirements or any thoughts.

If anyone found their way here because they thought they were getting safety tips for their stake pool, please read on here: https://forum.cardano.org/c/staking-delegation/stake-pool-security/157

The security chapter should make clear that you must not have any payment key on the server. Also: how to handle keys in a secure way.

It would also be interesting to mention what people can do if there is more than one operator. Maybe one wants to share the stake key.
How to create, handle and sign transactions on an air-gapped machine.
Probably interesting also the scripts and how-tos that Martin did: https://forum.cardano.org/t/new-ledger-trezor-update-for-owner-pledge-stakepool-operator-scripts/43953

In general, the https://forum.cardano.org/c/staking-delegation/stake-pool-security/157 is full of great posts around this topic and I'm sure other people have even better ideas what to put in.

Please also see this related issue: #42

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.