text:
How will DApps work on Cardano?
This may been too broad of a question but I was hoping to ask a few specific questions here rather than over multiple questions. I don't think DApps are available yet but I'm sure people have started preparing for them.
Will we need to learn Plutus to make DApps and how easily can you transition from Solidity to Plutus programming? I'm also wondering what incentive there is to create and launch a DApp on Cardano over Ethereum?
If anyone could answer these question and perhaps point me in the direction of places to find more resources that would be great.

There is a plan to port Solidity to Cardano. I believe there's even a running prototype. There are also plans for a cross-compiler that would transform most popular languages into Plutus. But personally, if you intend to jump in with both feet, I think it's worth learning the native language. For help getting started, look for the Plutus Pioneer lecture videos.
I see two major advantages in adopting Cardano today.

Transaction fees are demonstrably and vastly cheaper than Ethereum which is attractive to you and your end users.
Striking early, now, gives you a first-mover advantage to a captivated audience.

Can you elaborate on transaction fees?

Charles Hoskinson mentioned that first Solidity (the Ethereum smart contracts) will be available in the testnet of Cardano and in the future they will be incorporated as sidechain once the sidechains implementation is in production.
More on Smart Contracts on Cardano check this video.

Is your question how dApps will work or how smart contracts? So far I only see (incomplete) answers for smart contracts, given there is already development in smart contracts including Plutus and Marlowe.
Given that there is already amazing stuff that can be done with the recent releases on the Cardano (test and main) network (TX with metadata, Native tokens including NFTs, Hydra), you can start already building apps (dApps) that take advantage of these.
dApps can already be built with the various libs and tooling being released.
https://docs.cardano.org/getting-started/integrating-with-third-parties
You can manage wallets, accounts and talk to your own Cardano node(s). There are multiple endpoints already ready in these libraries including GraphQL, Rossetta, Wallets, etc.
The developer docs were just released and they look fantastic. https://docs.cardano.org/


text:
OutputTooSmallUTxO even with 2 ADA
I get OutputTooSmallUTxO even with 2 ADA, is there any formula to predict the min output?
Command failed: transaction submit  Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [LedgerFailure (UtxowFailure (UtxoFailure (OutputTooSmallUTxO [(Addr Testnet (KeyHashObj (KeyHash "fd39564503fb2202a2fcbe55dd3bb54cc4121c9a5d729a384e432d49")) (StakeRefBase (KeyHashObj (KeyHash "b4f1c2fbf4268fb784ff29631c4bb96e9d6cb3c6764f9c0718ab641b"))),Value 2000000 (fromList [(PolicyID {policyID = ScriptHash "c3a79051ed13af016c01b2d639518620939328b4850c573169c35a65"},fromList [("43dff6dc96b32060",1),("ALIENS1",1),("SpaceBeep",1),("ack2",1),("electri2c",1),("electric",1),("shock2a",1),("spacesound",1)])]))])))])

I’m voting to close this question because it was easily researchable (answer found in ~15 min) and is not up to the standards of comprehensive, unique questions that is usually expected of Stack Exchange answers.

Didn't see this before, but also look at @NikeDattani 's comment below under the answer for more feedback.

wutzeber: I was not one of the 2 users that downvoted, nor was I the one that initiated the close voting. But ignoring this advice here has started to cost you, and it will probably get worse over time if you continue to (appear to) take no notice.

It seems we have an answer in the Cardano documentation library Native tokens - Minimum Ada value requirement:
For a UTxO containing a token bundle B the min-ada-value calculation is as follows :
Case 1 : Token bundle B in the UTxO u contains only ada (no other tokens) minAda (u) = minUTxOValue

Case 2 : Token bundle B in the UTxO u contains ada as well as other tokens minAda (u) = max (minUTxOValue, (quot (minUTxOValue, adaOnlyUTxOSize)) * (utxoEntrySizeWithoutVal + (size B)))

it is too much information to fully paste it here

Users throughout the SE network are expected to "basic research" before asking a question, which is the reason why the network is respected so much for having "high-quality content'. If you were able to find the answer in 14 minutes after asking the question, perhaps you shouldn't have asked the question? I do appreciate the enthusiasm though!

@NikeDattani thank you i was looking for this information pretty long, it was a fortuity that i found the answer shortly after posting here, but maybe i just was to dumb to find the right keywords, hope others are smarter than me =)

Disagree this should have been closed.
The docs are wordy, unclear, and talks of 'change at fork' (years ago). Plutus lib doesn't implement this fn and its "minUtxo" is hard coded.
A lot of people hit this error. There still isn't a good answer to this Q

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
How would Cardano applications function with intermittent internet connection?
With Cardano's ambition of bringing self-sovereign digital identity and finance to billions of people, it is important to consider that many people do not have constant electricity or stable internet.
Right now, running a Daedalus full wallet takes several GBs of storage and will take quite a few minutes to hours to synchronize the blockchain even with a decent internet connection, so this probably won't be an option in that situation. But even with a light wallet like Yoroi for Android, it takes a while to check your balance.
In a situation where you have two people with a smartphone with a Cardano wallet on it that want to transact together, what is the minimal internet traffic and time needed to send funds from one phone, and get final confirmation on the other? Would it matter if the phones are on the same local network?

Most blockchains currently rely heavily on a stable and relatively low-latency internet link. Relaxing the latency requirements may allow for more decentralisation since more people would be able to participate in the consensus mechanism (ie. by setting up a validator), but this comes at the cost of performance (decreased throughput).

what is the minimal internet traffic and time needed to send funds from one phone, and get final confirmation on the other?

If you use a light wallet like Yoroi, the bandwidth requirements are pretty low, a narrowband link of a few kbps should be enough.

Would it matter if the phones are on the same local network?

