Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Solidity±àдÖÇÄܺÏÔ¼£¨ÈëÃÅ£©
 
  1682  次浏览      27
2020-4-26
 
±à¼­ÍƼö:
ÏÈ´ÓÒ»¸ö·Ç³£»ù´¡µÄÀý×Ó¿ªÊ¼£¬²»Óõ£ÐÄ\Ò»µã¶¼²»Á˽⣬½«Öð²½Á˽⵽¸ü¶àµÄϸ½Ú¡£
±¾ÎÄÀ´×ÔÓÚ Solidity ¹Ù·½ÎĵµÖÐÎİ棬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ò»¸ö¼òµ¥µÄÖÇÄܺÏÔ¼

´æ´¢

contract SimpleStorage {
uint storedData;
function set(uint x) {
storedData = x;
}
function get() constant returns (uint retVal) {
return storedData;
}
}

 

ÔÚSolidityÖУ¬Ò»¸öºÏÔ¼ÓÉÒ»×é´úÂ루ºÏÔ¼µÄº¯Êý£©ºÍÊý¾Ý£¨ºÏÔ¼µÄ״̬£©×é³É¡£ºÏԼλÓÚÒÔÌ«·»Çø¿éÁ´ÉϵÄÒ»¸öÌØÊâµØÖ·¡£uint storedData; ÕâÐдúÂëÉùÃ÷ÁËÒ»¸ö״̬±äÁ¿£¬±äÁ¿ÃûΪstoredData£¬ÀàÐÍΪ uint £¨256bitsÎÞ·ûºÅÕûÊý£©¡£Äã¿ÉÒÔÈÏΪËü¾ÍÏñÊý¾Ý¿âÀïÃæµÄÒ»¸ö´æ´¢µ¥Ôª£¬¸ú¹ÜÀíÊý¾Ý¿âÒ»Ñù£¬¿ÉÒÔͨ¹ýµ÷Óú¯Êý²éѯºÍÐÞ¸ÄËü¡£ÔÚÒÔÌ«·»ÖУ¬Í¨³£Ö»ÓкÏÔ¼ µÄÓµÓÐÕß²ÅÄÜÕâÑù×ö¡£ÔÚÕâ¸öÀý×ÓÖУ¬º¯Êý set ºÍ get ·Ö±ðÓÃÓÚÐ޸ĺͲéѯ±äÁ¿µÄÖµ¡£

¸úºÜ¶àÆäËûÓïÑÔÒ»Ñù£¬·ÃÎÊ״̬±äÁ¿Ê±£¬²»ÐèÒªÔÚÇ°ÃæÔö¼Ó this. ÕâÑùµÄǰ׺¡£

Õâ¸öºÏÔ¼»¹ÎÞ·¨×öºÜ¶àÊÂÇ飨ÊÜÏÞÓÚÒÔÌ«·»µÄ»ù´¡ÉèÊ©£©£¬½ö½öÊÇÔÊÐíÈκÎÈË´¢´æÒ»¸öÊý×Ö¡£¶øÇÒÊÀ½çÉÏÈκÎÒ»¸öÈ˶¼¿ÉÒÔÀ´´æÈ¡Õâ¸öÊý×Ö£¬È±ÉÙÒ»¸ö£¨¿É¿¿ µÄ£©·½Ê½À´±£»¤Äã·¢²¼µÄÊý×Ö¡£ÈκÎÈ˶¼¿ÉÒÔµ÷ÓÃset·½·¨ÉèÖÃÒ»¸ö²»Í¬µÄÊý×Ö¸²¸ÇÄã·¢²¼µÄÊý×Ö¡£µ«ÊÇÄãµÄÊý×Ö½«»áÁô´æÔÚÇø¿éÁ´µÄÀúÊ·ÉÏ¡£ÉÔºóÎÒÃÇ»áѧϰÈç ºÎÔö¼ÓÒ»¸ö´æÈ¡ÏÞÖÆ£¬Ê¹µÃÖ»ÓÐÄã²ÅÄÜÐÞ¸ÄÕâ¸öÊý×Ö¡£

´ú±ÒµÄÀý×Ó

½ÓÏÂÀ´µÄºÏÔ¼½«ÊµÏÖÒ»¸öÐÎʽ×î¼òµ¥µÄ¼ÓÃÜ»õ±Ò¡£¿ÕÖÐÈ¡±Ò²»ÔÙÊÇÒ»¸öħÊõ£¬µ±È»Ö»Óд´½¨ºÏÔ¼µÄÈ˲ÅÄÜ×öÕâ¼þÊÂÇ飨ÏëÓÃÆäËû»õ±Ò·¢ÐÐģʽҲºÜ¼òµ¥£¬Ö»ÊÇʵÏÖϸ½ÚÉϵIJîÒ죩¡£¶øÇÒÈκÎÈ˶¼¿ÉÒÔ·¢ËÍ»õ±Ò¸øÆäËûÈË£¬²»ÐèҪע²áÓû§ÃûºÍÃÜÂ룬ֻҪÓÐÒ»¶ÔÒÔÌ«·»µÄ¹«Ë½Ô¿¼´¿É¡£

×¢Òâ

¶ÔÓÚÔÚÏßsolidity»·¾³À´Ëµ£¬Õâ²»ÊÇÒ»¸öºÃµÄÀý×Ó¡£Èç¹ûÄãʹÓÃÔÚÏßsolidity»·¾³ À´³¢ÊÔÕâ¸öÀý×Ó¡£µ÷Óú¯Êýʱ£¬½«ÎÞ·¨¸Ä±äfromµÄµØÖ·¡£ËùÒÔÄãÖ»ÄܰçÑÝÖý±ÒÕߵĽÇÉ«£¬¿ÉÒÔÖýÔì»õ±Ò²¢·¢Ë͸øÆäËûÈË£¬¶øÎÞ·¨°çÑÝÆäËûÈ˵ĽÇÉ«¡£ÕâµãÔÚÏß solidity»·¾³½«À´»á×ö¸Ä½ø¡£

