RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-494717

Sam Knight's questions

Martin Hope
Sam Knight
Asked: 2024-04-25 14:23:37 +0000 UTC

JS脚本冲突

  • 6

我有两个执行不同功能的脚本,当两个脚本都连接时,其中一个会停止工作。

第一个脚本是 custom.js,它负责网站上的所有动态(对象的移动)

第二个脚本 telega-chat.js 负责网站上在线聊天的外观及其所有功能。单击按钮即可显示聊天本身,并由 HTML 页面中的脚本执行:

<script>
        document.querySelector('.chat')
            .addEventListener('click', e => {
                console.log('Открываем чат');
                new TelegaChat().open()
            })
</script>

当您连接 telega-chat.js 脚本时,custom.js 脚本的功能(负责修复站点标题、计数器(滚动页面时添加数字)和页面向上滚动按钮)将停止工作。

我不擅长开发,因此我只会对问题做出假设。这很可能是由于 DOM 树和其中对象的重新定义造成的。我不知道如何处理这个问题。我试图折磨人工智能,但没有人能帮助我。谁知道帮忙一下。我只能说我尝试将 telega-chat.js 脚本包装在函数内,但没有帮助。

第一个脚本是custom.js

(function() {

    "use strict";
  
    var app = {
        
        init: function() {

            //=== Main visible ===\\
            this.mainVisible();

            //=== lazy loading effect ===\\
            this.lazyLoading();

            this.setUpListeners();

            //=== Custom scripts ===\\
            this.headerFixed.init();
            this.btnHover();
            this.appendMfBg();
            this.appendBtnTop();
            this.formingHrefTel();
            this.contentTable();
            this.counters.init();

            //=== Plugins ===\\
            this.device();

        },
        
        setUpListeners: function() {

            //=== Ripple effect for buttons ===\\
            $(".ripple").on("click", this.btnRipple);

            //=== Mobile/tablet main menu ===\\
            // Main menu toogle \\
            $(".main-mnu-btn").on("click", this.mainMenu.toggle);
            // Main menu close not on this element \\
            $(document).on("click", this.mainMenu.closeNotEl);

            //=== Tab ===\\
            $(".tabs-nav li").on("click", this.tab);

            //=== Accordion ===\\
            $(".accordion-trigger").on("click", this.accordion);

            //=== Button top ===\\
            $(document).on("click", '.btn-top', this.btnTop);
            $(window).on("scroll", this.btnTopScroll);

            $(document).on("click", '.scroll-to', this.scrollTo);
            
        },

        //=== Body visible ===\\
        mainVisible: function() {

            $(".main").addClass("main-visible");

        },

        appendMfBg: function() {

            $("body").append('<div class="mf-bg"></div>');

        },

        appendBtnTop: function() {

            $("body").append('<div class="btn-top"><svg class="btn-icon-right" viewBox="0 0 13 9" width="13" height="9"><use xlink:href="assets/img/sprite.svg#arrow-right"></use></svg></div>');

        },

        btnTop: function() {
            
            $('html, body').animate({scrollTop: 0}, 1000, function() {
                $(this).removeClass("active");
            });

        },

        btnTopScroll: function() {
            
            var btnTop = $('.btn-top');
            
            if ($(this).scrollTop() > 700) {

                btnTop.addClass("active");

            } else {

                btnTop.removeClass("active");
                
            }

        },

        scrollTo: function() {

            $('html, body').animate({scrollTop: $($(this).attr('data-scroll-to')).position().top}, 1000);

        },

        //=== Header fixed ===\\
        headerFixed: {

            init: function() {

                if( $('.header-fixed').length ) {
    
                    $(window).on("load resize scroll", app.headerFixed.handler);
    
                }
                
            },
    
            IS_FIXED: false,
    
            handler: function() {
    
                var header = $('.header-fixed');
                var height = header.outerHeight();
                var offsetTop = header.offset().top;
                var scrollTop = $(this).scrollTop();
    
                var headerStatic = $(".header-fixed-static");
                if(headerStatic.length) { 
                    offsetTop = headerStatic.offset().top;
                    headerStatic.css("height", height);
                }
    
                if(scrollTop >= offsetTop) {
                    if(!app.headerFixed.IS_FIXED) {
                        header.addClass("fixed");
                        header.after('<div class="header-fixed-static" style="height:' + height + 'px"></div>');
                    }
                    app.headerFixed.IS_FIXED = true;
                } else {
                    if(app.headerFixed.IS_FIXED) {
                        header.removeClass("fixed");
                        headerStatic.remove();
                    }
                    app.headerFixed.IS_FIXED = false;
                }
    
            }

        },

        //=== Tab ===\\
        tab: function() {

            var _this = $(this),
                index = _this.index(),
                tabs = _this.closest(".tabs"),
                items = tabs.find(".tabs-item");

            if (!_this.hasClass("active")) {

                items
                    .eq(index)
                    .add(_this)
                    .addClass("active")
                    .siblings()
                    .removeClass("active");
            
            }

        },

        //=== Accordion ===\\
        accordion: function(e) {

            e.originalEvent.preventDefault();

            var _this = $(this),
                item = _this.closest(".accordion-item"),
                container = _this.closest(".accordion"),
                items = container.find(".accordion-item"),
                content = item.find(".accordion-content"),
                otherContents = container.find(".accordion-content"),
                duration = 300;

            if (!item.hasClass("active")) {
                items.removeClass("active");
                item.addClass("active");
                otherContents.stop(true, true).slideUp(duration);
                content.stop(true, true).slideDown(duration);
            } else {
                content.stop(true, true).slideUp(duration);
                item.removeClass("active");
            }

        },

        //=== Mobile/tablet main menu ===\\
        mainMenu: {

            toggle: function() {

                var _this = $(this),
                    _body = $("body"),
                    headerHeight = _this.closest(".header").outerHeight(),
                    headerOffsetTop = _this.closest(".header").offset().top,
                    mnu = $(".mmm"),
                    headeFixedOffsetTop = $(".header-fixed").offset().top;

                if(headeFixedOffsetTop <= headerOffsetTop) {
                    $("html").scrollTop(headeFixedOffsetTop + 1);
                }
                    
                mnu.css("padding-top", headerHeight);
                $(this).toggleClass("active");
                
                _body.toggleClass("mmm-open").scrollTop(headeFixedOffsetTop);
                    
                if(_body.hasClass("mmm-open")) {
                    $(".mf-bg").addClass("visible mm");
                } else {
                    $(".mf-bg").removeClass("visible mm");
                }
    
            },

            closeNotEl: function(e) {

                if($("body").hasClass("mmm-open")) {
                    if ($(e.originalEvent.target).closest(".mmm, .main-mnu-btn").length) return;
                    $("body").removeClass("mmm-open");
                    $(".main-mnu-btn").removeClass("active");
                    $(".mf-bg").removeClass("visible mm");
                    e.originalEvent.stopPropagation();
                }
    
            }

        },

        //=== Ripple effect for buttons ===\\
        btnRipple: function(e) {
            
            var _this = $(this),
                offset = $(this).offset(),
                positionX = e.originalEvent.pageX - offset.left,
                positionY = e.originalEvent.pageY - offset.top;
            _this.append("<div class='ripple-effect'>");
            _this
                .find(".ripple-effect")
                .css({
                    left: positionX,
                    top: positionY
                })
                .animate({
                    opacity: 0
                }, 1500, function() {
                    $(this).remove();
                });

        },

        btnHover: function() {

            var btns = document.querySelectorAll(".btn, .el-ripple"),
                btn = [];

            btns.forEach(function(element, index) {

                var span = document.createElement("span"); 
                span.className = "el-ripple-circle";
                element.appendChild(span);

                // If The span element for this element does not exist in the array, add it.
                if (!btn[index])
                btn[index] = element.querySelector(".el-ripple-circle");

                element.addEventListener("mouseenter", function(e) {    
                    btnHandler(element, index, e);          
                });

                element.addEventListener("mouseleave", function(e) {
                    btnHandler(element, index, e);
                });
                
            });

            const btnHandler = function(element, index, e) {

                let offset = element.getBoundingClientRect(),
                    left = e.pageX - offset.left - window.scrollX,
                    top = e.pageY - offset.top - window.scrollY;

                btn[index].style.left = left + "px";
                btn[index].style.top = top + "px";

            }

        },

        //=== Forming href for phone ===\\
        formingHrefTel: function() {

            var linkAll = $('.formingHrefTel'),
                joinNumbToStringTel = 'tel:';

            $.each(linkAll, function () {
                var _this = $(this),
                    linkValue = _this.text(),
                    arrayString = linkValue.split("");

                for (var i = 0; i < arrayString.length; i++) {
                    var thisNunb = app.isNumber(arrayString[i]);
                    if (thisNunb === true || (arrayString[i] === "+" && i === 0)) {
                        joinNumbToStringTel += arrayString[i];
                    }
                }

                _this.attr("href", function () {
                    return joinNumbToStringTel;
                });
                joinNumbToStringTel = 'tel:'

            });

        },

        isNumber: function(n) {

            return !isNaN(parseFloat(n)) && isFinite(n);

        },
        
        //=== Content table responsive ===\\
        contentTable: function() {

            var contentTable = $(".content");
            if(contentTable.length) {
                
                $.each(contentTable.find("table"), function() {
                    $(this).wrap("<div class='table-responsive-outer'></div>").wrap("<div class='table-responsive'></div>");
                });
                
            }

        },

        //=== Counters ===\\
        counters: {

            init: function() {

                $(window).on("scroll load resize", function () {

                    app.counters.spincrement();
    
                });

            },

            spincrement: function() {

                var counters = $(".spincrement-container");
    
                if(counters.length) {
    
                    jQuery.each(counters, function() {
    
                        var _this = $(this);
        
                        if ( $(window).scrollTop() > _this.offset().top - ($(window).height() * 0.85) && !_this.hasClass("animated") ) {
        
                            _this.addClass("animated");
        
                            _this.find('.spincrement').spincrement({
                                duration: 1500,
                                leeway: 10,
                                thousandSeparator: '',
                                decimalPoint: ''
                            });
                            
                        }
        
                    });
    
                }
    
            },

        },

        //=== Plugins ===\\
        lazyLoading: function() {

            var observer = lozad('.lazy');
            observer.observe();

        },

        device: function() {

            if( (device.mobile() || device.tablet()) && device.ios() ) {
                var tempCSS = $('a').css('-webkit-tap-highlight-color');
                $('main, .main-inner').css('cursor', 'pointer')
                         .css('-webkit-tap-highlight-color', 'rgba(0, 0, 0, 0)');
                $('a').css('-webkit-tap-highlight-color', tempCSS);
            }

        },
        
    }
 
    app.init();
 
}());

