Sun Aug 31
  :  :  

Markdown (H1)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed tortor massa, blandit id quam commodo, congue pellentesque ligula. Fusce posuere velit arcu, id ultricies quam vehicula quis.

H2

Mauris pellentesque congue tellus molestie vestibulum. Mauris dapibus arcu ut nunc iaculis, vitae rhoncus orci finibus. Morbi laoreet tortor commodo nisl malesuada, eget efficitur dui venenatis. Pellentesque sollicitudin, justo vitae porta tincidunt, neque lectus tincidunt urna, at pellentesque ligula nisi eget risus. Vivamus at neque a nisl molestie vehicula et quis magna.

H3

Morbi non ipsum leo. Cras id vehicula metus. Nullam consectetur fermentum ligula non ultrices. Integer arcu metus, ornare vel ullamcorper in, faucibus feugiat quam.

H4

Sed imperdiet leo nibh, eget rutrum nulla ultricies ut. Nulla malesuada ipsum quis tristique gravida.

H5

Fusce at mattis mauris. Proin ac nisl id enim convallis placerat. Nam eleifend neque in imperdiet ullamcorper.

H6

Fusce at mattis mauris. Proin ac nisl id enim convallis placerat. Nam eleifend neque in imperdiet ullamcorper.

Horizontal Rules

Vestibulum nunc odio, vehicula in lectus sit amet, commodo sagittis enim. In hac habitasse platea dictumst. Nam imperdiet mauris sit amet magna viverra, vitae consectetur tellus tristique.


Donec metus sem, rutrum ac nunc vel, blandit pellentesque risus. Praesent suscipit dui eu sapien rhoncus, at faucibus odio posuere. Suspendisse id sagittis velit. Aenean eu iaculis lacus. Cras finibus risus auctor ex dapibus, sit amet efficitur odio finibus.

Emphasis

Bold

Suspendisse odio ligula, laoreet et tempus non, lobortis eget metus. Sed semper nisl vel velit tincidunt, at eleifend ex sodales.

Italic

Vivamus sollicitudin velit nulla, quis vulputate mauris commodo eget. Mauris posuere, tortor nec varius egestas, sem magna placerat libero, in gravida lectus ex id lacus.

Lists

Ordered list
  1. Vivamus tristique
  2. Hendrerit sem
  3. Vitae pulvinar quam
Ordered list
Nested list
  1. Make my changes
    1. Fix bug
    2. Improve formatting
      • Make the headings bigger
  2. Push my commits to GitHub
  3. Open a pull request
    • Describe my changes
    • Mention all the members of my team
      • Ask for feedback

Quotes

Suspendisse volutpat consequat facilisis. Sed laoreet accumsan sapien ut varius. Cras varius ullamcorper nunc quis gravida.

Morbi id nisi lectus.

Code

Inline code

Morbi id nisi lectus. Duis neque est, ultrices non augue nec, interdum tincidunt erat.

Code block
float Q_rsqrt( float number )
{
  long i;
  float x2, y;
  const float threehalfs = 1.5F;  
  x2 = number * 0.5F;
  y  = number;
  i  = * ( long * ) &y;                       // evil floating point bit level hacking
  i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
  y  = * ( float * ) &i;
  y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
//	y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed

  return y;
}
Collapsable code block
// Copyright (c) 2017-2021 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.

#include <consensus/tx_check.h>

#include <consensus/amount.h>
#include <primitives/transaction.h>
#include <consensus/validation.h>

bool CheckTransaction(const CTransaction& tx, TxValidationState& state)
{
  // Basic checks that don't depend on any context
  if (tx.vin.empty())
      return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-vin-empty");
  if (tx.vout.empty())
      return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-vout-empty");
  // Size limits (this doesn't take the witness into account, as that hasn't been checked for malleability)
  if (::GetSerializeSize(TX_NO_WITNESS(tx)) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT) {
      return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-oversize");
  }

  // Check for negative or overflow output values (see CVE-2010-5139)
  CAmount nValueOut = 0;
  for (const auto& txout : tx.vout)
  {
      if (txout.nValue < 0)
          return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-vout-negative");
      if (txout.nValue > MAX_MONEY)
          return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-vout-toolarge");
      nValueOut += txout.nValue;
      if (!MoneyRange(nValueOut))
          return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-txouttotal-toolarge");
  }

  // Check for duplicate inputs (see CVE-2018-17144)
  // While Consensus::CheckTxInputs does check if all inputs of a tx are available, and UpdateCoins marks all inputs
  // of a tx as spent, it does not check if the tx has duplicate inputs.
  // Failure to run this check will result in either a crash or an inflation bug, depending on the implementation of
  // the underlying coins database.
  std::set<COutPoint> vInOutPoints;
  for (const auto& txin : tx.vin) {
      if (!vInOutPoints.insert(txin.prevout).second)
          return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-inputs-duplicate");
  }

  if (tx.IsCoinBase())
  {
      if (tx.vin[0].scriptSig.size() < 2 || tx.vin[0].scriptSig.size() > 100)
          return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-cb-length");
  }
  else
  {
      for (const auto& txin : tx.vin)
          if (txin.prevout.IsNull())
              return state.Invalid(TxValidationResult::TX_CONSENSUS, "bad-txns-prevout-null");
  }

  return true;
}

Links

Nunc condimentum libero ac risus tristique ullamcorper. Nam eget consequat eros. Pellentesque scelerisque ex a enim imperdiet, ac aliquam turpis vehicula. Sed cursus porta velit a pretium. Quisque efficitur eget nunc eget volutpat. Vivamus dignissim sit amet neque porttitor lacinia. Fusce nisi quam, tempor et viverra condimentum, interdum vel erat.

Images

Screenshot of a comment on a GitHub issue showing an image, added in the Markdown, of an Octocat smiling and raising a tentacle.

Table

MonthSavings
January$250
February$80
March$420