contract Coin {

//¹Ø¼ü×Ö¡°public¡±Ê¹±äÁ¿ÄÜ´ÓºÏÔ¼Íⲿ·ÃÎÊ¡£
address public minter;
mapping (address => uint) public balances;

//ʼþÈÃÇá¿Í»§¶ËÄܸßЧµÄ¶Ô±ä»¯×ö³ö·´Ó¦¡£
event Sent(address from, address to, uint amount);

//Õâ¸ö¹¹Ô캯ÊýµÄ´úÂë½ö½öÖ»ÔÚºÏÔ¼´´½¨µÄʱºò±»ÔËÐС£
function Coin() {
minter = msg.sender;
}
function mint(address receiver, uint amount) {
if (msg.sender != minter) return;
balances[receiver] += amount;
}
function send(address receiver, uint amount) {
if (balances[msg.sender] < amount) return;
balances[msg.sender] -= amount;
balances[receiver] += amount;
Sent(msg.sender, receiver, amount);
}
}

 

Õâ¸öºÏÔ¼ÒýÈëÁËһЩеĸÅÄÈÃÎÒÃÇÒ»¸öÒ»¸öÀ´¿´Ò»Ï¡£

address public minter ÕâÐдúÂëÉùÃ÷ÁËÒ»¸ö¿É¹«¿ª·ÃÎʵÄ״̬±äÁ¿£¬ÀàÐÍΪaddress¡£addressÀàÐ͵ÄÖµ´óСΪ160 bits£¬²»Ö§³ÖÈκÎËãÊõ²Ù×÷¡£ÊÊÓÃÓÚ´æ´¢ºÏÔ¼µÄµØÖ·»òÆäËûÈ˵Ĺ«Ë½Ô¿¡£public¹Ø¼ü×Ö»á×Ô¶¯ÎªÆäÐÞÊεÄ״̬±äÁ¿Éú³É·ÃÎʺ¯Êý¡£Ã»ÓÐpublic¹Ø¼ü ×ֵıäÁ¿½«ÎÞ·¨±»ÆäËûºÏÔ¼·ÃÎÊ¡£ÁíÍâÖ»Óб¾ºÏÔ¼ÄڵĴúÂë²ÅÄÜдÈë¡£×Ô¶¯Éú³ÉµÄº¯ÊýÈçÏ£º

function minter() returns (address) { return minter; }

µ±È»ÎÒÃÇ×Ô¼ºÔö¼ÓÒ»¸öÕâÑùµÄ·ÃÎʺ¯ÊýÊÇÐв»Í¨µÄ¡£±àÒëÆ÷»á±¨´í£¬Ö¸³öÕâ¸öº¯ÊýÓëÒ»¸ö״̬±äÁ¿ÖØÃû¡£

ÏÂÒ»ÐдúÂëmapping (address => uint) public balances; ´´½¨ÁËÒ»¸öpublicµÄ״̬±äÁ¿£¬µ«ÊÇÆäÀàÐ͸ü¼ÓµÄ¸´ÔÓ¡£¸ÃÀàÐͽ«Ò»Ð©addressÓ³Éäµ½ÎÞ·ûºÅÕûÊý¡£mapping¿ÉÒÔ±»ÈÏΪÊÇÒ»¸ö¹þÏ£±í£¬Ã¿Ò»¸ö¿ÉÄܵÄkey¶ÔÓ¦µÄvalue±»ÐéÄâµÄ³õʼ»¯ÎªÈ«0.Õâ¸öÀà±È²»ÊǺÜÑϽ÷£¬¶ÔÓÚÒ»¸ömapping£¬ÎÞ·¨»ñȡһ¸ö°üº¬ÆäËùÓÐkey»òÕßvalue µÄÁ´±í¡£ËùÒÔÎÒÃǵÃ×Ô¼º¼Ç×ÅÌí¼ÓÁËÄÄЩ¶«Î÷µ½mappingÖС£¸üºÃµÄ·½Ê½ÊÇά»¤Ò»¸öÕâÑùµÄÁ´±í£¬»òÕßʹÓÃÆäËû¸ü¸ß¼¶µÄÊý¾ÝÀàÐÍ¡£»òÕßÖ»ÔÚ²»ÊÜÕâ¸öȱÏÝÓ° ÏìµÄ³¡¾°ÖÐʹÓÃmapping£¬¾ÍÏñÕâ¸öÀý×Ó¡£ÔÚÕâ¸öÀý×ÓÖÐÓÉpublic¹Ø¼ü×ÖÉú³ÉµÄ·ÃÎʺ¯Êý½«»á¸ü¼Ó¸´ÔÓ£¬Æä´úÂë´óÖÂÈçÏ£º

function balances(address _account) returns (uint balance) {
return balances[_account];
}

ÎÒÃÇ¿ÉÒԺܷ½±ãµÄͨ¹ýÕâ¸öº¯Êý²éѯij¸öÌØ¶¨Õ˺ŵÄÓà¶î¡£