第二个脚本 telega-chat.js

window.$ = (el) => {
  if (document.querySelector(el) !== null) return document.querySelector(el)
  else console.warn(`${el} не найден в дом дереве`);
};

window.$$ = (el) => {
  if (document.querySelectorAll(el) !== null) return document.querySelectorAll(el)
};

//Фунцкия воспроизведения звуков
window.soundPush = (url) => {
  let audio = new Audio(); // Создаём новый элемент Audio
  audio.src = url; // Указываем путь к звуку "клика"
  audio.autoplay = true; // Автоматически запускаем
  audio.volume = 0.7
  $('body').appendChild(audio)
  audio.addEventListener("ended", e => audio.remove())
  return url
}

function getRandomInt(max) {
  return Math.floor(Math.random() * max);
}

let timeNow = new Date().toLocaleTimeString();
const token = ``; // Получаем тут https://t.me/BotFather
const chatId = ``;  //получаем при вызове https://api.telegram.org/bot/getupdates в браузере


let startChat = false
let lastMessId, FirstMessId, newMessId, checkReply, Timer, count;
let idStart = getRandomInt(999)


// Имя менагера
const manager = 'Кристина'

let tpl = `<div class="chat__wrap">
    <div class="chat__title">Онлайн-чат
    <div class="btm__close chat__close">&times;</div>
    </div>
    <div class="chat__body">
    <div class="chat__body__item chat__body__item__manager">
    <span class="chat__body__item__user">${manager}</span>
    <span class="chat__body__item__text">Добрый день. Какой у вас вопрос?</span>
    <i class="chat__body__item__time">${timeNow}</i>
    </div>
    </div>
    <div class="chat__input">
        <div class="chat__input__message">
            <div class="texta">
               <textarea rows="1" wrap="on" type="text" class="chat__main__input" aria-label="Напишите сообщение" placeholder="Напишите сообщение" required ></textarea>
            </div>
        </div>
        <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-send chat__input__submit" viewBox="0 0 256 256"><rect width="256" height="256" fill="none"/><path d="M88,134.9,224.1,36.6h0a7.8,7.8,0,0,0-6.2-.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" opacity="0.2"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9Z" opacity="0.2"/><path d="M88,134.9,177.9,214a8,8,0,0,0,13.1-4.2L228.6,45.6a8,8,0,0,0-10.7-9.2L33.3,108.9c-7.4,2.9-6.4,13.7,1.4,15.3Z" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><line x1="88" y1="134.9" x2="224.1" y2="36.6" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path d="M132.9,174.4l-31.2,31.2A8,8,0,0,1,88,200V134.9" fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/></svg>
        </div>
    
    </div>`;


