当前位置: 首页 > news >正文

崆峒区建设局网站移动互联网开发实践

崆峒区建设局网站,移动互联网开发实践,wordpress文章加载,博客网站wordpress在上一篇文章中#xff0c;我们展示了一种将 Ordinal 与智能合约集成的方法#xff0c;即将Ordinal和合约放在同一个 UTXO 中。 今天#xff0c;我们介绍了一种集成它们的替代方案#xff0c;即它们位于单独的 UTXO 中。 作为展示#xff0c;我们开发了一个智能合约…在上一篇文章中我们展示了一种将 Ordinal 与智能合约集成的方法即将Ordinal和合约放在同一个 UTXO 中。 今天我们介绍了一种集成它们的替代方案即它们位于单独的 UTXO 中。 作为展示我们开发了一个智能合约可以实现序号的链上拍卖。 智能合约保证拍卖师将获得最高出价而投标人将获得 Ordinal。 基本思想 在 UTXO 模型中一笔交易可以包含多个输入每个输入消耗一个单独的 UTXO。 其中一个 UTXO 是我们的智能合约另一个是锁定在非合约即 P2PKHUTXO 中的 Ordinal。 比特币智能合约能够访问相邻的输入在 sCrypt 中称为 ScriptContext。由于 Ordinal 也基于 UTXO因此智能合约可以访问相邻输入中花费的 Ordinal从而决定其传输。 Ordinal 拍卖 为了演示这个想法是如何体现的我们构建了一个拍卖 Ordinal 的合约。 它是公开透明的每个人都可以参与在规定的截止日期后投标结束出价最高者获胜。 有两种与合约交互的方式。 让我们看看它们是如何实现的。 1. 投标 当出现更高出价时更新当前最高出价者并退还之前最高出价者。 上图显示了两笔此类竞价交易其中 Bob 和 Charles 成功竞价。 它们都有 3 个输入和 2 个输出。 method() public bid(bidder: PubKey, bid: bigint) {const highestBid: bigint this.ctx.utxo.valueassert(bid highestBid,the auction bid is lower than the current highest bid)// Change the public key of the highest bidder.const highestBidder: PubKey this.bidderthis.bidder bidder// Auction continues with a higher bidder.const auctionOutput: ByteString this.buildStateOutput(bid)// Refund previous highest bidder.const refundOutput: ByteString Utils.buildPublicKeyHashOutput(hash160(highestBidder),highestBid)let outputs: ByteString auctionOutput refundOutput// Add change output.outputs this.buildChangeOutput()assert(hash256(outputs) this.ctx.hashOutputs,hashOutputs check failed) }出价方法非常简单。 它首先检查出价是否足够大。 如果是它会更新最高出价者。 其余的它检查新交易的输出。 第一个输出只是具有更新状态的下一个拍卖实例。 此输出中锁定的值将等于新的出价。 第二个输出将按照最后最高出价者的出价金额偿还。 最后它添加了找零输出。 2. 关闭拍卖 当拍卖到期时拍卖师可以关闭拍卖并接受报价。 拍卖师还必须将 ordinal 转让给最高出价者。 这是关闭合约的条件。 上图右侧显示了一笔平仓交易。 它与竞价交易的不同之处在于输入和输出。 有一个附加输入第一个输入包含我们正在拍卖的 Ordinal有一个输入第一个输出将 Ordinal 传输给中标者。 合约在第二个输入中被调用而 Ordinal 在第一个输入中被引用。 它们位于单独的 UTXO 中但合约可以控制 Ordinal 的传输。 // Output of auctioned ordinal (txid vout). prop() readonly ordnialPrevout: ByteStringmethod() public close(sigAuctioneer: Sig) {// Check if using block height.assert(this.ctx.locktime this.auctionDeadline,auction is not over yet)// Check signature of the auctioneer.assert(this.checkSig(sigAuctioneer, this.auctioneer),signature check failed)// Ensure the first input in spending the auctioned ordinal UTXO.assert(slice(this.prevouts, 0n, 36n) this.ordnialPrevout,first input is not spending specified ordinal UTXO)// Ensure the 1sat ordinal is being payed out to the winning bidder.let outputs Utils.buildPublicKeyHashOutput(hash160(this.bidder), 1n)// Ensure the second output is paying the bid to the auctioneer.outputs Utils.buildPublicKeyHashOutput(hash160(this.auctioneer),this.ctx.utxo.value)// Add change output.outputs this.buildChangeOutput()// Check outputs.assert(hash256(outputs) this.ctx.hashOutputs, hashOutputs mismatch) }close 方法稍微复杂一些。 首先它在第 8 行使用典型的时间锁定模式检查调用是否是在截止日期之后发出的。然后它在第 14 行验证拍卖师的签名这是唯一允许结束拍卖的签名。 ScriptContext 中的 this.prevouts 包含指向输入中引用的 UTXO 的所有指针称为 outpoints。 出点包含两部分 交易ID: 32 字节输出索引: 4 字节 UTXO 位于由此类出点唯一标识的交易的输出中。 在第 21 行我们提取第一个输入的出点前 36 个字节并将其与实际 Ordinal 的 UTXO 进行比较在拍卖开始和部署合约时进行硬编码。 这保证了 Ordinal 的真实性并且它不能被伪造。 然后我们像以前一样构造并确认输出。 第一个输出是定期 P2PKH 转账给最高出价者。 第二个输出支付给拍卖师。 最后如有必要我们添加找零输出。 请注意合约确保 Ordinal 出现在第一个输入中因此它最终出现在第一个输出中并转移给获胜者。 一个例子 以下是执行比特币 Ordinal 拍卖结束的交易示例 69335ac678c19704c1564877f5d100f1b99212273f83a5536bb2c6deca40d0c8 这个 Ordinal 刻有“Hello, sCrypt!”文字拍卖价格高达 8 聪 Ordinal 被转移给地址为 1NHJoK2ANVb8MtK7Er1uEqBckgbpZK7QUz 的最高出价者。 完整的代码和测试可以在 GitHub 上找到。
http://www.dnsts.com.cn/news/28298.html