event Sent(address from, address to, uint value)ÕâÐдúÂëÉùÃ÷ÁËÒ» ¸ö¡°Ê¼þ¡±¡£ÓÉsendº¯ÊýµÄ×îºóÒ»ÐдúÂë´¥·¢¡£¿Í»§¶Ë£¨·þÎñ¶ËÓ¦ÓÃÒ²ÊÊÓã©¿ÉÒÔÒԺܵ͵ĿªÏúÀ´¼àÌýÕâЩÓÉÇø¿éÁ´´¥·¢µÄʼþ¡£Ê¼þ´¥·¢Ê±£¬¼àÌýÕß»áͬʱ½Ó ÊÕµ½from£¬to£¬valueÕâЩ²ÎÊýÖµ£¬¿ÉÒÔ·½±ãµÄÓÃÓÚ¸ú×Ù½»Òס£ÎªÁ˼àÌýÕâ¸öʼþ£¬Äã¿ÉÒÔʹÓÃÈçÏ´úÂ룺

Coin.Sent().watch({}, '', function(error, result) {
if (!error) {
console.log("Coin transfer: " + result.args.amount +
" coins were sent from " + result.args.from +
" to " + result.args.to + ".");
console.log("Balances now:\n" +
"Sender: " + Coin.balances.call(result.args.from) +
"Receiver: " + Coin.balances.call(result.args.to));
}
}

×¢ÒâÔÚ¿Í»§¶ËÖÐÊÇÈçºÎµ÷ÓÃ×Ô¶¯Éú³ÉµÄ balances º¯ÊýµÄ¡£

ÕâÀïÓиö±È½ÏÌØÊâµÄº¯Êý Coin¡£ËüÊÇÒ»¸ö¹¹Ô캯Êý£¬»áÔÚºÏÔ¼´´½¨µÄʱºòÔËÐУ¬Ö®ºó¾ÍÎÞ·¨±»µ÷Óá£Ëü»áÓÀ¾ÃµÃ´æ´¢ºÏÔ¼´´½¨ÕߵĵØÖ·¡£msg£¨ÒÔ¼°txºÍblock£©ÊÇÒ»¸öÉñÆæµÄ È«¾Ö±äÁ¿£¬Ëü°üº¬ÁËһЩ¿ÉÒÔ±»ºÏÔ¼´úÂë·ÃÎʵÄÊôÓÚÇø¿éÁ´µÄÊôÐÔ¡£msg.sender ×ÜÊÇ´æ·Å×ŵ±Ç°º¯ÊýµÄÍⲿµ÷ÓÃÕߵĵØÖ·¡£

×îºó£¬ÕæÕý±»Óû§»òÕ߯äËûºÏÔ¼µ÷Óã¬ÓÃÀ´Íê³É±¾ºÏÔ¼¹¦Äܵĺ¯ÊýÊÇmintºÍsend¡£Èç¹ûºÏÔ¼´´½¨ÕßÖ®ÍâµÄÆäËûÈ˵÷ÓÃmint£¬Ê²Ã´¶¼²»»á·¢Éú¡£¶ø send¿ÉÒÔ±»ÈκÎÈË£¨ÓµÓÐÒ»¶¨ÊýÁ¿µÄ´ú±Ò£©µ÷Ó㬷¢ËÍһЩ±Ò¸øÆäËûÈË¡£×¢Ò⣬µ±Äãͨ¹ý¸ÃºÏÔ¼·¢ËÍһЩ´ú±Òµ½Ä³¸öµØÖ·£¬ÔÚÇø¿éÁ´ä¯ÀÀÆ÷Öвéѯ¸ÃµØÖ·½«Ê²Ã´ Ò²¿´²»µ½¡£ÒòΪ·¢ËÍ´ú±Òµ¼ÖµÄÓà¶î±ä»¯Ö»´æ´¢Ôڸôú±ÒºÏÔ¼µÄÊý¾Ý´æ´¢ÖС£Í¨¹ýʼþÎÒÃÇ¿ÉÒÔºÜÈÝÒ×´´½¨Ò»¸ö¿ÉÒÔ×·×ÙÄãµÄбҽ»Ò׺ÍÓà¶îµÄ¡°Çø¿éÁ´ä¯ÀÀÆ÷¡±¡£

Çø¿éÁ´»ù´¡

¶ÔÓÚ³ÌÐòÔ±À´Ëµ£¬Çø¿éÁ´Õâ¸ö¸ÅÄîÆäʵ²»ÄÑÀí½â¡£ÒòΪ×îÄѶ®µÄһЩ¶«Î÷£¨Íڿ󣬹þÏ££¬ÍÖÔ²ÇúÏß¼ÓÃÜ£¬µã¶ÔµãÍøÂçµÈµÈ£©Ö»ÊÇΪÁËÌṩһϵÁеÄÌØÐԺͱ£ ÕÏ¡£ÄãÖ»ÐèÒª½ÓÊÜÕâЩ¼ÈÓеÄÌØÐÔ£¬²»ÐèÒª¹ØÐÄÆäµ×²ãµÄ¼¼Êõ¡£¾ÍÏñÄãÈç¹û½ö½öÊÇΪÁËʹÓÃÑÇÂíÑ·µÄAWS£¬²¢²»ÐèÒªÁ˽âÆäÄÚ²¿¹¤×÷Ô­Àí¡£

½»Ò×/ÊÂÎñ

Çø¿éÁ´ÊÇÒ»¸öÈ«¾Ö¹²ÏíµÄ£¬ÊÂÎñÐÔµÄÊý¾Ý¿â¡£ÕâÒâζ×ŲÎÓëÕâ¸öÍøÂçµÄÿһ¸öÈ˶¼¿ÉÒÔ¶ÁÈ¡ÆäÖеļǼ¡£Èç¹ûÄãÏëÐÞ¸ÄÕâ¸öÊý¾Ý¿âÖеĶ«Î÷£¬¾Í±ØÐë´´½¨Ò»¸ö ÊÂÎñ£¬²¢µÃµ½ÆäËûËùÓÐÈ˵ÄÈ·ÈÏ¡£ÊÂÎñÕâ¸ö´ÊÒâζ×ÅÄãÒª×öµÄÐ޸썼ÙÈçÄãÏëͬʱÐÞ¸ÄÁ½¸öÖµ£©Ö»Äܱ»ÍêÍêȫȫµÄʵʩ»òÕßÒ»µã¶¼Ã»ÓнøÐС£

´ËÍ⣬µ±ÄãµÄÊÂÎñ±»Ó¦Óõ½Õâ¸öÊý¾Ý¿âµÄʱºò£¬ÆäËûÊÂÎñ²»ÄÜÐ޸ĸÃÊý¾Ý¿â¡£

¾Ù¸öÀý×Ó£¬ÏëÏóÒ»ÕÅ±í£¬ÀïÃæÁгöÁËij¸öµç×Ó»õ±ÒËùÓÐÕ˺ŵÄÓà¶î¡£µ±´ÓÒ»¸öÕË»§µ½ÁíÍâÒ»¸öÕË»§µÄתÕËÇëÇó·¢Éúʱ£¬Õâ¸öÊý¾Ý¿âµÄÊÂÎñÌØÐÔÈ·±£´ÓÒ»¸öÕË»§ÖмõµôµÄ½ð¶î»á±»¼Óµ½ÁíÒ»¸öÕË»§ÉÏ¡£Èç¹ûÒòΪijÖÖÔ­Òò£¬ÍùÄ¿±êÕË»§ÉÏÔö¼Ó½ð¶îÎÞ·¨½øÐУ¬ÄÇôԴÕË»§µÄ½ð¶îÒ²²»»á·¢ÉúÈκα仯¡£

´ËÍ⣬һ¸öÊÂÎñ»á±»·¢ËÍÕߣ¨´´½¨Õߣ©½øÐÐÃÜÂëѧǩÃû¡£ÕâÏî´ëÊ©·Ç³£Ö±¹ÛµÄΪÊý¾Ý¿âµÄÌØ¶¨ÐÞ¸ÄÔö¼ÓÁË·ÃÎʱ£»¤¡£ÔÚµç×Ó»õ±ÒµÄÀý×ÓÖУ¬Ò»¸ö¼òµ¥µÄ¼ì²é¾Í¿ÉÒÔÈ·±£Ö»ÓгÖÓÐÕË»§ÃÜÔ¿µÄÈË£¬²ÅÄÜ´Ó¸ÃÕË»§ÏòÍâתÕË¡£

Çø¿é

Çø¿éÁ´Òª½â¾öµÄÒ»¸öÖ÷ÒªÄÑÌ⣬ÔÚ±ÈÌØ±ÒÖб»³ÆÎª¡°Ë«»¨¹¥»÷¡±¡£µ±ÍøÂçÉϳöÏÖÁËÁ½±Ê½»Ò×£¬¶¼Òª»¨¹âÒ»¸öÕË»§ÖеÄǮʱ£¬»á·¢Éúʲô£¿Ò»¸ö³åÍ»£¿

¼òµ¥µÄ»Ø´ðÊÇÄã²»ÐèÒª¹ØÐÄÕâ¸öÎÊÌâ¡£ÕâЩ½»Ò׻ᱻÅÅÐò²¢´ò°ü³É¡°Çø¿é¡±£¬È»ºó±»ËùÓвÎÓëµÄ½ÚµãÖ´Ðкͷַ¢¡£Èç¹ûÁ½±Ê½»Ò×Ï໥³åÍ»£¬ÅÅÐò¿¿ºóµÄ½»Ò׻ᱻ¾Ü¾ø²¢ÌÞ³ý³öÇø¿é¡£

ÕâÐ©Çø¿é°´Ê±¼äÅųÉÒ»¸öÏßÐÔÐòÁС£ÕâÒ²ÕýÊÇ¡°Çø¿éÁ´¡±Õâ¸ö´ÊµÄÓÉÀ´¡£Çø¿éÒÔÒ»¸öÏ൱¹æÂɵÄʱ¼ä¼ä¸ô¼ÓÈëµ½Á´ÉÏ¡£¶ÔÓÚÒÔÌ«·»£¬Õâ¸ö¼ä¸ô´óÖÂÊÇ17Ãë¡£

×÷Ϊ¡°Ë³ÐòÑ¡Ôñ»úÖÆ¡±£¨Í¨³£³ÆÎª¡°ÍÚ¿ó¡±£©µÄÒ»²¿·Ö£¬Ò»¶ÎÇø¿éÁ´¿ÉÄÜ»áʱ²»Ê±±»»Ø¹ö¡£µ«ÕâÖÖÇé¿öÖ»»á·¢ÉúÔÚÕûÌõÁ´µÄÄ©¶Ë¡£»Ø¹öÉæ¼°µÄÇø¿éÔ½¶à£¬Æä·¢ÉúµÄ¸ÅÂÊԽС¡£ËùÒÔÄãµÄ½»Ò׿ÉÄܻᱻ»Ø¹ö£¬ÉõÖÁ»á±»´ÓÇø¿éÁ´ÖÐɾ³ý¡£µ«ÊÇÄãµÈ´ýµÄÔ½¾Ã£¬ÕâÖÖÇé¿ö·¢ÉúµÄ¸ÅÂʾÍԽС¡£

Ì«·»ÐéÄâ»ú

×ÜÀÀ

ÒÔÌ«·»ÐéÄâ»ú£¨EVM£©ÊÇÒÔÌ«·»ÖÐÖÇÄܺÏÔ¼µÄÔËÐл·¾³¡£Ëü²»½ö±»É³Ïä·â×°ÆðÀ´£¬ÊÂʵÉÏËü±»ÍêÈ«¸ôÀ룬Ҳ¾ÍÊÇ˵ÔËÐÐÔÚEVMÄÚ²¿µÄ´úÂë²»ÄܽӴ¥µ½ÍøÂç¡¢Îļþϵͳ»òÕ߯äËü½ø³Ì¡£ÉõÖÁÖÇÄܺÏÔ¼ÓëÆäËüÖÇÄܺÏÔ¼Ö»ÓÐÓÐÏ޵ĽӴ¥¡£

ÕË»§

ÒÔÌ«·»ÖÐÓÐÁ½ÀàÕË»§£¬ËüÃǹ²ÓÃͬһ¸öµØÖ·¿Õ¼ä¡£ÍⲿÕË»§£¬¸ÃÀàÕË»§±»¹«Ô¿-˽Կ¶Ô¿ØÖÆ£¨ÈËÀࣩ¡£ºÏÔ¼ÕË»§£¬¸ÃÀàÕË»§±»´æ´¢ÔÚÕË»§ÖеĴúÂë¿ØÖÆ¡£

ÍⲿÕË»§µÄµØÖ·ÊÇÓɹ«Ô¿¾ö¶¨µÄ£¬ºÏÔ¼ÕË»§µÄµØÖ·ÊÇÔÚ´´½¨¸ÄºÏԼʱȷ¶¨µÄ£¨Õâ¸öµØÖ·ÓɺÏÔ¼´´½¨ÕߵĵØÖ·ºÍ¸ÃµØÖ··¢³ö¹ýµÄ½»Ò×ÊýÁ¿¼ÆËãµÃµ½£¬µØÖ··¢³ö¹ýµÄ½»Ò×ÊýÁ¿Ò²±»³Æ×÷"nonce"£©

ºÏÔ¼ÕË»§´æ´¢ÁË´úÂ룬ÍⲿÕË»§ÔòûÓУ¬³ýÁËÕâµãÒÔÍ⣬ÕâÁ½ÀàÕË»§¶ÔÓÚEVMÀ´ËµÊÇÒ»ÑùµÄ¡£

ÿ¸öÕË»§ÓÐÒ»¸ökey-valueÐÎʽµÄ³Ö¾Ã»¯´æ´¢¡£ÆäÖÐkeyºÍvalueµÄ³¤¶È¶¼ÊÇ256bit£¬Ãû×Ö½Ð×östorage.

ÁíÍ⣬ÿ¸öÕË»§¶¼ÓÐÒ»¸öÒÔÌ«±ÒÓà¶î£¨µ¥Î»ÊÇ¡°Wei"£©£¬¸ÃÕË»§Óà¶î¿ÉÒÔͨ¹ýÏòËü·¢ËÍ´øÓÐÒÔÌ«±ÒµÄ½»Ò×À´¸Ä±ä¡£

½»Ò×

Ò»±Ê½»Ò×ÊÇÒ»ÌõÏûÏ¢£¬´ÓÒ»¸öÕË»§·¢Ë͵½ÁíÒ»¸öÕË»§£¨¿ÉÄÜÊÇÏàͬµÄÕË»§»òÕßÁãÕË»§£¬¼ûÏÂÎÄ£©¡£½»Ò׿ÉÒÔ°üº¬¶þ½øÖÆÊý¾Ý£¨payload£©ºÍÒÔÌ«±Ò¡£

Èç¹ûÄ¿±êÕË»§°üº¬´úÂ룬¸Ã´úÂë»áÖ´ÐУ¬payload¾ÍÊÇÊäÈëÊý¾Ý¡£

Èç¹ûÄ¿±êÕË»§ÊÇÁãÕË»§£¨ÕË»§µØÖ·ÊÇ0£©£¬½»Ò×½«´´½¨Ò»¸öкÏÔ¼¡£ÕýÈçÉÏÎÄËù½²£¬Õâ¸öºÏÔ¼µØÖ·²»ÊÇÁãµØÖ·£¬¶øÊÇÓɺÏÔ¼´´½¨ÕߵĵØÖ·ºÍ¸ÃµØÖ··¢³ö¹ýµÄ½» Ò×ÊýÁ¿£¨±»³ÆÎªnonce£©¼ÆËãµÃµ½¡£´´½¨ºÏÔ¼½»Ò×µÄpayload±»µ±×÷EVM×Ö½ÚÂëÖ´ÐС£Ö´ÐеÄÊä³ö×öΪºÏÔ¼´úÂë±»ÓÀ¾Ã´æ´¢¡£ÕâÒâζ×Å£¬ÎªÁË´´½¨Ò»¸ö ºÏÔ¼£¬Äã²»ÐèÒªÏòºÏÔ¼·¢ËÍÕæÕýµÄºÏÔ¼´úÂ룬¶øÊÇ·¢ËÍÄܹ»·µ»ØÕæÕý´úÂëµÄ´úÂë¡£

Gas

ÒÔÌ«·»ÉϵÄÿ±Ê½»Ò×¶¼»á±»ÊÕȡһ¶¨ÊýÁ¿µÄgas£¬gasµÄÄ¿µÄÊÇÏÞÖÆÖ´Ðн»Ò×ËùÐèµÄ¹¤×÷Á¿£¬Í¬Ê±ÎªÖ´ÐÐÖ§¸¶·ÑÓᣵ±EVMÖ´Ðн»Ò×ʱ£¬gas½«°´ÕÕÌØ¶¨¹æÔò±»Öð½¥ÏûºÄ¡£

gas price£¨gas¼Û¸ñ£¬ÒÔÌ«±Ò¼Æ£©ÊÇÓɽ»Ò×´´½¨ÕßÉèÖõ쬷¢ËÍÕË»§ÐèÒªÔ¤¸¶µÄ½»Ò×·ÑÓà = gas price * gas amount¡£ Èç¹ûÖ´ÐнáÊø»¹ÓÐgasÊ£Ó࣬ÕâЩgas½«±»·µ»¹¸ø·¢ËÍÕË»§¡£

ÎÞÂÛÖ´Ðе½Ê²Ã´Î»Öã¬Ò»µ©gas±»ºÄ¾¡£¨±ÈÈ罵Ϊ¸ºÖµ£©£¬½«»á´¥·¢Ò»¸öout-of-gasÒì³£¡£µ±Ç°µ÷ÓÃÖ¡Ëù×öµÄËùÓÐ״̬Ð޸ͼ½«±»»Ø¹ö¡£

´æ´¢£¬Ö÷´æºÍÕ»

ÿ¸öÕË»§ÓÐÒ»¿é³Ö¾Ã»¯ÄÚ´æÇøÓò±»³ÆÎª´æ´¢¡£ÆäÐÎʽΪkey-value£¬keyºÍvalueµÄ³¤¶È¾ùΪ256±ÈÌØ¡£ÔÚºÏÔ¼À²»ÄܱéÀúÕË»§µÄ´æ´¢¡£Ïà¶ÔÓÚÁíÍâÁ½ÖÖ£¬´æ´¢µÄ¶Á²Ù×÷Ïà¶ÔÀ´Ëµ¿ªÏú½Ï´ó£¬Ð޸Ĵ洢¸üÉõ¡£Ò»¸öºÏÔ¼Ö»ÄܶÔËü×Ô¼ºµÄ´æ´¢½øÐжÁд¡£

µÚ¶þ¸öÄÚ´æÇø±»³ÆÎªÖ÷´æ¡£ºÏÔ¼Ö´ÐÐÿ´ÎÏûÏ¢µ÷ÓÃʱ£¬¶¼ÓÐÒ»¿éÐµģ¬±»Çå³ý¹ýµÄÖ÷´æ¡£Ö÷´æ¿ÉÒÔÒÔ×Ö½ÚÁ£¶ÈѰַ£¬µ«ÊǶÁдÁ£¶ÈΪ32×Ö½Ú£¨256±ÈÌØ£©¡£²Ù×÷Ö÷´æµÄ¿ªÏúËæ×ÅÆäÔö³¤¶ø±ä´ó£¨Æ½·½¼¶±ð£©¡£

EVM²»ÊÇ»ùÓڼĴæÆ÷£¬¶øÊÇ»ùÓÚÕ»µÄÐéÄâ»ú¡£Òò´ËËùÓеļÆËã¶¼ÔÚÒ»¸ö±»³ÆÎªÕ»µÄÇøÓòÖ´ÐС£Õ»×î´óÓÐ1024¸öÔªËØ£¬Ã¿¸öÔªËØ256±ÈÌØ¡£¶ÔÕ»µÄ·ÃÎÊ Ö»ÏÞÓÚÆä¶¥¶Ë£¬·½Ê½Îª£ºÔÊÐí¿½±´×î¶¥¶ËµÄ16¸öÔªËØÖеÄÒ»¸öµ½Õ»¶¥£¬»òÕßÊǽ»»»Õ»¶¥ÔªËغÍÏÂÃæ16¸öÔªËØÖеÄÒ»¸ö¡£ËùÓÐÆäËû²Ù×÷¶¼Ö»ÄÜÈ¡×î¶¥µÄÁ½¸ö£¨»òÒ» ¸ö£¬»ò¸ü¶à£¬È¡¾öÓÚ¾ßÌåµÄ²Ù×÷£©ÔªËØ£¬²¢°Ñ½á¹ûѹÔÚÕ»¶¥¡£µ±È»¿ÉÒÔ°ÑÕ»ÉϵÄÔªËØ·Åµ½´æ´¢»òÕßÖ÷´æÖС£µ«ÊÇÎÞ·¨Ö»·ÃÎÊÕ»ÉÏÖ¸¶¨Éî¶ÈµÄÄǸöÔªËØ£¬ÔÚÄÇ֮ǰ±ØÐë Òª°ÑÖ¸¶¨Éî¶ÈÖ®ÉϵÄËùÓÐÔªËØ¶¼´ÓÕ»ÖÐÒÆ³ý²ÅÐС£

Ö¸Á

EVMµÄÖ¸Á±»¿ÌÒâ±£³ÖÔÚ×îС¹æÄ££¬ÒÔ¾¡¿ÉÄܱÜÃâ¿ÉÄܵ¼Ö¹²Ê¶ÎÊÌâµÄ´íÎóʵÏÖ¡£ËùÓеÄÖ¸Áî¶¼ÊÇÕë¶Ô256±ÈÌØÕâ¸ö»ù±¾µÄÊý¾ÝÀàÐ͵IJÙ×÷¡£¾ß±¸³£ÓõÄËãÊõ£¬Î»£¬Âß¼­ºÍ±È½Ï²Ù×÷¡£Ò²¿ÉÒÔ×öµ½Ìõ¼þºÍÎÞÌõ¼þÌø×ª¡£´ËÍ⣬ºÏÔ¼¿ÉÒÔ·ÃÎʵ±Ç°Çø¿éµÄÏà¹ØÊôÐÔ£¬±ÈÈçËüµÄ±àºÅºÍʱ¼ä´Á¡£

ÏûÏ¢µ÷ÓÃ

ºÏÔ¼¿ÉÒÔͨ¹ýÏûÏ¢µ÷Óõķ½Ê½À´µ÷ÓÃÆäËüºÏÔ¼»òÕß·¢ËÍÒÔÌ«±Òµ½·ÇºÏÔ¼ÕË»§¡£ÏûÏ¢µ÷Óúͽ»Ò׷dz£ÀàËÆ£¬ËüÃǶ¼ÓÐÒ»¸öÔ´£¬Ò»¸öÄ¿±ê£¬Êý¾Ý¸ºÔØ£¬ÒÔÌ«±Ò£¬gasºÍ·µ»ØÊý¾Ý¡£ÊÂʵÉÏÿ¸ö½»Ò×¶¼¿ÉÒÔ±»ÈÏΪÊÇÒ»¸ö¶¥²ãÏûÏ¢µ÷Óã¬Õâ¸öÏûÏ¢µ÷ÓûáÒÀ´Î²úÉú¸ü¶àµÄÏûÏ¢µ÷Óá£

Ò»¸öºÏÔ¼¿ÉÒÔ¾ö¶¨Ê£ÓàgasµÄ·ÖÅä¡£±ÈÈçÄÚ²¿ÏûÏ¢µ÷ÓÃʱʹÓöàÉÙgas£¬»òÕ߯ÚÍû±£Áô¶àÉÙgas¡£Èç¹ûÔÚÄÚ²¿ÏûÏ¢µ÷ÓÃʱ·¢ÉúÁËout-of-gas Òì³££¨»òÕ߯äËûÒì³££©£¬ºÏÔ¼½«»áµÃµ½Í¨Öª£¬Ò»¸ö´íÎóÂ뱻ѹÔÚÕ»ÉÏ¡£ÕâÖÖÇé¿öÖ»ÊÇÄÚ²¿ÏûÏ¢µ÷ÓõÄgasºÄ¾¡¡£ÔÚsolidityÖУ¬ÕâÖÖÇé¿öÏ·¢Æðµ÷ÓÃµÄºÏ Ô¼Ä¬Èϻᴥ·¢Ò»¸öÈ˹¤Òì³£¡£Õâ¸öÒì³£»á´òÓ¡³öµ÷ÓÃÕ»¡£

¾ÍÏñ֮ǰ˵¹ýµÄ£¬±»µ÷ÓõĺÏÔ¼£¨·¢Æðµ÷ÓõĺÏÔ¼Ò²Ò»Ñù£©»áÓµÓÐոеÄÖ÷´æ²¢Äܹ»·ÃÎʵ÷ÓõĸºÔØ¡£µ÷ÓøºÔر»´æ´¢ÔÚÒ»¸öµ¥¶ÀµÄ±»³ÆÎªcalldataµÄÇøÓò¡£µ÷ÓÃÖ´ÐнáÊøºó£¬·µ»ØÊý¾Ý½«±»´æ·ÅÔÚµ÷Ó÷½Ô¤ÏÈ·ÖÅäºÃµÄÒ»¿éÄÚ´æÖС£

µ÷ÓòãÊý±»ÏÞÖÆÎª1024£¬Òò´Ë¶ÔÓÚ¸ü¼Ó¸´ÔӵIJÙ×÷£¬ÎÒÃÇÓ¦¸ÃʹÓÃÑ­»·¶ø²»Êǵݹ顣

´úÂëµ÷ÓúͿâ

´æÔÚÒ»ÖÖÌØÊâÀàÐ͵ÄÏûÏ¢µ÷Ó㬱»³ÆÎªcallcode¡£Ëü¸úÏûÏ¢µ÷Óü¸ºõÍêȫһÑù£¬Ö»ÊǼÓÔØ×ÔÄ¿±êµØÖ·µÄ´úÂ뽫ÔÚ·¢Æðµ÷ÓõĺÏÔ¼ÉÏÏÂÎÄÖÐÔËÐС£

ÕâÒâζ×ÅÒ»¸öºÏÔ¼¿ÉÒÔÔÚÔËÐÐʱ´ÓÁíÍâÒ»¸öµØÖ·¶¯Ì¬¼ÓÔØ´úÂë¡£´æ´¢£¬µ±Ç°µØÖ·ºÍÓà¶î¶¼Ö¸Ïò·¢Æðµ÷ÓõĺÏÔ¼£¬Ö»ÓдúÂëÊÇ´Ó±»µ÷ÓõØÖ·»ñÈ¡µÄ¡£

ÕâʹµÃSolidity¿ÉÒÔʵÏÖ¡±¿â¡°¡£¿É¸´ÓõĿâ´úÂë¿ÉÒÔÓ¦ÓÃÔÚÒ»¸öºÏÔ¼µÄ´æ´¢ÉÏ£¬¿ÉÒÔÓÃÀ´ÊµÏÖ¸´ÔÓµÄÊý¾Ý½á¹¹¡£

ÈÕÖ¾

ÔÚÇø¿é²ãÃæ£¬¿ÉÒÔÓÃÒ»ÖÖÌØÊâµÄ¿ÉË÷ÒýµÄÊý¾Ý½á¹¹À´´æ´¢Êý¾Ý¡£Õâ¸öÌØÐÔ±»³ÆÎªÈÕÖ¾£¬SolidityÓÃËüÀ´ÊµÏÖʼþ¡£ºÏÔ¼´´½¨Ö®ºó¾ÍÎÞ·¨·ÃÎÊÈÕÖ¾Êý ¾Ý£¬µ«ÊÇÕâЩÊý¾Ý¿ÉÒÔ´ÓÇø¿éÁ´Íâ¸ßЧµÄ·ÃÎÊ¡£ÒòΪ²¿·ÖÈÕÖ¾Êý¾Ý±»´æ´¢ÔÚ²¼Â¡¹ýÂËÆ÷£¨Bloom filter) ÖУ¬ÎÒÃÇ¿ÉÒÔ¸ßЧ²¢ÇÒ°²È«µÄËÑË÷ÈÕÖ¾£¬ËùÒÔÄÇЩûÓÐÏÂÔØÕû¸öÇø¿éÁ´µÄÍøÂç½Úµã£¨Çá¿Í»§¶Ë£©Ò²¿ÉÒÔÕÒµ½ÕâЩÈÕÖ¾¡£