class TelegaChat {
  open() {

    this.getIp()

    if (window.innerWidth < 768) $("body").classList.add('overflow__hidden')

    if (!$(".chat__wrap")) $("body").insertAdjacentHTML("afterbegin", tpl);

    let store = localStorage.getItem("historyMessages");

    if (store !== null) {
      $(".chat__body").innerHTML = store;
    }

    $(".chat__main__input").onkeypress = (e) => {
      if (e.key === `Enter`) this.submit();
      if (e.target.value !== '') $(".chat__main__input").classList.remove('validate__error')
    };

    $(".chat__input__submit").onclick = () => this.submit();

    $(".chat__close").onclick = () => this.close()

    $(".chat__body").scrollTop = 100000;

    $(".chat__wrap").classList.add("open");

    setTimeout(() => {
      $('.chat__main__input').focus()
    }, 1000);


    axios.get(`https://api.telegram.org/bot${token}/getupdates`)
    .then((r) => {
      lastMessId = r.data.result[r.data.result.length - 1].message.message_id;
      FirstMessId = lastMessId
    })

    this.deleteItem()
  }

  close() {
    clearInterval(Timer)
    $(".chat__wrap").classList.remove("open");
    if (window.innerWidth < 768) $("body").classList.remove('overflow__hidden')
  }