No, that usually doesn't help since validating a transaction requires the transaction to be broadcasted to the blockchain network, not only among the parties directly involved in the transaction inputs/outputs. However, if the wallets used by those phones are connected to some relay node in their local network (theoretically possible), then it would be different.
Note that the only bandwidth/storage intensive operation is to validate transactions in the way full nodes do. Submitting a transaction does not require much resources.
On the other hand, it is theoretically possible to establish a payment channel between these phones, which may lower the requirements for connectivity (though I don't know of any solution like this in Cardano).

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How does one decide what is the best stake pool to delegate to?
I'm ready to delegate to a pool. I know the easiest options are to do so using either Daedalus or Yoroi. But, how do I choose which pool to stake to and does it really matter?
I found this post on reddit which does a good job of describing saturation and pledge. It also discusses what the fees mean. What I'm really asking here is that I don't understand why it might matter which pool to delegate to when it seems that any one will give me about 4-6% apy over the whole year. If I'm going to get that APY no matter which pool I delegate to, why does it matter which one I delegate to?

There are lots of reasons to choose a stake pool other than the parameters and the ranking in Daedalus.
It depends on your values. Do you value decentralization? Do you want to support a big pool operation that has multiple pools under one brand or a single pool operator? You could support a pool that gives a percentage of it's operator rewards to charity. You could choose a pool that runs on Raspberry Pi's over a pool that runs on Google servers. You could look for a pool who's operator is easy to contact and interact with, they are active on twitter and/or YouTube. They have a strong web presence with good resources for delegators. Some stake pools are offering extra rewards in the form of ADA lottery or their own Cardano native tokens that they have minted themselves.
The fist pool I delegated to ran on solar panels and was ranked in the top 10. Now, I wouldn't even look at the ranking in the wallet. I've chosen a stake pool because the operator is active in the community and creating valuable content for the community. He is running a single pool on Raspberry Pi, under 1M ADA in active stake. I value supporting smaller pools that are trying to get up and running.
It's very much a personal choice based on countless variables.

How do you recommend searching for a stake pool based on values? Given your example, if I wanted to find a list of small stake pools operated by folks who have been active in the community, and/or ones powered by solar or running on a Raspberry Pi, how would I do that?

Go to pooltool.io

There is a choose portfolio search that can filter based on these kind of preferences. It's not comprehensive, but a good start. You can go to the analysis tab and filter based on active stake and ROS. If you want to support a small pool you could choose a pool with sub 1M active stake and a good average return. There are pool profiles on pooltool.io that have links to social media accounts and websites. It takes some research but in a short amount of time you should be able to find someone that you are comfortable supporting.

There is no "right" answer to this question.  It depends on your personal priorities.
The numbers matter if your sole concern is financial.
In general there are not vast differences in return from one pool to another
There are a multitude of other reasons to back a pool such as:

Geographical location
Community they support
Projects they are working on or associated with
Where their profits are directed
Many, many, others

Most pools go into detail about what makes them special on their own websites.

If you go to https://adapools.org and select "Analysis" > "Cardano Donuts (Groups)" > Select "Single Pool Operators" > Filter by "ROA 1M/Lifetime" you can start the selection of a staking pool based on the following criteria (this is not the full list because you can select many more):

Pledge
Fees
Stake
Check "Last Rewards" if the pool is actively minting
Saturation
Live stake


text:
To what extent does Cardano's "off-chain governance" in the form of a Board of Directors pose a threat to Cardano's mission of being decentralized?
On 31 March 2021, Cardano reached "100% decentralization" meaning that 100% of the blocks are produced by the stake pools.
An excellent introduction about Cardano decentralization is given here, but Cardano does have a Board of Directors (often known as "off-chain governance", as opposed to the "on-chain governance").
I wonder, to what extent (if any) could the "centralization" of the off-chain governance in the form of a Board of Directors pose a threat to Cardano's overall notion of being 100% decentralized from an on-chain perspective?

Do you have a source for the "Board of Directors" concept for Cardano? I thought the latest developments were that it was going to implement a bicameral model where there is some on-chain and some off-chain governance with voting power being split between ADA holders and SPOs.

@EGMSSE It sounds like that could be a question of its own. I can try to answer the question, but comments aren't the best place for that.

@NikeDattani On chain governance is not yet decentralised, as all protocol updates must be approved by a 5 of 7 quorum of genesis delegates (at IOHK, Emurgo, and CF). This is in contrast to Bitcoin, where protocol updates are approved by a majority of mining power and/or users.

@soccer193 Thanks! Is it correct though to say that 100% of the blocks are produced by the stake pools, meaning 100% decentralization in that sense? So perhaps there's three main types of (de)centralization at play?

Yes, and decentralised block production is a necessary step, but it is overused in the way people market the project online.

Hi @soccer193 I didn't want to ask too many follow-up questions in the comments, so I asked a separate question here, inspired by your comment!

It won't once all parts of the Cardano road map are complete. Voltaire isn't complete yet, but once it is. The Board of Directors at Cardano foundation do not have the power to control or change the network. This process is being done in multiple steps, like staking and SPOs are now 100% community-produced blocks.
Check out project Catalysts as it is the foundation to what Voltaire completion will bring.


text:
How to delegate ada to several staking pools using only one wallet?
At the moment if you want to delegate different amount of ada to more than one staking pool you should have two or more wallets. Is there a way to delegate a portion of the coins to one staking pool and another portion to other staking pools?

In Nami wallet you can create "extra accounts" to delegate to other pools. You do have to keep into account that other wallets will not show these "extra accounts".

In Yoroi, it is possible to delegate to multiple pools using a single wallet, but not in Daedalus. To delegate to multiple pools in Daedalus, you will need to create separate wallets. The stake associated with each wallet can then be delegated to a specific stake pool.
It is worth noting that multiple-pool delegation using a single wallet will not be supported on the mainnet.
Source : https://cardano.org/stake-pool-delegation/ (At the bottom, "Can i delegate to multiple stake pools ?")

Interesting, but this is only valid for the Yoroi browser extension? Can't find this option in the Android App.

What does it mean "multiple-pool delegation using a single wallet will not be supported on the mainnet"?


text:
Is Cardano the only platform with 100% decentralized block production?
Inspired by this comment saying that decentralization of block production is overused in the way people market Cardano online, I was curious to see if any other platforms have achieved this. I know that other platforms such as Tezos do have some level of on-chain governance, but not necessarily 100% decentralized block production as Cardano does.

When I search "decentralized block production" in quotes, I get over 1000 results, which seem to all be about Cardano.
When I search the same thing but only allowing results before 2021, I get only 6 results and they all (literally 100% of them) seem to contain the word Cardano or ADA or IOHK.

Is it really the case that no other platform has managed to achieve 100% decentralized block production?

This all depends on how you view it. For instance, consider Bitcoin. Bitcoin has 100% decentralized block production, since no central authority owns Bitcoin and can regulate its block production. One might argue that the large mining companies that control a majority of block production makes this decentralization somewhat dubious. To be fair, the same thing happens with Cardano. Consider how much of the Cardano block production the Binance stake pools control.
To be honest, I am not sure there is a straightforward answer to your question. I would say that other chains have achieved full decentralization; however, Cardano is one of the most decentralized (if not the most) due to the numerous stake pools operated by individual community members.


text:
What is the expected ROA (Return of ADA) after all coins are minted?
After all coins are minted as far as I know the rewards will come from the transactions fees. At the moment we have 4.5 to 6.0% annual return of staked ADAs. When and how this will change after we reach 45 000 000 000 coins in circulation?

To start, all ADA does already exist and is accounted for, as seen in the Introduction section on page 4 of the Cardano ledger spec. The spec states that, from genesis, there was about 13,000,000,000 ADA locked up in reserves (monetary expansion), which are to be slowly released on a per epoch basis at a rate of decay that is defined by a network parameter, rho. With the current setting of 0.003, it should take over 100 years before these reserves are depleted.
How the APY will change after the reserves are depleted depends mainly on the transaction volume because transaction fees are what will pay the rewards after the reserves are depleted. The reserve depletion is so far out in the future that it is difficult to say how the APY will be effected when that happens.

Are you sure about the current setting of 0.003? Is this "Influence factor (a0)" and "Expansion rate (% of reserves released per epoch)" which can be found under advanced settings here: https://cardano.org/calculator
From this page I can see that this value is 0.3 not 0.003 for both of them.

0.3 is the percentage. The actual value is 0.003

OK, this means that if 100% is 13 000 000 000 then after 333 epochs (1665 days or 4,5 years counting from mid 2020) all of these coins will be consumed if we assume that there is no additional income from the confirmation of the transactions right?
I cannot understand why we have such a discrepancy 100 years vs. 4,5 years?

@PetarEnchev - according to this answer, the difference comes from the formula, which is a rate of decay, not a simple division of the starting amount: https://cardano.stackexchange.com/a/852/2107
It decelerates as it goes.

In ADA all coins are already minted. The total supply is 45 billion tokens. About 13 billion coins are not used and are "locked" in the treasury. It is used to be able to pay out the rewards for every block created by the stakepool and from where you will get delegators' awards. Because there not so many transactions to pay for, all the block awards the missing coins are used from the treasury. Once the transaction fees are sufficient to pay out all the block rewards, the treasury will only be used to fund proposals in what is now called Catalyst which in due time will start to solve the Voltaire stage. When Voltaire is ready it will be up to the community what to do with the rest of all ADA from Treasury.
And this is a very interesting idea to vote the greedy out in favor of the Cardano Ecosystem to be sustainable.

This is incorrect. The treasury is not used for block rewards. The 13 billion coins you reference are in the "reserves"


text:
Could the d-factor still be changed, to revert to more centralized block production by IOG?
Nothing is mentioned anywhere if, and according to which policy, IOG can move the d-“slider” in the other direction, to again start producing more centralized blocks whenever they deem this necessary. Probably a question only Charles or Duncan can answer.

Cardano has three different pillars of decentralization:
The first pillar: block production. Once d hit 0, this pillar was fully decentralized.
The second pillar: networking. It means how nodes find each other and pass on this information. Currently, this is a topology file and it will be replaced by P2P discovery.
The third pillar: governance. The way to vote on all protocol parameters (like d) and updates and access fundings of the treasury.
So to answer your question: yes, theoretically, it would currently be possible to increase the d-parameter again. But should IO do so, it would certainly be a disastrous signal.

The d-parameter was introduced with the hard-fork from Byron to Shelly.
This was implemented for the purpose of slowly allowing public stake-pools to produce blocks.

As long as the facility is available in the code, it is technically possible for the process to be reversed.

And as Charles Hoskinson mentioned several times if the community decides in the future to vote for a particular proposal via Catalyst and the proposal is accepted then will be implemented.
So when Catalyst is fully deployed and we have full decentralization (most probably around or after 2025 based on the roadmap for Voltaire) then the community can vote for this proposal if the proposal is submitted. If for some reason this proposal is accepted (which is highly unlikely) technically can be implemented again.


text:
Is there a Ganache-like in Cardano?
Currently, I have been playing around with the Cardano Playground and I was wondering if there is an existing tool already present where I can personally run a Cardano blockchain like Ganache of Ethereum blockchain?
Regards,
Ivan

Plutus playground simulates the working of a blockchain. Testnet with smart contract feature is expected before end May

Yes?
In the lecture #4 of the current Plutus Pioneer program, there's a way to run a faux blockchain with Plutus contracts.  The first 90 minutes are a Haskell tutorial, but then it goes into how to use the EmulatorTrace.
It's not a full testnet, so it might not be a full replacement for Ganache (which I haven't used), so maybe No.


text:
Where can I see my NFT?
Recently bought a NFTea from here, where do I go to check out the actual image? Is there a Cardano NFT explorer or similar?

Find your transaction, look at it on cardanoscan.io to get the policy_id and token_name, adjust the following link https://pool.pm/<policy_id>:<token_name>, and you'll see it.

Awesome! You were a bit unclear on the pool.pm link, took me a while to understand, can I suggest you edit the link like this instead?
https://pool.pm/<policy_id>:<token_name>

You can also go to https://pool.pm and just enter your wallet address. It will show you the balance, plus all the native tokens. If any of them contain an IPFS address (like a picture for an NFT), then that will show up as well.

You can also enter any used address or stake address here: https://cardano-tools.io/my


text:
What are the security risks of storing an encrypted wallet seed in a password manager?
We've all seen the recommendation against storing our wallet seed phrases digitally. And while I understand the sentiment and reasoning, in reality, for many it could be even less secure to store a piece of paper with the seed phrase.
This morning I tested encrypting a seed phrase from my computer (Mac OS). I'm curious what people think about the safety of the following process. I tested this using a randomly generated BIP39 mnemonic code.

Create a wallet and temporarily copy the seed phrase into a text file.
Open a terminal.
Encrypt the file with the following command openssl aes-256-cbc -a -salt -in ~/path/to/seed.txt -out /tmp/walletName.enc.
Enter a long but memorable string for the aes-256-cbc encryption password.
Save the contents of the resulting file in password manager.
Delete the text file from step 1.

Decrypting the wallet seed in the future then simply requires copying the contents from your password manager into a local file and using the encryption password saved in step 4 with the following command: openssl aes-256-cbc -d -a -in ~/path/to/walletName.enc -out /tmp/seed.txt.
The main problems with this method, that I see, are 1) It requires a small amount of technical know-how, and 2) users who are using automated backups (TimeMachine, etc.) might expose the wallet seed text file if they don't delete it or if the backup system happens to run while they're encrypting it. Other security issues I'm missing?

This is not a Cardano specific question.  May not be appropriate here.

One of the biggest security threats right now is malware and key loggers.
That is why offline backup and hardware wallets are so important, as you try to shield your signing keys from your day to day computer.
You could use the method you have described on a dedicate laptop that has been airgapped (no network or outside world connection). However, hardware wallets are today very cheap and probably make sense to invest into one instead spending your time with a dedicated hardware.

Hm. Good point about key logging. However, doesn't a hardware wallet also represent a single point of failure? Meaning, I either have to make sure I never lose my hardware wallet, or, I'm in the same situation and have to figure out how to securely store my hardware wallet seed phrase?

You do store the seed phrase offline, either on a piece of paper in a fireproof safe or use a product like cryptosteel. To enhance your seed security, learn more about Shamir backup: https://trezor.io/shamir/

The risk is the same as storing the encrypted login details of your bank account in a password manager.
However, the bank may have their own controls that limit withdrawal amounts, monitor/block suspicious activity etc.
So, although the risk is the same, the consequences can be different.
The primary vulnerability moves from the password manager to the encryption password for the encrypted file.  Where do you store that and the instructions for recovery?
No matter how you choose to store a wallet seed, you must consider the risk/reward of it being breached and of the seed being corrupted, destroyed or lost.

I disagree that storing an encrypted string is the same as storing a username and password to a bank account. Even someone who could access the encrypted string could only decrypt it if they knew both the encryption method and the encryption password.

@a-fro Yes, you're correct.  I will edit accordingly.

Depends probably on the region of the world, but for example in Europe, there is no way retrieve/send funds from a bank account without having two factor authentication.

It's true that this topic is not simple, but based on the number of times we've heard from folks on /r/cardano who have suddenly found their wallets unexpectedly empty.. I would never store a wallet recovery phrase, for any length of time, in any kind of digital device.
(You said "copy" above, perhaps meaning to avoid typing and keyloggers - be aware that copy/paste is also vulnerable to malware.)