´´½¨

ºÏÔ¼ÉõÖÁ¿ÉÒÔͨ¹ýÒ»¸öÌØÊâµÄÖ¸ÁîÀ´´´½¨ÆäËûºÏÔ¼£¨²»ÊǼòµ¥µÄÏòÁãµØÖ··¢Æðµ÷Óã©¡£´´½¨ºÏÔ¼µÄµ÷ÓøúÆÕͨµÄÏûÏ¢µ÷ÓõÄÇø±ðÔÚÓÚ£¬¸ºÔØÊý¾ÝÖ´ÐеĽá¹û±»µ±×÷´úÂ룬µ÷ÓÃÕß/´´½¨ÕßÔÚÕ»Éϵõ½ÐºÏÔ¼µÄµØÖ·¡£

×Ô»Ù

Ö»ÓÐÔÚij¸öµØÖ·ÉϵĺÏÔ¼Ö´ÐÐ×Ô»Ù²Ù×÷ʱ£¬ºÏÔ¼´úÂë²Å»á´ÓÇø¿éÁ´ÉÏÒÆ³ý¡£ºÏÔ¼µØÖ·ÉÏÊ£ÓàµÄÒÔÌ«±Ò»á·¢Ë͸øÖ¸¶¨µÄÄ¿±ê£¬È»ºóÆä´æ´¢ºÍ´úÂë±»ÒÆ³ý¡£