  deleteItem() {
    $$('.chat__body__item').forEach(el => {
      if (el.querySelector('.chat__body__item__delete')) el.querySelector('.chat__body__item__delete').onclick = () => {
        el.remove()
        localStorage.setItem("historyMessages", $(".chat__body").innerHTML);
      }
    });
  }

  getIp() {
    axios.get(`https://fixdevice.pro/get-ip`)
    .then(r => {
      if (r.data.length > 8 && r.data != 'undefined') idStart = r.data
    })
  }

  submit() {
    timeNow = new Date().toLocaleTimeString();
    let val = $(".chat__main__input").value;
    if (val !== ``) {
      $('.chat__main__input').classList.remove('validate__error')
      let tplItemClient = `<div class="chat__body__item chat__body__item__client">
        <span class="chat__body__item__user">Вы</span>
        <span class="chat__body__item__text">${val}</span>
        <i class="chat__body__item__time">${timeNow}</i></div>`;

      $(".chat__body").innerHTML += tplItemClient;

      $(".chat__body").scrollTop = 100000;

      axios.get(
        `https://api.telegram.org/bot${token}/sendMessage?chat_id=${chatId}&text=USER:${idStart}
            ${val}`
      );

      //soundPush("/sound/set-whatsapp.mp3");
      localStorage.setItem("historyMessages", $(".chat__body").innerHTML);
      setTimeout(() =>$(".chat__main__input").value = ``.trim(), 0);
    
    } else {
      alert(`Введите текст`)
    }

    this.deleteItem()
    this.startUpdate()

    $(".chat__main__input").value = ``

  }

  startUpdate(){
    Timer = setInterval(() => this.checkResponse(), 3000);
  }

  stopUpdate(){
    clearInterval(Timer)
  }

  checkResponse() {
    count++
    if (count > 120 && lastMessId === FirstMessId) this.stopUpdate()

    axios
      .get(`https://api.telegram.org/bot${token}/getupdates`)
      .then((r) => {

        let resLastMess = r.data.result[r.data.result.length - 1].message
        if (resLastMess.reply_to_message !== undefined) checkReply = resLastMess.reply_to_message.text.includes(idStart)
        else checkReply = false

        newMessId = resLastMess.message_id;

        // console.log(FirstMessId, lastMessId , newMessId, checkReply);

        if (newMessId > lastMessId && checkReply) {

          // console.log(1);

          $(".chat__wrap").classList.add("open");

          let Text = r.data.result[r.data.result.length - 1].message.text;

          let tplItemMenager = `<div class="chat__body__item chat__body__item__manager">
              <span class="chat__body__item__user">${manager}</span>
                <span class="chat__body__item__text">${Text}</span>
                <i class="chat__body__item__time">${timeNow}</i></div>`;

          $(".chat__body").innerHTML += tplItemMenager;

          this.deleteItem()

          // soundPush("/sound/get-whatsapp.mp3");

          localStorage.setItem("historyMessages", $(".chat__body").innerHTML);

          $(".chat__body").scrollTop = 100000;

          lastMessId = newMessId

        }
      })
  }
}