text:
What time Cardano Mainnet To Be Launched?
I am new to Cardano and I want to learn and code with it. I have search a lot on Google and nothing found. Sorry for misunderstand question!

Cardano mainnet is functional. You can search for Plutus Pionner program and find some very good tutorials.

@raghu you mean Ada is still based on ETH mainnet?

No, it is totally independent. Nothing to do with ETH. Mainnet is working for last two years.

@raghu thank you, please post an an answer and I will mark it!

The Cardano network was launched in 2017


text:
Where to find current transactions per second statistic?
Is there any official website to find it?
I can't find it on internet.

Are you looking for the actual or theoretical TPS of the Cardano Network?

@gRebel not yet, I am new to Cardano :)

I found cardanowaves.com the other day on r/cardano and it looks useful. Shows over 1M transaction in last 28 days, which is 35K/day. Agrees with previous answer; this may update more dynamically. It updates statistics from the blockchain.

There's a chart here, published on April 14th, which claims it's about 30-40k per day (so roughly 1 per 2-3 seconds), but I don't know how accurate it is.

(Note that the last five data points (on the website, I've cropped them from the image above) are misplaced; they're March dates instead of April.)

Is there any way to verify the accuracy of this screenshot? Is there no link to the source of this info?

@EGMSSE there's a 'show source' link at the bottom right, but it costs $60 a month ...

You could find the average tps over an Epoch by looking at the transactions over an epoch through the official Cardano explorer [0]. Epoch 260 had 216117 transactions which equates to ~2 tps. This isn't the networks limit of course, there are many empty blocks and you can easily see blocks with > 15 transactions on the explorers homepage.
Saying this, I'd argue a far more interesting value is the bytes/sec because transactions can vary in size. You could find the current theoretical limit with max_size_of_block / min_size_of_tx. I don't remember these numbers off the top of my head though!
[0] https://explorer.cardano.org/en

You can also check out ADApools, lots of good statistics there

go  there https://cardanoscan.io
in search epoch bar search last epoch .
you can see Transactions  . this is total Transactions in this epoch . you can division on current slot number .

The realtime page at adatools shows a live count of transactions/hour. A hands-on way to get more detailed data is to run a cardano-node with Grafana monitoring, as described at docs.cardano.org

There's also the epoch statistics in adastat.


text:
How do I prevent text in Catalyst proposals and insights from losing formatting?
Whenever I edit text in Catalyst proposals and Insights, new-lines are dropped, text that follows bullet points gets indented and previously established formatting is disturbed.
Is there a way to prevent this?  e.g. use a specific browser.

Within the past week, supposedly improvements to the editor have been made. I hope that these issues will be a thing of the past with this update.

Right now, you cannot, as IdeaScale does not support it. It's embarrassing.
Over time, the Catalyst project hopefully migrates away from IdeaScale to a custom solution. It would be also very cool, if this is built from the catalyst funds by the community.


text:
I have kudos in Catalyst/ideascale, why can't I give it?
When I try to give Kudos to a proposal, it says that I don't have enough.  Even when I have kudos showing as available.

If there are more team members in the proposal that you have, then you cannot give kudos to the proposal.
You must accumulate as many kudos as there are team members in the proposal.


text:
Is the NFT ticker unique?
When I create a new token, how can I differentiate it from another token?
Can various NFT tokens exist with the same ticker?

Tokens are uniquely differentiated by their Policy ID and Asset Name, which are combined to make a unique Asset ID. The Policy ID is a hash of the monetary policy script that was used to mint the token, and the Asset Name identifies the token under that Policy ID. So long as you just mint one token with the a particular asset name under that policy, the NFT will be unique.
So, the ticker (its Asset Name or the "Ticker" field its minting metadata) is not unique by itself, but the Asset ID or its Policy ID will distinguish it from other tokens with the same ticker.


text:
What advantages does Cardano have over other "fast" blockchains?
I'm a developer looking into starting my first dApp project. I've been waiting for Cardano to release smart contracts due to Ethereum's insane gas fees and low transaction throughput.
I recently discovered another blockchain (Solana) that already supports smart contracts and has even cheaper transaction fees and very high transaction throughput. Since it's not even possible for me to build my project on Cardano at this moment, and my original reasons for considering Cardano were low fees and high TPS, I'm beginning to consider building on the Solana platform instead.
I'd like to get your insights on what unique advantages Cardano offers over other platforms before making my decision.

You will probably get better answers to this opinion question on https://www.reddit.com/r/CardanoDevelopers/  You will get a wider variety of responses than here.

I recently discovered Solana too and found that it has awesome speed. Here are my thoughts from a little review:

Decentralized limit: Hardware recommended requirements for Solana nodes are pretty advanced which limits the amount of nodes that can be run.
Speed: Project Hydra from Cardano has a theoretical limit of 1M TPS acheiving 1/10 of that will still be significant.
Adoption: Its not always just about technology, I like IOG approach to get adoption with deals. Even if the Africa deal falls through they are still pursuing other opportunities.
Transparency: I honestly couldnt find any way to actually connect with the people behind Solara. It just looks like they are popping out high performance tools. I do wonder if there is a tradeoff being done for speed.

Finally, I really like the goal of Cardano which is about making the world a better place by building for the globe.
Most of the crypto ecosystem is mainly in first world countries.

The transparency part seems to be the biggest one for me. It seems like there was/is some controversy with how they dealt with the token distribution.

I do want to invest into it, however I like being a part of a community building together rather than investing for the purpose of price sky rocketing. If you find anything that makes you want to get involved with solara, please do share!

Research papers and correctness proofs
Transparency

The first will be hard for other chains to reproduce, though some of the results are not specific to Cardano / Ouroboros so they could be adopted by other chains.
The second is an on-going process and it would be possible for another chain to surpass Cardano either due to governance failures in Cardano or exceptional transparency of the other chain, but I don't belive this has yet (2021-04-28) happened.


text:
Is the Cardano testnet indefinite and immutable?
As the Cardano mainnet, will the Cardano testnet be maintained indefinitely and immutably or it will perish at some point in time?

No, there are plans to reset the testnet in the future, probably sometime after Goguen.
But it is immutable forever, if you keep the blockchain data.

Since it could be reset that means it's being maintained by a central entity or does it run on top of volunteer nodes?

It is run by the IOG DevOps' team, but most of the nodes are run by the community.

Well, we can assume that it will be maintained indefinetely because Cardano will also will be under development.
In the same way as in system administration you have Dev, Staging and Production environments in Cardano we also need to have testnet before pushing that in mainnet.


text:
How can smart contracts interact each other?
If the "context" of a smart contract can see only the transaction where it sits and its inputs-outputs, how can a smart contract interact with other smart contracts living in different transactions?

Since everything is on the block chain, I find it hard to believe that a smart contract can only see a specific transaction? Maybe you can elaborate?

@Ahmedie-mi it is true, on Cardano, smart contact can only consume the input transactions. It does work only with the UTXO set and does not keep the entire blockchain in memory.

It can't.
But that doesn't mean different smart contracts can't interact. The interaction must simply happen in the same transaction.
As an example, imagine you have some Uniswap-like liquidity pool as one UTxO and another UTxO belonging to an auction contract. Then you can use the pool to swap tokens and then use the swapped tokens to bid in the auction, all in one transaction. That transaction will have both UTxO's as inputs (plus additional inputs for the funds that you swap) and updated UTxO's for both the liquidity pool and the auction as outputs.
You have to think differently when working with the EUTxO-model, but that model is at least as powerful as the accounting model used by Ethereum.

In simple words, it probably can't (even thought we do know the final Plutus design yet).
If two smart contacts needs to interact between each other, they need to provide each other inputs to consume, just like it would be the case with end-user.


text:
Is it possible that an honest validator node gets penalised in Cardano's POS scheme?
Want to understand if there can be scenarios where a stake pool gets penalised even though it does not act maliciously. If this risk exists, what are the possible cases that can lead to penalties and is there an official documentation on it?
For example: will there be penalties if the node goes offline?

Cardano does not applies slashing (negative incentive) as it's reward scheme allow to maintain necessary security with it.
The only penalty is the rewards the stake pool operator and its delegators has missed to obtain.

Punishment is only indirect like Marek already wrote. Nevertheless, I would like to take the thought a little further: A node that, for example, is not online at the time it should be (to create the block in the slot) is "punished" by not getting a reward for the allocated block.
If this happens for a whole epoch (5 days), then of course the delegators will go to another pool because they are not satisfied with their rewards. (which will most likely threaten the existence of a pool).
However, there are no direct mechanisms in the protocol that deal with slashing (taking away stake from people).


text:
Will small stake pools find it hard to cover running costs?
"Stake pool operators are rewarded for running the protocol in the form of incentives that come from the transaction fees and from inflation of the circulating supply of ada", as mentioned at this docs
In case a small stake pool does not get elected for block creation, how much of the running costs would be covered assuming that minimal hardware confguration is employed on the stake pool?

If the stake pool does not create a single block in the epoch, it receives no rewards.
If it is elected and is able to create at least one block, it receives the fix pool fee, which is right now minimum of 340 ADA plus the margin fee.
Minimal hardware configuration is debatable, but you can run a pool as low as 1 EUR (about 1ADA with today prices) per epoch.

In case a small stake pool does not get elected for block creation, how much of the running costs would be covered

If a pool produces zero blocks, it gets zero rewards.
If a pool produces one block per year, it will receive a rewards only for the epoch in which that block was produced.
You can work out roughly how many blocks per epoch you would generate for any given stake, and from that you could estimate your rewards and compare that to the cost of running your pool.
Bear in mind that the block rewards may reduce over time (part comes from the money expansion that reduces over time), although smart contracts and other functionality may also bring more transactions and more fees that could also increase them.
It's possible the 340 ADA minimum reward may also be changed in future, which could result in lower rewards for small pools (though on the flip side, this would also make it easier to attract delegations as a small pool because the ROI would be less poor delegating to a small pool).


text:
When smart contracts launch, will every node on the network have to run every contract transaction?
When smart contracts launch, will every node (relay and producer) have to execute all contracts executions, and therefore all see the same increase in resource usage?
My inkling is that they have to (to ensure the blocks are valid), although I wondered if there was some clever way to avoid this I hadn't considered.

The validation of the state change of a smart contact in the eUTXO model is done when accepting the transaction. When a node validates a transaction, the node determines if the transaction is allowed to use a certain output as an input. The transaction will look up the script provided by the output's address and will execute the script if the transaction can use the output as an input. The node can validate multiple transactions in parallel if they are not consuming the same input.
References:

https://iohk.io/en/blog/posts/2021/04/13/plutus-what-you-need-to-know/
https://iohk.io/en/blog/posts/2021/03/11/cardanos-extended-utxo-accounting-model/
https://iohk.io/en/blog/posts/2021/03/12/cardanos-extended-utxo-accounting-model-part-2/

So, does every node in the chain has to do all those stuff?

@JelilAkjaly Perhaps only the block minting node needs to do it, creating resulting transactions in the mempool. Then another minter validates those transactions and so on...


text:
Hardware requirments for running a stake pool?
I want to run a stake pool for fun and learning purposes and not for profit. What are the minimum hardware requirement for that?
I have an old laptop with 2Gig RAM and 256Gig storage.

If it's purely for fun and learning, I assume it will be on testnet. Your laptop may be able to run 1 testnet node if you use swap space. But you will need 2 nodes. (1 BP and 1 Relay). Have you considered using docker in your main computer? It's how I set up my testnet before moving it to vps.

As per this documentation,
https://docs.cardano.org/en/latest/getting-started/stake-pool-operators/creating-a-stake-pool.html,
in terms of hardware, you should ensure you have the following:

8 GB of RAM

24 GB of hard disk space

a good network connection and about 1 GB of bandwidth per hour

a public IP4 address

Note that processor speed is not a significant factor for running a stake pool.

Do I need to be online all the time? Is it possible to connect for a few hours and then shut it down for a day or two?

Your pool needs to be online each time it is schedule to produce a block.

If your pool is not online with enough time for it to catch up to the current block before its' time to produce a block, then it can't!

Requirements mentioned here can only reflect the current state and will very likely change in the future.
Since the Alonzo hardfork combinator event it is recommended to have more than the previously recommended 8GB of RAM.
The current documentation recommends

10 GB of RAM
24 GB of hard disk space
a good network connection and about 1 GB of bandwidth per hour
a public IP4 address

Honestly, to me this sounds more like the absolute minimum requirements.
As of today the db folder alone counts almost 19GB. If you want to keep logs for a while it requires more quickly. Hence my recommendation for >50GB hard disk space. I'd also strongly recommend >12GB of RAM. If you want to run CNCLI for leader logs or such, you'd probably want more like >16GB RAM.

This is correct running your node on 8GB will exhaust all memory and crash. You need at least 12GB for each node. The dispspace also needs to be atleast 50GB


text:
Is Yoroi secure as a primary wallet?
I received an IOHK support ticket response this week that recommended I install the Yoroi wallet:

The Daedalus wallet is a full-node wallet, so it can take time to
install and can be difficult to use depending on your machine and your
network connection. We have a light wallet that is a chrome extension,
which is easy to install and use. You can find more info at
https://yoroi-wallet.com/#/.

This statement appears to be in direct conflict with their article on Cybersecurity Guidelines for Cardano Users. Of course, that article is about Daedalus, but for the end user, it seems confusing. Honestly, I was a bit baffled by the contradiction. I thought Yoroi was primarily an iOS app. Even in Apple's locked down ecosystem, I was having doubts about installing and using it. But as a browser extension? How is that safe enough for them to recommend?

I would argue the Yoroi browser extension is much safer than the iOS application.
Browser extensions provides double-sandboxing and is considered safer than most of the desktop applications. The browser itself is sandboxed from the rest of your computer and the extensions itself is sandboxes from talking directly to other extensions or to other websites unless you explicitly approves it can do so.
That being said, the most important element in the this process are your private keys. So, whatever you are using Daedalus or Yoroi, always protect your private keys by using a hardware wallet.

I'm not too sure about this. iOS has a ton of control around it, whereas the user can install any browser extension and the browser is exposed to much more than a standard app.
All code in the iOS app/browser extension being equal. iOS apps are probably closest to a hardware wallet you can get (assuming the device is not rooted).
I'm not an iOS or Apple user myself.

My argument was mostly around the fact, that the browser extension is sandboxed. If he is using the Yoroi official website, the user should be fine, which cannot be said about the official iOS app store, that has recently officially approved and listed a scam Trezor application and someone lost $1M+ of BTC to it. https://coingeek.com/man-loses-btc-worth-1m-to-fake-trezor-app/

You make interesting points about browser extension sandboxing. Thanks for the useful info. It still seems there is a contradiction between the cybersecurity guidelines page for Cardano (and general safety recommendations I see around the web), and the recommendation to install a wallet via a browser extension.

@a-fro oh, actually that page is only about Daedalus, which is a specific wallet software and is a full-node wallet. On the other hand, Yoroi is a light-weight wallet.

@MarekMahut-StakeNuts I understand that the page is about Daedalus, but that's part of what's confusing. It's called "Cybersecurity Guidelines for Cardano Users", is written by IOHK, only discusses Daedalus, and recommends "If possible, have a dedicated machine for your cryptocurrency activities...Ideally, you won’t use that machine to surf the web, read emails, download software, etc." If I'm not a security expert, but trying to understand how to be safe with my Ada, this page and its advice confuses me in relationship to the support recommendation to install Yoroi in a browser.

actually, iOS apps are sandboxed too https://support.apple.com/en-gb/guide/security/sec15bfe098e/web#:~:text=All%20third%2Dparty%20apps%20are,making%20changes%20to%20the%20device.&text=Most%20iOS%20and%20iPadOS%20system,is%20mounted%20as%20read%2Donly.

Keep in mind that in the future IOG is planning to have lightweight version of Daedalus. For now Yoroi is very convinient and in terms of security is in the same level as Daedalus.
In fact Charles Hoskinson discussed that is debatable if they did a mistake by going in the current direction with Daedalus instead of implementing mobile lightweight solution as Yoroi.
IOG is planning to have not only browser and lighweight desktop client but also Daedalus mobile version for Android and iOS.
For many of my friends is very hard to use the current version of Daedalus and from usability point of view Yoroi is the only option.


text:
How to query a Cardano node for an NFT's owner?
Is there a way to use cardano-cli (or another tool) to query a Cardano node for an NFT's current owner (wallet address holding the NFT)?
The parameters for such a query would likely be the Policy ID & Asset Name of the NFT.
Since, from a blockchain perspective, there is no difference between native tokens for which an arbitrary amount of tokens exist and those where there is only a single one (NFTs), I guess a query like the one I'm looking for is not something that fits into the grand scheme of things; but maybe I'm missing something?
If there is no tool readily available, how could I use cardano-cli (or another tool) to look through all transactions (starting with the most recent and going backwards in time) until I find the most recent transaction containing the NFT in question?

There is no way to find that information without syncing the whole blockchain into a database with a tool such as cardano-db-sync.
This takes a lot of time and resources, so you might want to use an API like blockfrost.io to query the addresses owning a specific token.
$ curl  -s -H "Project_id: $BLOCKFROST_PROJECT_ID" https://cardano-mainnet.blockfrost.io/api/v0/assets/00000002df633853f6a47465c9496721d2d5b1291b8398016c0e87ae6e7574636f696e/addresses | jq
  [
   {
    "address": "addr1qxlmfhfcjck5pctuvlpww3kuxvqjucz40qusgeqgmyqq4utntgjccmteyrsldd67rxv2yq6ew2a7t48q34p9j7nf0kjqskku78",
    "quantity": "1"
   }
  ]

As suggested by Marek, blockfrost.io seems to be a great way to jump right in.
For an alternative do-it-yourself way other tools can be used.
Using cardano-db-sync the blockchain data acquired by a Cardano node will be fed into a PostgreSQL database, allowing to query the data through SQL.
Querying that database looks like this (this is just a random query taken from the example queries, it does not answer the original question):
select tx_out.* from tx_out
inner join tx_in on tx_out.tx_id = tx_in.tx_out_id
inner join tx on tx.id = tx_in.tx_in_id and tx_in.tx_out_index = tx_out.index
where tx.hash = '\xf9c0997afc8159dbe0568eadf0823112e0cc29cd097c8dc939ff44c372388bc0' ;

   id    | tx_id  | index |        address          |    value     |        address_raw        | payment_cred
---------+--------+-------+-------------------------+--------------+---------------------------+--------------
 2195714 | 996126 |     4 | DdzFFzCqrh...dtq1FQQSCN | 158685237964 | \x82d8185842...1a330b42df |

Building on that, one could further set up cardano-graphql to provide a GraphQL API for cardano-db-sync. This is what the Cardano Explorer is built upon.
Using cardano-graphql, a query to find the current owner of a given token could look like this:
query TokenOwner($policy_id : Hash28Hex, $asset_name : String) {
  utxos (where: {tokens: {_and: {asset: {policyId: {_eq: $policy_id} assetName: {_eq: $asset_name}}}}})
  {
    txHash
    address
    value
    tokens {asset {policyId assetName} quantity}
  }
}

Where the arguments denoting the NFT are its policy id and asset name, for example:
{
  "policy_id": "d5e6bf0500378d4f0da4e8dde6becec7621cd8cbf5cbb9b87013d4cc",
  "asset_name": "537061636542756433373430"
}

Note that asset_name is provided in hex format.
For this example, a random SpaceBud (SpaceBud759) with no other tokens in the UTXO was selected, resulting in the following output (on 2021-05-02) where the address field denotes the current owner:
{
  "data": {
    "utxos": [
      {
        "txHash": "4fcf200a8b18f866bd4e9324600ffe636b081d79a9bb06b748fa41947f3a6a5e",
        "address": "addr1qxjtqaxmv44u2zx02v7658wrlt87tv9yp7knzwh6hana3ra5ay9tjpf6e0d3p2t7s6gnnqtwmva02lx4p0dlx8a7x8uqrw46dy",
        "value": "1500000",
        "tokens": [
          {
            "asset": {
              "policyId": "d5e6bf0500378d4f0da4e8dde6becec7621cd8cbf5cbb9b87013d4cc",
              "assetName": "5370616365427564373539"
            },
            "quantity": "1"
          }
        ]
      }
    ]
  }
}

As of writing, using the policy id in queries like shown above seems to be non-functional, as described in this github issue.
Further example queries can found here, one might also check out this graphical representation of the API.

Provided an edit to this answer with a graphql query that answers the original question. However, the query is bugged as of writing, documented w/quick fix in this issue: https://github.com/input-output-hk/cardano-graphql/issues/485

Thank you very much @stakenoble-ben, that's great! I made some minor changes to your edit and applied it.


text:
How are transaction fees determined for bulk sends?
I have a use case where I want to send to many addresses on a regular basis.
Let's say I want to send to 1 million addresses. I've read that Cardano enforces a "minimum transaction fee." But is this fee applied to each recipient address in a bulk transaction? Or is it for the overall transaction?
If it's the case where I pay a fixed fee per bulk send, what is the maximum number of addresses I can send to in one bulk transaction?

The minimum fee is for the transaction as a whole, calculated as a * size(tx) + b, where a and b are protocol parameters. However, there is a Min-Ada-Value of 1 ADA which is the minimum size of a UTxO. The maximum possible UTxO set of Cardano is actually 45 billion for this reason. Anyway, you'd need to send 1 ADA per UTxO (which can be in the same transaction) and then the only limit should be the size of the transaction being less than the size limit of a block.
You can read more about this here:
Docs:
https://cardano-ledger.readthedocs.io/en/latest/explanations/min-utxo.html
Implementation:
https://github.com/input-output-hk/cardano-ledger-specs/blob/master/shelley-ma/impl/src/Cardano/Ledger/ShelleyMA/Rules/Utxo.hs

Let's say I want to send to 1 million addresses. I've read that
Cardano enforces a "minimum transaction fee." But is this fee applied
to each recipient address in a bulk transaction? Or is it for the
overall transaction?

As Edd, already mention in his post, a protocol parameter minUtxoValue is in place to make sure the dust is causing the UTXO to grow too much. Right now it is set to 1 ADA.

If it's the case where I pay a fixed fee per bulk send, what is the maximum number of addresses I can send to in one bulk transaction?

There is no maximum number of addresses per transaction directly, but this is limited by the protocol parameter maxTxSize which is right now set to 16384 bytes, which dictates how large in size one transaction can be. So, it all depends on your usage of addresses, number of inputs, number of outputs etc.


text:
Voting on Catalyst with Ledger hardware wallet
Hey guys I really love the simple approach of just stacking my Ada with the safety and security in my ledger Nano X. But for some reason it does not seem to allow me to vote on catalyst projects. Will you guys enable this feature in the future?
I've read on some blog posts about transferring Ada from one wallet to another to vote before snapshots etc, but that seems very tedious to me.

This is a question better suited for the Cardano Forum than for Stack Exchange, which should be a technical Q&A site. I suggest asking this here - https://forum.cardano.org/

@EddHaigh I personnally think that it could be considered almost a technical question if phrased this way: "How to vote on Catalyst with a ledger wallet ?".

Yes, firmwares updates for this feature has been already submitted to both Trezor and Ledger.
Now, it is up to them, when they will release an update of their firmware to their customers.
Edit: they are now both available in your favorite wallet :)