×¢Ò⣬¼´Ê¹Ò»¸öºÏÔ¼µÄ´úÂë²»°üº¬×Ô»ÙÖ¸ÁÒÀÈ»¿ÉÒÔͨ¹ý´úÂëµ÷ÓÃ(callcode)À´Ö´ÐÐÕâ¸ö²Ù×÷¡£

   
1682 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

iOSÓ¦Óð²È«¿ª·¢£¬Äã²»ÖªµÀµÄÄÇЩÊÂÊõ
Web°²È«Ö®SQL×¢Èë¹¥»÷
ÒÆ¶¯APP°²È«ÔÚÉøÍ¸²âÊÔÖеÄÓ¦ÓÃ
´ÓGoogle±¸·Ý»¥ÁªÍø¿´¡°Êý¾Ý°²È«¡±
 
Ïà¹ØÎĵµ

web°²È«Éè¼ÆÓë·À»¤
»¥ÁªÍøº£Á¿ÄÚÈݰ²È«´¦Àí¼¼Êõ
ºÚ¿Í¹¥»÷Óë·À·¶¼¼Êõ
WEBºÚºÐ°²È«¼ì²â
 
Ïà¹Ø¿Î³Ì

WEBÍøÕ¾ÓëÓ¦Óð²È«Ô­ÀíÓëʵ¼ù
webÓ¦Óð²È«¼Ü¹¹Éè¼Æ
´´½¨°²È«µÄJ2EE WebÓ¦ÓôúÂë
ÐÅÏ¢°²È«ÎÊÌâÓë·À·¶
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
ÎïÁªÍø°²È«¸ÅÊö
Ê·ÉÏ×îÏêϸµÄÇø¿éÁ´¼¼Êõ¼Ü¹¹·ÖÎö
Ò»ÎĶÁ¶®Çø¿éÁ´ÕûÌå¼Ü¹¹¼°Ó¦Óð¸Àý
Çø¿éÁ´¼¼Êõ¼Ü¹¹
°²È«¼Ü¹¹ÆÀÉóʵս
×îпγÌ
WebÓ¦Óð²È«¼Ü¹¹¡¢ÈëÇÖ¼ì²âÓë·À»¤
ÎïÁªÍø¹Ø¼ü¼¼Êõ¡¢°²È«Óë±ßÔµ¼ÆËã
Çø¿éÁ´°²È«¼¼Êõʵ¼ùÖ¸ÄÏ
ÔÆ·þÎñÓ밲ȫ¼Ü¹¹
»¥ÁªÍø°²È«¿ª·¢·½·¨Óëʵ¼ù
³É¹¦°¸Àý
ÖйúÒøÐÐ ÐÅÏ¢°²È«¼¼Êõ¼°Éî¶È·ÀÓù
±±¾© WebÓ¦Óð²È«¼Ü¹¹¡¢ÈëÇÖ¼ì²âÓë·À»¤
ij²ÆË°ÁìÓòÖªÃûIT·þÎñÉÌ Web°²È«²âÊÔ
ÆÕÈð¿Ë˹ web°²È«Éè¼Æ¡¢²âÊÔÓëÓÅ»¯
±±¾©ºÍÀûʱ ÐÔÄܺͰ²È«ÐÔ²âÊÔ