Opening a channel involves sending an on-chain transaction (with a multisig output controlled by the channel’s participants), so when the channel is ‘pending’ it simply means this transaction is not yet confirmed. How long it takes the transaction to confirm depends on the same factors as any other transaction.
Further, the participants will often wait for a certain number of transaction confirmations before starting to make channel payments. The number of confirmations required is negotiated in the minimum_depth parameter of the accept_channel message. From BOLT 2:
The funding_locked message indicates that the funding transaction has reached the minimum_depth asked for in accept_channel. Once both nodes have sent this, the channel enters normal operating mode
(thanks to @jnewbery for the added info)
@selfishminer you should add your edit as a separate answer since it is a complete re-write compared to mine, but I think it is helpful. – chytrik – 2018-11-07T10:08:12.553
1"Once the transaction confirms..." the participants actually wait for a certain number of confirmations before starting to make channel payments. The number of confirmations required is negotiated in the
minimum_depthparameter of theaccept_channelmessage. From BOLT 2: "Thefunding_lockedmessage indicates that the funding transaction has reached theminimum_depthasked for inaccept_channel. Once both nodes have sent this, the channel enters normal operating mode." – jnewbery – 2018-11-30T02:51:31.510@jnewbery thanks for the clarification/extra info, I've edited the answer to include it – chytrik – 2018-11-30T03:04:08.827