// Если нужно отправлять сообщения повторно 
if (localStorage.getItem("historyMessages")) {
  axios.get(`https://api.telegram.org/bot${token}/getupdates`)
    .then((r) => {
      lastMessId = r.data.result[r.data.result.length - 1].message.message_id;
      FirstMessId = lastMessId
      // localStorage.setItem("historyMessages", $(".chat__body").innerHTML);
    })
  new TelegaChat().open()
    $(".chat__wrap").classList.remove("open");
  new TelegaChat().startUpdate()
}

javascript
  • 1 个回答
  • 41 Views
Martin Hope
Sam Knight
Asked: 2023-06-13 15:18:32 +0000 UTC

窃听电子邮件副本

  • 5

今天是个好日子。我正在尝试跟踪电子邮件的复制,但它不起作用。为此,我将脚本插入到带有指标计数器的页面代码中:

  $(".email-header").bind('copy', function() {
   console.log("1");
   ym(88888888,'reachGoal','email_copy');
   return true;
  });

页面的 HTML 代码下方是电子邮件:

<div class="emailcont">
    <img class='email-icon' src="../img/emailicon.png">
    <div class="email-header" id="email-header">email</div>
</div>

在指标中,我创建了一个目标 - JS 事件,其中 Target ID: matches email_copy

javascript
  • 2 个回答
  • 48 Views
Martin Hope
Sam Knight
Asked: 2022-07-30 22:23:01 +0000 UTC

错误 asyncio 任务被破坏,但它正在等待处理!

  • 0

请帮我找出问题所在。这是可执行代码:

import pandas as pd
import sqlalchemy
from binance.client import Client
from binance import BinanceSocketManager
import asyncio

client = Client(api_key, api_secret)

async def main():

    bsm = BinanceSocketManager(client)
    socket = bsm.trade_socket('BTCUSDT')
    await socket.__aenter__()
    msg = await socket.recv()
    return print(msg)

loop = asyncio.get_event_loop()
forecast = loop.run_until_complete(main())
loop.close()

错误:任务已销毁,但它正在等待处理!任务:<Task pending name='Task-9' coro=<WebSocketCommonProtocol.recv() 完成,定义在 /Users/v/Downloads/soft/anaconda3/lib/python3.9/site-packages/websockets/legacy/protocol .py:486> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fd45d952a90>()]> cb=[_release_waiter(()]>)() at /Users/v/Downloads/soft/anaconda3/lib/python3 .9/asyncio/tasks.py:416]>

python asyncio
  • 1 个回答
  • 75 Views
Martin Hope
Sam Knight
Asked: 2022-07-29 18:31:38 +0000 UTC

检查布尔值的函数

  • 0

如果我正确理解这行代码,请告诉我:

def checkbuy(investment):
    if not pos_dict['in_position']:
        if df.Buy.values:
           return True
        else:
           print('already in a position')

此函数首先检查字典是否存在 in_position 字符串,如果不存在,则检查数据框(表格中的单元格)是否存在 True,如果存在,则该函数返回 True。如果至少有一个字典,它已经在该位置打印。也就是这个词条其实和这个词条是等价的,对于初学者来说意义更容易理解。

def checkbuy(investment):
    if not pos_dict['in_position'] = True:
       if df.Buy.values = True:
          return True
       else:
          print('already in a position')

如果我错了,请详细解释,谁在乎。

python
  • 1 个回答
  • 38 Views
Martin Hope
Sam Knight
Asked: 2022-07-27 14:25:23 +0000 UTC

将UTC时间转换为叶卡捷琳堡时区

  • 0

在叶卡捷琳堡期间帮助翻译 UTC 时间。这是一个以 UTC 格式输出时间的 getter 函数。

def getminutedata(symbol, interval, lookback):
     frame = pd.DataFrame(client.get_historical_klines(symbol, interval, lookback + 'min ago UTC'))
     frame = frame.iloc[:,:6]
     frame.columns = ['Time', 'Open', 'High', 'Low', 'Close', 'Volume']
     frame = frame.set_index('Time')
     frame.index = pd.to_datetime(frame.index, unit='ms')
     frame = frame.astype(float)
     return frame

