Infinite loop in a viewError: “message”:“function ”Ballot“ arguments must include ”proposalNames“”}Solidity: How could I decrease gas usage of complex structs?Calling a function on an existing contractThis contract does not implement all functions and thus cannot be createdWarning Message Relating To Gas and Infinite Loopstruct with mapping member in solidityParse string into multiple variablesHow is gas adjusted for a transfer in solidity?How to handle dynamic size string array in solidity?remix ERC223: This contract does not implement all functions and thus cannot be created

Increase performance creating Mandelbrot set in python

Efficient way to transport a Stargate

Why are there no referendums in the US?

Escape a backup date in a file name

How long to clear the 'suck zone' of a turbofan after start is initiated?

Unreliable Magic - Is it worth it?

How do I rename a Linux host without needing to reboot for the rename to take effect?

Customer Requests (Sometimes) Drive Me Bonkers!

Trouble understanding the speech of overseas colleagues

Short story about space worker geeks who zone out by 'listening' to radiation from stars

Avoiding estate tax by giving multiple gifts

How to be diplomatic in refusing to write code that breaches the privacy of our users

Method to test if a number is a perfect power?

Energy of the particles in the particle accelerator

Anatomically Correct Strange Women In Ponds Distributing Swords

Implement the Thanos sorting algorithm

Would this custom Sorcerer variant that can only learn any verbal-component-only spell be unbalanced?

What can we do to stop prior company from asking us questions?

Sequence of Tenses: Translating the subjunctive

Why does indent disappear in lists?

System.debug(JSON.Serialize(o)) Not longer shows full string

Roman Numeral Treatment of Suspensions

What grammatical function is や performing here?

Where does the Z80 processor start executing from?



Infinite loop in a view


Error: “message”:“function ”Ballot“ arguments must include ”proposalNames“”}Solidity: How could I decrease gas usage of complex structs?Calling a function on an existing contractThis contract does not implement all functions and thus cannot be createdWarning Message Relating To Gas and Infinite Loopstruct with mapping member in solidityParse string into multiple variablesHow is gas adjusted for a transfer in solidity?How to handle dynamic size string array in solidity?remix ERC223: This contract does not implement all functions and thus cannot be created













3















How is ethereum network protected against infinite loops in views? In normal transaction you have to pay a gass, so it would be too expensive for you, but calls to views are for free.



For example this:



contract Tester 

function loo() public pure returns(string memory)
uint i = 1;
uint c = 0;
while(i == 1)
c = c + 1;

return "good";




I tried to call this in Remix and it crashed.