text:
What enables the Cardano blockchain to be capable of storing so much information?
After the Africa Special it was announced that DIDs and academic records of 5 million+ people will now be stored in the Cardano blockchain and this is set up to scale for massive adoption. Thus it raised the doubt: where does all of that information will be stored, in addition to cryto-transactions and the whole ecosystem that will be built? I mean in contrast to centralised institutions that own big computer clusters for the equivalent purpose, Cardano nodes can run on regular PCs, so how is it possible??

You don't have to store a lot of information on the blockchain itself to provide certain evidence. (that something existed at a certain time or was signed by someone, or that something was not tampered with).
Usually, it is enough to store for example a link to something and a hash or a signature. (i.e. onchain should be stored only the data that are absolutely necessary to prove the required evidence)
Metadata Example: please look into this transaction (on adastat go to metadata tab and look at the data that is actually stored onchain)
You will find the link to http://api.cardano.scantrust.io/publicdata/71a7f9d0.json (where the actual data is offchain, basically, this could even be stored somewhere where only a limited group has access to it)
A good onchain/offchain design combined with batch processing, therefore, enables the cost-effective use of blockchain technology and the preservation of privacy. (which is not Cardano specific)
To get an idea for example with Atala PRISM hundreds of credentials can be signed in only 1 (one) transaction.

