• Почему медленно открываются сайты через mikrotik с Wireguard?

    @elexterem
    1 ) Вариант
    Попробуй это. Мне помогло.
    /ip firewall mangle 
    add action=change-mss chain=forward new-mss=clamp-to-pmtu out-interface=wireguard protocol=tcp tcp-flags=syn

    Это правило корректирует размер mss
    Если у тебя есть правило fasttrack, то отруби его и перезагрузи роутер

    2) Второй вариант если не поможет первый Как определить оптимальный размер MTU?
    Ответ написан
    3 комментария
  • 6/2(1+2) =? (простой вопрос по школьной программе)

    PaukCher
    @PaukCher
    Прежде всего хочу напомнить, что в советской школе нас учили, что есть разница между умножением со знаком и без знака. А разница состоит в том, что при умножении без знака произведение рассматривается как цельная величина. На бытовом уровне, если 2а это литр жидкости, то 2×а это два пол-литра жидкости.
    Рассмотрим пример:
    2а:2а=1
    при а=1+2
    2(1+2):2(1+2)=6:2(1+2)=6:6=1
    Для тех, кто не помнит этого правила, предлагаю решить пример на понимание:
    59d60ca479d1f224968147.jpeg
    Этот пример из «Сборника задач по алгебре», Часть I, для 6-7 классов. (П.А. Ларичев)
    В интернете можно скачать его бесплатно и убедиться в моей правоте.
    Исходя из вышесказанного 6:2(1+2)=1

    И вот что я ещё нашёл недавно:
    В пособии для математических факультетов педагогических институтов по курсу методики преподавания математики, по которому учили наших преподавателей алгебры в педагогических ВУЗах Советского Союза, однозначно сказано, что в алгебре знак умножения связывает компоненты действия сильнее, чем знак деления. А тот факт, что в спорном примере знак умножения опущен, говорит о том, что спорный пример алгебраический.
    5a5dbb4596aed550405876.jpeg
    По нижеприведённой ссылке Вы можете скачать:
    Методика преподавания алгебры, Курс лекций, Шустеф М. Ф., 1967 г.
    https://russianclassicalschool.ru/biblioteka/matem...
    Приложенный мной текст на 43-й странице пособия.

    Так что, для тех, кто хорошо учился в советской школе 6:2(1+2) = 1
    Ответ написан
    11 комментариев
  • Как узнать количество текущих соединений Nginx?

    @StarScream902
    Админ, немного программер. Люблю чтобы было круто.
    sudo netstat -anlp | grep :443 | grep ESTABLISHED | wc -l

    Вариант по проще, модуля может и не оказаться
    Ответ написан
    Комментировать
  • Web3.js 1.0.0-beta.34 - как правильно отправлять токены с кошелька на кошелёк?

    yartem
    @yartem Автор вопроса
    frontend newbie
    Сам спросил, сам и отвечу.

    Решение, как выяснилось, лежало немного в иной плоскости. Вот код:

    const
      tokenAddress = '0x58....e4',
      fromAddress = '0xaA....46c',
      privateKey = '0x09........79',
      toAddress = '0xE3....f7',
      decimals = web3.utils.toBN(0),
      amount = web3.utils.toBN(5),
      value = amount.mul(web3.utils.toBN(10).pow(decimals)), // value = 5 = 5*(10^0)
      sender = web3.eth.accounts.privateKeyToAccount(privateKey),
      token = abi => new web3.eth.Contract(abi, tokenAddress).methods;
    
    axios.get('https://api.etherscan.io/api?module=contract&action=getabi&address=' + tokenAddress)
    .then(answer => {
      const
        abi = JSON.parse(answer.data.result),
        data = token(abi)["transfer"](toAddress, value).encodeABI(),
        tx = {
          gas: '2000000',
          from: fromAddress,
          to: tokenAddress,
          data,
        };
    
      token(abi).name().call().then(console.log);
      token(abi).symbol().call().then(console.log);
      token(abi).balanceOf(fromAddress).call().then(console.log);
    
      sender.signTransaction(tx)
      .then(signedTx => {
        web3.eth.sendSignedTransaction(signedTx.rawTransaction)
        .then(console.log);
      });
    });


    Судя по всему, проблема была в том, что транзакция не была подписана. Так как перевод токенов, это не отправка какого-нибудь сообщения в духе "Hello world!", а вполне себе переброска реальных бабок, такая транзакция не может осуществляться с кошелька хозяина без его ведома. В статье How to send ERC20 token with Web3.js@1.0.0, ссылку на которую я приводил выше, и которой я руководствовался в процессе написания первоначального варианта кода, этот момент как-то странно обойдён автором. Если придирчиво изучить демо-сайт, ссылку на него Hideyoshi Moriya приводит в конце своей статьи, можно заметить, что автор использует MetaMask API, что многое объясняет, но о чём ни слова нет в самой статье. Судя по всему, MetaMask позволяет решить вопрос авторизации своими методами.

    Я же продолжил свои исследования. Усиленно копая интернет, через достаточно небольшой промежуток времени, наткнулся на аналогичный моему вопрос человека с ником Dmitry на русском сегменте StackOverflow.com: Как отправить токены ethereum с помощью web3.js. Цитировать его я не буду, но вот ответ человека с ником user3655581 привлёк моё внимание:

    Для того, чтобы перевести токены - нужно вызвать соответствующий метод контракта токена, предварительно его подписав. Примерный код:
    const sender = web3.eth.accounts.privateKeyToAccount(privateKeyFrom);
    const tokenContract = new web3.eth.Contract(abi, contractAddress);
    const data = tokenContract.methods["transfer"](toAddress, amount).encodeABI();
    const tx = { 
      gas: '2000000',
      from: fromAddress,
      to: contractAddress,      
      data,
    };
    const signedTx = await sender.signTransaction(tx);
    const result = await web3.eth
      .sendSignedTransaction(signedTx.rawTransaction);



    Руководствуясь приведённым кодом, я соорудил решение для своей задачи. Токены в количестве 5 штук успешно переправлены с одного кошелька на другой.

    Спасибо большое всем, кто хотел мне помочь в этом вопросе, но немного не успел. Если у кого есть что добавить — буду только рад вашим комментариям. потому что пока очень и очень смутно ориентируюсь в поднятом вопросе.
    Ответ написан
    Комментировать
  • На чём писать UDP-сервер под VPS: Java vs Node.js?

    tsepen
    @tsepen
    Frontend developer
    Почему бы не Golang? Если из Java и JS на данном железе то по мне так JS.
    Ответ написан
    4 комментария