share|improve this question


























    3















    How is ethereum network protected against infinite loops in views? In normal transaction you have to pay a gass, so it would be too expensive for you, but calls to views are for free.



    For example this:



    contract Tester 

    function loo() public pure returns(string memory)
    uint i = 1;
    uint c = 0;
    while(i == 1)
    c = c + 1;

    return "good";




    I tried to call this in Remix and it crashed.










    share|improve this question
























      3












      3








      3








      How is ethereum network protected against infinite loops in views? In normal transaction you have to pay a gass, so it would be too expensive for you, but calls to views are for free.



      For example this:



      contract Tester 

      function loo() public pure returns(string memory)
      uint i = 1;
      uint c = 0;
      while(i == 1)
      c = c + 1;

      return "good";




      I tried to call this in Remix and it crashed.










      share|improve this question














      How is ethereum network protected against infinite loops in views? In normal transaction you have to pay a gass, so it would be too expensive for you, but calls to views are for free.



      For example this:



      contract Tester 

      function loo() public pure returns(string memory)
      uint i = 1;
      uint c = 0;
      while(i == 1)
      c = c + 1;

      return "good";




      I tried to call this in Remix and it crashed.







      solidity transactions blockchain dapps






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 18 hours ago









      Banana CakeBanana Cake

      423




      423




















          1 Answer
          1






          active

          oldest

          votes


















          5














          When view function is executed on-chain, i.e. within mined transaction, it consumes gas, and this protects node from infinite loop. When executed off-chain via Web3 API, caller is still able to specify gas limit for the execution, see documentation.



          If gas limit is not specified, it is up to particular implementation how to protect from such things, because they affect only the process that executes transaction off-chain, and do not affect other nodes. Some implementations may be unprotected, and it seems that REMIX is one of such unprotected implementations.






          share|improve this answer

























          • For example if none is specified geth will use the current block gas limit.

            – Ismael
            9 hours ago











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "642"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f68914%2finfinite-loop-in-a-view%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          5














          When view function is executed on-chain, i.e. within mined transaction, it consumes gas, and this protects node from infinite loop. When executed off-chain via Web3 API, caller is still able to specify gas limit for the execution, see documentation.



          If gas limit is not specified, it is up to particular implementation how to protect from such things, because they affect only the process that executes transaction off-chain, and do not affect other nodes. Some implementations may be unprotected, and it seems that REMIX is one of such unprotected implementations.






          share|improve this answer

























          • For example if none is specified geth will use the current block gas limit.

            – Ismael
            9 hours ago
















          5














          When view function is executed on-chain, i.e. within mined transaction, it consumes gas, and this protects node from infinite loop. When executed off-chain via Web3 API, caller is still able to specify gas limit for the execution, see documentation.



          If gas limit is not specified, it is up to particular implementation how to protect from such things, because they affect only the process that executes transaction off-chain, and do not affect other nodes. Some implementations may be unprotected, and it seems that REMIX is one of such unprotected implementations.






          share|improve this answer

























          • For example if none is specified geth will use the current block gas limit.

            – Ismael
            9 hours ago














          5












          5








          5







          When view function is executed on-chain, i.e. within mined transaction, it consumes gas, and this protects node from infinite loop. When executed off-chain via Web3 API, caller is still able to specify gas limit for the execution, see documentation.



          If gas limit is not specified, it is up to particular implementation how to protect from such things, because they affect only the process that executes transaction off-chain, and do not affect other nodes. Some implementations may be unprotected, and it seems that REMIX is one of such unprotected implementations.






          share|improve this answer















          When view function is executed on-chain, i.e. within mined transaction, it consumes gas, and this protects node from infinite loop. When executed off-chain via Web3 API, caller is still able to specify gas limit for the execution, see documentation.



          If gas limit is not specified, it is up to particular implementation how to protect from such things, because they affect only the process that executes transaction off-chain, and do not affect other nodes. Some implementations may be unprotected, and it seems that REMIX is one of such unprotected implementations.







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 9 hours ago

























          answered 18 hours ago









          Mikhail VladimirovMikhail Vladimirov

          914314




          914314












          • For example if none is specified geth will use the current block gas limit.

            – Ismael
            9 hours ago


















          • For example if none is specified geth will use the current block gas limit.

            – Ismael
            9 hours ago

















          For example if none is specified geth will use the current block gas limit.

          – Ismael
          9 hours ago






          For example if none is specified geth will use the current block gas limit.

          – Ismael
          9 hours ago


















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Ethereum Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fethereum.stackexchange.com%2fquestions%2f68914%2finfinite-loop-in-a-view%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Log på Navigationsmenu

          Wonderful Copenhagen (sang) Eksterne henvisninger | NavigationsmenurSide på frankloesser.comWonderful Copenhagen

          Detroit Tigers Spis treści Historia | Skład zespołu | Sukcesy | Członkowie Baseball Hall of Fame | Zastrzeżone numery | Przypisy | Menu nawigacyjneEncyclopedia of Detroit - Detroit TigersTigers Stadium, Detroit, MITigers Timeline 1900sDetroit Tigers Team History & EncyclopediaTigers Timeline 1910s1935 World Series1945 World Series1945 World Series1984 World SeriesComerica Park, Detroit, MI2006 World Series2012 World SeriesDetroit Tigers 40-Man RosterDetroit Tigers Coaching StaffTigers Hall of FamersTigers Retired Numberse