Awesome explanation! So all nodes that constitute the Cardano blockchain are vertically stacking links/hashes rather than larger information.  Now it makes sense that one can run a node in a simple device like a raspberry. Thanks!


text:
How can I tell if I have successfully registered for voting on Catalyst proposals?
My PC crashed while registering for voting in Daedalus.
How can I check to confirm that I have already registered to vote.  Must I just go through the process again?

Try to re-register.
However, at the moment of writing this post, there are no current Catalyst project registrations, are you sure you are just not using an older version of Daedalus?

I had the problem in the last voting round and wondered if there was a better answer than what I did (re-register).

Sadly no, the Catalyst voting application and its integration into the blockchain is still pretty raw.


text:
What makes Cardano different from other cryptocurrencies like Bitcoin and Dogecoin?
From Wikipedia, cryptocurrency is:

A cryptocurrency, crypto-currency, or crypto is a digital asset designed to work
as a medium of exchange wherein individual coin ownership records are stored in a
ledger existing in a form of a computerized database using strong cryptography to
secure transaction records, to control the creation of additional coins, and to
verify the transfer of coin ownership.

This applies to Bitcoin and other cryptocurrencies.
So, what makes Cardano different?

Thanks for accepting the answer. However, it is better if we wait for other community members to come up with a much better answer. Just my humble suggestion.

Cardano is classified as a third-generation Cryptocurrency due to the following reasons.

Smart Network  It is almost impossible to have smart transactions in Bitcoin Network. In Cardano, the transactions will be programmable.
Energy Consumption Cardano uses the Proof of stake concept for evolving consensus with respect to the selection of valid transactions. This reduces energy consumption for running the network by approximately a million times. Cardano can be run using embedded processors.
Research Cardano is an organically evolving financial operating system with more than 100 peer-reviewed academic research papers. While Bitcoin protocol is more or less frozen since the mechanism for adaptation does not exist.
Governance  There is a established mechanism for governance financed by the protocol itself through treasury for continuous research, management, and guidance of the project by its stakeholders. No such mechanism exists in Bitcoin.
Bottom-up Approach   Cardano aims to have practical utility in the lives of millions of people neglected by the traditional financial system. While Bitcoin is just a store of value.

I am avoiding mentioning the other project being compared in the question since I feel it's a meme made with the purpose to discredit cryptocurrency and does not deserve an effort for answers.


text:
Is script\bin_path.sh missing?
I'm following these instructions to start up cardano-node from source.
After downloading cardano-node from GitHub, I see that script\bin_path.sh does exist.
After selecting the latest version it still does not.
git fetch --all --recurse-submodules --tags
git tag
git checkout tags/1.23.2

Then after building, the following instructions fail:
cp -p "$(./scripts/bin-path.sh cardano-node)" ~/.local/bin/
cp -p "$(./scripts/bin-path.sh cardano-cli)" ~/.local/bin/

Can you please post the error message. How is it failing?

I didn't see any error, but it's clearly not going to work because bin_path.sh is referenced and does not exist.    I copied that script from a different branch and it worked.  I need to be added, or the documentation needs to be changed.

Can you log it as a bug on Git?

You're using tags/1.23.2. The most recent release was tags/1.26.2. You can see the file on master at the moment [0] so I'd suggest checking out a more recent version of cardano-node and opening a PR or submitting an issue on GitHub to update the node version that the docs suggest using.
[0] https://github.com/input-output-hk/cardano-node/blob/master/scripts/bin-path.sh

It's also missing from 1.26.2.

Just merge the file into 1.26.2 if you need it


text:
Plutus Pioneer Program - Lecture #1 Problem with cabal build
I ran into this dependencies error on Ubuntu when I try to build the English Auction, does anyone have an idea how to solve it ?

Please switch to using either the new project style and the new-build command
or the legacy v1-build alias as new-style projects will become the default in
the next version of cabal-install. Please file a bug if you cannot replicate a
working v1- use case with the new-style commands.

For more information, see: https://wiki.haskell.org/Cabal/NewBuild

Resolving dependencies...
Warning: solver failed to find a solution:
Could not resolve dependencies:
[__0] trying: plutus-pioneer-program-week01-0.1.0.0 (user goal)
[__1] next goal: base (dependency of plutus-pioneer-program-week01)
[__1] rejecting: base-4.12.0.0/installed-4.1... (conflict:
plutus-pioneer-program-week01 => base^>=4.14.1.0)
[__1] fail (backjumping, conflict set: base, plutus-pioneer-program-week01)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: plutus-pioneer-program-week01, base
Trying configure anyway.
Configuring plutus-pioneer-program-week01-0.1.0.0...
cabal: Encountered missing dependencies:
aeson -any,
base >=4.14.1.0 && <4.15,
playground-common -any,
plutus-contract -any,
plutus-ledger -any,
plutus-tx -any,
plutus-tx-plugin -any

Please, include exact steps to reproduce this problem, from which repository, which branch, which version of operating system you are using.

It looks like your cabal version is too old.
You can make sure you have the right one if you first start a nix-shell at the top-level directory of the plutus-repository, then cd to the code folder of the plutus-pioneer-program-repository and run cabal build from within that nix-shell.

awesome, thanks :)


text:
What are oracle services going to look like on Cardano?
Can we expect an effort from IOHK to implement oracle services? Or should this be community driven?

These answers are pretty old but I think the question is still valid. What is the most current status for Oracles in Cardano as of now?

An early oracle-like service nut.link run by the community is already running. It will not provide data to smart contacts, but various dApps might be able to consume its resources if they can read on-chain data.
As for real oracle solutions that will be able to provide inputs to smart contacts, we will have a lot of them, from community to IOG.
In fact, most of the work on oracle pools has already been done by Emurgo, not IOG. And implemented on Ergo.

In Dec 2020 IOHK (IOG) announced that they intended to partner with Wolfram on Oracles for Cardano.  Initial phases were planned to commence in Q2-Q3 of 2021.
Given the timeframe, I believe they will be delivered as part of the smart contract functionality expected to be fully delivered in Aug 2021.

Do you have references for these dates, please?


text:
Blockchain Simulator Chokes on Validation Error
I'm working through Plutus pioneer homework week 2 file Homework1.hs. I believe I've setup the script correctly, but I find that when running the simulator with a transaction that's expected to fail, the simulator sort of breaks after encountering the validation error. As a reminder, the scripts basically acts like a faucet with "Give" and "Grab" functions, and the validation function is to take two bools and return false if they're not equal to each other. Here's my sequence of transactions:
0: Wallet1 Give 5
1: Wait 1
2: Wallet2 Grab (True, False) // this should fail validation
3: Wait 1
4: Wallet2 Grab (False, False) // should pass
5: Wait 1
6: Wallet1 Give 5
7: Wait 1
8: Wallet2 Grab (True, True) // should pass
9: Wait 1