如何更改叶卡捷琳堡的时间。帮助,谁摸索。提前致谢。

python pandas
  • 1 个回答
  • 50 Views
Martin Hope
Sam Knight
Asked: 2022-08-24 19:28:33 +0000 UTC

numpy.std() python中ddof(自由度增量)参数的含义,其统计意义,对样本和结果的影响

  • 1

用数据数组中的样本计算值的标准差时,只取一部分数据?例如,我有一个包含数据的表,其中有一列 - 差异,它有一百行数据。有了这样的条目 - sigma = ms['difference'].std(ddof=1),系统会只取一部分数据进行计算还是全部一百行?

python
  • 1 个回答
  • 29 Views
Martin Hope
Sam Knight
Asked: 2022-08-17 23:11:45 +0000 UTC

我正在尝试使用 matplotlib 绘制移动平均线,但它给了我一个错误

  • -1

今天是个好日子。这是代码,我似乎按照示例做所有事情,但它给出了一个 AttributeError 错误

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

df = pd.read_csv("apple.csv", parse_dates =["date"], index_col ="date")

df_close = pd.DataFrame(df.close)
df_close['MA9'] = df_close.close.rolling(4).mean()

plt.figure(figsize=(15, 10))
plt.grid(True)
plt.plot(df_close['close'], lable='Apple')
plt.plot(df_close['MA9'], lable='MA 9 Day')
plt.legend(loc=2)

加载的表如下所示:

在此处输入图像描述

我尝试了这种记录格式,但它给出了同样的错误 - df_close['close'].plot(lable='Apple')

一切都通过打印功能进行。我做错了什么,请告诉我。

python
  • 1 个回答
  • 24 Views
Martin Hope
Sam Knight
Asked: 2022-08-17 20:07:26 +0000 UTC

参数:win_type='triang' win_type='gaussian' win_type='exponential' 在滚动熊猫中是什么意思?

  • 1

我试图用谷歌搜索,但除了描述之外什么也没找到。返回一个三角形,高斯窗......这是什么意思,它如何影响数字?计算中使用什么公式?请用简单的方式解释。

python
  • 1 个回答
  • 22 Views
Martin Hope
Sam Knight
Asked: 2022-07-16 14:21:52 +0000 UTC

清楚了解 PoW 和 PoS 的工作原理

  • 0

为什么 PoS 不需要大的计算能力,因为那里也有数学和计算?据我理解的主题,它看起来像这样,但如果我错了,请纠正我。这是主要问题。

在工作量证明的情况下,创建新区块的奖励由第一个解决复杂数学问题的人获得,这与交易本身无关。也就是说,任务的复杂性旨在淘汰小型矿工(计算能力很小),而不是数学计算交易并验证它们。数学任务是“会计办公室”的通行证,该办公室将交易记录在“分类帐”(块)中,这就是 PoW 被认为无效的原因,因为在争夺奖励的过程中,参与者的计算能力开始增长成倍增长,而且它们仅在矿工选择时才需要。简单地说,任何人都可以写一个新的博客,一个计算器就足够了,但是网络只信任那些拥有更多计算能力的人,

在 PoS 的情况下,这种信任被授予口袋里有更多钱的人。如果你有钱,那么我们相信你。这里财富的多少决定了写入区块总数的百分比。你拥有 70% 的项目代币,你将编写 70% 的区块。在第一种和第二种情况下,都不需要用于解决写入块和检查它的问题的计算能力。如果我理解正确,我有一个问题:编写块本身需要什么计算能力,而不是容忍前奏?该任务包括什么(验证交易、从余额中减去或添加、执行函数等)?

blockchain
  • 1 个回答
  • 20 Views
Martin Hope
Sam Knight
Asked: 2022-07-15 22:32:20 +0000 UTC

ms['Close', '2016-01-01':'2016-12-31'].plot() 语法错误

  • 0

我正在尝试为图形设置两个参数,但 jupiter 发誓存在语法错误并且只接受一个参数,要么是关闭的列,要么是带有日期的字符串切片。在变量 ms 中,csv 是一个以列显示价格的表格,其中一个是关闭的,并且行带有日期。如何显示某个时期的价格并给出两个参数?

pandas matplotlib
  • 1 个回答
  • 14 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5