相关文章:

  • 电子商务网站建设试题答案wordpress添加icp
  • 菏泽北京网站建设page怎么转换wordpress
  • 网站哪个公司做的比较好的天津网站设计制作公司
  • 做的网站如何更换网站模板怒江州城乡建设局网站
  • 企业网站建设程序建设网站的技术方案是啥
  • 做网站需要什么材料网站导航栏特效
  • 丹东网站建设公司沭阳做网站公司排名前十
  • 潍坊专业做网站成都网站建设排名
  • 深圳企业网站制作企业东丽做网站
  • 郑州手机网站制作公司哪家好成都91获客
  • 空调维修技术支持深圳网站建设安卓手机软件开发教程
  • 建设厅八大员报名网站网站培训班有哪些课程
  • 图片网站怎么做优化网页制作模板保存
  • 深圳做门户网站的网络公司网站建设背景介绍
  • 宁夏住房和城乡建设部网站汕头网站设计有限公司
  • 建设通网站有法律特色美食网站建设
  • 中国建设银行保函查询网站什么软件可以看网站
  • 提交网站地图wordpress链接伪静态
  • 公司网站建设申请报告域通联达网站
  • 福州网站建设免费咨询ug.wordpress.org
  • 做网站开源框架长沙产品网站建设
  • 网站伪静态如何配置Wordpress多站点为什么注册不了
  • 东莞公司网站建设静态网页设计实训报告摘要
  • 移动端网站开发与网页开发区别免费做简易网站
  • pc端网站生成wap版wordpress搬家跳回首页
  • 网站建设费用的账务处理那个网站攻略做的好
  • 模板网站建设市场调研报告模板范文
  • 企业网站pv是什么网站建设征求意见
  • 东莞寮步镇网站做企业网站建设
  • 加热器网站怎么做的好单库如何做网站