I'd expect the balances on each step to be:
Genesis: Wallet1 10 Wallet2 10 Script 0
0: Wallet1 5 Wallet2 10 Script 5
2: Wallet1 5 Wallet2 10 Script 5 // Wallet2 fails to Grab
4: Wallet1 5 Wallet2 15 Script 0 // Wallet2 Grabs
6: Wallet1 0 Wallet2 15 Script 5 // Wallet1 Gives
8: Wallet1 0 Wallet2 20 Script 0 // Wallet2 Grabs

But when running in the simulator, it stops at Slot 4, Tx 0 at the top. The Logs however seem to continue to slot 6.
Validating transaction: 4c1f4f09fbfcf30b38e33dcb8759a4c56c7fc1958ccc7f816608fbf49a2fe0a1
Add slot 1
Contract instance for wallet 1: (ReceiveEndpointCall (RawJson "{\"value\":{\"unEndpointValue\":5},\"tag\":\"give\"}"))
Validating transaction: b3e4aae77f5fd3e0a6e2d2b38e80e5971b3a010ae432aa2bf8f576a3ac6c8f1e
Add slot 2
Contract instance for wallet 1: (ContractLog (RawJson "made a gift of 5 lovelace"))
Contract instance for wallet 2: (ReceiveEndpointCall (RawJson "{\"value\":{\"unEndpointValue\":[true,false]},\"tag\":\"grab\"}"))
Validation failed: 033c6c4ae71e507fe66149eb1860cafdebbd7f8eafcd560bed41c400bd275b84
 (ScriptFailure (EvaluationError []))
Add slot 3
Contract instance for wallet 2: (ReceiveEndpointCall (RawJson "{\"value\":{\"unEndpointValue\":[false,false]},\"tag\":\"grab\"}"))
Add slot 4
Contract instance for wallet 1: (ReceiveEndpointCall (RawJson "{\"value\":{\"unEndpointValue\":5},\"tag\":\"give\"}"))
Validating transaction: 217d02eb52b162569b40d20de7f8135ea7ba11f0fab08fd0a80e4f23d6df179e
Add slot 5
Contract instance for wallet 1: (ContractLog (RawJson "made a gift of 5 lovelace"))
Contract instance for wallet 2: (ReceiveEndpointCall (RawJson "{\"value\":{\"unEndpointValue\":[true,true]},\"tag\":\"grab\"}"))
Add slot 6

The other odd thing is that the Balances Carried Forward on Slot 4, Tx 0 (this is as far as the top section runs) shows:
Wallet1 Balance 0
Wallet2 Balance 10
Script Balance 10

Here's a screenshot of the final state of the simulation:

It's as if the top part of the simulation ignores function calls from any wallet that had a validation error result, and only represents wallets that never had a validation error. I wouldn't expect the Script balance to ever reach 10, as Wallet2 should be able to take 5 lovelace after its first failed Grab.
Is this just a bug in the simulator or do I misunderstand how the simulator / blockchain should work?
Thanks!

The problem is that in the off-chain wallet code, after submitting the transaction, there is a line of code that waits for the transaction to be confirmed. Seeing as the transaction is invalid, it will never be confirmed, so the wallet contract blocks on that line forever.
There would be workarounds, but in the final version of Plutus, it will be possible to check the status of validation from the wallet and for example detect if the transaction was invalid.
This means handling this and similar situations will be much easier in future.

Thank you very much Lars!


text:
What has happened to the KEVM?
One of the big selling points of Cardano was EVM compatibility out of the box through the KEVM project.
It now has disappeared as a talking point: Has its development stopped?

Development is alive and kicking.
Alongside our native smart contract language Plutus, we are still on track with the KEVM and its support for languages like Solidity and Glow.

The question was about the development of the EVM compatibility with Cardano out of box - can you please reference some development on this side? Looking at the code https://github.com/input-output-hk/mantis-cardano it looks pretty dead.

The KEVM testnet has been down for more than a month, but it is back up.
I never heard about it being compatible out of the box, there are plans to have it as a side-chain in the future, but there is still a lot of work before that can happen and is probably not in the short-term future.


text:
When will the pioneers testnet go live?
In a recent blog post by IOG (link) the roadmap indicated the Pioneer testnet would go live mid-April to the start of May. Is anyone able to comment/update us on when the testnet will go live?

There is currently no announcement regarding a date. I have seen rumours that the Plutus Pioneer testnet is already up and running (probably caused by a web page that displays timers at certain milestones) - this is not true.


text:
Cardano-graphql: Hasura migration failing for me
I am having trouble setting up cardano-graphql service. It occurs when Hasura run the migration script to create a bunch a views on top of tables in cardan-db-sync. There error is:
42703] FatalError: column block.merkle_root does not exist
Sure enough I go login to postgres and see that merkle_root is not a column in the block table.
I am running testnet cardano node and testnet db-sync.
I have a multinode setup using nix-build:
Node1: cardano-node, cardano-db-sync-extended (v 9.0)
Node2: cardano-node, cardano-graphql (v 4.0)
Process that runs migration:
cardano-graphql/nix-build/hasura-cli/bin/hasura --skip-update-check --project /nix/store/is2s0kbvbxz04ih2ixzsg7kkyrmhizib-cardano-graphql-4.0.0/packages/api-cardano-db-hasura/hasura/project --endpoint http://localhost:8090 migrate apply --up all

My Hasura start stript:
export CARDANO_NODE_CONFIG_PATH="/home/ubuntu/cardano-my-node/testnet-config.json"
export HASURA_CLI_PATH=${PWD}/nix-build/hasura-cli/bin/hasura
export HASURA_URI=http://localhost:8090
export GENESIS_FILE_BYRON=${PWD}/config/network/testnet/genesis/byron.json
export GENESIS_FILE_SHELLEY=${PWD}/config/network/testnet/genesis/shelley.json
export POSTGRES_DB=testnet
export POSTGRES_HOST=*****
export POSTGRES_PASSWORD****
export POSTGRES_PORT=*****
export POSTGRES_USER=****
./nix-build/cardano-graphql/bin/cardano-graphql

Can you make absolutely sure you are using the cardano-db-sync release 9.0? The specific field merkle_root has been removed only some days ago and this change is still only in the master branch, unreleased.

Hi there thanks for the resonding. I just checked and here ran version on my terminal and got cardano-db-sync-extended 9.0.0 - linux-x86_64 - ghc-8.10
git revision f8913ad07547b6dcbd47b9601a007ba8ece84052

Thanks Marek I was able to make things right after doing a git checkout tag/9.0.0 -b 9.0.0-branch


text:
How big is the Cardano blockchain (now and in the future)?
This may sound a naively simple question, but...

How big is the blockchian today?

How big is it likely to become in future?

I note that Daedalus' state directory on my machine is currently ~10.3G.
Is it correct then to say that that's the "size of the chain" today?
For the second question, we could hypothesize a number of scenarios, like:
5 million Digital Identities are issued.
What impact is that likely to have on storage requirements of Daedalus?

It's hard to tell how the network will grow into the future because of both varying usage and IOHK introducing new chain optimisations etc.. However we can work out the hypothetical maximum growth using the current chain parameters.
Max_Block_Size = 65536 bytes
Blocks_Per_Epoch = ~21000
Epoch_Length = 5 days

So we could say a rough maximum chain size increase over an Epoch is Max_Block_Size * Blocks_Per_Epoch which comes out as 1.4155776 GB per epoch or around 100 GB per year.

I'm only answering about the size for now: on one of the cardano nodes that I just checked some seconds ago
$ du -sh state-node-mainnet
9.4G

I can't say how fast it grows. I just look at it from time to time.

That is your size containing all the forks probably. Fresh sync of the mainnet is somewhere around 8.5GB.

Compared to the size of the Bitcoin ledger, the size of the Cardano blockchain is smaller, as of November 06, 2023. You can see the blockchain size if you look in the Daedalus wallet's folder on your SSD called ../wallet/chain/immutable.

Network
Blockchain size
Number of blocks

Cardano
147 GB
9,511,839

Bitcoin
524 GB
815,563

