Ethereum: Was ist eine Call Transaction? - Hilfe!steemCreated with Sketch.

in #deutsch5 years ago (edited)

Guten Morgen,

Ich habe eine Frage bezüglich Ethereum. Und zwar habe ich mir bein Bison Ethereum gekauft und dieses auf mein Ledger Wallet auszahlen lassen. In der Ledger Wallet wird mir angezeigt, dass ETH ankam, aber es wird mir keine Transaktion angezeigt, so wie es sonst geschieht. Gehe ich auf Etherhain wird mir die Transaction angezeigt, allerdings mit dem Type "Call".

Als ich vor einem Monat das erste mal ETH von Binance auf meinen Ledger Wallet (eine anderen account auf demselben Ledger) transferiert habe, wurde mir eine Transaktion im Ledger angezeigt:

Und auch auf etherchain.org wird ein anderer transactionstyp angezeigt, nämlich "Tx":

Ich frage mich jetzt, was das zu bedeuten hat. Ist die "Call" Transaction von Bison eine richtige Transaktion? Habe ich dieses ETH sicher in meiner Wallet oder hat Bison oder Dritte da noch Zugriff drauf? Es wäre ziemlich cool, wenn mir die Frage jemand beantworten könnte!
Gruß @Hatoto

Bildquelle


Sort:  

ein call ist etwas was "vorrausgeschickt" wird/ ein test ohne Gas zu konsumieren. Eine Schätzung die im Prinzip anklopft und fragt ob es sich lohnt die Transaktion auszuführen oder ob es Probleme geben wird wie "out of Gas oder so". Streng genommen wird ein Call nicht geschickt sondern local ausgeführt. Ein simulation der geplanten Transaktion wenn man so will.

Denke mal das gehört zur guten Praxis so mancher dApp. PS. call + transaktion = call-transaction also ja es wurde übersand. Ansosnten kannst du doch mit einem Blockexplorer prüfen.

Danke für deine Hilfe @lauch3d
Für mich ist das ein Widerspruch. Entweder ich simuliere/teste/klopfe an oder ich führe etwas aus.

Wird die Ausführung der Transaktion dann auf später verschoben (wenn zb die Gebühren geringer sind)? Gibt es eine Möglichkeit, dass die Transaktion nicht ausgeführt wird? Also, dass ich den Zugriff auf das ETH verliere?

Naja du hast den Smartcontract auf deinem PC und führst ihn als read-only aus. Das heist du interagierst nicht mit der Chain.

eth_call gibt dir den Wert des ausgeführten Contracts, nur eben mit dem kleinen Unterschied, dass es nicht ausgeführt wird (es wird nur berechnet/geschätzt).

Ob eine Transaktion folgt kommt drauf an was das Programm initiiert. Wenn du nur den Befehl eth_call oder eth_estimateGasUsed oder eth_estimateGasLimit ausführst, dann wird logischerweise auch nicht gesendet.

Höchstwahrscheinlich wird ein bestimmter Wert erwartet bevor gesendet wird. Was tatsächlich beim tatsächlichen Ausführen passiert kannst du nur Wissen wenn du es ausführst mit dem Risiko out of Gas zu laufen.

Du debuggst den Contract. Ethereum bzw. die Programmiersprache (Solidity) ist ja theoretisch turing-vollständig mit allen möglichen Schleifen-Befehlen. Solches Schleifen ermöglichen auch Programme die nie terminieren. Entweder praktisch in der Laufzeit nicht oder fundamental niemals nie. Du hängst also fest und läufst out of gas. Wodurch Ethereum bzw. die Programme dann praktisch eben doch irgendwann zwangsläufig terminieren.

Wenn du einen Contract voll mit Buggs hast. Wird er nicht ausgeführt und es bleibt allein der Call. Was jetzt genau die Werte sind die erwatet werden kann ich dir nicht sagen. *keine Garantie, so habe ich es zumindest verstanden ^^

Danke, dass dir so viel Mühe gibst, aber ich verstehe kein Wort.

Inzwischen habe ich eine Antwort von Bison erhalten:

Hey ....,
eine Transaktion mit Type Call auf etherchain.org ist eine Transaktion die durch einen Smart Contract initiiert wurde.
Mit Type Tx wurde die Transaktion durch ein Wallet initiiert.
Bei einer Transaktion von einem Smart Contract kann die Aufteilung zwischen dem Call auf den Contract und resultierender Tx im Tx view von etherchain im Punkt Actions angezeigt werden.
Dort sind der Call und die daraus resultierende Tx aufgelistet: https://www.etherchain.org/tx/a186b91657675094e20419c93a562f0c9a0882234f03f0b5cf4555e3ee188704
Ich hoffe ich konnte dir deine Frage damit beantworten. Falls du weitere Fragen hast, melde dich gerne bei uns.
Viele Grüße

Vielleicht bin ich paranoid.... Ich möchte nur verhindern, dass ich vergesse noch irgendwas zu tun oder irgendwas falsch mache und ich in 5 Jahren nicht auf mein ETH zugreifen kann, weil zb Bison bankrott ist,deren Funds gestohlen wurden oder die in ihrer Technik Abteilung rumgemurkst haben.

Congratulations! This post has been upvoted from the communal account, @minnowsupport, by Hatoto from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.

If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.

Coin Marketplace

STEEM 0.25
TRX 0.11
JST 0.032
BTC 61275.32
ETH 2983.86
USDT 1.00
SBD 3.76