What will the size of the Cardano ledger be in 5 years period, for instance, is very difficult to say. It depends on the number of transactions in each block, the speed of formation of the ledger (we know it is Hydra's patrimony) and the total size of the transaction. Currently, the transaction size should not exceed 16 KB, including metadata.
However, in the Basho era, the Tx size could potentially be increased up to 256...512 KB, due to the use of smart contracts and increased network throughput.


text:
How does Cardano compare with other blockchains in terms of being eco-friendly?
It is pretty common knowledge now that Bitcoin is extremely energy intensive to mine, and that Cardano is several orders of magnitude less intensive. However, there are other cryptocurrencies that are marketed as eco-friendly, like Nano, but they are not necessarily blockchains. How does Cardano compare to other blockchains and cryptocurrencies in terms of being eco-friendly?
Also, how will this change in the future if Cardano gains the same popularity as Ethereum or Bitcoin? Will this cause Cardano to become more energy intensive to mine, thus making it less eco-friendly?

The rate of transactions per second does not affect Cardano's power consumption significantly, but implementation of smart contracts, scaling mechanisms, etc. may have a measurable impact in the future.
Cardano is largely as eco-friendly as all proof-of-stake blockchains.  Its actual energy consumption is roughly the power consumption of a typical staking pool node times the number of staking pool nodes.  The power consumption per transaction is millions of times more energy efficient than Bitcoin.
In general

Proof-of-work (PoW) blockchains rely on the miner's ability to produce the answer to a question whose answer must be guessed, then proven to be correct.  The more guesses and proofs that the miner can make per second, the higher their odds of winning the next reward.
Proof of stake (PoS) blockchains rely on the quantity of a cryptocurrency owned or delegated to the miner to raise their odds in a fair lottery to win the next reward

PoW blockchains favor miners with the most computing power and PoS blockchains favor miners with the most coins (owned or delegated).
Over time this has led to the two largest PoW cryptocurrencies (Bitcoin and Ethereum) using millions of times more power than PoS blockchains.
Cambridge Bitcoin Electricity Consumption Index


text:
Hasura - Graphql Playground throws "GET query missing" 400 status code response
I am trying to setup my graphql web UI console as below:
[![enter image description here][1]][1]
Hausra CLI - version=v1.3.3
Hasura GraphQL Engine: v1.3.1-beta1
So when I navigate to :3100 I get "GET query missing" 400 status code response. That is, when I visit port 3100 in browser I don't get a UI. Instead i get plain text "GET query missing"
Edit:
Ok so I learned that it's saying missing query because I did not add query parameter to url below
http://IP:3100/

If I add a parameter I get a proper response:
http://IP:3100/v1/graphq?query={hello}

and that nice I guess I can use this for development. But it would be nice to have the playground pictured above
[1]: https://i.stack.imgur.com/P6tEN.png

Can you please include in your question, what you are trying to achive?

Hi Marek, thanks I have edited my question.

How are you running cardano-graphql? Docker? Or from source?

Hi Ben, I built it using nix-build so from source.

Additionally, are you running cardano-graphql locally, on a separate machine on LAN, or on the cloud?

Hi I am running multinode in the cloud. Node1: cardano-node, db-sync, node2:  cardano-node, cardano-graphql. Also edited my answer again please check for additional info.

Thanks for the additional info. I suspect there is an issue with networking/ports/firewall, but am not familiar enough with cloud to hazard a guess. Hope somebody can help!

To access the playground, you have to manually turn it out using this guide.

Thanks Marek, this was helpful!

I suggest building GraphQL with docker-compose as it includes the appropriate dependencies including the playground. The instructions may change in the future and can always be found on the projects readme [0], however currently these are the commands.
Clone the latest release 4.0.0:
git clone \
  --single-branch \
  --branch 4.0.0 \
  --recurse-submodules \
  https://github.com/input-output-hk/cardano-graphql.git \
  && cd cardano-graphql

Run with docker:
docker-compose up -d --build && docker-compose logs -f

And this will launch the playground at http://localhost:3100/graphql
[0] https://github.com/input-output-hk/cardano-graphql


text:
How do I make a payment from a node address to a wallet using cardano-cli on mainnet?
I followed the documentation for building a Relay and Block node.
Part of that involved sending some ADA to the block producing node's address, to be used as a stake pool deposit.
However, the documentation showed the deposit as 2,000,000 lovelace. In fact it's 500,000,000 according to mainnet-shelley-genesis.json, and that's too rich for me to play with tutorials. So I'd like to return the ADA from the Block node to my wallet.
I found this document showing how to make a payment.
I calculated the amount to be the total holding balance of the Block address, less the fee.
The transaction failed. Here's the error:
Command failed: transaction submit  Error: Error while submitting tx: ShelleyTxValidationError ShelleyBasedEraMary (ApplyTxError [LedgerFailure (UtxowFailure (UtxoFailure (OutputTooSmallUTxO [(Addr Mainnet (KeyHashObj (KeyHash "f1a1639d8012278565242d449223c7d40e6e87c81021b99f3bac4749")) (StakeRefBase (KeyHashObj (KeyHash "a9f00a2910b88d5aacd9ef1c8ef4d06ebf7faf1618876a60ed088cc1"))),Value 1 (fromList []))])))])

I don't understand the error, and I'm wondering if the documentation is outdated (given the stake deposit was wrong).
Is there a more current document showing how to submit a payment, using cardano-cli and keys?

If you like using Python, try the Cardano-Tools library that I put together. Its basically a smart wrapper around the CLI that takes care of extra steps for you such as selecting the UTxO(s). You need the cardano-cli installed and a synced cardano-node running. Below is some example code.
from cardano_tools import ShelleyTools

# Test Inputs (example paths)
path_to_cli = "/home/user/.cabal/bin/cardano-cli"
path_to_socket = "/home/user/relay-node/db/node.socket"
working_dir = "/home/user/.cardano-tools/"

# Create a ShelleyTools object
shelley = ShelleyTools(
    path_to_cli,
    path_to_socket,
    working_dir,
    network="--mainnet"  # Can also use testnet magic here
 )

 amt = 10 # Ada to send
 to_addr = "addr1..." # Address to send the ADA to
 from_addr = "addr1..." # Address to send the ADA from
 key_file = "/path/to/addr.skey" # path to the signing key file

 shelley.send_payment(amt, to_addr, from_addr, key_file)

Note that you need the signing key file that belongs to the specific address that you are sending the ADA from.

Thank you, I have not used Python for a while, but I will certainly give it a go.

Hello @nalyd88, that worked just fine after a bit playing about.  Thank you.

Happy to help! Please feel free to leave feedback on our library or make pull requests.

If possible, always use the official documentation to protect yourself from scams. For sending a simple transaction using the cardano-cli, have a look at docs.cardano.org.
As for the error, when inspecting it, you will find it says OutputTooSmallUTxO. This is because of the minUTxOValue protocol parameters which is used to prevent dusting up the UTXO set. It is now set to 10000000 lovelaces, that means you cannot send an output smaller than this amount, which is probably something you are trying to do.

It's also worth practicing with cardano-cli on the testnet rather than using real ADA. Configuration files and instructions are found at docs.cardano.org


text:
How secure is Ouroboros Proof of Stake compared to Bitcoin Proof of Work?
It is generally thought of that Proof of Work is more secure than competing consensus algorithms.
What security guarantees does using a Bitcoin PoW provide, and how does Ouroboros Praos compare? Will future versions of Ouroboros improve the security of the network?

There are several implementations of Ouroboros. Are you referring to any particular one? cardano docs.

I suppose I'm referring to the one in place today (Ouroboros Praos), but I'm interested in what future versions may contribute to this question. Question updated.

This IOHK blog post addresses security in the various versions of Ouroboros at a high level, but doesn't really answer the question asked

I think that's one of the subtle things that Ergo's PoW will be able to help since both share the same EUTxO model.

Initially, consensus protocols using Proof of Stake for sybil resistance faced several technical problems that needed to be addressed in order to provide sufficient security properties in a trustless environment. Among the most important we have:

The nothing at stake problem
Long range attacks
The need for a decentralised and robust source of randomness

The fact that "stake" is not tightly coupled with a physical resource (like energy in PoW) means that when a fork of the chain occurs, there is no direct incentive for a node to pick only one chain. With PoW, validating an additional chain has a significant energy cost for a node. In PoS, it's just some marginal disk, computation and bandwidth usage. Similarly, a malicious node can create an alternative chain from genesis and present it to the network as the legitimate chain, since there is no much cost involved in doing so. These two problems I just described correspond to the nothing at stake and the long range problems, respectively, and for a time were considered unsolvable.
Problem 3. was relatively easy to solve. Ouroboros classic introduced publicly verifiable secret sharing (PVSS), but it was not robust to adaptive attacks (see more details in the linked paper). Then Ouroboros Praos introduced a much more robust mechanism based on Verifiable Random Functions (VRF). In short, with VRFs the pieces of data required to compute the random beacon are computed locally by each node, and are not broadcasted to the network. This way, an attacker cannot know who the next block proposer will be.
The long range problem, also known as the bootstrapping problem, was perhaps one of the most difficult. In simple terms, it is about how to guarantee that a new node joining the network can actually reconstruct the whole blockchain history of the legitimate chain. PoW chains solve this issue with the simple and elegant longest chain rule, and that's probably one of the main reasons why they were considered superior in terms of security. As far as I know, Ouroboros Genesis was the first PoS-based protocol that solved this analytically.
Finally, every blockchain design needs to meet properties such as guaranteed finality and liveness. All the Ouroboros family of protocols provide analytically proven finality and liveness properties under certain theoretical conditions. It is important to make this distinction because the theoretical models might not always take into account all the possible attacks and disruptions that may happen in real world conditions. Also, research results from different blockchains are typically presented over a different set of theoretical assumptions, so it's important to understand them before comparing them.
That being said, recent versions of Ouroboros have been studied under a rather relaxed set of conditions, and according to the results presented in the papers, their security properties are comparable to those of Bitcoin.

I take it that problem 1 is no longer considered unsolvable, but has it actually been solved?  Does any of the Ouroboros variants you cited solve it?

@kjo yes, essentially solving 1. is equivalent to guaranteeing persistence/finality. All ouroboros protocols provide a solution for this, but under different system models.

good explanation but problems #1 and #2 solutions are not that explicit, however #3 you address explicitly.  I would recommend editing for a more concise and explicit answer.


text:
Can Daedalus be used to query the blockchain, like a passive node?
Daedalus is a full node wallet application, but can I use the full node to query the ledger?

Daedalus runs its own instance of cardano-node under the hood, so by installing and using cardano-cli, one can connect to this node and interact with the blockchain directly.

Start Daedalus, and wait until it reaches the wallet home screen; the cardano-node.socket file is only made available after the cardano-node has started fully.
Use cardano-cli: [Documentation]

Ubuntu Example (Bash)
export CARDANO_NODE_SOCKET_PATH=/home/$USER/.local/share/Daedalus/mainnet/cardano-node.socket
cardano-cli query tip --mainnet

MacOS Example
export CARDANO_NODE_SOCKET_PATH=~/Library/Application\ Support/Daedalus\ Mainnet/cardano-node.socket
cardano-cli query tip --mainnet

Windows Example (PowerShell)
On Windows, a socket file isn't used, instead we specify the pipe used, which has a different name every time Daedalus runs.
cd "C:\Program Files\Daedalus Mainnet"
$ENV:CARDANO_NODE_SOCKET_PATH = (Get-ChildItem \\.\pipe\ | Where-Object {$_.name -like "cardano-node*"}).FullName
.\cardano-cli.exe query tip --mainnet

Would be nice to have Windows and MacOS examples too, at least the default socket paths

Ah I forgot how awkward it was to get the Windows named pipe :D

@soccer193 Trying it via PowerShell doesn't appear to work. Deadalus is running, node fully sync'd.  "Shelley command failed: query tip  Error: Error while looking up environment variable: CARDANO_NODE_SOCKET_PATH  Error: "CARDANO_NODE_SOCKET_PATH""
If I run:
Get-ChildItem \\.\pipe\ | Where-Object {$_.name -like "cardano-node-mainnet*"}

It returns nothing.  Currently using PowerShell 7.1.3

Hey @ChadCarter, left you a response in the 'Cardano' chat room on the right of this page.

@soccer193 I posted a response in the chat the other day. If you have any ideas on where the socket path should be in Windows, I'd love to know.

I'm no powershell expert. It seems simply calling Get-ChildItem \.\pipe\ doesn't return anything related to cardano.  However, when I downloaded the sysinternals PipeList and ran the 64bit version ( https://download.sysinternals.com/files/PipeList.zip ) I saw a ton more named pipe entries including one called "cardano-node-mainnet.18404.5".  So I ran $ENV:CARDANO_NODE_SOCKET_PATH = "\.\pipe\cardano-node-mainnet.18404.5"      followed by the cli query line and got the result I was after.  What can we do to get PS to see it?

$env:CARDANO_NODE_SOCKET_PATH = [System.IO.Directory]::GetFiles("\\.\\pipe\\") | where { $_ -like "*cardano-node*" }

If you really have to use standard Windows CMD (instead of PowerShell) we first need to get the PID of the right "Daedalus Mainnet" process (there are multiple) eg 12345, then set CARDANO_NODE_SOCKET_PATH eg:
cd "C:\Program Files\Daedalus Mainnet"
set CARDANO_NODE_SOCKET_PATH=\\.\pipe\cardano-node-mainnet.12345.0

(Swap the 12345 with your PID value, see below. You might need to change the .0 too)
Then run your cardano-cli commands eg
cardano-cli query tip --mainnet

This should then work until you restart Daedalus.
Note: make sure Daedalus is fully synced before running cardano-cli
To get the PID manually via Task manager:
I see 4 processes named "Daedalus Mainnet" under the Processes tab in Windows11. Select the one with extra details after the name eg "(4.8.0#23001)" and right-click "Go To Details", note the PID eg 12345.
To get the PID via PowerShell, run:
(Get-ChildItem \\.\pipe\ | Where-Object {$_.name -like "cardano-node*"}).FullName

(Thanks to soccer193 and Tend for this PS snippet)


text:
Why do Daedalus Rewards Report Epoch End Dates differ from other sources?
So I exported my latest rewards report to CSV, as Daedalus allows. The date on the report is April 30, 2021.
If I query the blockchain for my rewards history, the latest rewards I have received are from epoch 261 (Daedalus says we're currently on epoch 263).
Epoch 261 ended on April 25. Why does the report say April 30?
When I check my rewards history on adastat.net, the date on the latest rewards, labeled as from epoch 261, is April 30.
What am I missing?

Rewards for a given epoch X are paid out at the end of the next epoch, X+1. This is because the calculation of which stake keys get rewards is done during epoch X+1.
Applying this to your example, the order of events would be:

April 25th - epoch 261 ends
April 30th - epoch 262 ends - rewards from epoch 261 are paid
April 30th - epoch 263 starts - CSV report and adastat.net list current date and epoch.

The terminology of rewards being "paid" is somewhat misleading, since there are no transactions that correspond to the rewards entering your wallet. Instead, the amount of rewards for all stake keys is stored separately in the ledger, and that table is updated on epoch boundaries. Your private stake key then allows you to withdraw/send the rewards along with regular transactions.

If you combine our answers, I will delete mine.

@gRebel I've included your answer verbatim, thanks!

and improved on it.


text:
Will Cardano's transaction fees be expensive (similar to ETH gas) in the future?
I found this cost formula:

As you can see, the larger the transaction, the more resources are needed to store and process it.
So, my question is: Will Cardano's transaction fees be expensive(similar to ETH gas) in the future?

My answer is no. And there are two reasons.

Cardano is a PoS protocol. Therefore, users don't pay for electricity cost. In a PoW system, miners need to solve computational questions to be able to produce blocks which consumes electricity. This price is covered by users when users make transactions.

Cardano will have more TPS compares to Ethereum currently which also contributes to a lower transaction fee.

However, on-chain solutions have limitations. Blockchains need to implement off-chain solutions to increase TPS and lower transaction to be able to make microtransactions. Cardano has given their solution which is called Ouroboros Hydra.

hum, PoS is still have storage problem, what will happen when the storage is scale up day by day?

@RongNguyen about the size of the blockchain, there currently is a question: https://cardano.stackexchange.com/a/280/38 but it is indeed two question in one, the first asks for its size nowadays. I think you could/should ask a dedicated question in your theme "what will happen when the storage is scale up day by day". Maybe provide some more details about your concern. For example in the other question I could not provide the information of the speed at which the blockchain grows. That's the sort of detail that could be really helpful.

The transaction fees can be changed if required "to react and adapt to changes in transaction volume, hardware prices and ADA valuations".
They are not being changed for the foreseeable future.  In the longer term these can be changed but will be unlikely to change frequently.  A major benefit of the ADA approach is that it gives a high degree of predictability to transactions.  Each change would require proposal, planning, agreement and a hard-fork event.
Given the goals of Cardano and the likely increase in the value of ADA over time, I believe the cost in ADA is more likely to decrease than increase.  If Cardano is to achieve its goal of banking the unbanked the cost will probably go down in real terms too.
Eth fees are high partly to prioritize transactions and mitigate Eth's performance bottleneck for those that can afford it. Cardano has no way to pay for transaction priority.

Thank you for your answer, I hope your desired function will be available!


text:
Can two-factor authentication (2FA) be added to the Daedalus and Yoroi wallets?
I would like to ask if it is possible to implement 2FA at the wallets of cardano for increased security. As I see it we like to attract people from developing world they don't have access to hardware wallets and definitely the price of them isn't helping.
So is it possible?

What configuration are you suggesting?  2FA and wallet on the same mobile phone?

Yes like Google authenticator

I'd love the multi-sig. I really don't trust password only for anything of high value, so its a huge barrier of entry for others as well I'm sure.

2FA (in the traditional sense) relies on a shared secret. By design, this can only work in a centralized environment like an exchange or an online wallet, not with a wallet that interacts directly with the blockchain.
But there are other ways to achieve this, and a multi-sig would be possible and kind of the blockchain equivalent of 2FA. Multi-sig means, for example, you need two private keys to access the funds. (both keys should live on different devices)
There are also more advanced and configurable multi-sig solutions (m-of-n type) like: there are three private keys (m), and two of them (n) are sufficient to control the funds. We will see beautiful solutions here in the future.

I think it should become more feasible at a lower price, once the wallets start supporting Yubikeys as 2FA, via multisig. So, you would then be able to setup your wallet so that the Yubikey signature is required on all transactions, in addition to the signature from your spending password.


text:
What happens to fees when Cardano's chain reaches 1509GB data?
We can see the current Ethereum size is greater than 1509GB, and Ethereum's gas fee is too expensive. My question is what happens to fees when Cardano's chain reaches 1509GB data?

The fees are based on the size of the transactions and have nothing to do with the blockchain size. I think the same applies to Etherum.
About when we will see the size of the blockchain depends on the usage of network of course. But if we keep the current max_block_size set to 65536 bytes and account for about average of 4320 blocks a a day it is about 280MB a day with full capacity usage.
In theory, it would take about 14 months to reach 1 509 GB of size if the network has been utilized to its fullest potential, almost 11 years if we use only 10% of the network capacity.
But that is very theoretical and it the real world, we will probably get shredding mechanisms before reaching that size.

Based on Official Cardano website: Fee is based on "How much does it cost to run a full node?" => you means storage does not affect when running a full node?

Oh, right, but that is different. You are talking about the fixed fee that a stake pool received upon a block creation, which is not set to 340 ADA per epoch. This is related to staking rewards, not the transactions.

The transaction fee for Ethereum does not rely on the size of the blockchain, but how many transactions there are in a given time. Like I understand it Ethereum uses an auction model for transaction fees, meaning that more transactions (more demand) equals higher fees.
Cardano's fees are constant and do not rely on either the size of the blockchain or the transaction demand, but can be calculated like this:
Transaction fees (in ADA) =  0.155381 + 0.000043946 x [size of transaction, in bytes]
The average transaction fees is currently at ~0.22 ADA per transaction (more details here).

@StephaneRolland deleted, thank you!

@RongNguyen you're welcome :-)


text:
What does Atala Prism use ADA and the Cardano network for?
Can Atala Prism operate or be useful without performing transactions that require ADA?

No. If Atala Prism is going to record its information on the Cardano blockchain (as IOG have said on numerous occasions), then it will have to do so with transactions that pay transaction fees in ADA.
For example, that means that the 5 million Ethiopian high schoolers enrolled in Atala will be driving some transaction volume into the Cardano blockchain.

Some more information you can find on youtube.
Atala can store x-thousand DID´s in 1 Cardano-Block.
Therefore to create 5 mio ID´s it will not need to creade 5 Mio transactions.
https://youtu.be/8AbgzvOeb6w

Atala Prism use the public key infrastracture from Cardano.
I think this means that the key to the ID is on the Blockchain but for daily use the ID owner and the institution have not to connect to it because the information is on the users phone and only if the owner make a new degree it will connect to the Blockchain. I am not sure.
Hopefully this will be more clear in future.


text:
Could the Daedalus wallet use less space on laptops?
I use my laptop to store some of my ADA. Unfortunately, running low on disk space, I cannot afford to store the whole ADA blockchain locally.
What are the options for people like me that need to run the Daedalus wallet on low disk space?

Do you need to run the full Daedalus wallet? On low-storage system I'd suggest looking at Yoroi which is a 'light wallet' that doesn't require its own local node.

Besides running trustless, do you have a set of features that the Daedalus wallet supports that the Yoroi wallet does not support?

@LaX here's a good overview https://iohk.zendesk.com/hc/en-us/articles/360026058573-Daedalus-wallet-and-Yoroi-wallet-overview

That overview is misleading, as there are many inconsistencies. Daedalus is far from fully trust-less, it forces you to connect to IOHK nodes, so in this regard it provides the same level of trustfulness as Yoroi. Also, Yoroi browser extension also support multiple wallets.

For Windows environment, this page on the Cardano forum has the solution. It works!
https://forum.cardano.org/t/storing-the-cardano-blockchain-on-another-hard-drive-flash-drive/3699

One solution I have found for now on macOS is to move part of the Daedalus files to an external volume.
To do that on macOS:

Ensure you went through Daedalus onboarding (to let it create its directory structure)
Close the Daedalus wallet (even if it isn't done syncing the Blockchain)
Open a terminal, and run:
export EXTERNAL_DRIVE_PATH=/Volumes/<enter the drive name here>/Daedalus/chain
mkdir -p "$EXTERNAL_DRIVE_PATH"
mv "~/Library/Application Support/Daedalus Mainnet/chain/immutable" "$EXTERNAL_DRIVE_PATH/immutable"
ln -s "$EXTERNAL_DRIVE_PATH/immutable" "~/Library/Application Support/Daedalus Mainnet/chain/immutable"

Open the Daedalus wallet, and let it synchronise normally

These commands move the ~/Library/Application Support/Daedalus Mainnet/chain/immutable folder to an external drive and alias it back so that Daedalus knows where to write.
This solution might break in future versions of Daedalus, and I would only recommend it as a temporary workaround. Also, I assume disconnecting the drive with Daedalus still open would somehow break it but I haven't tested this scenario.

This is working in Ubuntu over LAN. The immutable can be in NAS and accessed. I am not aware of the security implications.